iptables verificação de correção

0

Tenho muitas perguntas sobre o iptables e como ele funciona. Mas estamos usando um kernel modificado e, portanto, qualquer experiência que eu tente e falhe, não posso ter certeza se isso acontece com o Linux em comum ou apenas com esse kernel, já que muitos módulos são removidos. Então, a partir de agora, tenho uma exigência.

Temos 2 aplicativos sendo executados em duas instâncias do Linux e esses dois aplicativos se comunicam por meio da porta 42605. No total, as portas 42605, 22 e ICMP são as que eu queria permitir a comunicação entre essas duas instâncias . Eu queria verificar isso rapidamente. Com a regra iptables que experimentei, não consegui confirmar isso. Então, modifiquei as regras existentes nas instâncias do Linux e finalmente a regra abaixo funciona para mim. Eu tenho essas regras definidas em ambas as instâncias do Linux, e ambos os aplicativos são capazes de se comunicar entre si agora. Eu estou fazendo a coisa certa? Ou há alguma lacuna nessas regras?

[root@localhost ~]# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sun Mar 16 03:56:09 2014
*nat
:PREROUTING ACCEPT [13049:3908712]
:POSTROUTING ACCEPT [62301:3240130]
:OUTPUT ACCEPT [62358:3244501]
COMMIT
# Completed on Sun Mar 16 03:56:09 2014
# Generated by iptables-save v1.4.7 on Sun Mar 16 03:56:09 2014
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:LOG_ACCEPT - [0:0]
:LOG_DROP - [0:0]
:icmp_packets - [0:0]
-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 8001 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j LOG_ACCEPT
-A INPUT -p udp -m udp --dport 22 -j LOG_ACCEPT
-A INPUT -p tcp -m tcp --dport 42605 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT
-A INPUT -p icmp -j icmp_packets
-A INPUT -j LOG_DROP
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 42605 -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p icmp -j icmp_packets
-A OUTPUT -j LOG_DROP
-A LOG_ACCEPT -j LOG --log-prefix "[IPTABLES ACCEPT] : " --log-tcp-options --log-ip-options
-A LOG_ACCEPT -j ACCEPT
-A LOG_DROP -j LOG --log-prefix "[IPTABLES DROP] : " --log-tcp-options --log-ip-options
-A LOG_DROP -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type any -j ACCEPT
COMMIT
# Completed on Sun Mar 16 03:56:09 2014
    
por Being Gokul 16.03.2014 / 13:37

1 resposta

1

-A INPUT -p tcp -m state --state NEW,ESTABLISHED -m tcp --dport 8001 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

geralmente seria escrito como

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8001 -j ACCEPT

Isso

-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT

não faz sentido para mim, contanto que 127.0.0.0/8 seja o bloco de endereços de lo .

-A INPUT -i lo -j ACCEPT

é o suficiente. Esta regra abrange os outros dois. 127.0.0.1/32 é estranho de qualquer maneira. E a terceira regra não faz nenhum sentido após a primeira.

O mesmo para

-A OUTPUT -d 127.0.0.1/32 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

O que é a porta UDP 22 usada para ...?

Mas esses não são relacionados à segurança. O único problema desse tipo é

-A icmp_packets -p icmp -m icmp --icmp-type any -j ACCEPT

Eu não estou familiarizado o suficiente com isso para ter certeza, mas isso geralmente não é o que você quer. ICMP pode, e. reconfigure a tabela de roteamento. Mas se isso é possível depende da configuração do kernel.

    
por 16.03.2014 / 15:16