Iptables防火牆使用

查看防火牆規則:
iptables -nvL –line-number
-L 查看當前表的所有規則,默認查看的是filter表,如果要查看NAT表,可以加上-t NAT參數
-n 不對ip地址進行查,加上這個參數顯示速度會快很多
-v 輸出詳細信息,包含通過該規則的數據包數量,總字節數及相應的網絡接口
–line-number 顯示規則的序列號,這個參數在刪除或修改規則時會用到
添加一條規則到尾部
iptables -A INPUT -s 192.168.1.5 -j DROP
添加一條規則到第三行
iptables -A INPUT 3 -s 192.168.1.5 -j DROP
刪除防火牆規則,把前面添加的規則,-A改成-D就可以刪除該防火牆的規則了
iptables -D INPUT -s 192.168.1.5 -j DROP
命令規則比較長,則使用行號進行刪除
先查看行號:iptables -nvL –line-number
再刪除對應的規則:iptables -D input num l例如:iptables -D input 3
命令規則:
黑名單方式:
屏蔽某一個IP:iptables -I INPUT -s 123.45.6.7 -j DROP
iptables -A INPUT -i eth0 -p tcp -s IP -j DROP
屏蔽IP段:封IP段即從123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
將發往某一個IP的數據包丟掉:
iptables -I OUTPUT -s 123.45.6.7 -j DROP
白名單方式
只允許指定機器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 FORWARD -p icmp -m statistic –mode random –probability 0.31 -j REJECT //表示31%的丟包率或者-m random –average 5 -j DROP 表示模擬丟掉5%比例的包
模擬網絡延時,這個需要linux下載和安裝一個工具tc,tc還有很多其他的網絡控制方法,tc 全名爲 traffic control(流量控制)
tc qdisc add dev eth0 root netem delay 3000ms
可以在 3000ms 後面在加上一個延時,比如 ’3000ms 200ms‘表示 3000ms ± 200ms ,延時範圍 2800 – 3200 之間.
其他常使用的命令
1.刪除已有規則
在新設定iptables規則時,可以先用以下命令清除舊規則:
iptables -F
(or iptables –flush)
2.網口轉發配置
對於用作防火牆或網關的服務器,一個網口連接到公網,其他網口的包轉發到該網口實現內網向公網通信,假設eth0連接內網,eth1連接公網,配置規則如下:
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
3.端口轉發配置
對於端口,我們也可以運用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.配置服務項”一節一樣,配置其支持連接建立的規則。
4 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 限制
5.將丟棄包情況記入日誌(沒有嘗試過)
使用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的日誌輸出。

修改 修改使用-R參數
將第三行規則改爲ACCEPT先看下當前規則:
[root@test ~]# iptables -nL –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all – 192.168.1.1 0.0.0.0/0
2 DROP all – 192.168.1.2 0.0.0.0/0
3 DROP all – 192.168.1.5 0.0.0.0/0
修改:
[root@test ~]# iptables -R INPUT 3 -j ACCEPT
再查看下:
[root@test ~]# iptables -nL –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all – 192.168.1.1 0.0.0.0/0
2 DROP all – 192.168.1.2 0.0.0.0/0
3 ACCEPT all – 0.0.0.0/0 0.0.0.0/0
- 防火牆生效
防火牆修改後要先保存
再重新啓動纔會生效
保存:service iptables save
重啓:service iptables restart

發佈了65 篇原創文章 · 獲贊 29 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章