概要
CentOS7でSSHを使用するにあたり、最低限必要なセキュリティ設定の内容を記述します。(学習ログ)
その中でも今回はsshd_config
の設定内容を中心に記述します。
※ローカルマシンはmacOSを使用しています。
他記事に関して
【CentOS7】SSH公開鍵認証設定/鍵生成〜サーバーへの転送
【CentOS7】SSHのセキュリティ設定/firewall
ssh_config設定
sshd_config
ファイルは/etc/ssh/
に存在しています。
まずはバックアップとっておこう
必要ですね。
実際にさくらVPSお試しで使って勉強してましたが、一回設定ミスった時に役立ちました。
デフォルトで/etc/ssh/sshd_config_orig
のバックアップファイルが用意されていましたが、それとは別にetc/ssh/sshd_config_org
を用意しておきます(作成する癖をつけるためにも)
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
ポート番号の変更
sshdのポート番号を22番(デフォルト)から、「49152」に変更します。
(注) ポート番号を指定する際は、エフェメラルポート番号(49152~65535) から指定するようにしてください。
エフェメラルポート 【ephemeral ports】 ダイナミックポート
sudo vim /etc/ssh/sshd_config
vimでsshd_config
を開いたのち、「Port」と検索すると修正箇所がヒットすると思うので、以下のように修正してください。
# 修正前
#Port 22
# 修正後
Port 22
Port 49152
(注) 上記設定では、デフォルトのポート番号を残しています。理由として、ポート番号を変更後にfirewallの設定まで終了させないと、22番ポートでのサーバーログインができなくなってしまうからです。
そのままログアウトせずにfirewallの設定まで終わらせるという方は、ここで22番を削除してしまってもいいのですが、保険のためfirewallの設定完了後に削除するというテイで進めていきます。
firewallの設定に関する記事は以下にまとめています。
【CentOS7】SSHのセキュリティ設定/firewall
パスワードログインの禁止
「PasswordAuthentication」と検索すると修正箇所がヒットすると思うので、以下のように修正してください。
# 修正前
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes
# 修正後
#PasswordAuthentication yes
PermitEmptyPasswords no ←空白パスワードの禁止
PasswordAuthentication no ←パスワードログインの禁止
rootログインの禁止
「PermitRootLogin」と検索すると修正箇所がヒットすると思うので、以下のように修正してください。
# 修正前
#PermitRootLogin yes
# 修正後
PermitRootLogin no
sshd_configの構文チェック
これまでの編集が完了したら、vimを終了させます。
エスケープキーを押した後、保存して閉じてください :wq
vim終了後、以下のコマンドで修正後の構文に間違いがないか確認できます。
sudo sshd -t
特にエラーが出なければOK
もしエラーが出てしまった場合は、バックアップファイルを適用させて最初からやり直してみてください。
設定反映
sshd_configの編集は完了しましたが、設定の反映がまだなので、以下のコマンドを実行して設定を反映させます。
sudo systemctl restart sshd
以上になります。お疲れ様でした。
補足
ssh_config設定>ポート番号の変更 にて、デフォルトのポート番号(22)を削除した方は、ここでログアウトしてしまうと、サーバーへのログインができなくなってしまいます。
firewallの設定がまだの方は、ログアウトせずにfirewallの設定に続いてください。
【CentOS7】SSHのセキュリティ設定/firewall
関連記事
【CentOS7】SSH公開鍵認証設定/鍵生成〜サーバーへの転送
【CentOS7】SSHのセキュリティ設定/firewall