SSHの良くあるセキュリティ設定

どうも、やまもとやまです。
SSH、使ってますか?
リモートログインでは定番のSSH(SSHD)ですが、OSインストール直後の初期設定では安全性が万全とは言えないところもあります。
というわけで、OSインストール後に良く設定する項目についてまとめてみましょう。

環境

AlmaLinux8で最小インストールした環境を想定しています。
RHEL系のディストリビューションであれば概ね同じように設定可能かと思います。

設定項目

各項目は、/etc/ssh/sshd_config で設定可能です。

rootログインを許可しない

デフォルト設定:PermitRootLogin yes

以下のいずれかで設定することをお勧めします。

PermitRootLogin no
PermitRootLogin without-password

前者は完全にrootログインを許可しない、後者はパスワード認証では許可しない(公開鍵認証は許可する)設定です。
完全に許可しない方が安全ではありますが、メンテナンス等を考えると、特定ホストやネットワークからは許可するという選択肢はありえます。

パスワード認証を許可しない

デフォルト設定:PasswordAuthentication yes

以下に設定します。
公開鍵認証のみ許可することで安全性を高めましょう。

PasswordAuthentication no

接続許可ユーザおよび接続元を指定

いくつか設定方法はありますが、許可ユーザが少なく、変更もない場合は以下で設定するのがシンプルです。

AllowUsers ユーザ名
AllowUsers ユーザ名@IPアドレス

この設定でrootでの接続は特定IPアドレスからのみに制限することも可能ですね。
また、そもそもSSHへの接続許可IPアドレスを制限したい場合は、firewalldでの制限も可能です。

接続ポート番号の変更

デフォルト設定:Port 22

待ち受けポート番号の変更です。
SSHは標準TCP22ポートを利用しますが、別ポートへ変更することで攻撃を受けづらくすることができます。
とはいえ、一定の効果はあると考えられますが、これは必須とまではいえないかもですね。
※管理や運用が煩雑になるデメリットもあります

というわけで

SSHの良くあるセキュリティ設定を見てみました。
細かく見ていけば他にも色々とありますが、今回はここまで。
あまりがちがちにしてしまうのは使いづらいですが、パスワード認証を禁止し、接続元を制限するだけでも最低限の効果(安全性)は得られるかと思います。
それではまた!