Per què una trucada de port no obre la porta
Una trucada o bé no arriba mai al servidor, o hi arriba amb un format que el dimoni no accepta, o obre la porta per a una adreça que no feu servir. Reviseu la llista des del principi: està ordenada segons la freqüència amb què apareix cada causa.
1. La porta s’ha obert per a una altra adreça
El tallafoc obre el port per a l’adreça d’origen que ha vist el servidor. Si heu trucat mitjançant IPv6 i SSH es connecta per IPv4 —o a l’inrevés—, la porta estarà oberta per a una adreça que no feu servir. Les dades mòbils, el NAT de l’operador i les VPN també poden canviar l’adreça.
Compareu l’adreça que Secret Knock mostra a la pantalla d’inici («Truqueu des de…») amb l’adreça del registre del servidor, i fixeu IPv4 o IPv6 per a la porta si són diferents.
2. Els paquets no arriben al servidor
Les xarxes d’hotels, oficines i dades mòbils de vegades bloquegen ports poc habituals, i un tallafoc al núvol davant del servidor descarta els paquets abans que knockd o fwknopd els vegi. Superviseu el trànsit al servidor mentre truqueu:
# 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. La seqüència arriba amb un format incorrecte
- 1SYN retransmesos: quan una trucada TCP no rep resposta, el sistema operatiu del client torna a enviar el mateix SYN. knockd 0.8 reinicia la seqüència amb aquesta repetició. Secret Knock envia cada trucada TCP com un únic SYN i atura l’intent immediatament; és possible que altres clients no ho facin.
- 2Temporització: tots els passos han d’arribar dins de seq_timeout i en ordre. Afegiu un retard breu abans d’un pas si un encaminador intermedi reordena els paquets.
- 3Protocol: un pas UDP s’ha d’enviar com a UDP i un pas TCP com a TCP; compareu cada pas amb knockd.conf.
- 4tcpflags = syn fa que knockd ignori els paquets TCP sense l’indicador SYN. Sense això, els altres paquets d’una connexió al mateix port també compten com a encerts i poden interrompre la seqüència.
4. fwknop: claus, rellotges i repeticions
- 1Les dues claus han de coincidir amb access.conf: la clau Rijndael i la Clau HMAC, amb el mateix resum (SHA-256 per defecte).
- 2fwknopd rebutja paquets amb una antiguitat superior a MAX_SPA_PACKET_AGE (120 segons per defecte), de manera que un rellotge del dispositiu molt desajustat fa que tots els paquets semblin antics.
- 3Cada paquet SPA només es pot utilitzar una vegada; fwknopd descarta deliberadament un paquet repetit.
- 4Si truqueu mitjançant HTTP, hi ha d’haver algun servei que accepti connexions TCP en aquest port; altrament, la sol·licitud no s’envia mai.
5. La porta s’obre, però SSH continua fallant
- 1Ordre de les regles: la regla que afegeix el dimoni ha d’anar abans de la regla que descarta els paquets destinats al port; iptables -A afegeix la regla després d’un DROP existent i, per tant, aquesta regla no arriba a coincidir amb cap paquet.
- 2La finestra: cmd_timeout o FW_ACCESS_TIMEOUT ha tancat la porta abans que SSH es connectés. Connecteu-vos dins de la finestra; les sessions establertes continuen funcionant si el tallafoc accepta connexions establertes.
- 3La comprovació de ports de Secret Knock després de la trucada indica si el port ha respost, independentment de l’autenticació SSH.
Tots els exemples a GitHub → Totes les configuracions d’aquesta pàgina, a punt per copiar: github.com/mobilcomm/secretknock-examples (domini públic).
Preguntes
Com puc veure què ha enviat realment l’app?
L’historial de la porta mostra cada trucada amb l’hora, el resultat i la família d’adreces, i l’editor mostra la mateixa trucada com una ordre de terminal que podeu executar des d’un ordinador per comparar-la.
Guies per a la vostra configuració
- Port knocking explicat →
- knockd a l’iPhone, l’iPad i el Mac →
- fwknop SPA a l’iPhone, el Mac i l’Apple Watch →
- Trucada a ports de MikroTik →
- Port knocking de DrayTek Vigor →
- Amaga SSH darrere del port knocking →
- Trucada de ports a l’Apple Watch →
- Exemples de knockd.conf →
- configuració del servidor fwknop →
- Trucada de ports, VPN o fail2ban? →