Omarine Native Directory (OND): LDAP Kerberos


(0 comments)

Khi đã chuẩn bị từ bước trước, việc cấu hình krb5 sử dụng cơ sở dữ liệu ldap rất đơn giản. Tệp cấu hình kdc.conf được bổ sung như sau:

# Begin /var/lib/krb5kdc/kdc.conf

[kdcdefaults]
kdc_listen = 88
kdc_tcp_listen = 88
pkinit_identity = FILE:/var/lib/krb5kdc/cert.pem,/var/lib/krb5kdc/key.pem
pkinit_anchors = FILE:/var/lib/krb5kdc/ca-cert.pem

[realms]
OMARINE.ORG = {
kadmind_port = 749
max_life = 12h 0m 0s
max_renewable_life = 7d 0h 0m 0s
dict_file = /usr/share/dict/words
supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal des3-cbc-sha1:normal arcfour-hmac:normal
database_module = openldap_ldapconf
}

[dbdefaults]
ldap_kerberos_container_dn = cn=krbcontainer,dc=omarine,dc=org

[dbmodules]
openldap_ldapconf = {
db_library = kldap
disable_last_success = true

ldap_kdc_sasl_mech = EXTERNAL
ldap_kadmind_sasl_mech = EXTERNAL

ldap_servers = ldaps://omarine.omarine.org
ldap_conns_per_server = 5
}

[logging]
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmin.log
default = FILE:/var/log/krb5lib.log

# End /var/lib/krb5kdc/kdc.conf

Tạo realm sử dụng kdb5_ldap_util tương tự như cách tạo realm thông thường

kdb5_ldap_util create -s

kdb5_ldap_util có thể tạo cơ sở dữ liệu trong ldap là do qui tắc dưới đây mà đã nêu trong chính sách điều khiển truy cập acl:

access to dn.subtree="cn=krbcontainer,dc=omarine,dc=org"
by dn.exact="cn=adm-service,dc=omarine,dc=org" write
by * none

Chính xác và duy nhất cn=adm-service,dc=omarine,dc=org có quyền viết (bao hàm đọc) cn=krbcontainer,dc=omarine,dc=org và các cây con của nó, là dn được ấn định làm khung chứa cơ sở dữ liệu kerberos đã được chỉ ra trong kdc.conf.

Vấn đề là cần có chứng chỉ khách mà có dn giống với cn=adm-service,dc=omarine,dc=org. Tốt quá, chúng ta đã tạo chứng chỉ adm-service

cn=adm-service,dc=omarine,dc=org phục vụ truy cập ldap cho cả kdc và kadmind như chỉ ra trong tệp cấu hình, cả hai đều sử dụng EXTERNAL (TLS).

Sau khi tạo realm bạn khởi động lại dịch vụ kdc và kadmin, LDAP Kerberos đã sẵn sàng:

systemctl restart kdc

systemctl restart kadmin

Sử dụng kỹ thuật DIGEST-MD5

Kỹ thuật DIGEST-MD5 cũng có thể được sử dụng để tạo và quản lý cơ sở dữ liệu ldap. Đỡ mất công tạo chứng chỉ :-).

Cách cấu hình như sau:

1) Thay thế bộ phận [dbmodules] với nội dung dưới đây:

[dbmodules]
openldap_ldapconf = {
db_library = kldap
disable_last_success = true

ldap_kdc_sasl_mech = DIGEST-MD5
ldap_kadmind_sasl_mech = DIGEST-MD5

ldap_kdc_sasl_authcid = adm-service
ldap_kadmind_sasl_authcid = adm-service

ldap_service_password_file = /etc/kerberos/service.keyfile

ldap_servers = ldap://omarine.omarine.org
ldap_conns_per_server = 5
}

2) Thêm một qui tắc ủy quyền DIGEST-MD5 dưới đây, đặt bên trên qui tắc DIGEST-MD5 cũ:

authz-regexp
uid=adm-service,cn=omarine.org,cn=digest-md5,cn=auth
cn=adm-service,dc=omarine,dc=org

3) Thêm một qui tắc điều khiển truy cập acl dưới đây, đặt bên trên qui tắc acl cuối cùng:

access to dn.exact="cn=adm-service,dc=omarine,dc=org"
by * auth

4) Lấy vé quản trị và đặt mật khẩu cho cn=adm-service,dc=omarine,dc=org:

ldappasswd -S cn=adm-service,dc=omarine,dc=org

5) Sử dụng kdb5_ldap_util để cất giữ mật khẩu mới tạo vào tệp /etc/kerberos/service.keyfile:

kdb5_ldap_util stashsrvpw -f /etc/kerberos/service.keyfile adm-service

Cấu hình đã hoàn thành, bạn tạo realm rồi khởi động lại dịch vụ kdc và kadmin.

Tạo bảng khóa mới cho ldap

Vì slapd chạy như người dùng ldap, nó không thể truy cập bảng khóa tại /etc/krb5.keytab vốn chỉ truy cập được bởi root. Một giải pháp là tạo bảng khóa khác cho ldap trong tệp /etc/openldap/ldap.keytab rồi đổi chủ tệp sang ldap. Chúng ta dùng kadmin để thêm principal dịch vụ ldap vào bảng khóa mới như sau:

kadmin: ktadd -k /etc/openldap/ldap.keytab ldap/omarine.omarine.org

Đổi chủ tệp sang ldap, đảm bảo tệp chỉ truy cập được bởi chủ nhân:

sudo chown ldap.ldap /etc/openldap/ldap.keytab

sudo chmod 600 /etc/openldap/ldap.keytab

slapd và khách krb5 nói chung cần biết vị trí bảng khóa mới, bạn thêm nội dung dưới đây vào tệp krb5.conf:

[libdefaults]
default_keytab_name = FILE:/etc/openldap/ldap.keytab

Khi sử dụng ldap, máy chủ kadmind và máy chủ kdc không cần phải chạy trên cùng một máy. Đó là một ví dụ về tính năng khác biệt của LDAP Kerberos sử dụng ldap trong vai trò trung tâm dữ liệu.

Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required