willshersystems.sshd
OpenSSHサーバー
この役割はOpenSSHデーモンを設定します。具体的には:
- デフォルトでSSHデーモンをOSの通常の設定で設定します。
- 様々な
UN*Xディストリビューションで動作します。 - 辞書またはシンプルな変数で設定できます。
- Matchセットをサポートします。
- すべての
sshd_configオプションをサポートします。テンプレートはプログラムで生成されます。 (meta/make_option_listsを参照) - sshdの再読み込み前に
sshd_configをテストします。
警告 この役割の設定ミスは、サーバーからのアクセスを失う可能性があります! 本番環境で使用する前に、設定とユーザーの構成との相互作用をテストしてください。
警告 Digital Oceanでは、DebianおよびUbuntu上でパスワードを使ってrootアクセスが許可されています。これはこのモジュールのデフォルト設定ではありません - PermitRootLogin without-passwordが設定され、SSHキーでのアクセスは許可されますが、単純なパスワードでのアクセスは許可されません。この機能が必要な場合は、対象ホストでsshd_PermitRootLogin yesを設定してください。
要件
テスト済みのディストリビューション:
- Ubuntu precise, trusty, xenial, bionic, focal, jammy, noble
- Debian wheezy, jessie, stretch, buster, bullseye, bookworm
- EL 6, 7, 8, 9, 10ベースのディストリビューション
- すべてのFedora
- 最新のAlpine
- FreeBSD 10.1
- OpenBSD 6.0
- AIX 7.1, 7.2
- OpenWrt 21.03
他のディストリビューションでも動作する可能性が高く、適切なvars/ファイルを通じたサポートも歓迎します。
オプション要件
ファイアウォールやSELinuxの高度な機能を使用する場合、カスタムポートが使用される際に便利です。この役割には、meta/collection-requirements.ymlで指定された追加のコレクションが必要です。これらは自動的にはインストールされません。
rpm-ostreeシステムを管理する場合、追加のコレクションが必要です。
次のようにインストールしてください:
ansible-galaxy install -vv -r meta/collection-requirements.yml
詳細は以下のsshd_manage_firewallおよびsshd_manage_selinuxオプション、rpm-ostreeセクションを参照してください。この追加機能はRed Hat系Linuxでのみサポートされています。
役割の変数
主な役割の変数
未設定の場合、この役割はOSデフォルトに一致するsshd_configを提供し、コメントを除いて異なる順序で出力されます。
sshd_enable
falseに設定すると、役割は完全に無効になります。デフォルトはtrueです。
sshd_skip_defaults
trueに設定すると、デフォルト値は適用されません。この場合、sshd辞書またはsshd_Key変数で完全な設定が必要です。デフォルトはfalseですが、sshd_config_namespaceが設定されるか、sshd_config_fileがドロップインディレクトリを指す場合は無視されます。
sshd_manage_service
falseに設定すると、サービス/デーモンは管理されません。つまり、ブート時に有効にしたり、サービスを開始したり、リロードしたりしません。デフォルトはtrueで、次の条件ではfalseになります:Dockerコンテナ内で実行中(Ansibleがビルドフェーズ中に使用されると仮定)またはAIX(Ansibleのserviceモジュールは現在AIXのためにenabledをサポートしていません)。
sshd_allow_reload
falseに設定すると、変更時にsshdのリロードは行われません。これによりトラブルシューティングが容易になります。変更された設定を適用するには、手動でsshdをリロードする必要があります。デフォルトはsshd_manage_serviceと同じ値です。
(AIXでは、sshd_manage_serviceはデフォルトでfalseですが、sshd_allow_reloadはデフォルトでtrueです。)
sshd_install_service
trueに設定すると、役割はsshサービスのサービスファイルをインストールします。デフォルトはfalseです。
使用されるサービスファイルのテンプレートは以下の変数で指定されています:
sshd_service_template_service(デフォルト:templates/sshd.service.j2)sshd_service_template_at_service(デフォルト:templates/[email protected])sshd_service_template_socket(デフォルト:templates/sshd.socket.j2)
これらの変数を使用して、独自のカスタムテンプレートを使用できます。デフォルトのテンプレートでは、インストールされたsshサービスの名前はsshd_service変数で提供されます。
sshd_manage_firewall
trueに設定すると、SSHポートがファイアウォールで開かれます。これはRed Hat系のOSでのみ機能します。デフォルトはfalseです。
注意:sshd_manage_firewallはポートの追加に制限されています。ポートの削除には直接ファイアウォールシステム役割を使用する必要があります。
sshd_manage_selinux
trueに設定すると、SELinuxが指定されたSSHポートでsshdがリッスンできるように設定されます。これはRed Hat系のOSでのみ機能します。デフォルトはfalseです。
注意:sshd_manage_selinuxはポリシーの追加に制限されています。ポリシーの削除には直接SELinuxシステム役割を使用する必要があります。
(以下、内容省略)
SSH証明書認証の設定
SSHサーバーでSSH証明書認証を設定するには、クライアント証明書を検証するために使用される信頼されたユーザーCAキーを少なくとも提供する必要があります。これはsshd_trusted_user_ca_keys_list変数で行います。
認証されたプリンシパルの一部をシステムユーザーにマップする必要がある場合、sshd_principals変数を使用して設定できます。
追加変数
sshd_trusted_user_ca_keys_list
信頼されたユーザーCAの公開鍵のリスト(必須)。
sshd_trustedusercakeys_directory_owner, shsd_trustedusercakeys_directory_group, sshd_trustedusercakeys_directory_mode
信頼されたユーザーCAキーのディレクトリの所有権と権限を設定するための変数。デフォルトはそれぞれroot、root、0755です。
sshd_trustedusercakeys_file_owner, shsd_trustedusercakeys_file_group, sshd_trustedusercakeys_file_mode
信頼されたユーザーCAキーのファイルの所有権と権限を設定するための変数。デフォルトはそれぞれroot、root、0640です。
(以下、内容省略)
依存関係
なし
テストには、FIPSモードをエミュレートするためにansible.posixコレクションが必要です。
例のプレイブック
危険! これは、この役割の設定範囲を示す例です。これを実行すると、サーバーへのSSHアクセスが壊れる可能性があります!
(以下、省略)
ライセンス
LGPLv3
作成者
Matt Willsher matt@willsher.systems
© 2014,2015 Willsher Systems Ltd.
Jakub Jelen jjelen@redhat.com
© 2020 - 2024 Red Hat, Inc.
OpenSSH SSH daemon configuration
ansible-galaxy install willshersystems.sshd