iptables 配置例項

2021-06-09 01:42:26 字數 3688 閱讀 4542

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...