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