skriptfabrik.sshd

Rol de Ansible: sshd

Ansible Galaxy Ansible Role

Descripción

Este rol proporciona configuraciones seguras para el cliente SSH y el servidor SSH. Está diseñado para ser compatible con la Base de referencia SSH de DevSec.
El rol es una bifurcación de arillso.sshd.

Instalación

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

Requisitos

Ninguno

Variables del Rol

ssh_ipv6_enable

verdadero si se necesita IPv6

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

ssh_server_enabled

verdadero si el sshd debe ser iniciado y habilitado

ssh_server_enabled: true # sshd

ssh_use_dns

verdadero si se necesita resolver nombres DNS, por defecto es falso desde la versión 6.8, ver: http://www.openssh.com/txt/release-6.8

ssh_use_dns: false # sshd

ssh_compression

verdadero o valor si se necesita compresión

ssh_compression: false # sshd

ssh_hardening

Para qué componentes (cliente y servidor) generar la configuración. Puede ser útil cuando se ejecuta en un cliente sin un servidor SSH.

ssh_client_hardening: true # ssh
ssh_server_hardening: true # sshd

ssh_client_password_login

Si es verdadero, se permite el inicio de sesión por contraseña

ssh_client_password_login: false # ssh
ssh_server_password_login: false # sshd

ssh_server_ports

puertos en los que el servidor SSH debería escuchar

ssh_server_ports: ['22'] # sshd

ssh_client_port

puerto al que el cliente SSH debería conectarse

ssh_client_port: '22' # ssh

ssh_listen_to

una o más direcciones IP, a las que el servidor SSH debería escuchar. Por defecto está vacío, pero debe configurarse por razones de seguridad.

ssh_listen_to: ['0.0.0.0'] # sshd

ssh_host_key_files

Claves de host que se buscan al iniciar 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

Forzar la creación de archivos de claves de host.

ssh_force_create_host_key_files: false # sshd

ssh_max_auth_retries

Especifica el número máximo de intentos de autenticación permitidos por conexión. Una vez que el número de fallos alcanza la mitad de este valor, los fallos adicionales se registran.

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

Permitir túneles SSH

ssh_permit_tunnel: false

ssh_remote_hosts

Hosts con opciones personalizadas. # ssh

ssh_remote_hosts: []

# Ejemplo

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

ssh_allow_root_with_key

Establece esto en "without-password" o "yes" para permitir el inicio de sesión como root

ssh_allow_root_with_key: 'no' # sshd

ssh_allow_tcp_forwarding

falso para deshabilitar el reenvío TCP. Establecer en verdadero para permitir el reenvío TCP.

ssh_allow_tcp_forwarding: false # sshd

ssh_gateway_ports

falso para deshabilitar el enlace de puertos reenviados a direcciones que no sean de bucle inverso. Establecer en verdadero para forzar el enlace en la dirección comodín.

Establecer en 'clientspecified' para permitir que el cliente especifique a qué dirección enlazar.

ssh_gateway_ports: false # sshd

ssh_allow_agent_forwarding

falso para deshabilitar el reenvío de agente. Establecer en verdadero para permitir el reenvío de agente.

ssh_allow_agent_forwarding: false # sshd

ssh_pam_support

verdadero si SSH tiene soporte PAM

ssh_pam_support: true

ssh_use_pam

falso para deshabilitar la autenticación PAM.

ssh_use_pam: false # sshd

ssh_google_auth

falso para deshabilitar la autenticación de dos factores de Google

ssh_google_auth: false # sshd

ssh_pam_device

falso para deshabilitar la entrada de dispositivo 2FA PAM

ssh_pam_device: false # sshd

ssh_gssapi_support

verdadero si SSH soporta GSSAPI

ssh_gssapi_support: false

ssh_kerberos_support

verdadero si SSH soporta Kerberos

ssh_kerberos_support: true

ssh_deny_users

si se especifica, no se permite el inicio de sesión para los nombres de usuario que coincidan con uno de los patrones.

ssh_deny_users: '' # sshd

ssh_allow_users

si se especifica, se permite el inicio de sesión solo para los nombres de usuario que coincidan con uno de los patrones.

ssh_allow_users: '' # sshd

ssh_deny_groups

si se especifica, no se permite el inicio de sesión para los usuarios cuyo grupo primario o lista de grupos suplementarios coincida con uno de los patrones.

ssh_deny_groups: '' # sshd

ssh_allow_groups

si se especifica, se permite el inicio de sesión solo para los usuarios cuyo grupo primario o lista de grupos suplementarios coincida con uno de los patrones.

ssh_allow_groups: '' # sshd

ssh_authorized_keys_file

cambiar el archivo predeterminado que contiene las claves públicas que se pueden usar para la autenticación del usuario.

ssh_authorized_keys_file: '' # sshd

ssh_trusted_user_ca_keys_file

especifica el archivo que contiene las claves públicas de autoridades de certificación de confianza utilizadas para firmar certificados de usuario.

ssh_trusted_user_ca_keys_file: '' # sshd

ssh_trusted_user_ca_keys

establecer las claves públicas de autoridades de certificación de confianza utilizadas para firmar certificados de usuario.

ssh_trusted_user_ca_keys: [] # sshd

Ejemplo

ssh_trusted_user_ca_keys:
  - 'ssh-rsa ... comentario1'
  - 'ssh-rsa ... comentario2'

ssh_authorized_principals_file

especifica el archivo que contiene los principios que están permitidos. Solo se utiliza si se establece ssh_trusted_user_ca_keys_file.

ssh_authorized_principals_file: '' # sshd

Ejemplo

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

%h se reemplaza por el directorio home del usuario que se está autenticando, y %u se reemplaza por el nombre de usuario de ese usuario. Después de la expansión, la ruta se considera una ruta absoluta o relativa al directorio home del usuario.

ssh_authorized_principals

lista de hashes que contienen rutas de archivos y principios autorizados. Solo se utiliza si se establece ssh_authorized_principals_file.

ssh_authorized_principals: [] # sshd

Ejemplo

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

falso para deshabilitar la impresión del mensaje del día (MOTD)

ssh_print_motd: false # sshd

ssh_print_last_log

falso para deshabilitar la visualización de la información del último inicio de sesión

ssh_print_last_log: false # sshd

ssh_banner

falso para deshabilitar la visualización de /etc/ssh/banner.txt antes de que se permita la autenticación

ssh_banner: false # sshd

ssh_print_debian_banner

falso para deshabilitar la fuga de la versión de distribución durante el saludo inicial del protocolo

ssh_print_debian_banner: false # sshd (solo para la familia de sistemas operativos Debian)

ssh_sftp_enabled

verdadero para habilitar la configuración sftp

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

ssh_sftp_chroot

falso para deshabilitar el chroot de sftp

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

ssh_sftp_chroot_dir

cambiar la ubicación de chroot predeterminada para sftp

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

Si es verdadero, se permite el inicio de sesión por contraseña para SFTP

ssh_server_sftp_password_login: false
ssh_server_sftp_password_login: true

ssh_client_roaming

habilitar el roaming experimental del cliente

ssh_client_roaming: false

ssh_server_match_user

lista de hashes (que contienen usuario y reglas) para generar bloques de coincidencia de usuario.

ssh_server_match_user: false # sshd

ssh_server_match_group

lista de hashes (que contienen grupo y reglas) para generar bloques de coincidencia de grupo.

ssh_server_match_group: false # sshd

ssh_server_match_address

lista de hashes (que contienen direcciones/subredes y reglas) para generar bloques de coincidencia de dirección.

ssh_server_match_address: false # sshd

ssh_server_permit_environment_vars

ssh_server_permit_environment_vars: false

ssh_max_startups

número máximo de conexiones no autenticadas concurrentes al demonio 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

directorio donde almacenar la política de ssh_password

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

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

ssh_challengeresponseauthentication

deshabilitar ChallengeResponseAuthentication

ssh_challengeresponseauthentication: false

ssh_server_revoked_keys

una lista de claves públicas que nunca son aceptadas por el servidor ssh

ssh_server_revoked_keys: []

ssh_hardening_enabled

Establecer en falso para convertir el rol en un no-op. Útil al usar el mecanismo de dependencia del rol de Ansible.

ssh_hardening_enabled: true

ssh_custom_options

Opciones personalizadas para el archivo de configuración del cliente SSH

ssh_custom_options: []

sshd_custom_options

Opciones personalizadas para el archivo de configuración del demonio SSH

sshd_custom_options: []

Dependencias

Ninguna

Ejemplo de Playbook

- hosts: all
  roles:
    - skriptfabrik.sshd

Autor

Licencia

Este proyecto está bajo la Licencia MIT.

(c) 2022, skriptfabrik GmbH

Acerca del proyecto

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

Instalar
ansible-galaxy install skriptfabrik.sshd
Licencia
mit
Descargas
2.8k
Propietario