Quanto tempo leva para aplicar uma regra iptables?

5

Quanto tempo demora a aplicação de uma regra iptables?

Eu uso um script com o código abaixo na tentativa de bloquear os hosts, mas eles não parecem levar imediatamente. Existe algum atraso, o iptables não está funcionando ou o código está simplesmente errado?

#!/bin/sh
echo $1 >> /etc/dropped_hosts
iptables -A INPUT -s $1 -j DROP
iptables -A OUTPUT -d $1 -j DROP
    
por vfclists 31.10.2010 / 20:58

3 respostas

5
As regras de

iptables entram em vigor imediatamente.

Como esse script é anexado, pode haver uma regra antes disso que diz para permitir automaticamente os hosts que você está tentando bloquear. O iptables lê as regras de cima para baixo e quebra assim que encontra uma correspondência (então se você tivesse algo que dizia 'permitir badhostx' e a próxima linha fosse 'soltar badhostx', ele nunca cairia já que a regra já foi correspondida para aquela host.

Se você estiver usando o -A em um script, você pode querer limpar suas tabelas antes (iptables --flush), para garantir que as regras sejam exatamente como você as aplica no script (mas também certifique-se de ter TODAS as regras desse script).

Outra opção, ao invés de rodar esse script, é pegar as regras que você quer que trabalhem, então faça "salvar o iptables" ou "/etc/init.d/iptables save". Espero que isso ajude.

    
por 31.10.2010 / 22:13
13
As regras de

iptables entram em vigor imediatamente. Como seu script é Appending (-A) para as cadeias INPUT e OUTPUT, suas regras estão sendo adicionadas ao final dessas cadeias. Se você tiver outras regras de terminação que precedem essas regras, elas entrarão em vigor (e as regras posteriores não serão).

Por exemplo, é muito comum ter uma regra -m state --state ESTABLISHED,RELATED -j ACCEPT no início das cadeias INPUT / OUTPUT, e essa regra terá efeito em precedência a quaisquer regras que vierem depois dela. Essa regra permite que conexões estabelecidas continuem, mesmo que sejam de / para endereços IP que você adicionou ao seu firewall por meio de seu script.

Se você tiver uma regra ESTABLISHED, RELACIONADA em suas cadeias de ENTRADA / SAÍDA (ou alguma outra regra que esteja substituindo regras posteriores), você terá que aceitar que suas novas regras não entram em vigor imediatamente, ou você pode ter seu script inserir as regras DROP de endereço IP antes da regra ESTABLISHED, RELACIONADA. Isso pode ser feito alterando seu script para Insert (-I) em vez de Append (-A) suas regras DROP de endereço IP, por exemplo,

iptables -I INPUT -s $1 -j DROP
iptables -I OUTPUT -d $1 -j DROP
    
por 31.10.2010 / 21:23
1

Você deve adicionar suas regras no início da tabela de filtros. Então você deve usar -I (insert) ao invés de -A (append)

    
por 31.10.2010 / 21:22