您好,登錄后才能下訂單哦!
一、ipables防火墻
netfilter/iptables框架可以實現數據包過濾、網絡地址轉換、以及數據包管理功能
linux中的防火墻系統包括兩部分:netfilter和iptables。netfilter位于系統內核空間
,是linux內核的組成部分。具體的說netfilter是linux內核的一系列鉤子,這些鉤子允
許數據表過濾函數掛載至系統內核中。而iptables是用戶工具,因netfilter在內核空間
中,用戶無法直接接觸內核和修改內核,就需要iptables這樣的命令行工具添加、刪除具
體的過濾規則。
二、iptables規則表、鏈結構、表之間的優先級、規則鏈的優先級
2.1、規則表
iptables管理4個不同的規則表,其功能由獨立的內核模塊實現
filter表(過濾規則表): 包含3個鏈INPUT OUTPUT FORWARD
nat表(地址轉換規則表): PREROUTING POSTROUTING OUTPUT
(1)DNAT:改變數據包的目的地址使包能重路由到某臺機器(使公網能夠訪問局域網的服務器)
(2)SNAT: 改變數據包的源地址(使局域網能訪問公網)
(3)NASQUERADE:和SNAT一樣使局域網能訪問公網,無固定IP使用PPP.PPPoE等撥號上入Internet
mangle表(修改數據標記位規則表):PREROUTING POSTROUTING INPUT OUTPUT FORWARD
mangle表修改數據包,改變包頭中的內容(TTL、TOS、MARK)
(1)TOS :設置改變數據包的服務類型,不要使用TOS設置發往Internet的包除非打算依賴TOS來路由,不 能在表中配置任何過濾。SNAT、DNAT
(2)TTL:改變數據包的生存時間,可以讓數據包只有一個特殊的TTL,欺騙ISP,有些ISP并不希望多臺計算 機共享一個連接訪問Internet,ISP通過檢查一臺計算機所發出的數據包是否含有不同的TTL來判斷。
(3)MaRk:給數據包設置特殊的標記,通過標記配置帶寬限制和基于請求分類。
raw表(跟蹤數據表規則表): OUTPUT PREROUTING
2.2、規則鏈
INPUT鏈: 當收到訪問防火墻本機的數據包(入站)時,應用此鏈的規則
OUTPUT鏈: 當防火墻本機向外發送數據包(出站)時,應用此鏈中的規則
FORWARD鏈: 收到需要通過防火墻發送給其他地址的數據包時、應用此鏈
PREROUTING鏈: 做路由選擇之前,應用此鏈
POSTROUTING鏈: 對數據包做路由選擇之后,應用此鏈
2.3、規則表優先級
raw mangel nat filter
2.4 規則鏈優先級
三、防火墻的語法格式
3.1、用法:iptables [-t 表名] {命令-A|-D|-I|-F|-L|-Z|-P} 鏈名 [條件匹配] [-j 觸發動作]
3.2、命令參數詳解:
-A 在指定鏈的末尾添加(--append)一條新規則
[root@server136 ~]# iptables -A INPUT -p tcp -s 192.168.8.8 -j DROP(追加一條規則,禁止
192.168.8.8訪問本機)
-D 刪除(--delete)指定鏈中的某一條規則,按規則序號或內容確定要刪除的規則
[root@server136 ~]# iptables -D INPUT -p tcp -s 192.168.8.8 -j DROP(刪除這條規則)
-I 在指定鏈中插入一條新規則,若未指定插入位置,則默認在鏈的開頭插入
[root@server136 ~]# iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT(在INPUT
第二行插入一條規則,允許443端口進入)
-R 修改、替換指定鏈中的一條規則,按按規則序號或內容確定要替換的規則
[root@server136 ~]# iptables -R INPUT 2 -s 192.168.8.9 -j REJECT (替換第二條規則,拒絕此ip訪問本機)
-L 列出指定鏈中所有的規則進行查看,若未指定鏈名,則列出表中所有鏈的內容
[root@server136 ~]# iptables -L -n(查看filter表中的規則)
-F 清空指定鏈中的所有規則,若未指定鏈名,則清空表中所有鏈的內容
[root@server136 ~]# iptables -F(清除filter表中的所有規則)
-N 新建一條用戶自定義的規則鏈
[root@server136 ~]# iptables -t nat -N tarace (nat表新建一條規則)
-X 刪除表中用戶自定義的規則鏈
[root@server136 ~]# iptables -t nat -X tarace (刪除新建的tarace規則鏈)
-P 設置指定鏈的默認策略(大p)
[root@server136 ~]# iptables -P INPUT DROP (定義INPUT規則鏈的策略為丟棄,慎用,遠程會全部斷開)
用之前需添加22端口的策略
[root@server136 ~]# iptables -I INPUT -p tcp --dport 22 -j ACCEPT
[root@server136 ~]# /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
[root@server136 ~]# service iptables restart
iptables: Setting chains to policy ACCEPT: nat filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
-n 使用數字形式顯示輸出結果,如顯示主機的IP地址而不是主機名
[root@server136 ~]# iptables -n -L (需配合-L參數使用)
-v 查看規則列表時顯示詳細的信息
[root@server136 ~]# iptables -n -L -v
Chain INPUT (policy DROP 13 packets, 2753 bytes)
pkts bytes target prot opt in out source destination
81 7629 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 75 packets, 9341 bytes)
pkts bytes target prot opt in out source destination
-V 查看iptables命令工具的版本信息
[root@server136 ~]# iptables -V
iptables v1.4.7
-h 查看命令幫助信息
[root@server136 ~]# iptables -h
--line-numbers 查看規則列表時,同時顯示規則在鏈中的順序號、地方
[root@server136 ~]# iptables -n -L --line-numbers
3.3、規則鏈的匹配條件類型
3.3.1通用匹配:可以直接使用,不依賴其他條件或擴展,包括網絡協議、IP地址、網絡接口等
1、協議匹配:-p 協議名
[root@server136 ~]# iptables -A FORWARD ! -p icmp -j ACCEPT (除了icmp協議的
數據包,其他協議的包都能轉發)
2、地址匹配:-s 源地址、-d 目標地址
3、接口匹配:-i 入站網卡、-o 出站網卡
[root@server136 ~]# iptables -I FORWARD -s 192.168.8.10 -p tcp -o eht1 --sport 80 -j ACCEPT
(源地址192.168.8.10的80端口可以回應Eth2網卡的請求)
3.3.2、隱含匹配:要求以特定的協議匹配為前提,包括端口、tcp標記、icmp類型等
1、端口匹配:--sport 源端口、--dport 目標端口
[root@server136 ~]# iptables -A FORWARD -s 192.168.8.0/24 -p udp --dport 53 -j ACCEPT
(192.168.8.0網絡的之計可以訪問其他網絡的53號端口)
[root@server136 ~]# iptables -A FORWARD -d 192.168.9.0/24 -p udp --sport 53 -j ACCEPT
(來自53號端口的數據包可以訪問192.168.9.0網段的主機)
2、TCP標記匹配 --tcp-flags [檢查范圍] [被設置的標記]
[root@server136 ~]# iptables -IINPUT -i eth2 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
(檢測到入站的syn數據包就丟棄)
3、ICMP類型:--icmp-type icmp類型(8請求、0返回、3請求但主機不可達)
[root@server136 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j DROP
(別人請求ping我的主機,丟棄)
[root@server136 ~]# iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT(我ping別人時,允許返回)
3.3.3、顯示條件匹配
1、多端口匹配:-m multiport --sports 源端口列表
-m multiport --dport 目標端口列表
[root@server136 ~]# iptables -A INPUT -p tcp -m multiport --dport 80,110,443 -j ACCEPT
2、ip范圍匹配:-m iprange --src-range 源IP范圍
-m iprange --dst-range目標IP范圍
[root@server136 ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.7.10-192.168.7.123 -j ACCEPT(允許以上ip地址范圍數據包通過)
[root@server136 ~]# iptables -A FORWARD -p tcp -m iprange --dst-range 192.168.8.10-192.168.8.123 -j ACCEPT
3、MAC地址匹配:-m mac --mac-source 源mac地址
[root@server136 ~]# iptables -A INPUT -m mac --mac-source 00:0c:29:b1:f6:c4 -j ACCEPT
4、狀態匹配:-m state --state 連接狀態
NEW: 與任何連接無關
ESTABLISHED: 響應請求或已經建立連接的
RELATED:與已有連接有相關性的
[root@server136 ~]# iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT
四、觸發動作
ACCEPT 允許數據庫通過
DROP 丟棄數據包
REJECT 拒絕數據包通過
LOG 將數據包信息記錄syslog日志
DNAT 目標地址轉換
SNAT 源地址轉換
MASQUERADE 地址欺騙
REDIRECT 重定向
五、寫規則注意事項:
服務端:先進后出
客戶端:先出后進
先全部堵上,在發通行證 一般******可以堵截到,沒發通行證給他
做放行規則時是一定要有進有出,不然放行不成功
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。