下図のように別のネットワーク(private.local)に存在するADLinuxPC/MacOSX のアカウント管理を行いたい。

間には、NATルータが存在している。

素直に LinuxPC/MacOSX をsybyl.localに存在したまま、private.localのADドメインに参加させればいいのだが、
それはNATのため kerberosの仕様的に無理みたい。

2016y09m12d_183550161.png

なのでNATルータ(pfsense)にLDAPのポートフォワードを適用させ、NATルータをLDAPサーバに見立てた(sybyl.local側から見て)。

基本的にSAMBA ActiveDirectoryをLDAPサーバとして使用する感じでしょうか

MacOSXの場合samba/LDAP/MacOSX
NAT越しのNFS設定router/NFS
samba/LDAP/smb

pfsenseの設定

「Firewall」-->「NAT」-->「PortForward」ページにて、下記のようにポートフォワードを用意する
2016y09m18d_004728134.png
*LDAPのport 389に穴を開けます
*pfsenseの設定なのだが、WAN側(sybyl.local)からpfsense「This Firewall」へのport386は、10.10.0.102のport386へ転送させている

接続方法

方法はhttps://wiki.samba.org/index.php/Nslcdに記載されている。
ここでは、ADサーバに仲介役のユーザを設けて、そのユーザを使う方法「Method 1: Connecting to AD via Bind DN and password」を使用する。

注意
CVE-2016-2112でsambaのLDAP通信が脆弱と指摘され、

ldap server require strong auth = yes

が定義された。これで既定で署名されたあるいは暗号化された通信になったのだが、以下に示す方法を用いて
samba(LDAP)と繋ぐとエラーになります。なのでこのオプションをnoとしてsambaを動かしてます。

*いずれば tls とかで対処すべきなのだが、規模次第かなって思う

ADサーバで仲介役ユーザを作成

[root@ad ~]# /opt/samba/bin/samba-tool user add ldap-connect --random-password --description="LDAP接続ユーザ"
[root@ad ~]# /opt/samba/bin/samba-tool user setpassword ldap-connect --newpassword=ldap
[root@ad ~]# /opt/samba/bin/samba-tool user setexpiry ldap-connect --noexpiry

これでユーザ「ldap-connect」、パスワード「ldap」なる"LDAP接続ユーザ"が作成された。

CentOS8で接続なら

参照先: https://alfa.faqserv.com/pukiwiki/?Linux/RHEL8/LDAP%E8%AA%8D%E8%A8%BC https://tylersguides.com/guides/configuring-ldap-authentication-on-centos-8/

「nss-pam-ldapd」と「nscd」パッケージをインストールして、authselect向けの「nslcd」プロファイルを作成する.

dnf install nss-pam-ldapd nscd
cp -Rp /usr/share/authselect/default/sssd /etc/authselect/custom/nslcd
cd /etc/authselect/custom/nslcd
sed -i 's/sss/ldap/g' fingerprint-auth
sed -i 's/sss/ldap/g' password-auth
sed -i 's/sss/ldap/g' smartcard-auth
sed -i 's/sss/ldap/g' system-auth
sed -i 's/sss/ldap/g' nsswitch.conf
sed -i 's/SSSD/NSLCD/g' REQUIREMENTS
echo "Enable nslcd for system authentication" > README
cp /etc/nslcd.conf /etc/nslcd.conf.orig
sed '/^#/d' /etc/nslcd.conf.orig | sed '/^$/d' > /etc/nslcd.conf

「/etc/nslcd.conf」を修正

uid nslcd
gid ldap
uri ldap://192.168.0.72/
base dc=private,dc=local
ssl no
tls_cacertdir /etc/openldap/cacerts
 
pagesize 1000
referrals off
filter  passwd  (objectClass=user)
filter  group   (objectClass=group)
map     passwd  uid                sAMAccountName
map     passwd  homeDirectory      unixHomeDirectory
map     passwd  gecos              displayName
map     passwd  gidNumber          gidNumber
map     group   cn                 msSFU30Name
map     group   gidNumber          gidNumber
 
binddn cn=ldap-connect,cn=Users,dc=private,dc=local
bindpw ldap
mkdir /etc/openldap/cacerts
systemctl enable nslcd
systemctl restart nslcd
 
authselect select custom/nslcd --force

CentOS7で接続なら

nss-pam-ldapd」と「nscd」パッケージをインストールします。

[root@c101 ~]# yum install nss-pam-ldapd nscd

そして「authconfig-tui」でLDAPを有効にさせて
2020y04m04d_093805956.png
LDAPの設定は下記のようにします。
2020y04m04d_093943964.png
ですが、このままだとsssdがLDAP(AD)との中継に入ります。ここではsssdではなくnscdを使いたいので

[root@c101 ~]# authconfig --enableforcelegacy --disablesssd --enablemkhomedir --update

を実行します。これでnslcdが稼働します。

そして設定ファイル「/etc/nslcd.conf」を修正してADの仲介役ユーザで認証を行わせます。

[root@c101 ~]# cp /etc/nslcd.conf /etc/nslcd.conf.orig
[root@c101 ~]# sed '/^#/d' /etc/nslcd.conf.orig | sed '/^$/d' > /etc/nslcd.conf
 
[root@c101 ~]# vi /etc/nslcd.conf
uid nslcd
gid ldap
uri ldap://192.168.0.72/
base dc=private,dc=local
ssl no
tls_cacertdir /etc/openldap/cacerts
 
pagesize 1000
referrals off
filter  passwd  (objectClass=user)
filter  group   (objectClass=group)
map     passwd  uid                sAMAccountName
map     passwd  homeDirectory      unixHomeDirectory
map     passwd  gecos              displayName
map     passwd  gidNumber          gidNumber
map     group   cn                 msSFU30Name
map     group   gidNumber          gidNumber
 
binddn cn=ldap-connect,cn=Users,dc=private,dc=local
bindpw ldap
 
[root@c101 ~]# chmod 600 /etc/nslcd.conf
 
[root@c101 ~]# systemctl restart nslcd

*参照サイトにはpasswdのgidNumberをprimaryGroupIDにしているが正しく取れないので、gidNumberへ変更
*あとgroupのcn、gidNumberも修正してます
*authconfigで修正なら下記のようになるかな

[root@c101 ~]# authconfig --enableldap --enableldapauth --ldapserver="192.168.0.72" \
   --ldapbasedn="dc=private,dc=local" --disableldaptls --enableforcelegacy --disablesssd --enablemkhomedir --update
(それでも/etc/nslcd.confの修正は必要です)
 
[root@c101 ~]# systemctl restart nslcd

*nslcd.serviceは自動的にenableになるみたい

CentOS6で繋げる

pam_ldap」「nss-pam-ldapd」「nscd」パッケージが必要

[root@c102 ~]# yum install pam_ldap nss-pam-ldapd nscd

インストール後に
LDAPからユーザ情報を入手するnss-pam-ldapdの設定ファイル /etc/nslcd.conf

LDAPでユーザ認証するpam_ldapの設定ファイル /etc/pam_ldap.conf
をそれぞれ修正します。

  • /etc/nslcd.conf
    uid nslcd
    gid ldap
    uri ldap://192.168.0.72
    base dc=private,dc=local
    pagesize 1000
    referrals off
    filter  passwd  (objectClass=user)
    filter  group   (objectClass=group)
    map     passwd  uid                sAMAccountName
    map     passwd  homeDirectory      unixHomeDirectory
    map     passwd  gecos              displayName
    map     passwd  gidNumber          gidNumber
    map     group   cn                 msSFU30Name
    map     group   gidNumber          gidNumber
    binddn cn=ldap-connect,cn=Users,dc=private,dc=local
    bindpw ldap
    ssl no
  • /etc/pam_ldap.conf
    base dc=private,dc=local
    binddn cn=ldap-connect,cn=Users,dc=private,dc=local
    bindpw ldap
    bind_policy soft
    pam_login_attribute sAMAccountName
    uri ldap://192.168.0.72/
    ssl no

そしてauthconfigで認証・ユーザ情報取得を変更します。nslcdが自動的に起動しますが、再起動時自動稼動にします。

[root@c102 ~]# authconfig --enableldap --enableldapauth --ldapserver="192.168.0.72" \
   --ldapbasedn="dc=private,dc=local" --disableldaptls --update
 
[root@c102 ~]# chkconfig nslcd on

これでOK

参考:https://wiki.samba.org/index.php/Nslcd


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2020-10-22 (木) 12:50:10 (37d)