iptables -f
iptables -x
iptables -f -t mangle
iptables -t mangle -x
iptables -f -t nat
iptables -t nat -x
首先,把三個表清空,把自建的規則清空。
iptables -p input drop
iptables -p output drop
iptables -p forward accept
設定input、output的預設策略為drop,forward為accept。
iptables -a input -i lo -j accept
iptables -a output -o lo -j accept
先把「回環」開啟,以免有不必要的麻煩。
iptables -a input -i eth+ -p icmp --icmp-type 8 -j accept
iptables -a output -o eth+ -p icmp --icmp-type 0 -j accept
在所有網絡卡上開啟ping功能,便於維護和檢測。
iptables -a input -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j
accept
iptables -a output -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22
-j accept
開啟22埠,允許遠端管理。(設定了很多的附加條件:管理機器ip必須是250,並且必須
從eth0網絡卡進入)
iptables -a input -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state
new,established -j accept
iptables -a output -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state
--state established -j accept
iptables -a input -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state
new,established -j accept
iptables -a output -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state
--state established -j accept
iptables -a input -i eth2 -p tcp --dport 32768:61000 -m state --state
established -j accept
iptables -a output -o eth2 -p tcp --sport 32768:61000 -m state --state
new,established -j accept
iptables -a output -o eth2 -p udp --dport 53 -j accept
iptables -a input -i eth2 -p udp --sport 53 -j accept
上面這幾句是比較頭痛的,我做逐一解釋。
iptables -a input -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state
new,established -j accept
允許192.168.100.0/24網段的機器傳送資料報從eth0網絡卡進入。如果資料報是tcp協議,
而且目的埠是3128(因為redirect已經把80改為3128了。nat表的prerouting
是在filter表的input前面的。 ) 的, 再而且, 資料報的狀態必須是new或者established
的(new代表tcp三段式握手的「第一握」,換句話說就是,允許客戶端機器向伺服器發出鏈結
申請。established表示通過握手已經建立起鏈結),通過。
iptables -a output -o eth2 -p tcp --sport 32768:61000 -m state --state
new,established -j accept
我們先來看這一句。現在你的資料報已經進入到linux伺服器防火牆上來了。squid需要代替你
去訪問,所以這時,伺服器就成了客戶端的角色,所以它要使用32768到61000的私有埠
進行訪問。 (大家會奇怪應該是1024到65535吧。其實centos版的linux所定義的私有端
口是32768到61000的,你可以通過cat /proc/sys/net/ipv4/ip_local_port_range,查
看一下。)再次宣告:這裡是squid以客戶端的身份去訪問其他的伺服器,所以這裡的源埠
是32768:61000,而不是3128!
iptables -a input -i eth2 -p tcp --dport 32768:61000 -m state --state
established -j accept
當然了,資料有去就有回。
iptables -a output -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state
--state established -j accept
資料報還得通過伺服器,轉到內網網絡卡上。請注意,這裡,是squid幫你去訪問了你想要訪問
的**。所以在內網中,你的機器是客戶端角色,而squid是伺服器角色。這與剛才對外訪問
的過程是不同的。所以在這裡,源埠是3128,而不是32768:61000。
iptables -a output -o eth2 -p udp --dport 53 -j accept
iptables -a input -i eth2 -p udp --sport 53 -j accept
當然,dns是不可缺少的。
iptables -a input -i eth+ -p tcp --dport 80 -j log --log-prefix "iptables_80_alert"
--log-level info
iptables -a input -i eth+ -p tcp --dport 21 -j log --log-prefix "iptables_21_alert"
--log-level info
iptables -a input -i eth+ -p tcp --dport 22 -j log --log-prefix "iptables_22_alert"
--log-level info
iptables -a input -i eth+ -p tcp --dport 25 -j log --log-prefix "iptables_25_alert"
--log-level info
iptables -a input -i eth+ -p icmp --icmp-type 8 -j log --log-prefix
"iptables_icmp8_alert" --log-level info
當然了,來點日誌記錄會對網管員有所幫助。
iptables配置例項
bin bash export iptables sbin iptables export eth0 enp3s0 清除所有規則 iptables f iptables x 設定規則 iptables p input drop 不在此規則裡的資料報丟棄 iptables p output accep...
9個常用iptables配置例項
iptables命令可用於配置linux的包過濾規則,常用於實現防火牆 nat。咋一看iptables的配置很複雜,掌握規律後,其實用iptables完成指定任務並不難,下面我們通過具體例項,學習iptables的詳細用法。1.刪除已有規則 在新設定iptables規則時,我們一般先確保舊規則被清除...
Iptables例項應用分析
iptables例項分析 1 單伺服器的防護 2 如何做閘道器 3 如何限制內網使用者 4 內網如何做對外伺服器 5 如何使用連線追蹤模組 1 單伺服器的防護 弄清對外服務物件 書寫規則 網路介面lo 的處理 狀態監測的處理 協議 埠的處理 例項 乙個普通的web 伺服器 iptables a in...