private.localに存在するADで、sybyl.local上の MacOSX のアカウント管理を行いたい。
間には、NATルータが存在している。
素直に MacOSX をprivate.localのADドメインに参加させればいいのだが、それはNATのせいでkerberosの仕様的に無理みたい。
なのでNATルータ(pfsense)にLDAPのポートフォワードを適用させ、NATルータをLDAPサーバに見立てた(sybyl.local側から見て)。
注意
関連router/NFS,router/pfsense/NAT,router/pfsense/NAT/PortForward
本来は無理っぽいのだが。。
https://support.apple.com/kb/PH9196?locale=ja_JP&viewlocale=ja_JP
改修案samba/LDAP/dualNIC
「システム環境変数」->「ユーザとグループ」から左下の鍵を開錠して、「ログインオプション」を押下する。
そして、「ネットワークアカウントサーバ」の「接続...」ボタンを押下します。
次に、OpenDirectoryサーバやActiveDirectoryのドメイン名の入力を求められるが、入力せずに
「ディレクトリユーティリティを開く...」ボタンを押下します。
開いた「ディレクトリユーティリティ」画面にて「サービス」タブを選択して、名前「LDAPv3」をダブルクリックします。
表示されたサブ項目で、「新規...」ボタンを押下します。
「新規LDAP接続」画面にて、サーバ名またはIPアドレスにNATルータの「192.168.0.72」を指定して「手動」ボタンを押下します。
サブ項目で設定名を「pfsense」として有効にして、LDAPマッピングにはプルダウンから「RFC2307」を選びます。
LDAPマッピングに「RFC2307」を選ぶと「検索ベースのサフィックス」画面が表示される。
ここでは、NATルータ先にあるADドメインを参照したいので、サフィックスは「dc=private,dc=local」として「OK」ボタンを押下します。
サブ画面に戻り、pfsenseのエントリーが表示されますが、それを選択して「編集...」ボタンを押下します。
pfsenseへの設定画面が表示され、「セキュリティ」タブを選んで、ディレクトリへのアクセスを有効にして
先ほど仲介役として作成したユーザの識別名とパスワードを入力する。
ユーザ識別名:cn=ldap-connect,cn=Users,dc=private,dc=local
パスワード:ldap
そして「OK」ボタンを押下します。
次に、「ディレクトリユーティリティ」画面まで「OK」ボタンを押下して、「検索方式」タブを開きます。
まずは、「認証」タブにて、検索をプルダウンから「カスタムパス」に切り替えます。
自動的に「/LDAPv3/192.168.0.72」が表示されるかと思います。そこで「適用」ボタンを押下します。
*なければ、「+」ボタンを押下すれば選択肢が表示されるかも。なければどこかで指定ミスかも
引き続き、「コンタクト」タブを選択して、こちらも検索をプルダウンから「カスタムパス」に切り替えます。
こちらも自動的に「/LDAPv3/192.168.0.72」が適用され、ここで「適用」ボタンを押下します。
*こちらもなければ、「+」ボタンを押下すれば選択肢が表示される
「ディレクトリユーティリティ」画面を閉じると、「ネットワークアカウントサーバ」の欄が緑色で応答可と表示される。
idコマンドでldapから情報も引けた
lion:~ supervisor$ id illya
uid=1002(illya) gid=2000(fate) groups=2000(fate),12(everyone),62(netaccounts),701(com.apple.sharepoint.group.1)
lion:~ supervisor$
ホームディレクトリの取り扱い。マッピングの際に一度「RFC2307」を選び、
次に「カスタム」に変更します。
そして、左側の「レコードのタイプと属性」でUsersを展開します。
そこに「NFSHomeDirectory」を選択して、右側に表示された値「homedirectory」を削除後、
値を「#/home/$uid$」に変更して、「OK」ボタンを押下します。
これでAD(LDAP)ユーザのホームディレクトリが/home/<ユーザ>になります。
lion:~ saber$ ls -l
total 1
drwx------ 3 saber fate 24 9 13 23:44 Library
-rw-r--r-- 1 saber fate 0 9 12 23:29 sample
lion:~ saber$
とuid/gidとも問題ない。
MacOSX 10.7.5(Lion)では問題なかったのだが、10.9(Mavericks)だとログイン認証ができない現象が生じた。
具体的には、ローカルアカウントでログインして、そこでsuコマンドでユーザ切り替えはできるのだが、
ログイン画面からLDAPアカウントでログインすると、アイコンがくるくる回るだけでそれ以上進まない。
しらべると、SASL認証を無効にすれば回避可能のようで、以下のとおりに実施する。
まず、SASL認証にもメカニズムが複数存在するようで、これはLDAP(ここではsamba AD)に対して
どのようなメカニズムをサポートしているかを確かめる。
lion:~ supervisor$ ldapsearch -h pfsense.sybyl.local -x -b "" -s base -LLL supportedSASLMechanisms
dn:
supportedSASLMechanisms: GSS-SPNEGO
supportedSASLMechanisms: GSSAPI
supportedSASLMechanisms: NTLM
lion:~ supervisor$
とGSS-SPNEGO、GSSAPI、NTLMの3つが出てきた。これら3つをMacOSX側で無効にする。
lion:~ supervisor$ sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSS-SPNEGO" \
/Library/Preferences/OpenDirectory/Configurations/LDAPv3/192.168.0.72.plist
lion:~ supervisor$ sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" \
/Library/Preferences/OpenDirectory/Configurations/LDAPv3/192.168.0.72.plist
lion:~ supervisor$ sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" \
/Library/Preferences/OpenDirectory/Configurations/LDAPv3/192.168.0.72.plist
lion:~ supervisor$
NAT越しLDAP接続では、NFSmountをvers=3で行うのなら行けた。
だが、キーチェーンが見つかりませんとのエラーがでる。
やっぱりNAT越しはやめたほうがいいのかな