在 CentOS 7 防火牆上停用 ICMP 回复,某些 IP 區塊除外

在 CentOS 7 防火牆上停用 ICMP 回复,某些 IP 區塊除外

我有一台帶有 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

如果這對您有用或您還有任何其他問題,請告訴我。

相關內容