您好,登錄后才能下訂單哦!
linux中防火墻分三張表,分別是filter,nat,mangle。filter表是用來做基于IP地址過濾的,nat表是用來進行網絡地址轉換,mangle表是用來給某些應用程序(http和https)打標記。
filter表分為INPUT鏈,OUTPUT鏈,FORWARD鏈。INPUT鏈是指目標地址是自己,OUTPUT鏈是指源地址是自己,FORWARD鏈只是提供轉發功能(在linux內核中需打開轉發功能)。
nat表分為POSTROUTING鏈,PREROUTING鏈,POSTROUTING鏈是指先路由然后再NAT,PREROUTING鏈是指先NAT然后再路由。
mangle表是用來給相應協議打標記用的。分為POSTROUTING鏈,PREROUTING鏈。
實例:
一 包過濾型防火墻
1.設置防火墻的默認規則
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
2.iptables的分層設計
iptables -N NET1 為防火墻新建一條鏈,鏈名NET1。
iptables -A INPUT -s 192.168.1.0/24 -j NET1 跳轉到NET1鏈.
iptables -A NET1 -s 192.168.1.254 -j DROP 設置更詳細的規則。
3. 刪除一個鏈
iptables -D INPUT 刪除INPUT鏈(與NET1鏈有關)
iptables -X NET1 刪除NET1鏈
iptables -F NET1 清空鏈規則
-F是清空指定某個 chains 內所有的 rule 設定。比方 iptables -F -t filter,那就是把 filter table 內所有的INPUT/OUTPUT/FORWARD chain 設定的規則都清空。
-X是刪除使用者自訂 table 項目,一般使用 iptables -N xxx 新增自訂 chain 后,可以使用 iptables -X xxx 刪除之。
-D是刪除某個鏈。
二 狀態檢測型防火墻
NEW 新建連接
ESTABLISH 連接已經建立
RELATED 由某個連接派生的子連接(如ftp派生的子連接)
iptables -A INPUT -m state --state RELATED,ESTABLISH -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT (25端口允許)
iptables -A INPUT -m state --state NEW -j DROP 其他端口都拒絕。
三 基于應用代理防火墻
在Linux 上,可以用iptables 直接將對Web 端口80 的請求直接轉發到Squid 端口3128,由Squid 接手,而用戶瀏覽器仍然認為它訪問的是對方的80端口。例如以下這條命令:
iptables -t nat -A PREROUTING -s 192.168.0.0/32 -p tcp --dport 80 -j REDIRECT --to-ports 3128
所有設置完成后,關鍵且重要的任務是訪問控制。Squid 支持的管理方式很多,使用起來也非常簡單(這也是有人寧愿使用不做任何緩存的 Squid,也不愿意單獨使用iptables 的原因)。
四 NAT地址轉換
iptables -t nat -A POSTROUTING -s 1922.168.1.0/24 -o eth2 -j SNAT --to-source 1.1.1.1
iptables -t nat -A PREROUTING -d 2.2.2.2 -p tcp --dport 80 -i eth2 -j DNAT --to-destination 192.168.0.1:80
iptables -t nat -A POSTROUTING -s 1922.168.1.0/24 -o eth2 -j MASQUERADE(用于IP地址不固定)
iptables -F -t nat 清空nat表的規則
五 保存iptables規則
service iptables save
規則保存在/etc/sysconfig/iptables
注意:如果把/etc/sysconfig/iptables文件進行分發之后,每臺系統都要執行/sbin/service iptables restart命令來使規則生效。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。