
我有一台帶有 FirewallD 的 Centos 7 機器,net.ipv4.conf.icmp_echo_ignore_all 設定為 0。 、10.0.0.0/8 等)以獲得ping 回應。
我怎樣才能做到這一點?
答案1
這是一個解決方案iptables
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 192.168.0.0-192.168.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -m iprange --src-range 10.0.0.0-10.255.255.255 -p ICMP --icmp-type 8 -j ACCEPT
[root@ttucker ~]# iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
之後的樣子應該是這樣的:
[root@ttucker ~]# iptables -v -n -L INPUT | grep icmp
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 192.168.0.0-192.168.255.255 icmptype 8
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 source IP range 10.0.0.0-10.255.255.255 icmptype 8
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8
Iptables 的工作原理是按照給定鏈上從上到下的順序評估其規則。在本例中它是 INPUT 鏈。當 iptables 找到與其條件相符的規則時,它會執行 中指定的操作-j
。
因此,在此範例中,我們聲明如果來源來自 10.0.0.0/8 或 192.168.0.0/16,則操作為ACCEPT
。如果來源位址不在該範圍內,則它符合第三條規則,即DROP
。
注意:您還需要確保目前沒有任何接受這些規則之前的所有 ICMP 流量的目前規則。
-A INPUT
附加到鏈結的方法INPUT
。因此,您首先要列出整個輸入鏈並刪除其中存在的任何其他 ICMP 規則。
以下是列出 INPUT 鏈規則的方法:
iptables -v -n -L INPUT
如果這對您有用或您還有任何其他問題,請告訴我。