網(wǎng)絡(luò)安全攻防:Linux系統(tǒng)安全之iptables配置
iptables是用來設(shè)置、維護(hù)和檢查Linux內(nèi)核的IP分組過濾規(guī)則的。作為Linux下的一款防火墻,它的功能十分強(qiáng)大,它有3個表,每個表內(nèi)有規(guī)則鏈。
(1)filter 是默認(rèn)的表,包含了內(nèi)建的鏈 INPUT(處理進(jìn)入的分組)、FORWARD(處理通過的分組)和OUTPUT(處理本地生成的分組)。
(2)nat表被查詢時表示遇到了產(chǎn)生新的連接的分組,由3個內(nèi)建的鏈構(gòu)成:PREROUTING(修改到來的分組)、OUTPUT(修改路由之前本地的分組)、POSTROUTING(修改準(zhǔn)備出去的分組)。
(3)mangle表用來對指定的分組進(jìn)行修改。它有2個內(nèi)建規(guī)則:PREROUTING(修改路由之前進(jìn)入的分組)和OUTPUT(修改路由之前本地的分組)。下面簡單介紹iptables的常用配置。
1. 查看iptables規(guī)則
查看當(dāng)前的iptables策略,使用iptables-L命令,默認(rèn)查看的是filter表的內(nèi)容,如下:
- root@kali:~# iptables-L
- Chain INPUT(policy ACCEPT)
- target prot opt source destination
- f2b-sshd tcp – anywhere anywhere multiport dports ssh
- Chain FORWARD(policy ACCEPT)
- target prot opt source destination
- Chain OUTPUT(policy ACCEPT)
- target prot opt source destination
- Chain f2b-sshd(1 references)
- target prot opt source destination
- RETURNall-anywhere anywhere
2. 設(shè)置chain策略
對于filter表,默認(rèn)的chain策略為ACCEPT,可以通過以下命令修改chain的策略:
- root@kali:~# iptables-P INPUT DROP
- root@kali:~# iptables-P FORWARD DROP
- root@kali:~# iptbales-P OUTPUT DROP
以上命令配置將接收、轉(zhuǎn)發(fā)和發(fā)出分組均丟棄,施行比較嚴(yán)格的分組管理。由于接收和發(fā)分組均被設(shè)置為丟棄,當(dāng)進(jìn)一步配置其他規(guī)則的時候,需要注意針對 INPUT和OUTPUT分別配置。當(dāng)然,如果信任本機(jī)器往外發(fā)分組,上面第3條規(guī)則可不必配置。
3. 清空已有規(guī)則
可以用以下規(guī)則來清空已有的規(guī)則:
- root@kali:~# iptables-F
4. 網(wǎng)口轉(zhuǎn)發(fā)規(guī)則
對于用作防火墻或網(wǎng)關(guān)的服務(wù)器,一個網(wǎng)口連接到公網(wǎng),其他網(wǎng)口的分組轉(zhuǎn)發(fā)到該網(wǎng)口實現(xiàn)內(nèi)網(wǎng)向公網(wǎng)通信,假設(shè)eth0連接內(nèi)網(wǎng),eth1連接公網(wǎng),配置規(guī)則如下:
- root@kali:~# iptables-A FORWARD-i eth0-o eth1-j ACCEPT
5. 端口轉(zhuǎn)發(fā)規(guī)則
命令將888端口的分組轉(zhuǎn)發(fā)到22端口,因而通過888端口也可進(jìn)行SSH連接:
- root@kali:~# iptables-t nat-A PREROUTING-p tcp-d 192.168.1.1 –dport 888-j DNAT--to 192.168.1.1:22
6. DoS攻擊防范
利用擴(kuò)展模塊limit,還可以配置iptables規(guī)則,實現(xiàn)DoS攻擊防范,如下所示:
- root@kali:~# iptables-A INPUT-p tcp –dport 80-m limit –limit 25/minute--limit-burst 100-j ACCEPT
--litmit 25/minute 指示每分鐘限制最大連接數(shù)為25。
--litmit-burst 100 指示當(dāng)總連接數(shù)超過100時,啟動litmit/minute限制。