HLab

Julien Hautefeuille

Sécuriser à minima le serveur ssh

Sécuriser sshd_config

Les directives sont à ajouter /etc/ssh/sshd_config :

# Algorithmes d'échange de clés (sans DSA)
HostKey /etc/ssh/ssh_host_ed25519_key
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key

# Méthodes de chiffrement (sans SHA1)
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com

# Les authentifications ne sont possibles que par clés publiques (attention, la gestion des clés est un lourd travail à prévoir en amont !)
AuthenticationMethods publickey

# Augmenter le niveau de log à verbose pour voir plus d'infos dans /var/log/auth.log
LogLevel VERBOSE

# Augmenter le niveau de log de SFTP pour voir les accès en lecture et écriture des fichiers.
Subsystem sftp  /usr/lib/ssh/sftp-server -f AUTHPRIV -l INFO

# Interdiction des connexions en tant que root (il faut user du su ou du sudo), pour ça aussi, il faut bien préparer le terrain !
PermitRootLogin No

# Utiliser le système de bac à sable pour ne pas que les processus soient lancés avec des privilèges trop importants.
UsePrivilegeSeparation sandbox