root での SSH ログインを禁止する 【Linux】

Web Server

Linux で SSH ログイン関連の設定、確認方法について、まとめておきます。
以下の構成を想定しています。

構成: レンタルサーバ(ConoHa VPS)、CentOS 8.0、Windows 10、Tera Term

背景

Web サーバを構築してサイトを作ったとき、Tera Term などを使って SSH (Secure Shell) 接続をすることになると思います。
この際、Linux の初期設定では、root 権限でサーバにログインできてしまうようになっていると思います。
root 権限で SSH 接続ができてしまうと、万が一、第三者にパスワードが推測されてしまうと、サーバ内を自由に改変できてしまうことになり、セキュリティ上問題があります。
そこで、root 権限ではログインができないようにする方法についてまとめておきます。
root 権限で SSH 接続ができなくても、サーバ会社の管理画面からコンソールを起動することで root 権限でログインができるため、特に問題はないと思います。
なお、事前に、サーバのコンソールで、SSH ログイン用のユーザ(root 以外のユーザ)を作成しておく必要があります。

手順

① サーバ(VPS)のコンソールを起動し、ssh のディレクトリに移動します。
# cd /etc/ssh/
# ls -al

② sshd_config のバックアップを取り、編集モードにします。
# cp sshd_config sshd_config.backup
# vi sshd_config

③ sshd_config 内で Port 22 となっている行を探し、以下を参考に書き換えます。
Port 22          (修正前)
Port 2343         (修正後 数値は例ですので変えてください)

④ PermitRootLogin の行について、冒頭の # を削除し、yes を no に書き換えます。
#PermitRootLogin yes     (修正前)
PermitRootLogin no         (修正後)
[esc] -> :wq [enter] で保存

⑤ 編集後のファイルのチェックをして、再起動します。
# sshd -t
# systemctl restart sshd

⑥ ローカル PC から、②のポート番号で一般ユーザ権限で SSH 接続を試みてください。
また、root 権限でも SSH 接続を試みてください。
一般ユーザ権限で接続でき、root 権限で接続できないことを確認できたら、完了です。

まとめ

ポート番号を変更し、root 権限でのログインを禁止する設定はこれで完了です。
SSH 接続もセキュリティを強化しておきましょう。
設定が終わったら、下記あたりでアクセスログを確認しておくことをお勧めします。危険さがわかる(Web サーバに SSH で自動ログインを試みる人々が相当数いる)と思います。

関連リンク
・ Web サーバのアクセスログの確認方法 【Linux】
・ WordPress 公開時に必ずやること【Linux】

タイトルとURLをコピーしました