ユーザ、アクセス元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/ssh/sshd_config

UsePAMがnoならばyesにする。

UsePAM yes

/etc/security/access.conf

例)grgrjnjnユーザのログインを、10.9.40.1からのみ許可して、それ以外からのログインは拒否する設定。

- : grgrjnjn : ALL EXCEPT 10.9.40.1

設定の反映

$ sudo /sbin/service sshd reload


以上