一、ipables防火墻
創(chuàng)新互聯(lián)主營新樂網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),新樂h5重慶小程序開發(fā)搭建,新樂網(wǎng)站營銷推廣歡迎新樂等地區(qū)企業(yè)咨詢netfilter/iptables框架可以實現(xiàn)數(shù)據(jù)包過濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、以及數(shù)據(jù)包管理功能
linux中的防火墻系統(tǒng)包括兩部分:netfilter和iptables。netfilter位于系統(tǒng)內(nèi)核空間
,是linux內(nèi)核的組成部分。具體的說netfilter是linux內(nèi)核的一系列鉤子,這些鉤子允
許數(shù)據(jù)表過濾函數(shù)掛載至系統(tǒng)內(nèi)核中。而iptables是用戶工具,因netfilter在內(nèi)核空間
中,用戶無法直接接觸內(nèi)核和修改內(nèi)核,就需要iptables這樣的命令行工具添加、刪除具
體的過濾規(guī)則。
二、iptables規(guī)則表、鏈結(jié)構(gòu)、表之間的優(yōu)先級、規(guī)則鏈的優(yōu)先級
2.1、規(guī)則表
iptables管理4個不同的規(guī)則表,其功能由獨立的內(nèi)核模塊實現(xiàn)
filter表(過濾規(guī)則表): 包含3個鏈INPUT OUTPUT FORWARD
nat表(地址轉(zhuǎn)換規(guī)則表): PREROUTING POSTROUTING OUTPUT
(1)DNAT:改變數(shù)據(jù)包的目的地址使包能重路由到某臺機器(使公網(wǎng)能夠訪問局域網(wǎng)的服務(wù)器)
(2)SNAT: 改變數(shù)據(jù)包的源地址(使局域網(wǎng)能訪問公網(wǎng))
(3)NASQUERADE:和SNAT一樣使局域網(wǎng)能訪問公網(wǎng),無固定IP使用PPP.PPPoE等撥號上入Internet
mangle表(修改數(shù)據(jù)標記位規(guī)則表):PREROUTING POSTROUTING INPUT OUTPUT FORWARD
mangle表修改數(shù)據(jù)包,改變包頭中的內(nèi)容(TTL、TOS、MARK)
(1)TOS :設(shè)置改變數(shù)據(jù)包的服務(wù)類型,不要使用TOS設(shè)置發(fā)往Internet的包除非打算依賴TOS來路由,不 能在表中配置任何過濾。SNAT、DNAT
(2)TTL:改變數(shù)據(jù)包的生存時間,可以讓數(shù)據(jù)包只有一個特殊的TTL,欺騙ISP,有些ISP并不希望多臺計算 機共享一個連接訪問Internet,ISP通過檢查一臺計算機所發(fā)出的數(shù)據(jù)包是否含有不同的TTL來判斷。
(3)MaRk:給數(shù)據(jù)包設(shè)置特殊的標記,通過標記配置帶寬限制和基于請求分類。
raw表(跟蹤數(shù)據(jù)表規(guī)則表): OUTPUT PREROUTING
2.2、規(guī)則鏈
INPUT鏈: 當收到訪問防火墻本機的數(shù)據(jù)包(入站)時,應(yīng)用此鏈的規(guī)則
OUTPUT鏈: 當防火墻本機向外發(fā)送數(shù)據(jù)包(出站)時,應(yīng)用此鏈中的規(guī)則
FORWARD鏈: 收到需要通過防火墻發(fā)送給其他地址的數(shù)據(jù)包時、應(yīng)用此鏈
PREROUTING鏈: 做路由選擇之前,應(yīng)用此鏈
POSTROUTING鏈: 對數(shù)據(jù)包做路由選擇之后,應(yīng)用此鏈
2.3、規(guī)則表優(yōu)先級
raw mangel nat filter
2.4 規(guī)則鏈優(yōu)先級
三、防火墻的語法格式
3.1、用法:iptables [-t 表名] {命令-A|-D|-I|-F|-L|-Z|-P} 鏈名 [條件匹配] [-j 觸發(fā)動作]
3.2、命令參數(shù)詳解:
-A 在指定鏈的末尾添加(--append)一條新規(guī)則
[root@server136 ~]# iptables -A INPUT -p tcp -s 192.168.8.8 -j DROP(追加一條規(guī)則,禁止
192.168.8.8訪問本機)
-D 刪除(--delete)指定鏈中的某一條規(guī)則,按規(guī)則序號或內(nèi)容確定要刪除的規(guī)則
[root@server136 ~]# iptables -D INPUT -p tcp -s 192.168.8.8 -j DROP(刪除這條規(guī)則)
-I 在指定鏈中插入一條新規(guī)則,若未指定插入位置,則默認在鏈的開頭插入
[root@server136 ~]# iptables -I INPUT 2 -p tcp --dport 443 -j ACCEPT(在INPUT
第二行插入一條規(guī)則,允許443端口進入)
-R 修改、替換指定鏈中的一條規(guī)則,按按規(guī)則序號或內(nèi)容確定要替換的規(guī)則
[root@server136 ~]# iptables -R INPUT 2 -s 192.168.8.9 -j REJECT (替換第二條規(guī)則,拒絕此ip訪問本機)
-L 列出指定鏈中所有的規(guī)則進行查看,若未指定鏈名,則列出表中所有鏈的內(nèi)容
[root@server136 ~]# iptables -L -n(查看filter表中的規(guī)則)
-F 清空指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中所有鏈的內(nèi)容
[root@server136 ~]# iptables -F(清除filter表中的所有規(guī)則)
-N 新建一條用戶自定義的規(guī)則鏈
[root@server136 ~]# iptables -t nat -N tarace (nat表新建一條規(guī)則)
-X 刪除表中用戶自定義的規(guī)則鏈
[root@server136 ~]# iptables -t nat -X tarace (刪除新建的tarace規(guī)則鏈)
-P 設(shè)置指定鏈的默認策略(大p)
[root@server136 ~]# iptables -P INPUT DROP (定義INPUT規(guī)則鏈的策略為丟棄,慎用,遠程會全部斷開)
用之前需添加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 使用數(shù)字形式顯示輸出結(jié)果,如顯示主機的IP地址而不是主機名
[root@server136 ~]# iptables -n -L (需配合-L參數(shù)使用)
-v 查看規(guī)則列表時顯示詳細的信息
[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 查看規(guī)則列表時,同時顯示規(guī)則在鏈中的順序號、地方
[root@server136 ~]# iptables -n -L --line-numbers
3.3、規(guī)則鏈的匹配條件類型
3.3.1通用匹配:可以直接使用,不依賴其他條件或擴展,包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等
1、協(xié)議匹配:-p 協(xié)議名
[root@server136 ~]# iptables -A FORWARD ! -p icmp -j ACCEPT (除了icmp協(xié)議的
數(shù)據(jù)包,其他協(xié)議的包都能轉(zhuǎn)發(fā))
2、地址匹配:-s 源地址、-d 目標地址
3、接口匹配:-i 入站網(wǎng)卡、-o 出站網(wǎng)卡
[root@server136 ~]# iptables -I FORWARD -s 192.168.8.10 -p tcp -o eht1 --sport 80 -j ACCEPT
(源地址192.168.8.10的80端口可以回應(yīng)Eth2網(wǎng)卡的請求)
3.3.2、隱含匹配:要求以特定的協(xié)議匹配為前提,包括端口、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網(wǎng)絡(luò)的之計可以訪問其他網(wǎng)絡(luò)的53號端口)
[root@server136 ~]# iptables -A FORWARD -d 192.168.9.0/24 -p udp --sport 53 -j ACCEPT
(來自53號端口的數(shù)據(jù)包可以訪問192.168.9.0網(wǎng)段的主機)
2、TCP標記匹配 --tcp-flags [檢查范圍] [被設(shè)置的標記]
[root@server136 ~]# iptables -IINPUT -i eth2 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
(檢測到入站的syn數(shù)據(jù)包就丟棄)
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地址范圍數(shù)據(jù)包通過)
[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、狀態(tài)匹配:-m state --state 連接狀態(tài)
NEW: 與任何連接無關(guān)
ESTABLISHED: 響應(yīng)請求或已經(jīng)建立連接的
RELATED:與已有連接有相關(guān)性的
[root@server136 ~]# iptables -I INPUT -m state --state ESTABLISHED -j ACCEPT
四、觸發(fā)動作
ACCEPT 允許數(shù)據(jù)庫通過
DROP 丟棄數(shù)據(jù)包
REJECT 拒絕數(shù)據(jù)包通過
LOG 將數(shù)據(jù)包信息記錄syslog日志
DNAT 目標地址轉(zhuǎn)換
SNAT 源地址轉(zhuǎn)換
MASQUERADE 地址欺騙
REDIRECT 重定向
五、寫規(guī)則注意事項:
服務(wù)端:先進后出
客戶端:先出后進
先全部堵上,在發(fā)通行證 一般******可以堵截到,沒發(fā)通行證給他
做放行規(guī)則時是一定要有進有出,不然放行不成功
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。