ユーザ、アクセス元IPアドレスでsshの接続制限をする
プログラムからsshを使うために、認証なしでsshを使いたいことがある。そういうときは、公開鍵認証を使い、パスワードなし、パスフレーズなしでログイン可能となるように設定する。しかし、ここで一抹の不安を感じる。もし、この秘密鍵が漏洩したら・・・。簡単にサーバーへのログインを許してしまう。これはセキュリティ上問題ではないだろうか・・・?
そこで、公開鍵認証に加えて、ログインを許可するアクセス元IPアドレスを制限する。
例えば、サーバー間接続に使用しているプライベートアドレスからだけログインを許可するように設定する。そうすれば、万が一、公開鍵が漏洩しても、インターネット越しに直接ログインを許すことはない。
以下の設定は、Red Hat Enterprise Linux 6 (RHEL6)とCentOS6で動作確認している。
設定する箇所を3つ。
/etc/pam.d/ssh
以下の箇所に追記する。
account required pam_nologin.so
account required pam_access.so
account include system-auth
/etc/security/access.conf
例)grgrjnjnユーザのログインを、10.9.40.1からのみ許可して、それ以外からのログインは拒否する設定。
- : grgrjnjn : ALL EXCEPT 10.9.40.1
設定の反映
$ sudo /sbin/service sshd reload
以上