Waarom een poortklop de deur niet opent
Een klop bereikt de server nooit, bereikt deze in een vorm die de daemon niet accepteert, of opent de deur voor een adres dat je niet gebruikt. Loop de lijst van boven naar beneden door — deze is gerangschikt op hoe vaak elke oorzaak voorkomt.
1. De deur ging open voor een ander adres
De firewall opent de poort voor het bronadres dat de server zag. Als je via IPv6 hebt geklopt en SSH vervolgens via IPv4 verbinding maakt — of andersom — staat de deur open voor een adres dat je niet gebruikt. Mobiele data, NAT van de provider en VPNs wijzigen het adres ook.
Vergelijk het adres dat Secret Knock op het beginscherm toont ("Je klopt vanaf …") met het adres in het logboek van de server, en zet IPv4 of IPv6 voor de deur vast als die adressen verschillen.
2. De pakketten bereiken de server niet
Hotel-, kantoor- en mobiele netwerken blokkeren soms ongebruikelijke poorten, en een cloudfirewall vóór de server laat pakketten vallen voordat knockd of fwknopd ze ziet. Bekijk het verkeer op de server terwijl je klopt:
# knockd (UseSyslog): every recognised step and the command it ran
sudo journalctl -u knockd -f
# Do the packets reach the server at all? (use your interface and ports)
sudo tcpdump -ni eth0 'tcp port 7311 or tcp port 8822 or udp port 9133'
# fwknopd in the foreground with verbose output
sudo fwknopd -f -v 3. De reeks komt in de verkeerde vorm aan
- 1Opnieuw verzonden SYNs: wanneer een TCP-klop geen antwoord krijgt, verzendt het besturingssysteem van de client dezelfde SYN opnieuw. knockd 0.8 stelt de reeks opnieuw in bij zo'n herhaling. Secret Knock verzendt elke TCP-klop als één SYN en beëindigt de poging meteen; andere clients doen dat mogelijk niet.
- 2Timing: alle stappen moeten binnen seq_timeout en in de juiste volgorde aankomen. Voeg vóór een stap een korte vertraging toe als een router tussenin pakketten opnieuw ordent.
- 3Protocol: een UDP-stap moet als UDP worden verzonden, een TCP-stap als TCP — controleer elke stap aan de hand van knockd.conf.
- 4tcpflags = syn zorgt ervoor dat knockd TCP-pakketten zonder de SYN-vlag negeert. Zonder deze instelling tellen de andere pakketten van een verbinding met dezelfde poort ook als treffers en kunnen ze de reeks verstoren.
4. fwknop: sleutels, klokken en herhalingen
- 1Beide sleutels moeten overeenkomen met access.conf: de Rijndael-sleutel en de HMAC-sleutel, met dezelfde digest (standaard SHA-256).
- 2fwknopd weigert pakketten die ouder zijn dan MAX_SPA_PACKET_AGE (standaard 120 seconden), dus een apparaatklok die sterk afwijkt zorgt ervoor dat elk pakket er oud uitziet.
- 3Elk SPA-pakket kan slechts eenmaal worden gebruikt; fwknopd laat een herhaald pakket opzettelijk vallen.
- 4Als je via HTTP klopt, moet iets TCP-verbindingen op die poort accepteren, anders wordt het verzoek nooit verzonden.
5. De deur gaat open, maar SSH werkt nog steeds niet
- 1Regelvolgorde: de regel die de daemon toevoegt, moet vóór de regel staan die de poort blokkeert — iptables -A voegt deze na een bestaande DROP toe en de regel komt nooit overeen.
- 2Het tijdvenster: cmd_timeout of FW_ACCESS_TIMEOUT sloot de deur voordat SSH verbinding maakte. Maak binnen het venster verbinding; bestaande sessies blijven werken als je firewall bestaande verbindingen accepteert.
- 3De poortcontrole van Secret Knock na de klop laat zien of de poort überhaupt antwoordde, afzonderlijk van SSH-authenticatie.
Alle voorbeelden op GitHub → Elke configuratie op deze pagina, klaar om te kopiëren: github.com/mobilcomm/secretknock-examples (publiek domein).
Vragen
Hoe zie ik wat de app daadwerkelijk heeft verzonden?
De geschiedenis van de deur toont elke klop met de tijd, het resultaat en de adresfamilie, en de editor toont dezelfde klop als een terminalopdracht die je vanaf een computer kunt uitvoeren om te vergelijken.
Handleidingen voor je configuratie
- Port knocking uitgelegd →
- knockd op iPhone, iPad en Mac →
- fwknop SPA op iPhone, Mac en Apple Watch →
- MikroTik port knocking →
- DrayTek Vigor-port knocking →
- Verberg SSH achter port knocking →
- Port knocking op Apple Watch →
- voorbeelden van knockd.conf →
- fwknop-server instellen →
- Port knocking, VPN of fail2ban? →