Iptables
將防火牆規則減少一半 - 一個 iptables 規則用於 tcp 和 udp
我的防火牆上有許多 iptables 規則,如下所示:
iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT
對於每個地址,是否有兩條規則的捷徑——一條用於 tcp,一條用於 udp?我的意思是我可以做這樣的事情:
iptables -A zone_lan_forward -p tcp,udp -d 1.2.3.0/24 -j ACCEPT
創建一個將接受任何 TCP 和 UDP 數據包的新鏈,並從單獨的 IP/埠許可規則跳轉到該鏈:
iptables -N ACCEPT_TCP_UDP iptables -A ACCEPT_TCP_UDP -p tcp -j ACCEPT iptables -A ACCEPT_TCP_UDP -p udp -j ACCEPT iptables -A zone_lan_forward -d 1.2.3.0/24 -j ACCEPT_TCP_UDP
這增加了一些額外行的成本,但 TCP/UDP 規則的數量減半。
我不會忽略這個
-p
論點,因為您不僅為 ICMP 打開防火牆,還為任何其他協議打開了防火牆。從 iptables 手冊頁-p
:指定的協議可以是 tcp、udp、icmp 或 all 之一,也可以是一個數值,表示這些協議之一或不同的協議。/etc/protocols 中的協議名稱也是允許的。
除了 TCP、UDP 和 ICMP,你現在可能沒有在監聽任何協議,但誰知道未來會發生什麼。不必要地打開防火牆是不好的做法。
免責聲明:iptables 命令不在我的腦海中;我無權使用一個盒子來測試他們的 ATM。