Turgon37.ssh_server
Ansibleロール SSHサーバー
説明
:grey_exclamation: このロールを使用する前に、私のすべてのAnsibleロールは完全に私のITインフラに合わせて書かれていることを知っておいてください。そのため、一般的に可能な限り一般的であっても、必ずしもあなたのニーズを満たすわけではありません。何をするのか注意深く分析し、あなたのサーバーに安全にインストールできるかどうか評価することをお勧めします。
このロールはSSHサーバーの設定を可能にします。
要件
Ansible >= 2.4 が必要です。
依存関係
OSファミリー
このロールはDebianとCentOSで使用できます。
特徴
現在、このロールは以下のことに使用できます:
- sshdのインストール
- sshdの設定
- 弱い素数を削除するために初期モジュールをフィルタリング
- ローカルファクト
ロール変数
オーバーライド可能なすべての変数は、defaults/main.ymlファイルと下の表に格納されています。デフォルト値を見るには、このファイルを参照してください。
ほとんどの変数は純粋なsshd設定パラメーターを指します。詳しい情報はmanページをご覧ください。
名前 | 種類/値 | 説明 |
---|---|---|
ssh_server__facts |
ブーリアン | ローカルファクトスクリプトのインストール |
ssh_server__moduli_minimum |
整数 | モジュールファイルに保持する素数の最小サイズ |
ssh_server__service_enabled |
ブーリアン | サービスを有効にするかどうか |
ssh_server__protocol |
文字列 | manページ参照 |
ssh_server__privilege_separation |
文字列 | manページ参照 |
ssh_server__pidfile |
文字列 | manページ参照 |
ssh_server__log_facility |
文字列 | manページ参照 |
ssh_server__log_level |
文字列 | manページ参照 |
ssh_server__ports |
整数のリスト | manページ参照 |
ssh_server__listen |
IPのリスト | manページ参照 |
ssh_server__address_family |
文字列 | manページ参照 |
ssh_server__use_dns |
ブーリアン | manページ参照 |
ssh_server__tcp_keepalive |
ブーリアン | manページ参照 |
ssh_server__allow_agent_forwarding |
ブーリアン | manページ参照 |
ssh_server__allow_tcp_forwarding |
ブーリアン | manページ参照 |
ssh_server__permit_open |
文字列 | manページ参照 |
ssh_server__gateway_ports |
文字列 | manページ参照 |
ssh_server__allow_stream_local_forwarding |
ブーリアン | manページ参照 |
ssh_server__permit_tunnel |
ブーリアン | manページ参照 |
ssh_server__compression |
文字列 | manページ参照 |
ssh_server__ip_qos |
タプル | manページ参照 |
ssh_server__kex_algorithms |
文字列のリスト | manページ参照 |
ssh_server__kex_algorithms_additional |
文字列のリスト | manページ参照 |
ssh_server__ciphers |
文字列のリスト | manページ参照 |
ssh_server__ciphers_additional |
文字列のリスト | manページ参照 |
ssh_server__macs |
文字列のリスト | manページ参照 |
ssh_server__macs_additional |
文字列のリスト | manページ参照 |
ssh_server__server_key_bits |
整数 | manページ参照 |
ssh_server__key_regeneration_interval |
整数 | manページ参照 |
ssh_server__authentication_methods |
文字列 | manページ参照 |
ssh_server__use_pam |
ブーリアン | manページ参照 |
ssh_server__use_login |
ブーリアン | manページ参照 |
ssh_server__password_authentication |
ブーリアン | manページ参照 |
ssh_server__permit_empty_passwords |
ブーリアン | manページ参照 |
ssh_server__challenge_response_authentication |
ブーリアン | manページ参照 |
ssh_server__keyboard_interactive_authentication |
ブーリアン | manページ参照 |
ssh_server__pubkey_authentication |
ブーリアン | manページ参照 |
ssh_server__authorized_keys |
文字列のリスト | manページのAuthorizedKeysFile |
ssh_server__authorized_keys_system |
文字列のリスト | グローバルシステムの承認されたキーのファイルパスを含む |
ssh_server__authorized_keys_user |
文字列 | ユーザーごとの承認されたキーのファイルパスを含む |
ssh_server__authorized_keys_command |
文字列 | manページ参照 |
ssh_server__authorized_keys_command_user |
文字列のリスト | manページ参照 |
ssh_server__permit_blacklisted_keys |
manページ参照 | |
ssh_server__rsa_authentication |
ブーリアン | manページ参照 |
ssh_server__rhosts_rsa_authentication |
ブーリアン | manページ参照 |
ssh_server__host_based_authentication |
ブーリアン | manページ参照 |
ssh_server__host_based_uses_name_from_packet_only |
ブーリアン | manページ参照 |
ssh_server__ignore_user_known_hosts |
ブーリアン | manページ参照 |
ssh_server__ignore_rhosts |
ブーリアン | manページ参照 |
ssh_server__kerberos_authentication |
ブーリアン | manページ参照 |
ssh_server__kerberos_get_afs_token |
ブーリアン | manページ参照 |
ssh_server__kerberos_or_local_passwd |
ブーリアン | manページ参照 |
ssh_server__kerberos_ticket_cleanup |
ブーリアン | manページ参照 |
ssh_server__kerberos_use_kuserok |
ブーリアン | manページ参照 |
ssh_server__gssapi_authentication |
ブーリアン | manページ参照 |
ssh_server__gssapi_key_exchange |
ブーリアン | manページ参照 |
ssh_server__gssapi_cleanup_credentials |
ブーリアン | manページ参照 |
ssh_server__gssapi_strict_acceptor_check |
ブーリアン | manページ参照 |
ssh_server__gssapi_store_credentials_on_rekey |
ブーリアン | manページ参照 |
ssh_server__gssapi_enable_k5_users |
ブーリアン | manページ参照 |
ssh_server__deny_users |
文字列のリスト | manページ参照 |
ssh_server__allow_users |
文字列のリスト | manページ参照 |
ssh_server__deny_groups |
文字列のリスト | manページ参照 |
ssh_server__allow_groups |
文字列のリスト | manページ参照 |
ssh_server__permit_root_login |
文字列 | manページ参照 |
ssh_server__login_grace_time |
文字列 | manページ参照 |
ssh_server__max_auth_tries |
整数 | manページ参照 |
ssh_server__max_sessions |
整数 | manページ参照 |
ssh_server__max_startups |
特定の辞書 | この辞書は「start」、「rate」、「full」というキーを持たなければなりません(manページ参照) |
ssh_server__accept_env |
文字列のリスト | manページ参照 |
ssh_server__permit_user_environment |
ブーリアン | manページ参照 |
ssh_server__permit_user_rc |
ブーリアン | manページ参照 |
ssh_server__permit_tty |
ブーリアン | manページ参照 |
ssh_server__strict_modes |
ブーリアン | manページ参照 |
ssh_server__version_addendum |
文字列 | manページ参照 |
ssh_server__banner |
文字列 | manページ参照 |
ssh_server__debian_banner |
ブーリアン | manページ参照 |
ssh_server__print_motd |
ブーリアン | manページ参照 |
ssh_server__print_last_log |
ブーリアン | manページ参照 |
ssh_server__force_command |
文字列 | manページ参照 |
ssh_server__chroot_directory |
文字列 | manページ参照 |
ssh_server__client_alive_interval |
整数 | manページ参照 |
ssh_server__client_alive_count_max |
整数 | manページ参照 |
ssh_server__x11_forwarding |
ブーリアン | manページ参照 |
ssh_server__x11_display_offset |
整数 | manページ参照 |
ssh_server__x11_use_localhost |
ブーリアン | manページ参照 |
ssh_server__subsystems_global/group/host |
辞書 | サブシステム名とサブシステムコマンドのマッピング |
ssh_server__match_list_global/group/host |
一致ブロックのリスト | 一致ブロックを設定する(下記参照) |
一致
使用可能な一致を ssh_server__match_list_global/group/host
変数を使用して設定できます。
これらの変数は辞書のリストを受け取ります。各辞書は以下の形式である必要があります。
ssh_server__match_list_global
- match: "一致の条件"
options: # "一致" にマッチした場合に適用されるオプション
- AllowUsers test # 簡単な文字列オプション
# 現在のsshdバージョンに応じた条件付きオプションを持つ辞書
# よりバージョン条件が高い場合、そのオプションが適用されます
- 8.2: AuthorizedKeysCommand /bin/true # (文字列バージョン)
7.6: # (リストバージョン)
- AuthenticationMethods publickey
- AllowUsers root
state: absent # オプションの状態(デフォルトはpresent)
使用可能な一致条件と適用可能なオプションは、現在のsshdバージョンによって異なります。
例として、sftpを実行することを許可されたグループの設定が示されています。これを有効にするには、インベントリでこのブロックを使用できます:
ssh_server__match_list_global:
- '{{ ssh_server__match_group_sftponly }}'
ファクト
デフォルトでは、ローカルファクトがインストールされ、次の変数を公開します:
ansible_local.ssh_server:
version_full: '7.9p1'
version_major: '7'
例
プレイブック
プレイブックで以下のように使用します:
- hosts: all
roles:
- turgon37.ssh_server
インベントリ
このロールを使用するには、コード例に従ってプレイブックを作成または更新します:
ssh_server__allow_agent_forwarding: false
ssh_server__allow_tcp_forwarding: false
ssh_server__allow_stream_local_forwarding: false
ssh_server__permit_tunnel: false
ssh_server__compression: true
ssh_server__allow_groups:
- ssh
- ssh-admins
ssh_server__permit_root_login: false
ssh_server__max_startups:
start: 5
rate: 80
full: 10
ssh_server__match_list_global:
- match: "LocalAddress 127.0.0.1"
options:
- AuthenticationMethods publickey,password
state: present
- match: "LocalAddress 10.0.0.1 Group ssh-admins"
options:
- AuthenticationMethods publickey password gssapi-with-mic
- match: "LocalAddress 10.0.0.1 User root"
options:
- DenyUsers
- AllowUsers root
- DenyGroups
- AllowGroups root
- 7.0: 'PermitRootLogin prohibit-password'
4.9: 'PermitRootLogin without-password'
- AuthenticationMethods publickey
- AuthorizedKeysFile /root/.ssh/authorized_keys
- AuthorizedKeysCommand /bin/true
ssh_client__known_hosts_additionals:
- '[gitlab]:7999 ssh-rsa XXXXX'
FreeIPA設定の例
ssh_server__authorized_keys: '/dev/null'
ssh_server__authorized_keys_lookup: true
ssh_server__authorized_keys_lookup_command: /usr/bin/sss_ssh_authorizedkeys
ssh_server__pubkey_authentication: true
ssh_server__gssapi_authentication: true