Modifier le port SSH | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Modifier le port SSH

La modification du port SSH par défaut (22) réduit l’exposition aux analyses automatisées et aux attaques par force brute basiques, mais ne remplace pas les mesures de sécurité appropriées.

Warning

Avant d’effectuer toute modification, assurez-vous qu’une session SSH active est ouverte. Ne la fermez pas tant que vous n’avez pas vérifié que le nouveau port fonctionne. En cas de problème, vous risquez de perdre l’accès au serveur.

Choisir un numéro de port

Choisissez un numéro de port supérieur à 1024. Les ports compris entre 49152 et 65535 sont moins susceptibles d’entrer en conflit avec d’autres services connus. Évitez les alternatives couramment utilisées telles que 2222 ou 22222, car elles sont fréquemment ciblées par des scanners automatisés. Ce guide utilise 22777 comme exemple.

Sauvegarder le fichier de configuration

Avant d’effectuer toute modification, créez une sauvegarde du fichier de configuration SSH :

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Modifier le port SSH sur Ubuntu et Debian

À partir de Debian 12 et de certaines versions plus récentes d’Ubuntu (22.04+), SSH peut utiliser par défaut l’activation de socket systemd. Dans ce cas, modifier uniquement la directive Port dans sshd_config ne suffit souvent pas.

Commencez par vérifier si l’activation de socket est active :

systemctl is-active ssh.socket

Si la commande renvoie active, configurez le socket SSH pour utiliser le nouveau port.

Créez une surcharge systemd pour le socket SSH :

systemctl edit ssh.socket

Ajoutez le contenu suivant :

[Socket] ListenStream= ListenStream=22777

La ligne vide ListenStream= supprime le port par défaut (22). Sans cette ligne, SSH peut continuer à écouter à la fois sur le port 22 et sur le nouveau port.

Pour plus de fiabilité, définissez également le port dans la configuration SSH. Cela aide le générateur systemd et permet de conserver le paramètre lors des mises à jour d’OpenSSH :

mkdir -p /etc/ssh/sshd_config.d echo "Port 22777" | tee /etc/ssh/sshd_config.d/10-port.conf

Info

Pour une meilleure compatibilité, vous pouvez également spécifier explicitement les adresses :

[Socket] ListenStream= ListenStream=0.0.0.0:22777 ListenStream=[::]:22777

Enregistrez la configuration et appliquez les modifications :

systemctl daemon-reload systemctl restart ssh.socket systemctl restart ssh

Vérifiez que le service fonctionne :

systemctl status ssh.socket

Info

Sur certains systèmes plus récents, tels qu’Ubuntu 24.04+, le générateur systemd peut lire automatiquement le port depuis sshd_config. Dans ce cas, il peut suffire de modifier directement Port, puis d’exécuter systemctl daemon-reload suivi de systemctl restart ssh.socket. La méthode de surcharge décrite ci-dessus fonctionne sur toutes les versions.

Anciennes versions d’Ubuntu et Debian

Sur les versions d’Ubuntu antérieures à 22.04 et les versions de Debian antérieures à 12, SSH n’est pas géré par l’activation de socket. Ouvrez le fichier de configuration SSH :

nano /etc/ssh/sshd_config

Recherchez la ligne suivante :

Port 22

Décommentez-la et remplacez 22 par le numéro de port choisi :

Port 22777

Enregistrez le fichier et vérifiez la configuration :

sshd -t

Si la commande n’est pas trouvée, utilisez :

/usr/sbin/sshd -t

Si la commande ne renvoie aucune sortie, la configuration est valide. Redémarrez le service SSH :

systemctl restart ssh

Désactiver l’activation de socket

Si vous préférez gérer SSH via le service traditionnel plutôt que via le socket, vous pouvez désactiver l’activation de socket :

systemctl disable --now ssh.socket systemctl enable --now ssh

Ensuite, modifiez sshd_config comme décrit ci-dessus et redémarrez SSH avec :

systemctl restart ssh

Modifier le port SSH sur AlmaLinux, Rocky Linux et CentOS

Modifier le fichier de configuration SSH

Ouvrez le fichier de configuration SSH :

nano /etc/ssh/sshd_config

Recherchez la ligne suivante :

Port 22

Décommentez-la et remplacez 22 par le numéro de port choisi :

Port 22777

Enregistrez le fichier et vérifiez la configuration :

/usr/sbin/sshd -t

Si la commande ne renvoie aucune sortie, la configuration est valide. Redémarrez le service SSH :

systemctl restart sshd

Vérifiez que le service fonctionne :

systemctl status sshd

Autoriser le port dans SELinux

Sur les systèmes où SELinux est activé, vous devez également autoriser le nouveau port dans la politique SELinux. Pour vérifier quels ports sont actuellement autorisés pour SSH, exécutez :

semanage port -l | grep ssh

Ajoutez ou modifiez ensuite le nouveau port :

semanage port -a -t ssh_port_t -p tcp 22777 || semanage port -m -t ssh_port_t -p tcp 22777

Si semanage n’est pas installé, installez le paquet requis :

dnf install policycoreutils-python-utils

Configurer le pare-feu

Autorisez toujours le nouveau port dans le pare-feu avant de redémarrer SSH. Si vous redémarrez SSH en premier, vous risquez de perdre l’accès au serveur.

UFW

ufw allow 22777/tcp ufw reload ufw status

firewalld

firewall-cmd --permanent --zone=public --add-port=22777/tcp firewall-cmd --reload

iptables

iptables -I INPUT -p tcp --dport 22777 -j ACCEPT iptables-save > /etc/iptables/rules.v4

Info

La commande iptables-save enregistre les règles dans un fichier uniquement si iptables-persistent est installé et configuré sur le système. Pour l’installer, exécutez :

apt install -y iptables-persistent

Vérifiez que votre distribution utilise ce fichier avant de compter sur lui pour la persistance des règles. Notez que les systèmes modernes peuvent utiliser nftables à la place d’iptables. Si vous utilisez nftables, ajoutez une règle autorisant le nouveau port dans votre configuration nftables.

Configurer Fail2Ban

Si Fail2Ban est configuré sur le serveur, mettez à jour le port SSH dans sa configuration. Ouvrez /etc/fail2ban/jail.local ou le fichier approprié dans /etc/fail2ban/jail.d/ et définissez :

port = 22777

Après avoir mis à jour la configuration, redémarrez Fail2Ban :

systemctl restart fail2ban

Vérifier le nouveau port

Vérifiez que SSH écoute sur le nouveau port :

ss -tlnp | grep :22777

Vous pouvez également afficher tous les écouteurs liés à SSH :

ss -tlnp | grep ssh

Sur les anciens systèmes, utilisez plutôt netstat :

netstat -tlnp | grep :22777

Vous pouvez également vérifier directement l’état du service.

Sur Ubuntu et Debian :

systemctl status ssh.socket

Sur AlmaLinux, Rocky Linux et CentOS :

systemctl status sshd

Sans fermer votre session SSH actuelle, ouvrez une nouvelle fenêtre de terminal et connectez-vous en utilisant le nouveau port :

ssh root@YOUR_SERVER_IP -p 22777

Si la connexion réussit, vous pouvez fermer l’ancienne session. Supprimez ensuite le port 22 des règles du pare-feu s’il n’est plus nécessaire.

Pour UFW :

ufw delete allow 22/tcp ufw reload

Pour firewalld :

firewall-cmd --permanent --zone=public --remove-port=22/tcp firewall-cmd --reload

Warning

Ne supprimez pas le port 22 du pare-feu avant d’avoir vérifié que le nouveau port fonctionne. Si la nouvelle connexion échoue, utilisez la session SSH ouverte pour résoudre le problème ou annuler les modifications :

systemctl revert ssh.socket cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config rm -f /etc/ssh/sshd_config.d/10-port.conf systemctl daemon-reload systemctl restart ssh.socket

Si l’activation de socket est désactivée, remplacez les deux dernières commandes par :

systemctl restart ssh

Conclusion

Modifier le port SSH par défaut de 22 vers un port personnalisé peut réduire l’exposition aux analyses automatisées et aux tentatives d’attaque par force brute basiques. Cependant, le changement de port doit être considéré comme une mesure de sécurité supplémentaire et non comme un remplacement du renforcement approprié de la sécurité SSH.

Gardez toujours votre session SSH actuelle ouverte jusqu’à ce que vous vous soyez connecté avec succès au nouveau port. Une fois la nouvelle connexion vérifiée, vous pouvez fermer l’ancienne session en toute sécurité et supprimer le port 22 du pare-feu s’il n’est plus nécessaire.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA