server-memo.net

SSHでrootユーザログイン禁止

      2016/01/22

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).

以上です。

 - SSH