O que é uma configuração sólida de iptables para minha área de trabalho?

O que é uma configuração sólida de iptables para minha área de trabalho?

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-restorescript 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 sshconexões), você pode adicionar regras ao seu script, como a seguinte, logo acima da COMMITinstrução:

-A INPUT -p tcp -m tcp --dport 22 --syn -j ACCEPT

informação relacionada