パーソナルツール
現在の場所: ホーム サーバ設定 SSH 接続ユーザの制限

接続ユーザの制限

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