Iptables + módulo recent
Como este módulo está se difundindo bastante ultimamente, resolvi escrever um pequeno artigo descrevendo esse poderoso recurso que o iptables nos oferece. Com ele você poderá criar regras dinâmicas com uma determinada resposta ou ação quando ativada.
Parte 4: Exemplo2 - Port knocking
Deixar as portas de alguns serviços em específico fechadas e abrí-las quando bem entender, apenas para o seu IP, em um determinado espaço de tempo. Liberando-as com um simples telnet em portas específicas. Essa dica se baseia no SSH (porta 22).
R. iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --rcheck --name SSH --rsource --seconds 60 --hitcount 3 -j ACCEPT
E. Libere para a lista (--name SSH) as tentativas de conexão que tentam acessar (destino) a porta 22 do protocolo tcp verificando no módulo recent (--rcheck) que tenham 3 ou mais entradas (--hitcount 3) na lista (--name SSH).
R. iptables -A INPUT -p tcp -m tcp --dport 22323 -m state --state NEW -m recent --name SSH --remove -j DROP
E. Negue as tentativas de novas conexões (-m state --state NEW) a porta (destino) 22323 e remova (--remove) da lista (--name SSH) o IP da tentativa de conexão.
R. iptables -A INPUT -p tcp -m tcp --dport 22324 -m state --state NEW -m recent --set --name SSH --rsource -j DROP
E. Negue a tentativa de novas conexões (-m state --state NEW) de acesso (destino) à porta 9837 e adicione (--set) o IP da tentativa (--rsource) a lista (--name SSH).
R. iptables -A INPUT -p tcp -m tcp --dport 22325 -m state --state NEW -m recent --name SSH --remove -j DROP
E. Negue as tentativas de novas conexões (-m state --state NEW) a porta (destino) 22323 e remova (--remove) da lista (--name SSH) o IP da tentativa de conexão.
R. iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --rcheck --name SSH --rsource --seconds 60 --hitcount 3 -j ACCEPT
E. Libere para a lista (--name SSH) as tentativas de conexão que tentam acessar (destino) a porta 22 do protocolo tcp verificando no módulo recent (--rcheck) que tenham 3 ou mais entradas (--hitcount 3) na lista (--name SSH).
R. iptables -A INPUT -p tcp -m tcp --dport 22323 -m state --state NEW -m recent --name SSH --remove -j DROP
E. Negue as tentativas de novas conexões (-m state --state NEW) a porta (destino) 22323 e remova (--remove) da lista (--name SSH) o IP da tentativa de conexão.
R. iptables -A INPUT -p tcp -m tcp --dport 22324 -m state --state NEW -m recent --set --name SSH --rsource -j DROP
E. Negue a tentativa de novas conexões (-m state --state NEW) de acesso (destino) à porta 9837 e adicione (--set) o IP da tentativa (--rsource) a lista (--name SSH).
R. iptables -A INPUT -p tcp -m tcp --dport 22325 -m state --state NEW -m recent --name SSH --remove -j DROP
E. Negue as tentativas de novas conexões (-m state --state NEW) a porta (destino) 22323 e remova (--remove) da lista (--name SSH) o IP da tentativa de conexão.
um abraço