É seguro mover “ACCEPT state RELACIONADO, ESTABELECIDO” para o topo?

1

Tenho a seguinte configuração do iptables:

Chain INPUT (policy DROP 11 packets, 604 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      127 11093 BLACKLIST  all  --  *      *       0.0.0.0/0            0.0.0.0/0
2      127 11093 UNCLEAN    all  --  *      *       0.0.0.0/0            0.0.0.0/0
3      115 10437 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
4        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
... followed by rules for state=NEW for running services like SSH

A cadeia BLACKLIST bloqueia alguns IPs de origem. A cadeia UNCLEAN descarta pacotes com sinalizadores TCP não limpos. Eu gosto de mover a regra ACCEPT state RELATED,ESTABLISHED (currentyl rule 3) para o topo para o melhor comportamento de resposta - mas sem perder a segurança.

Até onde eu sei, posso mover as BLACKLIST duas posições para baixo, porque é suficiente verificar apenas state=NEW . Depois de established , ela já passou na verificação BLACKLIST e, portanto, o ACCEPT state RELAED,ESTABLISHED pode ser posicionado antes da regra BLACKLIST . Certo?

Você sugeriria mudar as outras regras? (ex: lo para o topo ou somehting assim)

    
por Fabian Barney 23.10.2014 / 14:00

2 respostas

2

O Netfilter processa as regras do firewall em ordem. Tanto para segurança quanto para desempenho, você deseja que os pacotes transponham o mínimo possível de regras de firewall antes de serem aprovadas ou rejeitadas.

Dependendo da política padrão, você pode ou pode precisar da regra que permite todo o tráfego na lo interface de loopback -A INPUT -i lo -j ACCEPT e -A OUTPUT -i lo -j ACCEPT como a primeira regra.

Ter um firewall de estado com a regra -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT como a primeira nas interfaces externas faz muito sentido, já que o tráfego já atravessou as regras de firewall anteriormente e com êxito, tornando a conexão aprovada e nada é obtido pelo processamento esses pacotes subseqüentes também. Na maioria dos sistemas com uma quantidade significativa de tráfego legítimo, essa regra corresponderá à grande maioria dos pacotes.

Você provavelmente precisará da regra da lista negra antes de qualquer coisa que conceda acesso.

Você geralmente ordena as regras sobre a probabilidade de elas serem relevantes, ou seja, em um servidor da Web você pode querer que uma regra acionada com frequência, como -A INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -j ACCEPT , seja acionada raramente, como uma permitindo acesso a uma porta de gerenciamento da rede do seu escritório.

Observe os contadores de vez em quando para verificar e ver quais regras são correspondidas com frequência para confirmar se sua configuração é um tanto sensata.

    
por 23.10.2014 / 15:02
2

Você pode, eu relatei / estabeleci no topo da minha cadeia de iptables. Ele não permitirá nada extra, apenas qualquer coisa relacionada a conexões estabelecidas, como respostas de porta alta ou conexões estabelecidas por conta própria.

Quanto a mover os outros, tudo o que você precisa pensar é que eles são processados como uma lista, de modo que qualquer coisa que seja atingida será processada pela primeira regra atingida. Você também pode ir para o topo, mas é improvável que suas outras regras colidam com a regra de loopback, especialmente porque elas são sobre outros destinos / fontes.

    
por 23.10.2014 / 14:17