
Abaixo estão as regras do firewall iptable, que tenho no meu sistema centos. Neste momento não consegui fazer ping no host local. ping localhost
estava falhando.
Mas assim que fiz isso iptables -F
para liberar as regras, consegui executar ping no host local. A pergunta é POR QUE?? Como esse conjunto de iptables estava impactando a funcionalidade de ping no localhost (127.0.0.1)?
root@localhost:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:67
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6080
LPASS udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp spt:68 dpt:67
LPASS all -- 192.168.122.49 0.0.0.0/0
LPASS tcp -- 192.168.122.0/24 0.0.0.0/0 tcp spt:21
LPASS all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
LPASS tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:8505:8506
LPASS tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:6001:6100
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:161
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:24
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8081
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:2222
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
LDROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
ACCEPT tcp -- 0.0.0.0/0 192.168.122.49 tcp dpt:3389
ACCEPT all -- 192.168.122.49 0.0.0.0/0
DROP all -- 192.168.122.0/24 0.0.0.0/0
LFDROP all -- 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-in vnet+ --physdev-out vnet+ --physdev-is-bridged
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:68
Chain LDROP (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain LFDROP (1 references)
target prot opt source destination
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain LPASS (6 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ifconfig mostra que a interface está ATIVADA.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 65922 bytes 5788036 (5.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 65922 bytes 5788036 (5.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Responder1
Isto é porquetudoque sai de uma interface e entra em uma interface é analisado através do iptables ou das regras de firewall.
Portanto, quando um pacote precisa sair de uma interface para si mesmo, seja para ICMP, HTTP, FTP ou qualquer outro protocolo. Passará pelo mesmo processo que no caso de um IP externo. Assim, por exemplo, no caso de HTTP, ele iniciará uma conexão TCP e enviará uma solicitação HTTP para localhost e todas as comunicações acontecerão através doeisinterface.
Agora, por exemplo, você vai em frente e faz umaSAÍDAregra como abaixo:
ACCEPT ICMP -- 127.0.0.1 127.0.0.1
e tentar executar o ICMP, ele ainda não funcionaria, você precisará de uma regra de entrada também conforme abaixo para fazê-lo funcionar:
ACCEPT ICMP -- 127.0.0.1 127.0.0.1