OpenLDAP Proxy -- slapd.conf

  sonic0002        2017-10-29 04:01:39       21,063        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

Trong bài đăng giới thiệu về proxy OpenLDAP, chúng tôi đã đề cập rằng slapd.conf là tệp cấu hình cho biết dịch vụ slapd cần làm gì.  Ngoài ra, còn có một cách cấu hình slapd động, trong đó các cấu hình được lưu trữ trong cơ sở dữ liệu LDIF.  Trong tương lai, cơ sở dữ liệu LDIF sẽ là cơ sở để cấu hình slapd, kiểu cũ của slapd.conf đã lỗi thời. Tệp slapd.conf có thể được chuyển đổi sang kiểu LDIF bằng lệnh slapdtest.

slapdtest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d

Vì mục đích minh họa, chúng ta sẽ sử dụng slapd.conf để giải thích cách cấu hình dịch vụ slapd như một proxy OpenLDAP. Và chúng ta sẽ giải thích cái có cấu hình meta backend ở đây. Cấu hình backend ldap tương tự như của meta backend với một số khác biệt nhỏ.

Dưới đây là một ví dụ cấu hình hoạt động của proxy OpenLDAP.

#
# Xem slapd.conf(5) để biết chi tiết về các tùy chọn cấu hình.
# Tệp này KHÔNG nên được đọc bởi tất cả mọi người.
#

# Bao gồm các schema
include         /etc/openldap/schema/corba.schema
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/duaconf.schema
include         /etc/openldap/schema/dyngroup.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/java.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/ppolicy.schema
include         /etc/openldap/schema/collective.schema


# Cho phép kết nối client LDAPv2. Điều này KHÔNG phải là mặc định.
allow bind_v2

pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

# Tải các mô-đun backend động
# - modulepath là giá trị phụ thuộc vào kiến trúc (hệ thống 32/64 bit)
# - lớp phủ back_sql.la yêu cầu gói openldap-server-sql
# - dyngroup.la và dynlist.la không thể được sử dụng cùng một lúc

modulepath  /usr/lib/openldap
modulepath  /usr/lib64/openldap
moduleload  back_meta
moduleload  rwm

# Ba dòng tiếp theo cho phép sử dụng TLS để mã hóa kết nối bằng
# chứng chỉ kiểm tra giả mà bạn có thể tạo bằng cách chạy.
TLSCACertificateFile /root/openldap_proxy/data/certs/ldap.crt
TLSCertificateFile /root/openldap_proxy/data/certs/ldap.crt
TLSCertificateKeyFile /root/openldap_proxy/data/certs/ldap.key

# Mức độ ghi nhật ký
loglevel 256

#######################################################################
# định nghĩa cơ sở dữ liệu
#######################################################################

#### Định nghĩa cơ sở dữ liệu #########################################

database meta
suffix   "dc=test,dc=com"
rootdn   "cn=admin,dc=test,dc=com"
rootpw   "password"

uri           "ldap://192.168.56.100/dc=test,dc=com"
readonly      yes
lastmod       off
suffixmassage "dc=test,dc=com" "dc=ou1,dc=test,dc=com"

uri "ldap://192.168.56.101/dc=test,dc=com"
readonly      yes
lastmod       off
suffixmassage "dc=test,dc=com" "dc=ou2,dc=test,dc=com"
idassert-bind bindmethod=simple
   binddn="cn=admin,dc=test,dc=com"
   credentials="password"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=admin,dc=test,dc=com"

overlay       rwm
rwm-map       attribute   uid  sAMAccountName

Đây là một tệp slapd.conf tiêu chuẩn chứa các khai báo schema và các cài đặt chung khác. Chúng ta chỉ tập trung vào các cài đặt cụ thể của proxy.

moduleload  back_meta

Điều này tải mô-đun backend meta để có thể sử dụng backend meta

database meta

Điều này khai báo backend của máy chủ LDAP, trong trường hợp này là meta. ldap cũng có thể được đặt.

suffix   "dc=test,dc=com"

Điều này khai báo ngữ cảnh đặt tên ảo (cơ sở) mà client LDAP có thể sử dụng để tìm kiếm proxy LDAP. Nó có thể là bất kỳ giá trị có ý nghĩa nào phù hợp với cú pháp cơ sở

rootdn   "cn=admin,dc=test,dc=com"
rootpw   "password"

Hai mục này khai báo dn ràng buộc ảo và mật khẩu mà client LDAP có thể sử dụng để xác thực với proxy LDAP. Những điều này hữu ích khi máy chủ LDAP từ xa cần ràng buộc client vì chúng ta cần cho proxy biết ai có thể xác thực với máy chủ LDAP từ xa.

uri           "ldap://192.168.56.100/dc=test,dc=com"

Điều này bắt đầu một mục máy chủ LDAP từ xa mới. Cú pháp phải là "://[:]/<ngữ cảnh đặt tên ảo/đuôi>". Ngữ cảnh đặt tên ảo ở cuối uri thường giống với hậu tố được khai báo sau meta cơ sở dữ liệu. 

Mỗi máy chủ LDAP từ xa mới nên sử dụng một uri riêng biệt.

suffixmassage "dc=test,dc=com" "dc=ou1,dc=test,dc=com"

Điều này khai báo ánh xạ giữa hậu tố/cơ sở được định nghĩa trong proxy và cơ sở thực tế trong máy chủ LDAP từ xa để nó có thể chuyển hướng truy vấn đến cơ sở tìm kiếm thực tế của máy chủ LDAP từ xa khi có truy vấn của client đến. Phần bên trái là ngữ cảnh đặt tên ảo, thường giống với hậu tố được khai báo sau meta cơ sở dữ liệu. Phần bên phải là cơ sở tìm kiếm thực tế trong máy chủ LDAP từ xa.

Điều này không khả dụng cho backend ldap.

readonly      yes

Điều này khai báo rằng client LDAP chỉ có thể truy vấn máy chủ LDAP từ xa nhưng không thể cập nhật máy chủ LDAP từ xa. Đây sẽ là điều chúng ta thường làm khi sử dụng máy chủ LDAP làm proxy.

lastmod       off

Điều này cũng cho biết rằng máy chủ từ xa không thể được sửa đổi. Giá trị mặc định là tắt, sẽ không cho phép sửa đổi. 

idassert-bind bindmethod=simple
   binddn="cn=admin,dc=test,dc=com"
   credentials="password"
   mode=none
   flags=non-prescriptive
idassert-authzFrom "dn.exact:cn=admin,dc=test,dc=com"

Những điều này cần thiết khi máy chủ LDAP từ xa cần xác thực client để có thể truy vấn máy chủ. Có một vài bindmethod được hỗ trợ. Một là simple cần dn và mật khẩu thông thường để xác thực. binddn và thông tin xác thực phải được cung cấp bởi máy chủ LDAP thực tế.

Ngoài ra, authzFrom khai báo các danh tính cục bộ nào có thể truy cập tính năng xác nhận danh tính. Trong trường hợp này, chúng tôi đã định nghĩa rằng cn=admin,dc=test,dc=com có thể truy cập nó. Đây là rootdn được định nghĩa trong proxy.

overlay           rwm
rwm-map       attribute   uid  sAMAccountName

Điều này định nghĩa ánh xạ giữa tên thuộc tính mà máy chủ proxy hiển thị cho client và tên thuộc tính thực tế được cung cấp bởi máy chủ LDAP từ xa. Điều này hữu ích khi các máy chủ LDAP từ xa khác nhau có thể có các tên thuộc tính khác nhau có nghĩa là cùng một thứ. Ví dụ: trong máy chủ LDAP Linux, uid sẽ có nghĩa là id người dùng, trong khi trong Windows AD, cùng một thứ có thể được biểu thị bằng sAMAccountName. Hoặc chúng hữu ích khi cần các thuộc tính tùy chỉnh.

Trong bài đăng tiếp theo, chúng tôi sẽ giới thiệu cách thiết lập proxy LDAP bằng slapd.conf.

OPENLDAP  OPENLDAP PROXY  SLAPD  SLAPD.CONF 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

Correct way to wake up in the morning