iptables pega DENY mas não no lugar ACCEPT antes dele na cadeia

1

Eu tenho um problema estranho com meu firewall iptables: Se eu definir duas regras idênticas consecutivas, a primeira é ACCEPT e a segunda é DENY , o pacote de entrada é negado (e registrado como tal).

Como é possível que o pacote de entrada seja ignorado pela primeira regra e capturado pelo segundo?

A visão do fwbuilder está aqui:

Aquiestáoiptablesdump:

ChainINPUT(policyDROP)targetprotoptsourcedestinationACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHEDIn_RULE_0all--0.0.0.0/00.0.0.0/0stateNEWIn_RULE_1all--0.0.0.0/00.0.0.0/0ChainFORWARD(policyDROP)targetprotoptsourcedestinationACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHEDIn_RULE_0all--0.0.0.0/00.0.0.0/0stateNEWIn_RULE_1all--0.0.0.0/00.0.0.0/0ChainOUTPUT(policyDROP)targetprotoptsourcedestinationACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHEDChainIn_RULE_0(2references)targetprotoptsourcedestinationLOGall--0.0.0.0/00.0.0.0/0LOGflags0level6prefix"FW RULE 0 -- ACCEPT "
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain In_RULE_1 (2 references)
target     prot opt source               destination         
LOG        all  --  0.0.0.0/0            0.0.0.0/0            LOG flags 0 level 6 prefix "FW RULE 1 -- DENY "
DROP       all  --  0.0.0.0/0            0.0.0.0/0  

Eu também tentei com a regra ACCEPT sozinha e ela não captura.

A única diferença que vejo é que a regra DENY não é state NEW , mas é o mesmo para as dezenas de firewalls que eu já configurei e que estão funcionando bem.

    
por greg 15.05.2015 / 02:01

3 respostas

0

OK, eu encontrei. Acontece que meu FW estava perfeitamente bom, mas o host virtual estava mal configurado. Eu não tive nenhum erro, mas o iptables não foi permitido. Quando eu permiti, o FW se tornou operacional ... Não admira por que não conseguimos encontrar o erro no nível do iptables ... Obrigado por toda a ajuda:)

    
por 17.05.2015 / 01:29
0

Você precisa saber que: Uma regra com a opção -I do iptables coloca uma regra no BEGINNING do Lista; Uma regra com a opção -A coloca uma regra no final da lista.

No seu caso: Eu acho que você pode ter usado "-I" em ambas as regras (quase idênticas) do iptables, a segunda regra é inserida no começo da lista. à frente da primeira regra e, portanto, você criou uma lista de regras com as regras na ordem:

match -s x.x.x.x action DROP
match -s x.x.x.x action ACCEPT

Como o seu pacote corresponde a ambas as regras, o primeiro ( DROP ) na ordem da tabela operacional real (que reside na RAM) entrará em vigor. A ordem não tem nada a ver com a ordem no seu arquivo de configuração do iptable.

Troque a ordem e o resultado será diferente.

    
por 15.05.2015 / 03:08
0

Seu iptables In_RULE_0 só se aplica a NOVAS conexões quando você usa state NEW .

Também é definido na sua cadeia FORWARD (pacotes através do servidor), não na sua cadeia INPUT (pacotes para o servidor).

Como você está testando? Você está pingando uma interface específica do servidor?

Você pode postar a saída completa de:

iptables -vnL

Tente a seguinte regra para registrar o tráfego na cadeia INPUT (pings para a interface do servidor)

iptables -I INPUT 1 -j In_RULE_0
    
por 15.05.2015 / 03:27