検証環境
CentOS 7
ログイン許可ユーザの設定
sshd_configに「AllowUsers」という項目を追加することで、接続を許可するユーザを指定することが出来ます。
AllowUsers書式
AllowUsersの書式はいくつかの種類がありますので、一覧にまとめてみました。
内容 | 記述例 |
接続許可ユーザ設定 | AllowUsers ユーザ名 |
複数の接続許可ユーザ設定 | AllowUsers ユーザ名1 ユーザ名2 |
特定のIPアドレスからのみ接続許可ユーザ設定 | AllowUsers ユーザ名@接続元IP |
特定のIPアドレスからのみ接続許可(全ユーザ) | AllowUsers *@接続元IP |
設定作業
CentOSの場合は/etc/ssh/sshd_configが対象ファイルとなりますので、バックアップを取ってから作業を行っていきます。
注意点
設定にミスがあった場合には、SSHで接続することが出来なくなってしまう場合がありますので、コンソールから接続できる環境や、もう一セッション別のSSH接続を用意しておく 等して下さい。
# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config # vi /etc/ssh/sshd_config
設定内容
今回は、userというユーザは無制限で接続を許可し、user2というユーザは接続元のIPアドレスが192.168.1.10の時のみ許可という設定にしました。
AllowUsers user user2@192.168.1.10
この設定内容を、sshd_configの一番最後の行に追加しました。
設定反映
設定の反映には、serviceコマンドを使用してsshd_configファイルの設定を読み込ませます。
# service sshd reload
動作確認
実際にSSHで接続してみて、動作確認を行います。
接続許可ユーザ動作確認
userというユーザSSH接続した際の操作ログですが、正常にログイン出来ていることが確認できます。
※ちなみに、接続元のIPは192.168.1.13です。
$ ssh user@192.168.1.100 user@192.168.1.100's password: Last login: Sun Nov 30 23:41:23 2014 from 192.168.1.13
接続元IP制限ユーザ動作確認
次はuser2というユーザで接続した際のログです。
user2というユーザはsshd_configに記述してありますが、接続元のIPアドレスも制限しているため、Permission deniedと表示され接続できませんでした。
$ ssh user2@192.168.1.100 user2@192.168.1.100's password: Permission denied, please try again..
この時のサーバ側のログ(/var/log/secure)には、not allowed beacuse not listed in AllowUsersと書き込まれていました。
Nov 30 23:47:13 localhost sshd[22369]: User user2 from 192.168.1.13 not allowed because not listed in AllowUsers Nov 30 23:47:13 localhost sshd[22369]: input_userauth_request: invalid user user2 [preauth]
接続許可設定なしユーザ動作確認
AllowUsersに登録されていないユーザである、user3というユーザで接続してみると、こちらの場合は接続することが出来ませんでした。
$ ssh user3@192.168.1.100 user3@192.168.1.100's password: Permission denied, please try again.
この場合も、サーバ側のログににはnot allowed beacuse not listed in AllowUsersと書き込まれていて、設定が正しく動作していることがわかりました。
Nov 30 23:47:13 localhost sshd[22369]: User user2 from 192.168.1.13 not allowed because not listed in AllowUsers Nov 30 23:47:13 localhost sshd[22369]: input_userauth_request: invalid user user2 [preauth]
以上です。
コメント