接続ユーザの制限
sshでログイン出来るユーザの制限方法です。
検証環境
OS CentOS5.0
openssh-server-4.3p2-16.el5
ユーザごとのログイン制限
ssh接続で、あるユーザはssh接続を許可させたいけど、その他のユーザはssh接続させたくないそんな状況を実現する方法が以下の方法です。
注意事項
この設定を行う際は、出来ればssh等をリモートからの設定では無くコンソールから作業を行うことを推奨します。
設定ミス等があるとssh接続が出来なくなる事があります!!
リモートから作業を行う際には、十分に注意して作業を行ってください。
pam認証設定の変更
# cp -p /etc/pam.d/sshd /etc/pam.d/sshd_yyyymmdd # vi /etc/pam.d/sshd
設定内容
以下の項目を/etc/pam.d/sshdに追加します。account required /lib/security/pam_access.so
設定追加後の/etc/pam.d/sshd
太字が追加した個所です。
#%PAM-1.0 auth include system-auth account required pam_nologin.so account include system-auth account required /lib/security/pam_access.so password include system-auth session optional pam_keyinit.so force revoke session include system-auth session required pam_loginuid.so
※念のため、pam_access.soの場所をfindで確認しておくのも良いかも知れません。
# find / -name pam_access.so /lib/security/pam_access.so
アクセス制御設定
/etc/pam.d/sshdの設定が完了したら、実際にユーザのログイン制御設定を行っていきます。設定ファイルは「/etc/security/access.conf」となっています。
# cd /etc/security # cp -p access.conf access.conf_yyyymmdd # vi access.conf
/etc/security/access.conf 書式
access.confは、「 : 」で区切られた3つの項目を設定することになります。
パーミッション:ユーザ:接続元 第1項目(パーミッション) + 許可 - 不許可 第2項目(ユーザ/グループ) 制限対象ユーザ/グループ 第3項目(接続元) 接続元 設定例 以下の設定はwheelグループに属しているユーザと tamohiko以外はログイン出来ないという設定です。 -:ALL EXCEPT wheel tamohiko:ALL ※EXCEPT=除くという意味
sshdの設定確認
sshd側でログイン認証にpamを使用する設定になっていないと、上記の設定は反映されません。ですので、sshdの設定ファイルである「/etc/ssh/sshd_config」ファイルの設定内容を確認します。
具体的に言うと、「/etc/ssh/sshd_config」に「UsePAM yes」という設定項目があればよいです。
# grep UsePAM /etc/ssh/sshd_config UsePAM yes
設定が「UsePAM yes」ならば問題ありませんが、 「UsePAM no」ならば、「UsePAM yes」へ設定変更します。
# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_yyyymmdd # vi /etc/ssh/sshd_config
変更内容
UsePAM yes へ変更します。
設定反映
「UsePAM yes」の設定が完了しましたら、sshdを再起動させて設定を反映させます。
# /etc/init.d/sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ]
動作確認
設定変更が完了しましたら、実際にssh接続を行って動作確認を行ってみてください。
ログインが禁止されているユーザ
ログインが禁止されているユーザの場合は、接続できないことが確認出来ます。
# ssh test@localhost test@localhost's password: Connection closed by 127.0.0.1
ログインが許可されているユーザ
ログインが許可されているユーザでは、無事ログインできました。
# ssh tamohiko@localhost tamohiko@localhost's password: $
おまけ
アクセス制限が行われた際には「/var/log/secure」に以下のようなログが表示されます。
sshd[25626]: pam_access(sshd:account): access denied for user `test' from `localhost' sshd[25627]: fatal: Access denied for user maint by PAM account configuration sshd[25626]: Failed password for maint from 127.0.0.1 port 2871 ssh2