silverlogic.sshd

OpenSSHサーバー

ビルドステータス Ansible Galaxy

この役割はOpenSSHデーモンを設定します。以下のことができます:

  • デフォルトでは、通常のOSの設定でSSHデーモンを構成します。
  • 様々なUN*X系のディストリビューションで動作します。
  • 辞書または単純な変数で構成できます。
  • Matchセットをサポートします。
  • すべてのsshd_configオプションをサポートします。テンプレートはプログラムで生成されます。 (詳しくはmeta/make_option_listを参照してください)
  • sshdを再読み込みする前にsshd_configをテストします。

警告 この役割の誤設定は、サーバーからロックアウトされる可能性があります! 本番環境で使用する前に、あなたの設定とユーザーの設定との相互作用をテストしてください。

警告 Digital Oceanでは、DebianとUbuntuでSSHによるパスワードを使ったrootログインが許可されています。これはこのモジュールによって設定されるデフォルトではありません - PermitRootLogin without-passwordを設定し、SSHキーによるアクセスは可能ですが、単純なパスワードによるアクセスはできません。この機能が必要な場合は、そのホストに対してssh_PermitRootLogin yesを設定してください。

要件

テスト済みの環境:

  • Ubuntu precise, trusty
  • Debian wheezy, jessie
  • FreeBSD 10.1
  • EL 6,7派生ディストリビューション
  • Fedora 22, 23
  • OpenBSD 6.0

他のフレーバーでも動作する可能性があり、適切なvars/ファイルによるさらなるサポートが歓迎されます。

役割の変数

設定しない場合、この役割はOSのデフォルトに合致したsshd_configを提供しますが、コメントや順序が異なります。

  • sshd_skip_defaults

Trueに設定すると、デフォルト値を適用しません。つまり、sshd辞書またはsshd_Key変数を使用して完全な設定デフォルトを持っている必要があります。デフォルトはFalseです。

  • sshd_manage_service

Falseに設定すると、サービス/デーモンにはまったく手を触れません。つまり、ブート時に有効にしたり、サービスを開始または再読み込みしようとしません。デフォルトはTrueですが、Dockerコンテナ内で実行している場合は異なります(ビルドフェーズ中にansibleが使用されると想定されています)。

  • sshd_allow_reload

Falseに設定すると、変更時にsshdが再読み込みされません。これはトラブルシューティングに役立ちます。変更された設定を適用したい場合は、手動でsshdを再読み込みする必要があります。デフォルトはsshd_manage_serviceと同じ値です。

  • sshd_authorized_principals_file

認証済みのプリンシパルファイルが保存されるパス。sshd_authorized_principalsも設定されている場合のみ使用されます。 あなたのsshd_AuthorizedPrincipalsFile設定を設定するために使用することができます。例:sshd_AuthorizedPrincipalsFile: '{{ sshd_authorized_principals_file }}'

  • sshd_authorized_principals

どのプリンシパルがどのユーザーでログインできるかを指定するリストの辞書。辞書の各キーはユーザーの名前です。そのユーザーでログインが許可されているプリンシパルのリストが辞書の値です。例:

sshd_authorized_principals:
  root:
    - root-everywhere
    - bobby
    - ryan
  • sshd_trusted_user_ca_keys_file

信頼されたユーザーCAキーのファイルが保存されるパス。sshd_trusted_user_ca_keysも設定されている場合のみ使用されます。 あなたのsshd_TrustedUserCAKeys設定を設定するために使用することができます。例:sshd_TrustedUserCAKeys: '{{ sshd_trusted_user_ca_keys }}'

  • sshd_trusted_user_ca_keys

信頼するCAの公開鍵のリストです。

  • sshd

構成を含む辞書。例:

sshd:
  Compression: delayed
  ListenAddress:
    - 0.0.0.0
  • ssh_...

辞書の代わりに単純な変数を使用できます。単純な値は辞書の値を上書きします。例:

sshd_Compression: off

すべての場合において、ブール値はsshd構成で「yes」と「no」として正しくレンダリングされます。 リストはマルチラインの設定項目に使用できます。例:

sshd_ListenAddress:
  - 0.0.0.0
  - '::'

レンダリング結果は以下のようになります:

ListenAddress 0.0.0.0
ListenAddress ::
  • sshd_match

マッチセクション用の辞書のリスト。例のプレイブックを参照してください。

  • sshd_match_1からsshd_match_9まで

マッチセクション用の辞書のリストまたは辞書。

依存関係

なし

例のプレイブック

危険! この例は、この役割が提供する設定の範囲を示すためのものです。実行すると、サーバーへのSSHアクセスが失われる可能性があります!

---
- hosts: all
  vars:
    sshd_skip_defaults: true
    sshd:
      Compression: true
      ListenAddress:
        - "0.0.0.0"
        - "::"
      GSSAPIAuthentication: no
      Match:
        - Condition: "Group user"
          GSSAPIAuthentication: yes
    sshd_UsePrivilegeSeparation: no
    sshd_match:
        - Condition: "Group xusers"
          X11Forwarding: yes
  roles:
    - role: willshersystems.sshd

結果は次のようになります:

# Ansible管理:...
Compression yes
GSSAPIAuthentication no
UsePrivilegeSeparation no
Match Group user
  GSSAPIAuthentication yes
Match Group xusers
  X11Forwarding yes

テンプレート生成

sshd_config.j2テンプレートは、meta内のスクリプトによってプログラム生成されます。新しいオプションはoptions_bodyまたはoptions_matchに追加する必要があります。

テンプレートを再生成するには、meta/ディレクトリ内から次のコマンドを実行します: ./make_option_list >../templates/sshd_config.j2

ライセンス

LGPLv3

著者

Matt Willsher matt@willsher.systems

© 2014,2015 Willsher Systems Ltd.

インストール
ansible-galaxy install silverlogic.sshd
ライセンス
lgpl-3.0
ダウンロード
11.1k
所有者