IPTables do Linux - Ignorar intervalo de endereços IP

1

No momento, estou modificando algumas das minhas regras de IPtables em um servidor público e encontrei um dilema. O objetivo é fazer o seguinte:

  1. Taxa limite a quantidade de conexões SSH que podem ser feitas por minuto, a partir de hosts
  2. Para todos os hosts que usam um endereço IP interno (172.21-30.x.x), deixe-os pular de acordo com a regra nº 1

Meu primeiro pensamento foi colocar uma regra inicial que diz "Todos os endereços IP no intervalo 172.21-30.0.0 / 16 estão ACEITOS". No entanto, isso não descartaria todos os pacotes NÃO neste intervalo? Eu preciso permitir todas as conexões, basta selecionar quais estão sujeitas a limitação de taxa. Existe uma maneira de configurar a fonte de LOGDROP (veja abaixo) para aplicar em todas as faixas EXCETO aquelas que começam com 172.21-30?

As regras atualmente em vigor são:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOGDROP    tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source
           tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: SET name: DEFAULT side: source

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain LOGDROP (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            limit: avg 2/min burst 5 LOG level warning prefix 'Possible SSH Attack '
DROP       all  --  anywhere             anywhere

Obrigado por qualquer ajuda. Aaron

    
por acelives 14.05.2015 / 16:14

1 resposta

1

Seu instinto inicial está correto. A primeira regra deve ser "permitir todos os pacotes deste intervalo de origem", seguida pela regra "meter incoming packets". As regras do IPTABLES são avaliadas na ordem em que aparecem, com o primeiro jogo vencendo. A única coisa que eu faria de maneira diferente seria fazer com que a política INPUT DROP, em vez de ter uma regra DROP explícita no final da cadeia LOGDROP. Isso, porém, é uma preferência puramente pessoal. Tudo o que realmente faz é ter uma regra a menos em uma cadeia para olhar quando você a lê com olhos humanos.

    
por 14.05.2015 / 16:18