(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Omarine Native Directory (OND): LDAP Kerberos

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.

Advertisements

Gửi phản hồi

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: