RSA公開鍵認証の有効化とパスワード認証の無効化

カテゴリ:セキュリティ対策
日時:2004/10/05 22:48

/etc/ssh/sshd_configを編集して、RSA公開鍵認証の有効化と各種の制限を行い、セキュリティを強化する。順番は前後するが、目的別に見ていく。

まず、RSA公開鍵認証の有効化。sshd_configの

#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeyFile   .ssh/authorized_keys

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeyFile   .ssh/authorized_keys

に修正(「#」を削除)。これで、公開鍵と秘密鍵、パスフレーズによる認証が可能になる。

次に、

#PermitRootLogin yes

PermitRootLogin no

にして、rootで直接ログインできないようにする。これにより、ssh接続でroot権限を得るには認証を2回パスしなければならなくなる。

さらに、rhostでの接続とパスワード認証の無効化。

#RhostsRSAAuthentication no
#PasswordAuthentication yes
#PermitEmptyPasswords no

RhostsRSAAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no

とする。コメントアウトされている行を有効化し、さらに「yes」を「no」にすることで明示的に禁止する。

これだけではまだ足りない。

#ChallengeResponseAuthentication yes

ChallengeResponseAuthentication no

にしてチャレンジレスポンス認証を明示的に無効化しておかないと、PAM認証(実質てきにはパスワード認証)を行ってしまう。公開鍵認証に限定したいので、これも潰しておく。

最期に、セキュリティの設定とは直接関係ないが、ログレベルを指定しておく。

#SyslogFacility AUTH
#LogLevel INFO

SyslogFacility AUTH
LogLevel INFO

にして有効化。

設定が終わったら、

/etc/init.d/sshd restart

してsshを再起動し、編集した/etc/ssh/sshd_configを反映させる。問題なければ、

# rc-update add sshd default

でデフォルトランレベルに追加する。

以上で、

 ・サーバ上の公開鍵とペアになっている秘密鍵を持っていること
 ・鍵ペア作成時に設定したパスフレーズを知っていること
 ・ssh2で接続すること

を満たさなければssh接続ができなくなる。パスフレーズを省略した認証にすることもできるが、あえてパスフレース入力が必要な状態にしてある。リモート接続は多少面倒くらいがよろしい(と思う)。