概要
前回 CentOS 上に構築した LDAP サーバを今回は SSH の認証として使ってみたいと思います
環境
- サーバ側
- CentOS 7.3.1611
- openldap (servers, clients) 2.4.40-13
- クライアント側
- Ubuntu 16.04
- ldap-auth-client 0.5.3
- nscd 2.23-0ubuntu9
必要なライブラリのインストール
- apt install -y nscd ldap-auth-client
でインストールすると ldap サーバの設定をいろいろと聞かれます
今回は前回の設定をそのまま使うので以下のように回答しました
ldap サーバの IP やポート、cn, dc は各自で設定したものを記載してください
- ldap://192.168.10.1:389
- dc=example,dc=com
- Protocol version: 3
- Yes と回答
- No と回答
- cn=Manager,dc=example,dc=com
- パスワードを設定します (たぶん ldap の設定を変更する際の root ユーザ以外に求められるパスワードです)
再度設定したい場合は dpkg-reconfigure ldap-auth-config
コマンドを実行してください
pam の設定
- pam-auth-update
これまた CUI での設定画面になります
項目内に「LDAP Authentication」と「Create home directory on login」があると思うのでそれぞれチェックをして有効にしてください
nsswitch.conf の設定
ldap を認証に使うように設定します
- vim /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
そして nscd を再起動します
- systemctl restart nscd
おまけ: sshd の設定の確認
sshd の設定でパスワード認証がそもそも ON になっていない場合は ON にしましょう
また鍵認証のみが ON になっている場合は OFF にしておきます
- vim /etc/ssh/sshd_config
PubkeyAuthentication no
PasswordAuthentication yes
- systemctl restart sshd
動作確認
では動作確認です
設定したサーバに LDAP 上に作成したユーザで SSH ログインできるか確認してみましょう
- ssh hawk@192.168.10.2
前回作成した hawk さんでログインできることを確認しました
また、ログイン後にホームディレクトリがあり、ログインシェルが bash になっていることも確認しました
hawk@ubuntu:~$ id
uid=1001(hawk) gid=1000(develop) groups=1000(develop)
hawk@ubuntu:~$ pwd
/home/hawk
hawk@ubuntu:~$ echo $BASH
/bin/bash
最後に
OpenLDAP と SSH の連携をしてみました
今回は nscd (Name Service Cache Daemon) というツールを使いましたが他にも sssd (System Security Services Daemon) というツールがあります
最近だと sssd を使うほうが主流らしいです
0 件のコメント:
コメントを投稿