前回までの記事でVPSにSSHでログインすることができました。ただしこのままでは管理者権限を持つrootユーザーでログインすることができ、万が一パスワードの流失などで悪意のある第三者がログインする可能性も考えられます。管理者権限では全ての設定などができるため、様々なセキュリティ対策が必要になります。
そこでまずはrootユーザーでのログインを禁止する設定にしていきます。管理者であるrootユーザーへは作業用一般ユーザーでのログインを経て作業を行う形になります。
1. sshd_configの編集
1-1. まずはrootユーザーでサーバーにログインします。その後、下記コマンドでSSHに関する設定フォルダまで移動し、「sshd_config」というファイルをバックアップしておきます。
$ ssh root@[HOSTNAME] // rootユーザーでSSHログイン # cd /etc/ssh # cp sshd_config sshd_config.copy
1-2. 「sshd_config」ファイルをvimエディタで編集します。下記コマンドを入力すると「sshd_config」ファイルがvimエディタで開かれます。
# vim sshd_config
1-3. vimエディタで開いてすぐでは「ノーマルモード」と呼ばれ編集ができない状態になっています。「i」キーで編集ができる「インサートモード」に切り替えて、中ほどにある下記の項目を次のように変更します。
#PermitRootLogin yes (変更前) ↓ PermitRootLogin no (変更後)
1-4. インサートモードからは「esc」キーでノーマルモードに戻るので、下記コマンドを入力して編集内容を保存しエディタを終了します。
:wq
2. SSHサーバーを再起動して適用させる
2-1. 「sshd_config」ファイルを変更したら、下記コマンドでSSHサーバーを再起動させて変更を反映させます。
# systemctl restart sshd.service
2-2. ログアウトしてrootユーザーでログインできないようになっているかを確認します。
これでrootユーザーで直接サーバーへのログインができないようになりました。作業用一般ユーザーでログインしてからrootユーザーに切り替える際にもパスワードを入力するのでセキュリティが高まりました。しかし、これだけではまだ脆弱性があるので次回も引き続きセキュリティのための設定を行なっていきます。
(参考)
ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!」
[shortcodefile file=’shortcode-developmentlab-001′]