localhost&host IPtables
iptables链匹配顺序
ping localhost
当前实验网络为IPV4模式
通过tcpdump抓包,我们可以发现ping localhost的流量最终发送到lo网卡了 通过iptables pkts数据计数我们可知,ping localhost的iptables过滤流程为:应用程序->OUTPUT->POSTROUTING(路由决策到lo网卡)->lo网卡(处理完成后)->PREROUTING(路径决策到本地)->INPUT->应用程序
,由此可见我们针对localhost做一些防火墙规则是会生效的 ping 127.0.0.1和ping localhost效果一致,这里不做测试了
[ root@localhost ~]
1 : lo: < LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0 .0.1/8 scope host lo
valid_lft forever preferred_lft forever
2 : ens160: < BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:82:82:e5 brd ff:ff:ff:ff:ff:ff
altname enp2s0
inet 192.168 .0.21/24 brd 192.168 .0.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
iptables -t raw -A PREROUTING -p icmp -j ACCEPT
iptables -t raw -A OUTPUT -p icmp -j ACCEPT
iptables -t mangle -A INPUT -p icmp -j ACCEPT
iptables -t mangle -A POSTROUTING -p icmp -j ACCEPT
[ root@localhost ~]
dropped privs to tcpdump
tcpdump: listening on lo, link-type EN10MB ( Ethernet) , snapshot length 262144 bytes
07:24:23.690903 IP6 ( flowlabel 0xe1051, hlim 64 , next-header ICMPv6 ( 58 ) payload length: 64 ) ::1 > ::1: [ icmp6 sum ok] ICMP6, echo request, id 2 , seq 1
07:24:23.690938 IP6 ( flowlabel 0xfcb2c, hlim 64 , next-header ICMPv6 ( 58 ) payload length: 64 ) ::1 > ::1: [ icmp6 sum ok] ICMP6, echo reply, id 2 , seq 1
^C
2 packets captured
4 packets received by filter
0 packets dropped by kernel
[ root@localhost ~]
Chain PREROUTING ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 168 ACCEPT icmp -- * * 0.0 .0.0/0 0.0 .0.0/0
Chain OUTPUT ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 168 ACCEPT icmp -- * * 0.0 .0.0/0 0.0 .0.0/0
[ root@localhost ~]
Chain PREROUTING ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain INPUT ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 168 ACCEPT icmp -- * * 0.0 .0.0/0 0.0 .0.0/0
Chain FORWARD ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING ( policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
2 168 ACCEPT icmp -- * * 0.0 .0.0/0 0.0 .0.0/0
iptables -t raw -F
iptables -t mangle -F
Ping 本机地址
由于ping本机地址,数据报文最终也被送到lo网卡了,其iptables过滤顺序和ping localhost一致,这里不重复分析了
同上面网络信息
[ root@localhost ~]
ping: socket: Address family not supported by protocol
PING 192.168 .0.21 ( 192.168 .0.21) 56 ( 84 ) bytes of data.
64 bytes from 192.168 .0.21: icmp_seq = 1 ttl = 64 time = 0.090 ms
--- 192.168 .0.21 ping statistics ---
1 packets transmitted, 1 received, 0 % packet loss, time 0ms
rtt min/avg/max/mdev = 0.090 /0.090/0.090/0.000 ms
[ root@localhost ~]
dropped privs to tcpdump
tcpdump: listening on ens160, link-type EN10MB ( Ethernet) , snapshot length 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
[ root@localhost ~]
dropped privs to tcpdump
tcpdump: listening on lo, link-type EN10MB ( Ethernet) , snapshot length 262144 bytes
21 :51:04.409541 IP ( tos 0x0, ttl 64 , id 37837 , offset 0 , flags [ DF] , proto ICMP ( 1 ) , length 84 )
192.168 .0.21 > 192.168 .0.21: ICMP echo request, id 4 , seq 1 , length 64
21 :51:04.409557 IP ( tos 0x0, ttl 64 , id 37838 , offset 0 , flags [ none] , proto ICMP ( 1 ) , length 84 )
192.168 .0.21 > 192.168 .0.21: ICMP echo reply, id 4 , seq 1 , length 64
^C
2 packets captured
4 packets received by filter
0 packets dropped by kernel