Estas regras do iptables são necessárias?

1

Cenário: Roteador baseado em Linux (Asuswrt-Rmerlin 380.65) executando o iptables v1.4.14 com as seguintes regras no topo. O objetivo do roteador é fornecer acesso à Internet para clientes internos. Nenhum serviço está aberto para uso público no wanface.

iptables -P INPUT DROP
iptables -I INPUT -i vlan2 -m state --state NEW -j DROP
iptables -I FORWARD -i vlan2 -m state --state NEW -j DROP

1) Com as regras acima, é necessário ter as regras abaixo?

#Drop XMAS packets
iptables -I INPUT  -p tcp  --tcp-flags ALL ALL  -j DROP

#Drop NULL packets
iptables -I INPUT  -p tcp  --tcp-flags ALL NONE  -j DROP

2) As regras abaixo não são desnecessárias, dado que os desenvolvedores de SO e netfilters já sabem o que permitir / não permitir?

#Force SYN packets check
iptables -I INPUT -p tcp ! --syn -m state --state NEW -j DROP

#Force Fragments packets check
iptables -I INPUT -f -j DROP
    
por Patrick 14.03.2017 / 18:17

1 resposta

1

Michael Hampton está certo, responder perguntas na ausência de todo o conjunto de regras pode ser enganoso, mas ainda podemos fazer algumas declarações definitivas.

Você diz que seu conjunto de regras começa com

iptables -P INPUT DROP
iptables -I INPUT -i vlan2 -m state --state NEW -j DROP
iptables -I FORWARD -i vlan2 -m state --state NEW -j DROP

então você pergunta sobre a razão para ter certas regras adicionais, procurando descobrir o que elas acrescentam que as duas primeiras regras não. Vamos pegar esses um por um.

iptables -I INPUT  -p tcp  --tcp-flags ALL ALL  -j DROP

Esta regra é irrestrita pela interface, por isso aplica-se a todo %% tráfego%, ao contrário dos dois primeiros. Ele filtra pacotes da Árvore de Natal . Esses pacotes são mal-intencionados, ou seja, não há uma boa razão para eles estarem no fio, então filtrá-los é uma coisa razoável a se fazer.

iptables -I INPUT  -p tcp  --tcp-flags ALL NONE  -j DROP

Da mesma forma, nenhum pacote TCP deve ter sinalizadores no definidos, portanto, essa é outra linha de integridade básica da rede, que novamente não é restrita pela interface.

iptables -I INPUT -p tcp ! --syn -m state --state NEW -j DROP

Nenhum pacote que não seja um pacote SYN deve corresponder ao estado INPUT , ou seja, nenhum pacote SYN deve estar no meio de fluxos TCP estabelecidos. Recusar qualquer um que faça; outra verificação de integridade da rede.

iptables -I INPUT -f -j DROP

Recuse fragmentos. Não tenho certeza se é uma boa ideia, mas alguns fazem.

Você pode perguntar por que se preocupar com essas regras se a política for NEW mesmo assim. A resposta é que você tem outras regras posteriores, que DROP tráfego, e estas podem corresponder e, portanto, ACCEPT do tráfego malicioso que as regras acima afetam, se já não tivesse sido recusado pelas regras ACCEPT explícitas que você listou. / p>     

por 23.03.2017 / 07:49

Tags