脳みそこねこね

備忘録とやったことをつらつらと書く

クライアント側の設定

やったぜ!!!

苦節2週間くらいかかったが、やっとLDAP認証でクライアント側にログインできたぜ!!

 

ぜんぜん本質ではないところではまっていたので、それは今回の最後のほうで

ちょっとだけ触れることにしよう。

 

さて、クライアント側の設定であるが、こちらはyumで導入することにする。

# yum -y install openldap-clients nss-pam-ldapd

 あとは、各種設定ファイルとかを環境に合わせていく。

-- 最終行に追記
URI ldap://192.168.0.1/ ←環境に合わせる
BASE dc=sample,dc=com  ←環境に合わせる
TLS_CACERTDIR /etc/openldap/cacerts
  • /etc/nslcd.conf
-- 最終行あたりに修正&追記
uri ldap://192.168.0.1/ ←環境に合わせる
base dc=sample,dc=com  ←環境に合わせる
ssl no
tls_cacertdir /etc/openldap/cacerts
  • /etc/pam_ldap.conf
-- 17行目をコメント
# host 127.0.0.1
-- 21行目
base dc=sample,dc=com  ←環境に合わせる
-- 最終行に追記
uri ldap://192.168.0.1/ ←環境に合わせる
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5
  • /etc/pam.d/system-auth
  • /etc/pam.d/password-auth
同じ設定を2ファイルにすること!
-- authのpam_deny.soの設定の前の行に挿入
auth      sufficient   pam_ldap.so use_first_pass
-- accountのpam_permit.soの設定の前の行に挿入
account   [default=bad success=ok user_unknown=ignore] pam_ldap.so
-- passwordのpam_deny.soの設定の前の行に挿入
password  sufficient   pam_ldap.so use_authtok
-- sessionのpam_unix.soの後に追記
session   optional     pam_ldap.so
session   optional     pam_mkhomedir.so skel=/etc/skel umask=077
  • /etc/nsswitch.conf
-- 33行目あたりから修正
passwd:    files ldap
shadow:    files ldap
group:     files ldap
-- 57行目あたり
netgroup:  ldap
-- 61行目あたり
automount: files ldap
  • /etc/sysconfig/authconfig
-- 18行目を修正
USELDAP=yes

nslcdサービスをサーバ起動時に開始されるようにして、再起動

# chkconfig nslcd on
# shutdown -r now

これで、LDAP側に登録されているユーザとパスワードで認証が通るはずだ。

 

さて、今回はまったのは、次の2点。

1.参考にしたサイトでは、password-authファイルの修正手順がなかった

今回、修正したうち、/etc/pam.dディレクトリ配下のファイルが2つある。

  • system-auth:コンソールでログインまたはsuコマンドなどの認証設定
  • password-auth:ターミナルでログインなどの認証設定
最初、system-authしか修正しなかったものだから、ターミナルでログインが失敗する。
そんなときは、クライアントサーバ(sshログインサーバ)の/var/log/secureのログを眺める。
pam_ldap.soが使われていないようだったので、気づけた。

 

2.389ポート。。。

これは、完全に筆者環境における罠なので、一般には、はまらないと思う。

今回のサーバとクライアントだが、実は「VMWare vSphere Hypervisor」上、つまり

ESXi上の仮想マシンで動いている。

で、その仮想スイッチをvmKernelのものと共用していた。

それぞれのホストは、vSphere Serverで一元管理できるのだが、それがLDAPを使ってるので

389番ポートがフィルタリングされてしまっていたのだ。

なので、クライアント側からサーバ側にpingが通ったとしても、389番ポートへの通信は

届かない、サーバが見つからないとなっていたのでした。。。

 

まあ、それもいろいろ調べて、なんとなくそこが怪しいと思ったので、

ホスト通信用とは別の仮想スイッチを作成し(そもそもハード的にはNICは2枚乗せてたので)

そちらで、仮想マシン間のネットワークは集約するようにしましたとさ。

 

というわけで、今日はこの辺で。