L'ordre sûr
sudo ufw allow OpenSSH
sudo ufw show added
sudo ufw enable
sudo ufw status
Tant qu'ufw est désactivé, ufw status n'affiche que Status: inactive et cache vos règles. C'est pourquoi on utilise show added pour les vérifier.
Sous SSH, ufw enable avertit que cela peut perturber les connexions et demande confirmation. Le manuel prévient que l'activation peut couper les connexions existantes. Dans notre test, la session ouverte a continué de fonctionner, mais ne comptez pas là-dessus.
Ce qui se passe si vous vous trompez
La politique par défaut est de refuser le trafic entrant. Nous avons activé ufw sans règle SSH, et la connexion suivante a échoué ainsi :
ssh: connect to host server port 22: Connection timed out
Votre session ouverte est votre retour : ajoutez la règle depuis là. Si elle a disparu, il vous faut la console de votre hébergeur. Un pare-feu cloud devant le serveur est une chose distincte, et ufw ne peut pas l'ouvrir.
Un filet de sécurité pour les serveurs distants
Avant d'activer ufw, programmez une commande qui le désactive à nouveau :
sudo systemd-run --on-active=5min --unit=ufw-undo ufw --force disable
sudo ufw enable
Testez une nouvelle connexion depuis un autre terminal. Si elle marche, annulez le minuteur :
sudo systemctl stop ufw-undo.timer
Si vous êtes coupé, attendez environ six minutes, car le minuteur peut avoir jusqu'à une minute de retard, et ufw se désactive tout seul.
Quelle règle utiliser
| Vous voulez | Commande |
|---|---|
| Port standard | sudo ufw allow OpenSSH |
| Pareil, sans le profil | sudo ufw allow 22/tcp |
| Un autre port | sudo ufw allow 2222/tcp |
| Seulement depuis une adresse | sudo ufw allow from 203.0.113.10 to any port 22 proto tcp |
| Limiter les connexions répétées | sudo ufw limit OpenSSH |
Le profil OpenSSH désigne toujours le port 22. Pour le voir, lancez sudo ufw app info OpenSSH. Il vient avec le paquet openssh-server : sans ce paquet, le nom est inconnu.
Ce que fait limit
ufw limit refuse une adresse qui ouvre 6 connexions ou plus en 30 secondes. Dans notre test, cinq connexions de suite ont fonctionné et la sixième a échoué ainsi :
ssh: connect to host server port 22: Connection refused
Cela vous touche aussi. Une boucle de commandes scp ou une exécution d'Ansible qui ouvre beaucoup de connexions le déclenchera, et le message donne l'impression que sshd s'est arrêté. Réutiliser une seule connexion aide : voir le multiplexage SSH.
Cela ralentit les essais de mots de passe, mais ne sait pas si une connexion a réussi. Pour cela, utilisez fail2ban. La vraie protection contre les essais est de ne pas avoir de connexion par mot de passe.
Changer le port SSH
Ajoutez d'abord la nouvelle règle, et ne retirez l'ancienne qu'après vous être connecté sur le nouveau port :
sudo ufw allow 2222/tcp
# change the port in sshd and test it
sudo ufw delete allow OpenSSH
Toute la procédure, y compris le socket sur les Ubuntu récentes, est dans comment changer le port SSH.
Supprimer une règle
Par numéro, ou en répétant la règle après delete :
sudo ufw status numbered
sudo ufw delete 2
sudo ufw delete allow 22/tcp
Les règles sont listées deux fois, pour IPv4 et IPv6, et les numéros se décalent après chaque suppression : listez-les à nouveau avant d'en supprimer une autre. De plus, une règle créée avec allow OpenSSH et une créée avec allow 22/tcp sont des entrées distinctes, vous pouvez donc vous retrouver avec les deux.
Questions
Comment vérifier que ufw autorise SSH ?
Quand ufw est actif, lancez sudo ufw status et cherchez 22/tcp, OpenSSH ou votre port avec ALLOW. Quand ufw est inactif, status masque les règles : utilisez sudo ufw show added.
Quelle différence entre ufw allow ssh et ufw allow OpenSSH ?
ufw allow ssh utilise le port de /etc/services et s'affiche comme 22/tcp. ufw allow OpenSSH utilise le profil d'application installé par le paquet openssh-server, aussi pour 22/tcp. Les deux marchent. Aucun ne suit un port que vous avez changé dans sshd_config.
ufw protège-t-il les ports publiés par Docker ?
Non. La documentation de Docker dit que les ports de conteneurs publiés contournent les règles d'ufw.