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