private.localに存在するADで、sybyl.local上の LinuxPC のアカウント管理を行いたい。
間には、NATルータが存在している。

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

2016y09m12d_183550161.png

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

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

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接続ユーザ"が作成された。

CentOS7で接続なら

nss-pam-ldapd」と「nscd」パッケージをインストールします。
そして設定ファイル「/etc/nslcd.conf」を調理します

[root@c101 ~]# yum install nss-pam-ldapd nscd
[root@c101 ~]# vi /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
tls_cacertdir /etc/openldap/cacerts
 
[root@c101 ~]#

*参照サイトにはpasswdのgidNumberをprimaryGroupIDにしているが正しく取れないので、gidNumberへ変更
*あとgroupのcn、gidNumberも修正してます
そして、authconfigを使ってpam/nsswitch.confらを一括で修正させます

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

でOK
*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: 2016-10-01 (土) 13:17:44 (238d)