Oculta SSH tras llamadas a puertos
Un puerto SSH abierto recibe intentos de inicio de sesión de todo Internet. Las llamadas a puertos mantienen el puerto cerrado hasta que demuestras que conoces un secreto; después, lo abren solo para tu dirección durante unos segundos.
Con knockd y nftables
Descarta SSH de forma predeterminada y acéptalo solo desde direcciones incluidas en un conjunto con un tiempo de espera. knockd añade al conjunto la dirección que llama; nftables la elimina cuando vence el tiempo de espera, y la sesión SSH establecida sigue funcionando.
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 sección de knockd que rellena el conjunto:
[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 } Mantén separado el acceso permanente
Si también permites algunas direcciones de forma permanente, mantenlas en un conjunto independiente sin tiempo de espera. Añadir una dirección que ya está en un conjunto con tiempo de espera no restablece dicho tiempo, por lo que mezclar ambos tipos de entrada en un único conjunto puede dejarte sin acceso cuando se agote el temporizador.
O usa fwknop
SPA de fwknop es más seguro que una secuencia: un paquete cifrado y autenticado que no se puede reutilizar. Consulta la guía de fwknop.
Desde tu iPhone a SSH
- 1Mantén pulsado el llamador de latón. Secret Knock comprueba que el puerto 22 responde y muestra cuánto tiempo permanece abierto.
- 2Abrir SSH abre tu app de SSH con un enlace ssh:// para el servidor.
- 3Mantener abierta vuelve a llamar poco antes de que termine el periodo, mientras la puerta está en pantalla.
Todos los ejemplos en GitHub → Todas las configuraciones de esta página, listas para copiar: github.com/mobilcomm/secretknock-examples (dominio público).
Preguntas
¿Sustituye esto a las claves SSH?
No. Las llamadas a puertos ocultan el servicio; también debes conservar claves SSH seguras y desactivar los inicios de sesión con contraseña.
Guías para tu configuración
- Port knocking explicado →
- knockd en iPhone, iPad y Mac →
- SPA de fwknop en iPhone, Mac y Apple Watch →
- Port knocking de MikroTik →
- Llamada a puertos de DrayTek Vigor →
- Port knocking en Apple Watch →
- Por qué una llamada no abre el puerto →
- Ejemplos de knockd.conf →
- configuración del servidor fwknop →
- ¿Port knocking, VPN o fail2ban? →