第12章 ssh システムロールを使用した安全な通信の設定
管理者は、sshd
システムロールを使用して SSH サーバーを設定し、ssh
システムロールを使用し、Ansible Core パッケージを使用して同時に任意の数の RHEL システムで SSH クライアントを一貫して設定できます。
12.1. ssh
Server のシステムロール変数
sshd
システムロール Playbook では、設定と制限に応じて、SSH 設定ファイルのパラメーターを定義できます。
これらの変数が設定されていない場合には、システムロールは RHEL のデフォルト値と同じ sshd_config
ファイルを作成します。
どのような場合でも、ブール値は sshd
設定で適切に yes
と no
としてレンダリングされます。一覧を使用して複数行の設定項目を定義できます。以下に例を示します。
sshd_ListenAddress: - 0.0.0.0 - '::'
レンダリングは以下のようになります。
ListenAddress 0.0.0.0 ListenAddress ::
sshd
システムロールの変数
sshd_enable
-
False
に設定すると、ロールは完全に無効になります。デフォルトはTrue
です。 sshd_skip_defaults
-
True
に設定すると、システムロールではデフォルト値が適用されません。代わりに、sshd
dict またはsshd_Key
変数のいずれかを使用して、設定のデフォルト値をすべて指定します。デフォルトはFalse
です。 sshd_manage_service
-
False
に設定すると、サービスは管理対象ではなくなるので、起動時に有効化されず、起動または再読み込みされません。Ansible サービスモジュールが現在 AIX でenabled
になっていないため、コンテナーまたは AIX 内で実行する時以外はデフォルトでTrue
に設定されます。 sshd_allow_reload
-
False
に設定すると、設定の変更後にsshd
は再読み込みされません。これはトラブルシューティングで役立ちます。変更した設定を適用するには、sshd
を手動で再読み込みします。AIX を除き、sshd_manage_service
と同じ値にデフォルト設定されます。ここで、sshd_manage_service
はデフォルトでFalse
に設定されますが、sshd_allow_reload
はデフォルトでTrue
に設定されます。 sshd_install_service
True
に設定すると、ロールはsshd
サービスのサービスファイルをインストールします。これにより、オペレーティングシステムで提供されるファイルが上書きされます。2 つ目のインスタンスを設定し、sshd_service
変数も変更しない限り、True
に設定しないでください。デフォルトはFalse
です。ロールは、以下の変数でテンプレートとして参照するファイルを使用します。
sshd_service_template_service (default: templates/sshd.service.j2) sshd_service_template_at_service (default: templates/sshd@.service.j2) sshd_service_template_socket (default: templates/sshd.socket.j2)
sshd_service
-
この変数により
sshd
サービス名が変更されます。これは、2 つ目のsshd
サービスインスタンスを設定するのに役立ちます。 sshd
設定が含まれる dict。以下に例を示します。
sshd: Compression: yes ListenAddress: - 0.0.0.0
sshd_OptionName
dict の代わりに、
sshd_
接頭辞とオプション名で設定される単純な変数を使用してオプションを定義できます。簡単な変数は、sshd
dict の値を上書きします。以下に例を示します。sshd_Compression: no
sshd_match
andsshd_match_1
tosshd_match_9
-
dict のリスト、または Match セクションの dict のみ。これらの変数は、
sshd
dict で定義されている一致するブロックを上書きしないことに注意してください。すべてのソースは作成された設定ファイルに反映されます。
sshd
システムロールのセカンダリー変数
これらの変数を使用して、サポートされている各プラットフォームに対応するデフォルトを上書きすることができます。
sshd_packages
- この変数を使用して、インストール済みパッケージのデフォルト一覧を上書きできます。
sshd_config_owner
、sshd_config_group
、sshd_config_mode
-
このロールは、これらの変数を使用して生成する
openssh
設定ファイルの所有権およびパーミッションを設定できます。 sshd_config_file
-
このロールが作成した
openssh
サーバー設定を保存するパス。 sshd_config_namespace
この変数のデフォルト値は null です。これは、ロールがシステムのデフォルトを含む設定ファイルの内容全体を定義することを意味します。または、この変数を使用して、他のロールから、またはドロップインディレクトリーをサポートしないシステムの 1 つの Playbook 内の複数の場所から、このロールを呼び出すことができます。
sshd_skip_defaults
変数は無視され、この場合、システムのデフォルトは使用されません。この変数が設定されている場合、ロールは指定された namespace の下の既存の設定ファイルの設定スニペットに指定する設定を配置します。シナリオにロールを複数回適用する必要がある場合は、アプリケーションごとに異なる namespace を選択する必要があります。
注記openssh
設定ファイルの制限は引き続き適用されます。たとえば、設定ファイルで指定した最初のオプションだけが、ほとんどの設定オプションで有効です。技術的には、ロールは他の一致ブロックが含まれていない限り、スニペットを "Match all" ブロックに配置し、既存の設定ファイル内の以前の一致ブロックに関係なく適用されるようにします。これにより、異なるロール呼び出しから競合しないオプションを設定できます。
sshd_binary
-
openssh
のsshd
実行可能ファイルへのパス。 sshd_service
-
sshd
サービスの名前。デフォルトでは、この変数には、ターゲットプラットフォームが使用するsshd
サービスの名前が含まれます。ロールがsshd_install_service
変数を使用する場合は、これを使用してカスタムのsshd
サービスの名前を設定することもできます。 sshd_verify_hostkeys
-
デフォルトは
auto
です。auto
に設定すると、生成された設定ファイルに存在するホストキーがすべて一覧表示され、存在しないパスが生成されます。また、パーミッションおよびファイルの所有者はデフォルト値に設定されます。これは、ロールがデプロイメント段階で使用され、サービスが最初の試行で起動できるようにする場合に便利です。このチェックを無効にするには、この変数を空のリスト[]
に設定します。 sshd_hostkey_owner
,sshd_hostkey_group
,sshd_hostkey_mode
-
これらの変数を使用して、
sshd_verify_hostkeys
からホストキーの所有権とパーミッションを設定します。 sshd_sysconfig
-
RHEL ベースのシステムでは、この変数は
sshd
サービスに関する追加情報を設定します。true
に設定すると、このロールは以下の設定に基づいて/etc/sysconfig/sshd
設定ファイルも管理します。デフォルトはfalse
です。 sshd_sysconfig_override_crypto_policy
-
RHEL では、
true
に設定すると、この変数はシステム全体の暗号化ポリシーを上書きします。デフォルトはfalse
です。 sshd_sysconfig_use_strong_rng
-
RHEL ベースのシステムでは、この変数により、
sshd
は、引数として指定されたバイト数を使用して、openssl
乱数ジェネレーターを強制的に再シードすることができます。デフォルトは0
で、この機能を無効にします。システムにハードウェア乱数ジェネレーターがない場合は、この機能を有効にしないでください。