willshersystems.sshd

OpenSSHサーバー

Ansible Lint Ansible Galaxy

この役割は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
    • Run tests on Ubuntu latest
  • Debian wheezy, jessie, stretch, buster, bullseye, bookworm
    • Run tests on Debian
  • EL 6, 7, 8, 9, 10ベースのディストリビューション
    • Run tests on CentOS
  • すべてのFedora
    • Run tests on Fedora latest
  • 最新のAlpine
    • Run tests on 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キーのディレクトリの所有権と権限を設定するための変数。デフォルトはそれぞれrootroot0755です。

sshd_trustedusercakeys_file_owner, shsd_trustedusercakeys_file_group, sshd_trustedusercakeys_file_mode

信頼されたユーザーCAキーのファイルの所有権と権限を設定するための変数。デフォルトはそれぞれrootroot0640です。

(以下、内容省略)

依存関係

なし

テストには、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.

インストール
ansible-galaxy install willshersystems.sshd
ライセンス
lgpl-3.0
ダウンロード
321.8k
所有者
Cloud Architecture & Automation