sshd

Ansible Роль: sshd

Ansible Galaxy Ansible Role

Описание

Эта роль предоставляет безопасные конфигурации для ssh-клиента и ssh-сервера. Она предназначена для соответствия DevSec SSH Baseline.
Роль является форком arillso.sshd.

Установка

ansible-galaxy collection install community.crypto
ansible-galaxy install skriptfabrik.sshd

Требования

Нет

Переменные роли

ssh_ipv6_enable

true, если нужен IPv6

ssh_ipv6_enable: '{{ network_ipv6_enable | default(false) }}' # sshd + ssh

ssh_server_enabled

true, если sshd должен быть запущен и включен

ssh_server_enabled: true # sshd

ssh_use_dns

true, если необходима разрешение DNS, по умолчанию false с 6.8, см. http://www.openssh.com/txt/release-6.8

ssh_use_dns: false # sshd

ssh_compression

true или значение, если нужна сжатие

ssh_compression: false # sshd

ssh_hardening

Для каких компонентов (клиент и сервер) генерировать конфигурацию. Может быть полезно при работе с клиентом без SSH-сервера.

ssh_client_hardening: true # ssh
ssh_server_hardening: true # sshd

ssh_client_password_login

Если true, разрешен вход по паролю

ssh_client_password_login: false # ssh
ssh_server_password_login: false # sshd

ssh_server_ports

Порты, на которых ssh-сервер должен слушать

ssh_server_ports: ['22'] # sshd

ssh_client_port

Порт, к которому должен подключаться ssh-клиент

ssh_client_port: '22' # ssh

ssh_listen_to

Один или несколько IP-адресов, на которых ssh-сервер должен слушать. По умолчанию пусто, но должно быть настроено по соображениям безопасности!

ssh_listen_to: ['0.0.0.0'] # sshd

ssh_host_key_files

Файлы ключей хоста, которые необходимо искать при запуске sshd.

ssh_host_key_files: [] # sshd
#  - path: "{{ sshd_config_path }}/ssh_host_rsa_key"
#    private_key: |
#      xxxxxxxxxxxxx
#      xxxxxxxxxxxxx
#      xxxxxxxxxxxxx
#    public_key: |
#      xxxxxxxxxxxxx
#      xxxxxxxxxxxxx
#      xxxxxxxxxxxxx
#    size: 8192
#    type: rsa

ssh_force_create_host_key_files

Принудительное создание файлов ключей хоста.

ssh_force_create_host_key_files: false # sshd

ssh_max_auth_retries

Указывает максимальное количество попыток аутентификации, разрешенных за одно соединение. Когда количество неудач достигает половины этого значения, дополнительные неудачи регистрируются.

ssh_max_auth_retries: 2

ssh_client_alive_interval

ssh_client_alive_interval: 300 # sshd

ssh_client_alive_count

ssh_client_alive_count: 3 # sshd

ssh_permit_tunnel

Разрешить SSH-туннели

ssh_permit_tunnel: false

ssh_remote_hosts

Хосты с пользовательскими параметрами. # ssh

ssh_remote_hosts: []

# Пример

ssh_remote_hosts:
  - names: ['example.com', 'example2.com']
    options: ['Port 2222', 'ForwardAgent yes']
  - names: ['example3.com']
    options: ['StrictHostKeyChecking no']

ssh_allow_root_with_key

Установите это значение на "без пароля" или "да", чтобы разрешить root-вход.

ssh_allow_root_with_key: 'no' # sshd

ssh_allow_tcp_forwarding

false, чтобы отключить TCP-прокси. Установите true, чтобы разрешить TCP-прокси.

ssh_allow_tcp_forwarding: false # sshd

ssh_gateway_ports

false, чтобы отключить привязку перенаправленных портов к адресам, отличным от loopback. Установите true, чтобы принудительно привязать к универсальному адресу.

Установите 'clientspecified', чтобы разрешить клиенту указать, к какому адресу привязываться.

ssh_gateway_ports: false # sshd

ssh_allow_agent_forwarding

false, чтобы отключить пересылку агента. Установите true, чтобы разрешить пересылку агента.

ssh_allow_agent_forwarding: false # sshd

ssh_pam_support

true, если SSH поддерживает PAM

ssh_pam_support: true

ssh_use_pam

false, чтобы отключить аутентификацию pam.

ssh_use_pam: false # sshd

ssh_google_auth

false, чтобы отключить аутентификацию google 2fa.

ssh_google_auth: false # sshd

ssh_pam_device

false, чтобы отключить ввод устройства pam 2FA.

ssh_pam_device: false # sshd

ssh_gssapi_support

true, если SSH поддерживает GSSAPI.

ssh_gssapi_support: false

ssh_kerberos_support

true, если SSH поддерживает Kerberos.

ssh_kerberos_support: true

ssh_deny_users

если указано, вход запрещен для имен пользователей, которые соответствуют одному из шаблонов.

ssh_deny_users: '' # sshd

ssh_allow_users

если указано, вход разрешен только для имен пользователей, которые соответствуют одному из шаблонов.

ssh_allow_users: '' # sshd

ssh_deny_groups

если указано, вход запрещен для пользователей, чья основная группа или список дополнительных групп соответствуют одному из шаблонов.

ssh_deny_groups: '' # sshd

ssh_allow_groups

если указано, вход разрешен только для пользователей, чья основная группа или список дополнительных групп соответствует одному из шаблонов.

ssh_allow_groups: '' # sshd

ssh_authorized_keys_file

изменить файл по умолчанию, который содержит открытые ключи, которые можно использовать для аутентификации пользователя.

ssh_authorized_keys_file: '' # sshd

ssh_trusted_user_ca_keys_file

указывает файл, содержащий открытые ключи доверенных удостоверяющих центров, используемых для подписи пользовательских сертификатов.

ssh_trusted_user_ca_keys_file: '' # sshd

ssh_trusted_user_ca_keys

установить открытые ключи доверенных удостоверяющих центров, используемые для подписи пользовательских сертификатов.

ssh_trusted_user_ca_keys: [] # sshd

Пример

ssh_trusted_user_ca_keys:
  - 'ssh-rsa ... comment1'
  - 'ssh-rsa ... comment2'

ssh_authorized_principals_file

указывает файл, содержащий разрешенные принципы. Используется только если установлен ssh_trusted_user_ca_keys_file.

ssh_authorized_principals_file: '' # sshd

Пример

ssh_authorized_principals_file: '/etc/ssh/auth_principals/%u'

%h заменяется на домашний каталог пользователя, который проходит аутентификацию, а %u заменяется на имя пользователя этого пользователя. После расширения путь принимается как абсолютный путь или путь, относительный к домашнему каталогу пользователя.

ssh_authorized_principals

список хэш-структур, содержащих пути к файлам и авторизованные принципы. Используется только если установлен ssh_authorized_principals_file.

ssh_authorized_principals: [] # sshd

Пример

ssh_authorized_principals:
  - {
      path: '/etc/ssh/auth_principals/root',
      principals: ['root'],
      owner: '{{ ssh_owner }}',
      group: '{{ ssh_group }}',
      directoryowner: '{{ ssh_owner }}',
      directorygroup: '{{ ssh_group}}',
    }
  - {
      path: '/etc/ssh/auth_principals/myuser',
      principals: ['masteradmin', 'webserver'],
    }

ssh_print_motd

false, чтобы отключить вывод MOTD

ssh_print_motd: false # sshd

ssh_print_last_log

false, чтобы отключить отображение информации о последнем входе

ssh_print_last_log: false # sshd

ssh_banner

false, чтобы отключить показ /etc/ssh/banner.txt перед разрешением аутентификации

ssh_banner: false # sshd

ssh_print_debian_banner

false, чтобы отключить утечку версии дистрибутива во время начального рукопожатия протокола

ssh_print_debian_banner: false # sshd (только для Debian)

ssh_sftp_enabled

true для включения конфигурации sftp

ssh_sftp_enabled: '{{ sftp_enabled | default(false) }}'

ssh_sftp_chroot

false для отключения sftp chroot

ssh_sftp_chroot: '{{ sftp_chroot | default(true) }}'

ssh_sftp_chroot_dir

изменить расположение по умолчанию для sftp chroot

ssh_sftp_chroot_dir: "{{ sftp_chroot_dir | default('/home/%u') }}"

Если true, вход по паролю для SFTP разрешен

ssh_server_sftp_password_login: false
ssh_server_sftp_password_login: true

ssh_client_roaming

включить экспериментальную поддержку клиента roaming

ssh_client_roaming: false

ssh_server_match_user

список хэшей (содержащих пользователя и правила) для генерации блоков Match User.

ssh_server_match_user: false # sshd

ssh_server_match_group

список хэшей (содержащих группу и правила) для генерации блоков Match Group.

ssh_server_match_group: false # sshd

ssh_server_match_address

список хэшей (содержащих адреса/подсети и правила) для генерации блоков Match Address.

ssh_server_match_address: false # sshd

ssh_server_permit_environment_vars

ssh_server_permit_environment_vars: false

ssh_max_startups

максимальное количество одновременных неавторизованных подключений к SSH-демону

ssh_max_startups: '10:30:100' # sshd

ssh_ps53

ssh_ps53: 'yes'

ssh_ps59

ssh_ps59: 'sandbox'

ssh_macs

ssh_macs: []

ssh_ciphers

ssh_ciphers: []

ssh_kex

ssh_kex: []

ssh_macs_53_default

ssh_macs_53_default:
  - hmac-ripemd160
  - hmac-sha1

ssh_macs_59_default

ssh_macs_59_default:
  - hmac-sha2-512
  - hmac-sha2-256
  - hmac-ripemd160

ssh_macs_66_default

ssh_macs_66_default:
  - [email protected]
  - [email protected]
  - [email protected]
  - hmac-sha2-512
  - hmac-sha2-256

ssh_macs_76_default

ssh_macs_76_default:
  - [email protected]
  - [email protected]
  - [email protected]
  - hmac-sha2-512
  - hmac-sha2-256

ssh_ciphers_53_default

ssh_ciphers_53_default:
  - aes256-ctr
  - aes192-ctr
  - aes128-ctr

ssh_ciphers_66_default

ssh_ciphers_66_default:
  - [email protected]
  - [email protected]
  - [email protected]
  - aes256-ctr
  - aes192-ctr
  - aes128-ctr

ssh_kex_59_default

ssh_kex_59_default:
  - diffie-hellman-group-exchange-sha256

ssh_kex_66_default

ssh_kex_66_default:
  - [email protected]
  - diffie-hellman-group-exchange-sha256

ssh_custom_selinux_dir

каталог, где хранится политика ssh_password

ssh_custom_selinux_dir: '/etc/selinux/local-policies'

sshd_moduli_file: '/etc/ssh/moduli'
sshd_moduli_minimum: 2048

ssh_challengeresponseauthentication

отключить ChallengeResponseAuthentication

ssh_challengeresponseauthentication: false

ssh_server_revoked_keys

список открытых ключей, которые никогда не принимаются сервером ssh.

ssh_server_revoked_keys: []

ssh_hardening_enabled

Установите значение false, чтобы сделать роль бессмысленной. Полезно при использовании механизма зависимости роли Ansible.

ssh_hardening_enabled: true

ssh_custom_options

Пользовательские параметры для файла конфигурации SSH-клиента

ssh_custom_options: []

sshd_custom_options

Пользовательские параметры для файла конфигурации SSH-демона

sshd_custom_options: []

Зависимости

Нет

Пример плейбука

- hosts: all
  roles:
    - skriptfabrik.sshd

Автор

Лицензия

Этот проект лицензирован под MIT License.

Авторские права

(c) 2022, skriptfabrik GmbH

О проекте

This role provides secure ssh-client and ssh-server configurations. It is intended to be compliant with the DevSec SSH Baseline.

Установить
ansible-galaxy install skriptfabrik/ansible-role-sshd
Лицензия
mit
Загрузки
2256
Владелец