1.5. OpenSSH のセキュリティーの強化
より強力な鍵を実装したり、ユーザーアクセスを制限したりするなど、OpenSSH の設定を変更して、システムのセキュリティーを強化します。これにより、さまざまな攻撃からサーバーを保護できます。
SSH を真に効果的に活用するには、安全性の低い接続プロトコルの使用を避け、OpenSSH スイートに置き換える必要があります。そうでなければ、ユーザーのパスワードは SSH によって 1 回のセッションの間だけ保護され、その後 Telnet 経由でログインした際に盗み取られてしまう可能性がある。
また、認証にパスワードを使用せず、鍵ペアのみを許可することで、攻撃対象領域を縮小できます。詳細は、OpenSSH サーバーで鍵ベースの認証を唯一の方法として設定する セクションを参照してください。
RHEL 10 では、PermitRootLogin オプションはデフォルトで prohibit-password に設定されています。これにより、root ユーザーとしてログインする際にパスワードではなく鍵認証が強制され、ブルートフォース攻撃を防ぐことでリスクが軽減されます。
root ユーザーとしてのログインを許可することは、セキュアな方法ではありません。どのユーザーがどの特権コマンドを実行したかを管理者が監査できなくなるためです。管理コマンドを使用するには、ログインして、代わりに sudo を使用します。
1.5.1. より強力な SSH キータイプの作成と適用 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーとパフォーマンスの面で従来のアルゴリズムよりも優れている ECDSA または Ed25519 キーのみを生成してください。OpenSSH サーバーを設定して、RSA ホストキーの自動生成を無効にし、より強力なキータイプの使用を強制することもできます。
-t オプションを使用すると、ssh-keygen コマンドに楕円曲線 Digital Signature Algorithm (ECDSA) またはエドワーズ曲線 25519 (Ed25519) の鍵を生成するように指示できます。ECDSA は、同等の対称鍵強度において RSA よりも優れたパフォーマンスを実現します。また、より短い鍵を生成します。Ed25519 公開鍵アルゴリズムは、RSA、DSA、ECDSA よりもセキュアで高速な Twisted Edwards 曲線の実装です。
Ed25519 アルゴリズムは FIPS-140 に準拠しておらず、FIPS モードでは OpenSSH は Ed25519 鍵で機能しません。
前提条件
-
openssh-serverパッケージはシステムにインストールされています。
手順
RHEL でホストの鍵の作成を設定するには、インスタンス化したサービス
sshd-keygen@.serviceを使用します。たとえば、RSA 鍵タイプの自動作成を無効にするには、次のコマンドを実行します。# systemctl mask sshd-keygen@rsa.service注記cloud-init方式が有効になっているイメージでは、ssh-keygenユニットが自動的に無効になります。これは、ssh-keygen templateサービスがcloud-initツールに干渉し、ホストキーの生成で問題が発生する可能性があるためです。これらの問題を回避するために、etc/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.confというドロップイン設定ファイルは、cloud-initが実行されている場合にssh-keygenユニットを無効にします。OpenSSH は、RSA、ECDSA、および Ed25519 のサーバーホストキーが存在しない場合、自動的に作成するため、セキュリティーの低い暗号化方式のキーは削除してください。
# rm -f /etc/ssh/ssh_host_rsa_keySSH 接続に特定のキータイプのみを許可するには、
/etc/ssh/sshd_config内の該当行の先頭にあるコメントアウトを削除します。たとえば、Ed25519 ホスト鍵のみを許可する場合、対応する行は次のようになります。# HostKey /etc/ssh/ssh_host_rsa_key # HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_keysshdサービスを再起動します。# systemctl restart sshd
検証
-
-tオプションを付けずにssh-keygenコマンドを実行し、その出力に RSA キーが含まれていないことを確認してください。 - ECDSA および Ed25519 キーのみを強制的に使用させるサーバー上で、SSH RSA キーを使用してログインを試みる。サーバーは接続を拒否するべきです。