Permitir el acceso SSH después de llamar al puerto desde cualquier IP de origen

Permitir el acceso SSH después de llamar al puerto desde cualquier IP de origen

Tengo una configuración de puerto funcional para SSH en Linux usando solo reglas de iptables y el módulo "reciente" que sigue este tutorial:https://wiki.archlinux.org/index.php/Port_knocking#Port_knocking_with_iptables_only.

Ahora mi problema es que varias redes, como la de mi trabajo, bloquean el tráfico a puertos no estándar como 22, 80, 443, por lo que no puedo enviar mis paquetes knock. En cambio mi internet móvil me lo permite.

Como solución alternativa, me gustaría abrir el puerto SSH cada vez que se envíe la secuencia de llamada correcta desdecualquieranfitrión, no sólo el mismo anfitrión.

¿Hay alguna manera de lograr eso con iptables? Por ejemplo, podría imaginar un "interruptor de estado" o una variable global que pueda activarse mediante una regla y comprobarse mediante otra regla. Volvería a estar “apagado” después de un tiempo de espera.

Respuesta1

Sugeriría ir por la ruta noqueada. Es más sencillo de esta manera. Solo que en lugar de usar esta configuración predeterminada

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

  [closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Usarías este (Nota -s %IP% eliminada)

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  [closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 10
        tcpflags    = syn
        command     = /usr/sbin/iptables -D INPUT -p tcp --dport 22 -j ACCEPT

información relacionada