skriptfabrik.sshd

Ansible Rôle : sshd

Ansible Galaxy Ansible Role

Description

Ce rôle fournit des configurations sécurisées pour le client et le serveur SSH. Il vise à être conforme avec le DevSec SSH Baseline.
Ce rôle est un fork de arillso.sshd.

Installation

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

Exigences

Aucune

Variables du Rôle

ssh_ipv6_enable

true si l'IPv6 est nécessaire

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

ssh_server_enabled

true si sshd doit être démarré et activé

ssh_server_enabled: true # sshd

ssh_use_dns

true si les résolutions DNS sont nécessaires, vérifiez le nom d'hôte distant, par défaut à faux depuis la version 6.8, voir : http://www.openssh.com/txt/release-6.8

ssh_use_dns: false # sshd

ssh_compression

true ou valeur si la compression est nécessaire

ssh_compression: false # sshd

ssh_hardening

Pour quels composants (client et serveur) générer la configuration. Peut être utile lors de l'exécution contre un client sans serveur SSH.

ssh_client_hardening: true # ssh
ssh_server_hardening: true # sshd

ssh_client_password_login

Si vrai, la connexion par mot de passe est autorisée

ssh_client_password_login: false # ssh
ssh_server_password_login: false # sshd

ssh_server_ports

ports sur lesquels le serveur SSH doit écouter

ssh_server_ports: ['22'] # sshd

ssh_client_port

port auquel le client SSH doit se connecter

ssh_client_port: '22' # ssh

ssh_listen_to

une ou plusieurs adresses IP, auxquelles le serveur SSH doit écouter. Par défaut, c'est vide, mais doit être configuré pour des raisons de sécurité !

ssh_listen_to: ['0.0.0.0'] # sshd

ssh_host_key_files

Clés d'hôte à rechercher lors du démarrage de 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

Forcer la création des fichiers de clés d'hôte.

ssh_force_create_host_key_files: false # sshd

ssh_max_auth_retries

Spécifie le nombre maximum de tentatives d'authentification autorisées par connexion. Une fois que le nombre de pannes atteint la moitié de cette valeur, des échecs supplémentaires sont signalés.

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

Autoriser les tunnels SSH

ssh_permit_tunnel: false

ssh_remote_hosts

Hôtes avec options personnalisées. # ssh

ssh_remote_hosts: []

Exemple

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

ssh_allow_root_with_key

Définissez ceci sur "sans-mot de passe" ou "oui" pour autoriser root à se connecter

ssh_allow_root_with_key: 'no' # sshd

ssh_allow_tcp_forwarding

false pour désactiver le transfert TCP. Définir sur vrai pour autoriser le transfert TCP.

ssh_allow_tcp_forwarding: false # sshd

ssh_gateway_ports

false pour désactiver le liaison de ports redirigés à des adresses non bouclantes. Définir sur vrai pour forcer la liaison sur l'adresse générique.

Définir sur 'clientspecified' pour permettre au client de spécifier quelle adresse lier.

ssh_gateway_ports: false # sshd

ssh_allow_agent_forwarding

false pour désactiver le transfert d'agent. Définir sur vrai pour permettre le transfert d'agent.

ssh_allow_agent_forwarding: false # sshd

ssh_pam_support

true si SSH a un support PAM

ssh_pam_support: true

ssh_use_pam

false pour désactiver l'authentification pam.

ssh_use_pam: false # sshd

ssh_google_auth

false pour désactiver l'authentification google 2fa

ssh_google_auth: false # sshd

ssh_pam_device

false pour désactiver l'entrée de 2FA pam device

ssh_pam_device: false # sshd

ssh_gssapi_support

true si SSH supporte GSSAPI

ssh_gssapi_support: false

ssh_kerberos_support

true si SSH supporte Kerberos

ssh_kerberos_support: true

ssh_deny_users

si spécifié, la connexion est interdite pour les noms d'utilisateur qui correspondent à l'un des motifs.

ssh_deny_users: '' # sshd

ssh_allow_users

si spécifié, la connexion est autorisée uniquement pour les noms d'utilisateur qui correspondent à l'un des motifs.

ssh_allow_users: '' # sshd

ssh_deny_groups

si spécifié, la connexion est interdite pour les utilisateurs dont le groupe principal ou la liste des groupes complémentaires correspond à l'un des motifs.

ssh_deny_groups: '' # sshd

ssh_allow_groups

si spécifié, la connexion est autorisée uniquement pour les utilisateurs dont le groupe principal ou la liste des groupes complémentaires correspond à l'un des motifs.

ssh_allow_groups: '' # sshd

ssh_authorized_keys_file

changez le fichier par défaut qui contient les clés publiques pouvant être utilisées pour l'authentification des utilisateurs.

ssh_authorized_keys_file: '' # sshd

ssh_trusted_user_ca_keys_file

spécifie le fichier contenant les clés publiques des autorités de certification de confiance utilisées pour signer les certificats utilisateurs.

ssh_trusted_user_ca_keys_file: '' # sshd

ssh_trusted_user_ca_keys

définissez les clés publiques des autorités de certification de confiance utilisées pour signer les certificats utilisateurs.

ssh_trusted_user_ca_keys: [] # sshd

Exemple

ssh_trusted_user_ca_keys:
  - 'ssh-rsa ... commentaire1'
  - 'ssh-rsa ... commentaire2'

ssh_authorized_principals_file

spécifie le fichier contenant les principes qui sont autorisés. Utilisé uniquement si ssh_trusted_user_ca_keys_file est défini.

ssh_authorized_principals_file: '' # sshd

Exemple

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

%h est remplacé par le répertoire personnel de l'utilisateur authentifié, et %u est remplacé par le nom d'utilisateur de cet utilisateur. Après expansion, le chemin est considéré comme un chemin absolu ou relatif au répertoire personnel de l'utilisateur.

ssh_authorized_principals

liste de hashes contenant des chemins de fichiers et des principes autorisés. Utilisé uniquement si ssh_authorized_principals_file est défini.

ssh_authorized_principals: [] # sshd

Exemple

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 pour désactiver l'impression du MOTD

ssh_print_motd: false # sshd

ssh_print_last_log

false pour désactiver l'affichage des dernières informations de connexion

ssh_print_last_log: false # sshd

ssh_banner

false pour désactiver le service de /etc/ssh/banner.txt avant que l'authentification ne soit autorisée

ssh_banner: false # sshd

ssh_print_debian_banner

false pour désactiver la fuite de la version de distribution pendant la première poignée de protocoles

ssh_print_debian_banner: false # sshd (uniquement pour la famille Debian OS)

ssh_sftp_enabled

true pour activer la configuration sftp

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

ssh_sftp_chroot

false pour désactiver sftp chroot

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

ssh_sftp_chroot_dir

changer l'emplacement par défaut du chroot sftp

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

Si vrai, la connexion par mot de passe pour SFTP est autorisée

ssh_server_sftp_password_login: false
ssh_server_sftp_password_login: true

ssh_client_roaming

activer le roaming client expérimental

ssh_client_roaming: false

ssh_server_match_user

liste de hashes (contenant utilisateur et règles) pour générer des blocs Match User.

ssh_server_match_user: false # sshd

ssh_server_match_group

liste de hashes (contenant groupe et règles) pour générer des blocs Match Group.

ssh_server_match_group: false # sshd

ssh_server_match_address

liste de hashes (contenant adresses/sous-réseaux et règles) pour générer des blocs Match Address.

ssh_server_match_address: false # sshd

ssh_server_permit_environment_vars

ssh_server_permit_environment_vars: false

ssh_max_startups

nombre maximum de connexions non authentifiées concurrentes au démon SSH

ssh_max_startups: '10:30:100' # sshd

ssh_ps53

ssh_ps53: 'oui'

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

répertoire où stocker la politique ssh_password

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

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

ssh_challengeresponseauthentication

désactiver ChallengeResponseAuthentication

ssh_challengeresponseauthentication: false

ssh_server_revoked_keys

une liste de clés publiques qui ne sont jamais acceptées par le serveur ssh

ssh_server_revoked_keys: []

ssh_hardening_enabled

Définir sur false pour transformer le rôle en no-op. Utile lors de l'utilisation du mécanisme de dépendance de rôle Ansible.

ssh_hardening_enabled: true

ssh_custom_options

Options personnalisées pour le fichier de configuration du client SSH

ssh_custom_options: []

sshd_custom_options

Options personnalisées pour le fichier de configuration du démon SSH

sshd_custom_options: []

Dépendances

Aucune

Exemple de Playbook

- hosts: all
  roles:
    - skriptfabrik.sshd

Auteur

Licence

Ce projet est sous la Licence MIT.

Droits d'auteur

(c) 2022, skriptfabrik GmbH

À propos du projet

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

Installer
ansible-galaxy install skriptfabrik.sshd
Licence
mit
Téléchargements
2.8k
Propriétaire