Masquer SSH derrière le port knocking
Un port SSH ouvert reçoit des tentatives de connexion provenant de tout Internet. Le port knocking maintient le port fermé jusqu’à ce que vous prouviez que vous connaissez un secret — puis l’ouvre uniquement pour votre adresse, pendant quelques secondes.
Avec knockd et nftables
Bloquez SSH par défaut et acceptez-le uniquement depuis les adresses d’un ensemble avec expiration. knockd ajoute l’adresse qui frappe à cet ensemble ; nftables la supprime lorsque le délai expire, et la session SSH établie continue de fonctionner.
table inet filter {
set knocked4 {
type ipv4_addr
flags timeout
}
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
tcp dport 22 ip saddr @knocked4 accept
}
} La section knockd qui remplit l’ensemble :
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s } Séparer les accès permanents
Si vous autorisez aussi certaines adresses de façon permanente, conservez-les dans un ensemble distinct sans expiration. L’ajout d’une adresse déjà présente dans un ensemble avec expiration ne réinitialise pas son délai ; mélanger les deux types d’entrée dans un même ensemble peut donc vous empêcher d’accéder au serveur lorsque le délai expire.
Ou utilisez fwknop
SPA fwknop est plus robuste qu’une séquence : un paquet chiffré et authentifié, qui ne peut pas être rejoué. Consultez le guide fwknop.
De votre iPhone à SSH
- 1Maintenez le heurtoir en laiton appuyé. Secret Knock vérifie que le port 22 répond et affiche combien de temps il reste ouvert.
- 2Ouvrir SSH ouvre votre app SSH avec un lien ssh:// vers le serveur.
- 3L’option « Garder la porte ouverte tant que son écran est allumé » relance la frappe peu avant la fin du délai, lorsque la porte est affichée à l’écran.
Tous les exemples sur GitHub → Toutes les configurations de cette page, prêtes à copier : github.com/mobilcomm/secretknock-examples (domaine public).
Questions
Est-ce un remplacement des clés SSH ?
Non. Le port knocking masque le service ; conservez des clés SSH robustes et désactivez également les connexions par mot de passe.
Guides pour votre configuration
- Le port knocking expliqué →
- knockd sur iPhone, iPad et Mac →
- SPA fwknop sur iPhone, Mac et Apple Watch →
- Port knocking MikroTik →
- Port knocking DrayTek Vigor →
- Port knocking sur Apple Watch →
- Pourquoi une frappe n’ouvre pas le port →
- Exemples de knockd.conf →
- configuration du serveur fwknop →
- Port knocking, VPN ou fail2ban ? →