25.4. sshd RHEL システムロールを使用して SSH サーバー上のシステム全体の暗号化ポリシーをオーバーライドする
デフォルトの暗号化設定が特定のセキュリティーまたは互換性のニーズに合わない場合は、sshd RHEL システムロールを使用して、OpenSSH サーバー上のシステム全体の暗号化ポリシーをオーバーライドすることができます。特に次のような主な状況では、オーバーライドすることを推奨します。
- 古いクライアントとの互換性: デフォルトよりも弱い暗号化アルゴリズム、鍵交換プロトコル、または暗号を使用する必要がある場合。
- より強力なセキュリティーポリシーの適用: 同時に、より弱いアルゴリズムを無効にすることもできます。このような対策は、特に高度にセキュアで規制された環境では、デフォルトのシステム暗号化ポリシーの範囲を超えたものになることがあります。
- パフォーマンスに関する考慮事項: システムのデフォルト設定により適用される強力なアルゴリズムにより、一部のシステムでは計算負荷が大きくなる可能性があります。
- 特定のセキュリティーニーズに合わせたカスタマイズ: デフォルトの暗号化ポリシーでは対応できない固有の要件に合わせる場合。
sshd RHEL システムロールで、暗号化ポリシーのすべての要素をオーバーライドすることはできません。たとえば、SHA1 署名は別のレイヤーでは禁止されている可能性があります。より一般的な解決策については、RHEL システムロールを使用してカスタム暗号化ポリシーを設定する を参照してください。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml) を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプル Playbook で指定されている設定は次のとおりです。
sshd_KexAlgorithms-
たとえば、
ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、diffie-hellman-group14-sha1、またはdiffie-hellman-group-exchange-sha256などの鍵交換アルゴリズムを選択できます。 sshd_Ciphers-
たとえば、
aes128-ctr、aes192-ctr、またはaes256-ctrなどの暗号を選択できます。 sshd_MACs-
たとえば、
hmac-sha2-256、hmac-sha2-512、またはhmac-sha1などの MAC を選択できます。 sshd_HostKeyAlgorithms-
ecdsa-sha2-nistp256、ecdsa-sha2-nistp384、ecdsa-sha2-nistp521、ssh-rsaなどの公開鍵アルゴリズムを選択できます。
Playbook で使用されるすべての変数の詳細は、コントロールノード上の
/usr/share/ansible/roles/rhel-system-roles.sshd/README.mdファイルを参照してください。RHEL 9 管理対象ノードでは、システムロールによって設定が
/etc/ssh/sshd_config.d/00-ansible_system_role.confファイルに書き込まれ、暗号化オプションが自動的に適用されます。sshd_config_file変数を使用してファイルを変更できます。ただし、設定を確実に有効にするために、設定された暗号化ポリシーが含まれる/etc/ssh/sshd_config.d/50-redhat.confファイルよりも辞書式順序で前に来るようなファイル名を使用してください。RHEL 8 管理対象ノードでは、
sshd_sysconfig_override_crypto_policy変数とsshd_sysconfig変数をtrueに設定してオーバーライドを有効にする必要があります。Playbook の構文を検証します。
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
詳細なログを表示する SSH 接続を使用して手順が成功したかどうかを検証し、定義した変数を以下の出力で確認できます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow