9個常用iptables配置例項

2021-08-04 15:39:23 字數 3515 閱讀 1485

iptables命令可用於配置linux的包過濾規則,常用於實現防火牆、nat。咋一看iptables的配置很複雜,掌握規律後,其實用iptables完成指定任務並不難,下面我們通過具體例項,學習iptables的詳細用法。

1.刪除已有規則

在新設定iptables規則時,我們一般先確保舊規則被清除,用以下命令清除舊規則:

iptables -f

(or iptables --flush)

2.設定chain策略

對於filter table,預設的chain策略為accept,我們可以通過以下命令修改chain的策略:

iptables -p input drop

iptables -p forward drop

iptables -p output drop

以上命令配置將接收、**和發出包均丟棄,施行比較嚴格的包管理。由於接收和發包均被設定為丟棄,當進一步配置其他規則的時候,需要注意針對input和output分別配置。當然,如果信任本機器往外發包,以上第三條規則可不必配置。

3.遮蔽指定ip

有時候我們發現某個ip不停的往伺服器發包,這時我們可以使用以下命令,將指定ip發來的包丟棄:

block_this_ip="

x.x.x.x

"iptables -a input -i eth0 -p tcp -s "

$block_this_ip

" -j drop

以上命令設定將由x.x.x.x ip發往eth0網口的tcp包丟棄。

4.配置服務項

利用iptables,我們可以對日常用到的服務項進行安全管理,比如設定只能通過指定網段、由指定網口通過ssh連線本機:

iptables -a input -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state new,estableshed -j accept

iptables -a output -o eth0 -p tcp --sport 22 -m state --state established -j accept

若要支援由本機通過ssh連線其他機器,由於在本機埠建立連線,因而還需要設定以下規則:

iptables -a input -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state estableshed -j accept

iptables -a output -o eth0 -p tcp --sport 22 -m state --state new,established -j accept

類似的,對於http/https(80/443)、pop3(110)、rsync(873)、mysql(3306)等基於tcp連線的服務,也可以參照上述命令配置。

對於基於udp的dns服務,使用以下命令開啟埠服務:

iptables -a output -p udp -o eth0 --dport 53 -j accept

iptables -a input -p udp -i eth0 --sport 53 -j accept

5.網口**配置

對於用作防火牆或閘道器的伺服器,乙個網口連線到公網,其他網口的包**到該網口實現內網向公網通訊,假設eth0連線內網,eth1連線公網,配置規則如下:

iptables -a forward -i eth0 -o eth1 -j accept
6.埠**配置

對於埠,我們也可以運用iptables完成**配置:

iptables -t nat -a prerouting -p tcp -d 192.168.102.37 --dport 422 -j dnat --to 192.168.102.37:22
以上命令將422埠的包**到22埠,因而通過422埠也可進行ssh連線,當然對於422埠,我們也需要像以上「4.配置服務項」一節一樣,配置其支援連線建立的規則。

7.dos攻擊防範

利用擴充套件模組limit,我們還可以配置iptables規則,實現dos攻擊防範:

iptables -a input -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j accept
--litmit 25/minute 指示每分鐘限制最大連線數為25

--litmit-burst 100 指示當總連線數超過100時,啟動 litmit/minute 限制

8.配置web流量均衡

我們可以將一台伺服器作為前端伺服器,利用iptables進行流量分發,配置方法如下:

iptables -a prerouting -i eth0 -p tcp --dport 80 -m state --state new -m nth --counter 0 --every 3 --packet 0 -j dnat --to-destination 192.168.1.101:80

iptables -a prerouting -i eth0 -p tcp --dport 80 -m state --state new -m nth --counter 0 --every 3 --packet 0 -j dnat --to-destination 192.168.1.102:80

iptables -a prerouting -i eth0 -p tcp --dport 80 -m state --state new -m nth --counter 0 --every 3 --packet 0 -j dnat --to-destination 192.168.1.103:80

以上配置規則用到nth擴充套件模組,將80埠的流量均衡到三颱伺服器。

9.將丟棄包情況記入日誌

使用log目標和syslog服務,我們可以記錄某協議某埠下的收發包情況。拿記錄丟包情況舉例,可以通過以下方式實現。

首先自定義乙個chain:

iptables -n logging
其次將所有接收包匯入logging chain中:

iptables -a input -j logging
然後設定日誌字首、日誌級別:

iptables -a logging -m limit --limit 2/min -j log --log-prefix "

iptables packet dropped:

" --log-level 7

最後將包倒向drop,將包丟棄:

iptables -a logging -j drop
另可以配置syslog.conf檔案,指定iptables的日誌輸出。

iptables常用配置

常用的iptables模板 bin sh 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 ...

iptables常用配置

常用的iptables模板 bin sh 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 ...

Linux中iptables防火牆配置例項分享

iptables i output d 192.168.1.2 j drop 禁止往外向192.168.1.2的資料 iptables f 去除所有iptables規則,立即生效 iptables l n 檢視所有iptables規則 linux中iptables防火牆的配置原則 iptabls規則...