ssh接続のセキュリティ向上
CentOSのデフォルト状態のsshはかなりセキュリティが甘い状態となっています。なので、お手軽に出来るセキュリティ向上を設定します。
rootユーザの直接ログインの禁止
直接rootユーザでログイン出来ると、rootユーザのパスワードが漏れると即システムを乗っ取られてしまうので、rootユーザが直接sshで接続出来ないように設定を行います。
この方法だと、一般ユーザでログインしてからでないとsuでrootになれないので最低でも2つのパスワードがもれないとrootユーザは乗っ取られないので若干セキュリティ度がアップします。
sshサーバの設定ファイルである「/etc/ssh/sshd_config」の「PermitRootLogin」項目の値を「no」にすることで、 rootユーザのsshログイン禁止設定を行うことができます。
# cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_yyyymmdd # vi /etc/ssh/sshd_config
変更前
#PermitRootLogin yes
変更後
PermitRootLogin no
パスワード無しユーザのログイン禁止
せっかくrootユーザの直接ログインを拒否しても、システム上にパスワードの無い一般ユーザがいたりすると目もあてられません・・・なので、パスワードが設定されていないユーザへのSSHログインを禁止する設定を行います。
(これは多分デフォルトの設定で禁止されているはず・・・)
PermitEmptyPasswords no
設定反映
sshd_configの設定反映が完了しましたら、sshdを再起動することで設定を反映させることができます。
# /etc/init.d/sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ]
動作確認
実際にrootユーザでsshログインをためてしてみて、ログイン出来ないことを確認してみて下さい。
# ssh root@localhost root@localhost's password: Permission denied, please try again. root@localhost's password: Permission denied, please try again. root@localhost's password: Permission denied (publickey,gssapi-with-mic,password).
以上です。
コメント