Na minha área de trabalho, quero configurar o iptables com bastante rigor. Não vejo razão para permitir nada, exceto o tráfego da Internet que iniciei. E talvez até isso pudesse ser limitado a apenas algumas portas. Quais são as regras básicas que podem fechar minha área de trabalho? Eu só preciso:
- Para navegar na internet
- Baixar e-mail
Algum conjunto de regras recomendado?
Responder1
As regras a seguir permitirão todas as conexões de saída, mas bloquearão todas as conexões de entrada. As cadeias INPUT e FORWARD são configuradas para rejeitar pacotes por padrão, a cadeia OUTPUT é configurada para aceitar pacotes por padrão, e a última regra permite pacotes de entrada que fazem parte de conexões existentes (que neste caso só podem ser conexões de saída).
iptables --policy INPUT DROP
iptables --policy FORWARD DROP
iptables --policy OUTPUT ACCEPT
iptables --append INPUT --match state --state ESTABLISHED,RELATED --jump ACCEPT
iptables --append INPUT --jump REJECT
iptables --append FORWARD --jump REJECT
Se quiser restringir o tráfego de saída, você deseja alterar a política OUTPUT para rejeitar e adicionar regras para aceitar tráfego em determinadas portas. Por exemplo:
iptables --policy OUTPUT DROP
iptables --append OUTPUT --protocol udp --match multiport --dports domain,bootps --jump ACCEPT
iptables --append OUTPUT --protocol tcp --match multiport --dports domain,http,https,ssh,pop3s,imaps,submission --jump ACCEPT
iptables --append OUTPUT --jump REJECT
Responder2
O iptables-restore
script a seguir deve ser suficiente para suas necessidades:
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -m state ! --state NEW -j DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
O script pode ser ainda mais curto eliminando a regra que permite pings ICMP, mas eu não recomendaria fazer isso. IMO, responder ao ping não prejudica muito a segurança (se é que afeta) e pode ser útil para solução de problemas de rede.
Se você quiser permitir conexões de entrada em uma porta TCP específica (por exemplo, para permitir ssh
conexões), você pode adicionar regras ao seu script, como a seguinte, logo acima da COMMIT
instrução:
-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT