Ubuntu 18.04でActive DirectoryへのOpenLDAPプロキシを構築
Active Directoryのあるネットワークとは別のネットワークにある機器(具体的には電子黒板)から、LDAPでADユーザ情報を検索したいという要件が。
VPNなどの設定もできないので、DMZにOpenLDAPによるLDAP用のプロキシサーバを立ててみた。
手順
Ubuntu Server 18.04をインストールした状態で、まずはOpenLDAPサーバとクライアントをaptでインストール。 インストール中にパスワードなどを尋ねられるが、何も入れずエンター連打。
sudo apt update
sudo apt install slapd ldap-utils
ActiveDirectory用のスキーマを追加でダウンロード。
sudo wget http://lism.sourceforge.jp/docs/ad.schema -O /etc/ldap/schema/ad.schema
設定ファイルを次のように作成。
$ sudo nano /etc/ldap/slapd.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/ad.schema
modulepath /usr/lib/ldap/
moduleload back_ldap
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 256
# アクセス制限の設定
access to *
by peername.ip=127.0.0.1 read
by peername.ip=***.***.***.*** read # このLDAPプロキシにアクセスする機器のIP
by * none
# LDAPプロキシの設定
database ldap
readonly yes
suffix "OU=****,DC=***,DC=****" # ADで検索するときに追加するsuffix
uri ldap://***.***.***.***:389/ # ADサーバのIPアドレス
rebind-as-user
idassert-bind bindmethod=simple
binddn="CN=****,OU=****,OU=***,DC=***,DC=***" # ADでの検索を実行するユーザ
credentials="******" # パスワード
mode=none
idassert-authzFrom "*"
/etc/ldap/slapd.d
ディレクトリがあると/etc/ldap/slapd.conf
を読んでくれないので、ディレクトリの方をリネーム。
sudo mv /etc/ldap/slapd.d /etc/ldap/_slapd.d
設定できたのでサービスを再起動。
sudo systemctl restart slapd
確認
ldapsearch -b "(ADユーザのDN)" -w "(パスワード)" -h 127.0.0.1 -x "OU=***,DC=***,DC=***(BaseDN)"
ちなみに127.0.0.1
をlocalhost
にすると、IPv6(::1
)になってしまい、アクセス許可をしていないので弾かれるのでご注意。