linux 2.4之後的防火牆iptables,iptables由3個表filter,nat,mangle組成,主要實驗了filter表,這個表是用來過濾資料報的,有三個鏈input,output,forward。
配置防火牆策略有固定的格式
iptables 表名 鏈名 匹配條件 動作
-t 表名 (預設為filter)
-i 鏈名 數字
-i (insert)插入鏈,如果不加數字,預設是將寫的策略新增到表中所有策略的前面,但是我們要指定插入到相應的行,我們可以這樣
iptables –t filter –i input 2 …… 這裡就是插到第二個
匹配條件:
-i 網絡卡 資料報進入的網絡卡
-o 網絡卡 出去的
-s ip 源ip
-d ip 目的ip
-p 協議
--dport 埠號 目的埠號
--sport 埠號 源埠號
動作:accept:對滿足策略的資料報允許通過
drop:丟棄資料報,且不返回任何資訊
reject:丟棄資料報,但是會返回拒絕的資訊
log:把通過的資料報寫到日誌中(相當於乙個門衛對進去的人進行登記)
檢視本機iptables情況
iptables -l -n --line-number
防火牆的關閉、開啟
重啟系統後生效
#開啟
chkconfig iptables on
#關閉chkconfig iptables off
立即生效,重啟系統後丟失設定
#開啟
service iptables start
#關閉service iptables stop
新增策略
如果做了web伺服器,開啟80埠.只允許192.168.0.3的機器進行ssh連線[root@tp ~]# iptables -a input -p tcp --dport 80 -j accept
如果做了郵件伺服器,開啟25,110埠.
[root@tp ~]# iptables -a input -p tcp --dport 110 -j accept
[root@tp ~]# iptables -a input -p tcp --dport 25 -j accept
如果做了ftp伺服器,開啟21埠
[root@tp ~]# iptables -a input -p tcp --dport 21 -j accept
[root@tp ~]# iptables -a input -p tcp --dport 20 -j accept
如果做了dns伺服器,開啟53埠
[root@tp ~]# iptables -a input -p tcp --dport 53 -j accept
如果你還做了其他的伺服器,需要開啟哪個埠,照寫就行了.
上面主要寫的都是input鏈,凡是不在上面的規則裡的,都drop
允許icmp包通過,也就是允許ping,
[root@tp ~]# iptables -a output -p icmp -j accept (output設定成drop的話)
[root@tp ~]# iptables -a input -p icmp -j accept (input設定成drop的話)
允許loopback!(不然會導致dns無法正常關閉等問題)
iptables -a input -i lo -p all -j accept (如果是input drop)
iptables -a output -o lo -p all -j accept(如果是output drop)
[root@tp ~]# iptables -a input -s 192.168.0.3 -p tcp --dport 22 -j accept
如果要允許,或限制一段ip位址可用 192.168.0.0/24 表示192.168.0.1-255端的所有ip.
24表示子網掩碼數
刪除策略
iptables -d input 1 #刪除input鏈的序號為1的策略
修改filter表的鏈
iptables -t filter -p input drop #修改filter表的input鏈的預設動作
iptables限制訪問
檢視規則 iptables l input line numbers 開放指定的埠 iptables a input p tcp dport 80 j accept 禁止指定埠 iptables a input p tcp dport 80 j drop 拒絕所有埠 iptables a input...
Iptables強制訪問外部站點
linux下我們經常使用iptables進行防火牆的配置,今天我們配置iptables利用nat強制訪問指定的站點。具體操作如下 要使192.168.52.0 24網路內的計算機 這此計算機的閘道器應設為192.168.52.10 強制訪問指定的站點,在做為防火牆的計算機 192.168.52.10...
iptables 開啟dns訪問埠
iptables 開啟dns訪問埠 今天在測試本機dns的時候發現無法解釋網域名稱,經查原因出在iptables上邊。我立即加了 iptables t filter a input p udp dport 53 j accept 的鏈路,發現還是 不行。一般認為dns就是通過訪問dns伺服器的53埠...