Ubuntu Server/ldap-auth-client
出典: Fukudat.com
既存の玄箱に設定されているLDAP Serverを認証サーバーに使いたい. そこで,ここを参考に以下のように設定.
目次 |
1 Install
- ldap clientのパッケージをインストール
$ sudo apt-get install libpam-ldap libnss-ldap nss-updatedb libnss-db
- post-installのconfigurationで次のように答える.
- Should debconf manage LDAP configuration = yes
- LDAP server URI = ldap://nas01.fukudat.com/ (最後のslashも必要みたい)
- Distinghished name of the search base = dc=fukudat,dc=com
- LDAP version to use = 3
- Make local root Database admin = yes
- Does the LDAP database require login = no
- LDAP account for root = cn=admin,dc=fukudat,dc=com
- LDAP root account password = /see Notes DB/
- Local crypt to use when changing passwords = exop
2 Configure
2.1 基本設定
- インストール時の設定を変更するには,以下のコマンドを実行.
$ sudo dpkg-reconfigure ldap-auth-config
- /etc/nsswitch.conf を編集して以下のようにする.
passwd: files ldap group: files ldap
- ここまでうまくいっていれば,次のコマンドでLDAPのユーザとグループがリストできるはず.だめなら上をやり直し.
$ getent passwd $ getent group
- /etc/pam.d/common-account を編集して以下のようにする.
account sufficient pam_ldap.so account required pam_unix.so
- /etc/pam.d/common-passwd を編集して以下のようにする.
password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5
以上.これで LDAP のユーザでログインできるはず.
2.2 local user の削除
UbuntuのlocalユーザのUIDが1000から始まっており,LDAPのユーザのUIDとぶつかっていることが判明 (Fedoraでは500から始まっており問題なかった).
仕方がないので,以下のようにする.
- Ubuntuのlocalユーザは削除する.("takeshi" はUbuntuのインストールの際に指定したローカルユーザ)
$ sudo userdel takeshi
- すると,group "takeshi" が既存ユーザの primary group だから削除できないというエラーになる.これはLDAPユーザとぶつかっているからで,仕方がないので,手動で /etc/group を編集して削除する.
- 以上だが,このままだと network の障害や,LDAP server がダウンしたときUbuntuに全くログインできなくなってしまう.バックアップとして,システムユーザを追加するか,既存のシステムユーザをログイン可能にする.そのユーザは(緊急時に備えて)sudo可能にしておくべきだろう.
- 今回は既存の "backup" ユーザにパスワードを付与.さらに "admin" グループに追加して sudo 可能にした.
