Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| fr:ssh [2025/05/07 11:27] – [Paramétrer sshd_config] Mise à jour de la doc zatalyz | fr:ssh [2025/11/16 10:12] (Version actuelle) – [SFTP] C'est un détail mais je viens d'y passer une heure zatalyz | ||
|---|---|---|---|
| Ligne 239: | Ligne 239: | ||
| - | Le fichier à modifier est ''/ | + | Le fichier à modifier est dans ''/ |
| === Protocole de base === | === Protocole de base === | ||
| Ligne 251: | Ligne 251: | ||
| Cela garantit que le serveur vérifie les modes et droits des fichiers de l' | Cela garantit que le serveur vérifie les modes et droits des fichiers de l' | ||
| - | === Clés hôtes (identité du serveur) | + | === Chiffrement et algorithmes |
| HostKey / | HostKey / | ||
| + | HostKeyAlgorithms ssh-ed25519, | ||
| Cela force à ce que seules les clés ed25519 soient présentées, | Cela force à ce que seules les clés ed25519 soient présentées, | ||
| - | === Chiffrement et algorithmes === | + | <WRAP center round info 100%> |
| - | < | + | > Les protocoles d' |
| - | Ciphers chacha20-poly1305@openssh.com, | + | |
| + | Si vous avez Openssh avec une version supérieure à 9.9 : | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | Pour les versions plus anciennes, comme Bookworm (version openssh 1: | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | À terme, il faudrait mieux n' | ||
| + | |||
| + | < | ||
| + | |||
| + | Plus d' | ||
| + | </ | ||
| + | |||
| + | Pour le reste des protocoles d' | ||
| + | < | ||
| MACs hmac-sha2-256-etm@openssh.com, | MACs hmac-sha2-256-etm@openssh.com, | ||
| - | PubkeyAcceptedAlgorithms ssh-ed25519, | ||
| </ | </ | ||
| Ajoutez ces lignes pour préciser les algorithmes acceptés et leur ordre de préférence lors de l' | Ajoutez ces lignes pour préciser les algorithmes acceptés et leur ordre de préférence lors de l' | ||
| + | |||
| + | |||
| + | PubkeyAcceptedAlgorithms ssh-ed25519, | ||
| Notez que '' | Notez que '' | ||
| Ligne 311: | Ligne 331: | ||
| LoginGraceTime 30 | LoginGraceTime 30 | ||
| Temps en secondes pour saisir son mot de passe. En fait, 30 secondes, c'est plutôt long, même avec une passphrase un peu conséquente. D' | Temps en secondes pour saisir son mot de passe. En fait, 30 secondes, c'est plutôt long, même avec une passphrase un peu conséquente. D' | ||
| + | |||
| + | ClientAliveInterval 3m | ||
| + | Toutes les 3 minutes, la session ssh enverra un " | ||
| + | |||
| + | ClientAliveCountMax 5 | ||
| + | Après 5 " | ||
| + | |||
| + | Cela évite de laisser ouverte des sessions fantômes. Cela peut être paramétré plus court ou plus long, mais ce genre de délai évite d' | ||
| + | * Serveur destiné à recevoir des gros fichiers (rsync, scp), avec des tunnels, ou des scripts : prévoir plus long, par exemple '' | ||
| + | * Serveur sensibles, et quand on a tendance à oublier qu'on est co et laisser la session ouverte : '' | ||
| + | * Notez que lors des grosses maj (où il se passe du temps sans que le sysadmin n' | ||
| === Comportement à la connexion, environnement === | === Comportement à la connexion, environnement === | ||
| Ligne 324: | Ligne 355: | ||
| AcceptEnv LANG LC_* | AcceptEnv LANG LC_* | ||
| Cela permet à l' | Cela permet à l' | ||
| - | |||
| - | |||
| - | Subsystem sftp / | ||
| - | Appelle un daemon pour gérer certains aspects, ici sftp. À ne laisser que si sftp est réellement utilisé et bien paramétré, | ||
| === Redirections et accès à distance === | === Redirections et accès à distance === | ||
| Ligne 336: | Ligne 363: | ||
| '' | '' | ||
| + | GatewayPorts no | ||
| + | C'est l' | ||
| + | PermitTunnel no | ||
| + | Là aussi l' | ||
| + | === SFTP === | ||
| + | SFTP est un cas particulier. Ce protocole est très utile pour transférer des fichiers dans un environnement plus simple à sécuriser. La plupart des serveurs n'en ont cependant pas besoin : on utilise rsync, pas besoin de plus. | ||
| + | Donc, cette partie est totalement facultative ! | ||
| + | Dans le cas où vous voulez permettre à des utilisatrices de manipuler des fichiers et dossiers dans leur home, il faudra les déclarer dans le groupe " | ||
| + | < | ||
| + | Subsystem sftp internal-sftp -l INFO -f AUTH | ||
| - | === Exemple de fichier sshd_config === | + | Match Group wheel |
| - | + | | |
| - | + | | |
| - | Voici à quoi peut ressembler votre fichier ''/ | + | |
| - | + | | |
| - | <code txt ssh_config> | + | |
| - | #Port 22 | + | Match Group sftpusers |
| - | Protocol 2 | + | |
| - | Ciphers aes256-ctr,aes192-ctr, | + | |
| - | MACs hmac-sha2-512-etm@openssh.com, | + | |
| - | + | | |
| - | PermitRootLogin | + | # Autoriser une connexion plus longue pour permettre de transférer des fichiers |
| - | StrictModes yes | + | |
| - | + | | |
| - | PasswordAuthentication | + | |
| - | KbdInteractiveAuthentication no | + | |
| - | PubkeyAuthentication yes | + | |
| - | UsePAM yes | + | |
| - | + | ||
| - | PermitEmptyPasswords no | + | |
| - | MaxAuthTries 6 | + | |
| - | LoginGraceTime 30 | + | |
| - | + | ||
| - | AllowGroups wheel | + | |
| - | + | ||
| - | AllowTcpForwarding no | + | |
| - | X11Forwarding no | + | |
| - | + | ||
| - | PrintLastLog yes | + | |
| - | PrintMotd no | + | |
| - | + | ||
| - | AcceptEnv LANG LC_* | + | |
| - | + | ||
| - | Subsystem sftp / | + | |
| </ | </ | ||
| + | * '' | ||
| + | * L' | ||
| + | * '' | ||
| + | * '' | ||
| + | * J' | ||
| + | * '' | ||
| + | * '' | ||
| + | * On permet enfin une connexion plus longues avec '' | ||
| + | À noter : le dossier paramétré par ChrootDirectory doit être possédé par root pour que tout fonctionne. L' | ||
| + | Un autre point important : ajoutez sftpusers à la directive '' | ||
| + | AllowGroups wheel sftpusers | ||
| - | N' | ||
| - | service ssh restart | + | Voir aussi [[https:// |
| - | === Exemple de fichier | + | === Exemple de fichier sshd_config === |
| - | <WRAP center round todo 60%> | + | |
| - | Je pose ça tant que j'y pense, ceci est la version à jour en 2025 proposé par Tycho. Attention cependant avant de déployer ça sur les serveurs : | + | |
| - | * Seules les clés Ed25519 seront acceptées | + | |
| - | * Les protocoles d' | + | |
| - | * Faut " | + | |
| - | Bref, ne pas utiliser "comme ça", mais ce serait bien de faire évoluer notre fichier d' | ||
| - | Et on met dans ''/ | + | Voici à quoi peut ressembler votre fichier |
| - | </ | + | |
| - | <code txt / | + | <code txt / |
| + | # Protocole et sécurité de base | ||
| + | Protocol 2 | ||
| StrictModes yes | StrictModes yes | ||
| + | # Port 22, si besoin de le changer | ||
| + | # Chiffrement et algorithmes | ||
| HostKey / | HostKey / | ||
| + | HostKeyAlgorithms ssh-ed25519, | ||
| + | KexAlgorithms mlkem768x25519-sha256, | ||
| Ciphers chacha20-poly1305@openssh.com, | Ciphers chacha20-poly1305@openssh.com, | ||
| MACs hmac-sha2-256-etm@openssh.com, | MACs hmac-sha2-256-etm@openssh.com, | ||
| - | KexAlgorithms sntrup761x25519-sha512, | ||
| PubkeyAcceptedAlgorithms ssh-ed25519, | PubkeyAcceptedAlgorithms ssh-ed25519, | ||
| + | # Authentification | ||
| PermitRootLogin no | PermitRootLogin no | ||
| # AllowUsers zatalyz | # AllowUsers zatalyz | ||
| Ligne 412: | Ligne 438: | ||
| PermitEmptyPasswords no | PermitEmptyPasswords no | ||
| KbdInteractiveAuthentication no | KbdInteractiveAuthentication no | ||
| + | PubkeyAuthentication yes | ||
| + | UsePAM yes | ||
| - | MaxAuthTries | + | # Paramètres de session et de connexion |
| + | MaxAuthTries | ||
| LoginGraceTime 30 | LoginGraceTime 30 | ||
| + | ClientAliveInterval 3m | ||
| + | ClientAliveCountMax 5 | ||
| + | # Comportement à la connexion, environnement | ||
| PrintLastLog yes | PrintLastLog yes | ||
| + | PrintMotd no | ||
| PermitUserEnvironment no | PermitUserEnvironment no | ||
| + | AcceptEnv LANG LC_* | ||
| + | |||
| + | # Redirections et accès à distance | ||
| AllowTcpForwarding no | AllowTcpForwarding no | ||
| X11Forwarding no | X11Forwarding no | ||
| + | GatewayPorts no | ||
| + | PermitTunnel no | ||
| + | |||
| + | # Uniquement si on permet sftp ! | ||
| + | Subsystem sftp internal-sftp -l INFO -f AUTH | ||
| + | |||
| + | Match Group wheel | ||
| + | ChrootDirectory none | ||
| + | ForceCommand none | ||
| + | PermitTTY yes | ||
| + | PermitUserRC yes | ||
| + | | ||
| + | Match Group sftpusers | ||
| + | ChrootDirectory /home/%u | ||
| + | ForceCommand internal-sftp -d /sftp | ||
| + | PermitTTY no | ||
| + | PermitUserRC no | ||
| + | # Autoriser une connexion plus longue pour permettre de transférer des fichiers | ||
| + | ClientAliveInterval 15m | ||
| + | ClientAliveCountMax 3 | ||
| </ | </ | ||
| - | ==== Gérer les droits des dossiers | + | |
| + | N' | ||
| + | |||
| + | service ssh restart | ||
| + | |||
| + | ==== Autres bonnes pratiques ==== | ||
| + | === Gérer les droits des dossiers === | ||
| Si vous ouvrez un accès SSH à plusieurs personnes sur un serveur, cela ne veux pas dire qu' | Si vous ouvrez un accès SSH à plusieurs personnes sur un serveur, cela ne veux pas dire qu' | ||
| Ligne 447: | Ligne 509: | ||
| </ | </ | ||
| + | === Tester un fichier ssh === | ||
| + | Pour vérifier si votre fichier de configuration va tout faire planter : | ||
| + | sudo sshd -t -f / | ||
| + | | ||
| ===== Pour aller plus loin ===== | ===== Pour aller plus loin ===== | ||
| * [[http:// | * [[http:// | ||
| - | * [[http:// | ||
| * [[https:// | * [[https:// | ||
| {{tag> | {{tag> | ||





