# Pare-feu indispensable?

**URL:** <https://www.debian-fr.org/t/pare-feu-indispensable/92934>\
**Category:** Pause Café\
**Tags:** pare-feu, sécurité\
**Created:** [Septembre 21, 2026, 8:58 UTC](https://www.debian-fr.org/t/pare-feu-indispensable/92934 "2026-09-21T08:58:32Z")\
**Posts on this page:** 3\
**Page:** 3

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 8, 2026, 6:43 UTC](https://www.debian-fr.org/t/pare-feu-indispensable/92934/41 "2026-10-08T18:43:23Z")

</div>

Les suivantes, bien que ce ne soit plus à jour:m

```auto
#######################
# SSHD configuration
#######################
#
logger -p syslog.info -i " $FNAME: SSHD Configuration"

# Ensure permissions on /etc/ssh/sshd_config are configured
logger -p syslog.info -i " $FNAME: Ensure permissions on /etc/ssh/sshd_config are configured"
chown root:root /etc/ssh/sshd_config
chmod og-rwx /etc/ssh/sshd_config

# Configure protocol and listen parameters
sed -Ei 's/^[#]*\s*Port.*/Port 22/' /etc/ssh/sshd_config
sed -Ei 's/^[#]*\s*AddressFamily.*/AddressFamily any/' /etc/ssh/sshd_config
sed -Ei 's/^[#]*\s*ListenAddress\s0\.0\.0\.0/ListenAddress 192.168.1.200:19682/' /etc/ssh/sshd_config
sed -Ei '/^ListenAddress\s192\.168\.2\.254/a ListenAddress 192.168.11.254' /etc/ssh/sshd_config
sed -Ei '/^ListenAddress\s192\.168\.5\.254/a ListenAddress 192.168.14.254' /etc/ssh/sshd_config

sed -Ei 's/^[#]*\s*ListenAddress\s\:\:/ListenAddress fdc0:12b:ff55:1921:6810::fe/' /etc/ssh/sshd_config
sed -Ei '/^ListenAddress\s fcc0:12b:ff55:1921:6820::fe/a ListenAddress fdc0:12b:ff55:1921:6840::fe' /etc/ssh/sshd_config

# Ensure permissions on SSH private host key files are configured
#logger -p syslog.info -i " $FNAME: Ensure permissions on SSH private host key files are configured"

   l_skgn="ssh_keys" # Group designated to own openSSH keys
   l_skgid="$(awk -F: '($1 == "'"$l_skgn"'"){print $3}' /etc/group)"
   awk '{print}' <<< "$(find /etc/ssh -xdev -type f -name 'ssh_host_*_key' -exec stat -L -c "%n %#a %U %G %g" {} +)" | (while read -r l_file l_mode l_owner l_group l_gid; do
      [-n "$l_skgid"] && l_cga="$l_skgn" || l_cga="root"
      ["$l_gid" = "$l_skgid"] && l_pmask="0137" || l_pmask="0177"
      l_maxperm="$( printf '%o' $(( 0777 & ~$l_pmask )) )"
      if [$(( $l_mode & $l_pmask )) -gt 0]; then
         echo -e " - File: \"$l_file\" is mode \"$l_mode\" changing to mode: \"$l_maxperm\""
         if [-n "$l_skgid"]; then
            chmod u-x,g-wx,o-rwx "$l_file"
         else
            chmod u-x,go-rwx "$l_file"
         fi
      fi
      if ["$l_owner" != "root"]; then
         echo -e " - File: \"$l_file\" is owned by: \"$l_owner\" changing owner to \"root\""
         chown root "$l_file"
      fi
      if ["$l_group" != "root"] && ["$l_gid" != "$l_skgid"]; then
         echo -e " - File: \"$l_file\" is owned by group \"$l_group\" should belong to group \"$l_cga\""
         chgrp "$l_cga" "$l_file"
      fi
   done)

# Ensure permissions on SSH public host key files are configured
logger -p syslog.info -i " $FNAME: Ensure permissions on SSH public host key files are configured"
find /etc/ssh -xdev -type f -name 'ssh_host_*_key.pub' -exec chmod u-x,go-wx {} \;
find /etc/ssh -xdev -type f -name 'ssh_host_*_key.pub' -exec chown root:root {} \;

# Ensure SSH access is limited
logger -p syslog.info -i " $FNAME: Ensure SSH access is limited"

addgroup sshgroup
usermod -a -G sshgroup zargos
#sed -Ei 's/^(sshgroup.*)/\1zargos/' /etc/group
printf "
# Ensure SSH access is limited
AllowGroups sshgroup
" > /etc/ssh/sshd_config.d/sshd_cis.conf

logger -p syslog.info -i " $FNAME: /etc/ssh/sshd_config configuration modification"

# Ensure SSH root login is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH root login is disabled"
sed -Ei 's/^[#]*\s*PermitRootLogin\s+.*/PermitRootLogin no/' /etc/ssh/sshd_config

# Ensure SSH HostbasedAuthentication is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH HostbasedAuthentication is disabled"
sed -Ei 's/^[#]*\s*HostbasedAuthentication\s+.*/HostbasedAuthentication no/' /etc/ssh/sshd_config

# Ensure SSH IgnoreRhosts is enabled
logger -p syslog.info -i " $FNAME: Ensure SSH IgnoreRhosts is enabled"
sed -Ei 's/^[#]*\s*IgnoreRhosts\s+.*/IgnoreRhosts yes/' /etc/ssh/sshd_config

# Ensure SSH PermitEmptyPasswords is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH PermitEmptyPasswords is disabled"
sed -Ei 's/^[#]*\s*PermitEmptyPasswords\s+.*/PermitEmptyPasswords no/' /etc/ssh/sshd_config

# Ensure SSH PermitUserEnvironment is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH PermitUserEnvironment is disabled"
sed -Ei 's/^[#]*\s*PermitUserEnvironment\s+.*/PermitUserEnvironment no/' /etc/ssh/sshd_config

# Ensure SSH X11 forwarding is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH X11 forwarding is disabled"
sed -i '0,/^[#]*\s*X11Forwarding/s/^\([#]*\s*X11Forwarding\s+.*\)/X11Forwarding no/' /etc/ssh/sshd_config

# Ensure SSH AllowTcpForwarding is disabled
logger -p syslog.info -i " $FNAME: Ensure SSH AllowTcpForwarding is disabled"
sed -i '0,/^[#]*\s*AllowTcpForwarding/s/^\([#]*\s*AllowTcpForwarding\s+.*\)/AllowTcpForwarding no/' /etc/ssh/sshd_config

# Ensure only strong Ciphers are used
logger -p syslog.info -i " $FNAME: Ensure only strong Ciphers are used"
sed -Ei '/^[#]\s*Ciphers and keying/a Ciphers chacha20-poly1305\@openssh.com,aes256-gcm\@openssh.com,aes128-gcm\@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr' /etc/ssh/sshd_config

# Ensure only strong Key Exchange algorithms are used
logger -p syslog.info -i " $FNAME: Ensure only strong Key Exchange algorithms are used"

sed -Ei '/^Ciphers\s+/a KexAlgorithms curve25519-sha256,curve25519-sha256\@libssh.org,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256' /etc/ssh/sshd_config

# Ensure only strong MAC algorithms are used
logger -p syslog.info -i " $FNAME: Ensure only strong MAC algorithms are used"
sed -Ei '/^KexAlgorithms\s+/a MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm\@openssh.com,hmac-sha2-512,hmac-sha2-256' /etc/ssh/sshd_config

# Ensure SSH warning banner is configured
logger -p syslog.info -i " $FNAME: Ensure SSH warning banner is configured"
sed -Ei 's/^[#]*\s*Banner none/Banner \/etc\/issue.net/' /etc/ssh/sshd_config

# Ensure SSH MaxAuthTries is set to 4 or less
logger -p syslog.info -i " $FNAME: Ensure SSH MaxAuthTries is set to 4 or less"
sed -Ei 's/^[#]*\s*MaxAuthTries.*/MaxAuthTries 4/' /etc/ssh/sshd_config

# Ensure SSH MaxStartups is configured
logger -p syslog.info -i " $FNAME: Ensure SSH MaxStartups is configured"
sed -Ei 's/^[#]*\s*MaxStartups.*/MaxStartups 10:30:60/' /etc/ssh/sshd_config

# Ensure SSH MaxSessions is set to 10 or less
logger -p syslog.info -i " $FNAME: Ensure SSH MaxSessions is set to 10 or less"
sed -Ei 's/^[#]*\s*MaxSessions.*/MaxSessions 10/' /etc/ssh/sshd_config

# Ensure SSH LoginGraceTime is set to one minute or less
logger -p syslog.info -i " $FNAME: Ensure SSH LoginGraceTime is set to one minute or less"
sed -Ei 's/^[#]*\s*LoginGraceTime.*/LoginGraceTime 60/' /etc/ssh/sshd_config

# Ensure SSH Idle Timeout Interval is configured
logger -p syslog.info -i " $FNAME: Ensure SSH Idle Timeout Interval is configured"
sed -Ei 's/^[#]*\s*ClientAliveInterval.*/ClientAliveInterval 15/' /etc/ssh/sshd_config
sed -Ei 's/^[#]*\s*ClientAliveCountMax.*/ClientAliveCountMax 3/' /etc/ssh/sshd_config

```

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Octobre 8, 2026, 7:13 UTC](https://www.debian-fr.org/t/pare-feu-indispensable/92934/42 "2026-10-08T19:13:21Z")

</div>

Ah, là tu parles d’une machine multi utilisateurs où tu anticipes les erreurs des utilisateurs et potentiellement leur malveillance. Mais par exemple pour moi, le X11 forwarding, le TCP forwarding (dans les 2 sens d’ailleurs) sont essentiels. Cela dit les failles actuelles de openssh sont surtout des deni de service, sur une machine perso ça ne me stresse pas trop, au contraire d’un serveur  
[de mémoire il y a eu surtout les clefs foireuses de debian et une faille type «race condition» permettant un accès root il y a quelques années comme failles dangereuses]

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Octobre 8, 2026, 7:19 UTC](https://www.debian-fr.org/t/pare-feu-indispensable/92934/43 "2026-10-08T19:19:36Z")

</div>

> [@fran.b](#):
>
> Ah, là tu parles d’une machine multi utilisateurs où tu anticipes les erreurs des utilisateurs et potentiellement leur malveillance.

Je considère toute machine de cette façon, même si je suis le seul à l’utiliser.

> [@fran.b](#):
>
> Mais par exemple pour moi, le X11 forwarding, le TCP forwarding (dans les 2 sens d’ailleurs) sont essentiels.

Je n’en fait jamais en dehors d’un tunnel. X11 n’est pas suffisamment fiable pour passer sur un réseau.

Une simple question sur duckduckgo AI:

```auto
Voici les principales attaques possibles liées à une mauvaise configuration d'OpenSSH (Secure Shell) :
1. Attaques par force brute (Brute Force)

    Description : Tentative de deviner les mots de passe ou les clés privées en testant systématiquement des combinaisons.
    Vulnérabilités :
        Utilisation de mots de passe faibles.
        Autorisation de l'authentification par mot de passe (PasswordAuthentication yes).
        Pas de restriction sur le nombre de tentatives (MaxAuthTries trop élevé).
    Solutions :
        Désactiver l'authentification par mot de passe (PasswordAuthentication no).
        Utiliser des clés SSH (RSA/ECDSA/Ed25519) avec passphrase forte.
        Limiter les tentatives (MaxAuthTries 3).
        Utiliser des outils comme Fail2Ban pour bloquer les IP suspectes.

2. Attaques par clé SSH faible ou mal configurée

    Description : Exploitation de clés SSH mal générées ou obsolètes.
    Vulnérabilités :
        Utilisation de clés RSA < 2048 bits (vulnérable aux attaques quantiques ou par factorisation).
        Clés DSA (obsolètes et non sécurisées).
        Clés partagées ou stockées dans des emplacements non sécurisés (~/.ssh/id_rsa sans permissions strictes).
    Solutions :
        Utiliser des clés Ed25519 (recommandé) ou RSA 4096 bits.
        Restreindre les permissions des clés (chmod 600 ~/.ssh/id_ed25519).
        Désactiver les algorithmes faibles (HostKeyAlgorithms dans /etc/ssh/sshd_config).

3. Attaques par rebond (SSH Tunneling / Port Forwarding)

    Description : Utilisation d'un serveur SSH compromis pour relayer des connexions vers d'autres machines.
    Vulnérabilités :
        Autorisation du port forwarding (AllowTcpForwarding yes).
        Pas de restriction sur les utilisateurs autorisés à créer des tunnels.
    Solutions :
        Désactiver le port forwarding (AllowTcpForwarding no).
        Restreindre les utilisateurs avec AllowUsers ou Match dans sshd_config.

4. Attaques par usurpation (Man-in-the-Middle - MITM)

    Description : Interception des communications entre client et serveur SSH.
    Vulnérabilités :
        Pas de vérification stricte des clés hôtes (StrictHostKeyChecking no).
        Utilisation de serveurs SSH avec des clés faibles ou non vérifiées.
    Solutions :
        Activer StrictHostKeyChecking yes et UserKnownHostsFile pour valider les clés.
        Utiliser des clés hôtes fortes (Ed25519 ou RSA 4096 bits).

5. Attaques par déni de service (DoS)

    Description : Saturation du service SSH pour le rendre inaccessible.
    Vulnérabilités :
        Pas de limitation des connexions simultanées (MaxStartups trop élevé).
        Pas de protection contre les attaques par flooding.
    Solutions :
        Limiter les connexions (MaxStartups 10:30:60).
        Utiliser un pare-feu (iptables/nftables) pour bloquer les IP suspectes.
        Désactiver les versions obsolètes de SSH (Protocol 2 uniquement).

6. Attaques par escalade de privilèges

    Description : Exploitation de failles pour obtenir des droits root.
    Vulnérabilités :
        Autorisation de PermitRootLogin yes.
        Pas de restriction sur les commandes exécutables (ForceCommand mal configuré).
    Solutions :
        Désactiver PermitRootLogin (utiliser sudo à la place).
        Restreindre les commandes avec ForceCommand ou Command dans authorized_keys.

7. Attaques par fuite d'informations

    Description : Récupération d'informations sensibles via des fuites de configuration.
    Vulnérabilités :
        Affichage de bannières ou de versions vulnérables (PrintMotd yes).
        Fichiers de logs mal sécurisés (/var/log/auth.log accessibles).
    Solutions :
        Désactiver PrintMotd ou personnaliser la bannière.
        Restreindre les permissions des logs (chmod 600 /var/log/auth.log).

8. Attaques par rebond de session (SSH Hijacking)

    Description : Prise de contrôle d'une session SSH active.
    Vulnérabilités :
        Pas de protection contre les sessions persistantes (ClientAliveInterval mal configuré).
    Solutions :
        Configurer ClientAliveInterval 300 et ClientAliveCountMax 2 pour tuer les sessions inactives.

9. Attaques par injection de commandes

    Description : Exécution de commandes arbitraires via des variables d'environnement.
    Vulnérabilités :
        Autorisation de AcceptEnv pour des variables dangereuses (ex: LD_PRELOAD).
    Solutions :
        Désactiver AcceptEnv ou limiter les variables autorisées.

10. Attaques par configuration par défaut dangereuse

    Description : Utilisation de paramètres OpenSSH par défaut non sécurisés.
    Exemples :
        PermitEmptyPasswords yes (autorise les mots de passe vides).
        X11Forwarding yes (risque de fuite d'affichage graphique).
    Solutions :
        Toujours vérifier /etc/ssh/sshd_config et appliquer les bonnes pratiques.

Bonnes pratiques pour sécuriser OpenSSH

    Désactiver l'authentification par mot de passe :
    ini

    PasswordAuthentication no

    Utiliser des clés SSH fortes :
    bash

    ssh-keygen -t ed25519 -a 100 # Génération d'une clé Ed25519

    Restreindre les utilisateurs :
    ini

    AllowUsers user1 user2

    Désactiver les fonctionnalités inutiles :
    ini

    PermitRootLogin no
    X11Forwarding no
    AllowTcpForwarding no

    Configurer les timeouts :
    ini

    ClientAliveInterval 300
    ClientAliveCountMax 2

    Mettre à jour OpenSSH :
    bash

    sudo apt update && sudo apt upgrade openssh-server

Outils pour auditer la configuration

    sshd -T : Affiche la configuration active.
    ssh-audit : Outil pour tester la sécurité d'OpenSSH.
    `lynis : Audit de sécurité système.

En appliquant ces mesures, vous réduisez significativement les risques liés à une mauvaise configuration d'OpenSSH.

```

Et au passage avec ssh\_audit sur une machine chez moi (pas la mieux protégé, mais ssh n’est pas activé par défaut):

```auto
~# ssh-audit -4 -p 22022 localhost
# general
(gen) banner: SSH-2.0-OpenSSH_10.0p2 Debian-7+deb13u4
(gen) software: OpenSSH 10.0p2
(gen) compatibility: OpenSSH 9.9+, Dropbear SSH 2020.79+
(gen) compression: enabled (zlib@openssh.com)

# key exchange algorithms
(kex) mlkem768x25519-sha256 -- [info] available since OpenSSH 9.9
                                          `- [info] hybrid key exchange based on post-quantum resistant algorithm and proven conventional X25519 algorithm
(kex) sntrup761x25519-sha512 -- [info] available since OpenSSH 9.9
                                          `- [info] default key exchange since OpenSSH 9.9
                                          `- [info] hybrid key exchange based on post-quantum resistant algorithm and proven conventional X25519 algorithm
(kex) sntrup761x25519-sha512@openssh.com -- [info] available since OpenSSH 8.5
                                          `- [info] default key exchange from OpenSSH 9.0 to 9.8
                                          `- [info] hybrid key exchange based on post-quantum resistant algorithm and proven conventional X25519 algorithm
(kex) curve25519-sha256 -- [info] available since OpenSSH 7.4, Dropbear SSH 2018.76
                                          `- [info] default key exchange from OpenSSH 7.4 to 8.9
(kex) curve25519-sha256@libssh.org -- [info] available since OpenSSH 6.4, Dropbear SSH 2013.62
                                          `- [info] default key exchange from OpenSSH 6.5 to 7.3
(kex) ecdh-sha2-nistp256 -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                          `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384 -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                          `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp521 -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                          `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ext-info-s -- [info] available since OpenSSH 9.6
                                          `- [info] pseudo-algorithm that denotes the peer supports RFC8308 extensions
(kex) kex-strict-s-v00@openssh.com -- [info] pseudo-algorithm that denotes the peer supports a stricter key exchange method as a counter-measure to the Terrapin attack (CVE-2023-48795)

# host-key algorithms
(key) rsa-sha2-512 (3072-bit) -- [info] available since OpenSSH 7.2
(key) rsa-sha2-256 (3072-bit) -- [info] available since OpenSSH 7.2, Dropbear SSH 2020.79
(key) ecdsa-sha2-nistp256 -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                          `- [warn] using weak random number generator could reveal the key
                                          `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(key) ssh-ed25519 -- [info] available since OpenSSH 6.5, Dropbear SSH 2020.79

# encryption algorithms (ciphers)
(enc) chacha20-poly1305@openssh.com -- [info] available since OpenSSH 6.5, Dropbear SSH 2020.79
                                          `- [info] default cipher since OpenSSH 6.9
(enc) aes256-gcm@openssh.com -- [info] available since OpenSSH 6.2
(enc) aes128-gcm@openssh.com -- [info] available since OpenSSH 6.2
(enc) aes256-ctr -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr -- [info] available since OpenSSH 3.7
(enc) aes128-ctr -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52

# message authentication code algorithms
(mac) hmac-sha2-256-etm@openssh.com -- [info] available since OpenSSH 6.2
(mac) hmac-sha2-512-etm@openssh.com -- [info] available since OpenSSH 6.2
(mac) hmac-sha1-etm@openssh.com -- [fail] using broken SHA-1 hash algorithm
                                          `- [info] available since OpenSSH 6.2
(mac) umac-128@openssh.com -- [warn] using encrypt-and-MAC mode
                                          `- [info] available since OpenSSH 6.2
(mac) hmac-sha2-256 -- [warn] using encrypt-and-MAC mode
                                          `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha2-512 -- [warn] using encrypt-and-MAC mode
                                          `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha1 -- [fail] using broken SHA-1 hash algorithm
                                          `- [warn] using encrypt-and-MAC mode
                                          `- [info] available since OpenSSH 2.1.0, Dropbear SSH 0.28

# fingerprints
(fin) ssh-ed25519: SHA256:Eou/UP9vVXgP7XCPExBWaDhpOgxbMNIqI1zpxTHJR9E
(fin) ssh-rsa: SHA256:2Mtzzzo+rZMxJ07ldB3AbUeiDb3WukotXkct5VTUJxY

# additional info
(nfo) Be aware that, while this target properly supports the strict key exchange method (via the kex-strict-?-v00@openssh.com marker) needed to protect against the Terrapin vulnerability (CVE-2023-48795), all peers must also support this feature as well, otherwise the vulnerability will still be present. The following algorithms would allow an unpatched peer to create vulnerable SSH channels with this target: chacha20-poly1305@openssh.com. If any CBC ciphers are in this list, you may remove them while leaving the *-etm@openssh.com MACs in place; these MACs are fine while paired with non-CBC cipher types.

```

> [@antek](#):
>
> _ **Zargos** _ , arrête de faire peur aux gens . . . 🥴

🤣 et c’est juste avec les mauvaises configurations.

[Page précédente](https://www.debian-fr.org/t/pare-feu-indispensable/92934.md?page=2)
