Permitir acesso SSH após batida de porta de qualquer IP de origem

Permitir acesso SSH após batida de porta de qualquer IP de origem

Eu tenho uma configuração de porta batendo para SSH no Linux usando apenas regras de iptables e o módulo “recente” seguindo este tutorial:https://wiki.archlinux.org/index.php/Port_knocking#Port_knocking_with_iptables_only.

Agora, meu problema é que várias redes, como a minha rede de trabalho, bloqueiam o tráfego para portas não padrão, como 22, 80, 443, então não consigo enviar meus pacotes knock. Por outro lado, minha internet móvel permite isso.

Como solução alternativa, gostaria de abrir a porta SSH sempre que a sequência de batida correta for enviada dequalquerhost, não apenas o mesmo host.

existe alguma maneira de conseguir isso com o iptables? Por exemplo, eu poderia imaginar uma “mudança de estado” ou variável global que pode ser ativada por uma regra e verificada por outra regra. Ele voltaria para “desligado” após um tempo limite.

Responder1

Eu sugeriria seguir o caminho do knockd. É mais simples assim. Só que em vez de usar esta configuração padrão

[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

Você usaria este (Nota -s %IP% removida)

[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

informação relacionada