Machines
ssh est installé (ou le sera) sur toutes les machines. Sur bulbe, plusieurs autres services ou applications reposent sur ou interagissent avec ssh:
Fichiers
Configuration
/etc/ssh/sshd_config- le fichier de configuration du serveur. En principe le seul qu'on ait à modifier.
Clefs
/etc/ssh/ssh_host_*_key/etc/ssh/ssh_host_*_key.pub- les clefs privées et publiques du serveur. Une bonne pratique consiste à en communiquer les empreintes aux personnes auxquelles on ouvre un accès sur une machine, afin qu'elles puissent s'assurer que leur trafic n'est pas détourné.
/home/${user}/.ssh/authorized_keys- trousseau de clefs publiques de
${user}(une clef par ligne), nécessaire pour se connecter.
Configuration
Dans /etc/ssh/sshd_config:
On interdit la connexion par
rootet l'authentification par mot de passe :PermitRootLogin no PasswordAuthentication noCela signifie que l'authentification par paire de clefs publique/privée est la seule possible (les autres sont désactivées).
Le paramètrePermitRootLogin noest donc facultatif, puisquerootn'a pas de clef SSH.On désactive le trasfert de sessions X11 :
X11Forwarding noLe jeu des dépendances de paquets peut amener à ce qu'un serveur X soit installé sur une machine. Ce paramètre empêche une redirection de X qui pourrait permettre une attaque côté client.
On restreint le choix d'algorithmes de chiffrement et d'authentification à ceux considérés sûrs (parmi ceux disponibles).
Ciphers chacha20-poly1305@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 KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256On durcit la séparation des privilèges, pour
sshd, avec une option plus sûre mais moins portable que celle par défaut.UsePriviledgeSeparation sandboxEnfin, on supprime les clefs DSA.
Accès SFTP restreint
Sur la VM de bureautique, pour permettre aux personnes partageant des tâches administratives au sein de l'association d'accéder par sftp à un espace de stockage qui leur est réservé, et de n'accéder qu'à cet espace, le serveur a fait l'objet d'une configuration spécifique (voir aussi: Stockage de fichiers):
Subsystem sftp internal-sftp
Match Group admin
AuthorizedKeysFile /etc/ssh/role_keys/%u
ChrootDirectory /srv/association
ForceCommand internal-sftp -u 027
AllowTcpForwarding no
Le choix de internal-sftp dans la directive Subsystem est requis par ce
qui suit.
La directive Match permet d'imposer à un user ou à un groupe donné une
configuration du service différente de ce qui est défini dans le reste du
fichier. Les directives Match doivent figurer à la fin du fichier.
La directive AuthorizedKeysFile /etc/ssh/… permet de versionner les clefs
d'accès au service.
Les directives ChrootDirectory DIR et ForceCommand internal-sftp [OPTIONS]
fonctionnent de pair. Elles permettent de restreindre l'accès au système de
deux façons:
- Seuls les accès par sftp sont autorisés.
- Le répertoire de chroot devient la racine au niveau du client, qui ne
peut donc pas naviguer dans le reste du système. Le répertoire de chroot
doit avoir le mode
0755et doit être propriété deroot:root.