欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
iptables的使用以及NAT的原理

原創(chuàng ) iptables的使用以及NAT的原理


    本節我們來(lái)講一講防火墻的知識。所謂防火墻指的是一個(gè)由軟件和硬件設備組合而成、在內部網(wǎng)和外部網(wǎng)之間、專(zhuān)用網(wǎng)與公共網(wǎng)之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說(shuō)法,它是一種計算機硬件和軟件的結合,使Internet與Intranet之間建立起一個(gè)安全網(wǎng)關(guān)(Security Gateway),從而保護內部網(wǎng)免受非法用戶(hù)的侵入。防火墻按照工作在不同TCP/IP層又可以分為網(wǎng)絡(luò )層防火墻和應用層網(wǎng)關(guān)防火墻,二本節我們要講的內容為網(wǎng)絡(luò )層防火墻,即iptables,組件為netfilter/iptables。

    netfilter 組件也稱(chēng)為內核空間(kernelspace),是內核的一部分,由一些信息包過(guò)濾表組成,這些表包含內核用來(lái)控制信息包過(guò)濾處理的規則集。

    iptables 組件是一種工具,也稱(chēng)為用戶(hù)空間(userspace),它使插入、修改和除去信息包過(guò)濾表中的規則變得容易。

    那么下面我們就來(lái)講講netfilter的組成部分以及iptables命令的使用方法。


netfilter

netfilter由4表5鏈組成。

5條鏈即為5個(gè)hook function(鉤子函數),可以理解為數據包傳送到該計算機時(shí)的5個(gè)檢查點(diǎn)。分別為:

PREROUTING:路由前

INPUT:到達本機內部的報文必經(jīng)之路

FORWARD:由本機轉發(fā)的報文必經(jīng)之路

OUTPUT:由本機發(fā)出的報文的必經(jīng)之路

POSTROUTING:路由后

而4張表(即功能)分別為:raw, mangle, nat, filter。

raw: 目標是關(guān)閉nat表上啟用的連接追蹤功能;

mangle:包重構,把包拆開(kāi)來(lái)打上某些標記再送走

nat: 地址轉換,啟用connection_track;

SNAT

DNAT

PNAT

filter: 過(guò)濾,定義是否允許通過(guò)防火墻

注意這4張表是有優(yōu)先級的概念的,這里我是按照優(yōu)先級排的。


表和鏈之間的對應關(guān)系。

filter: INPUT, FORWARD, OUTPUT

nat: PREROUTING(DNAT),POSTROUTING(SNAT),OUTPUT

mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw: PREROUTING, OUTPUT


數據報文流程:如下圖所示

跟本機內部進(jìn)程通信:

進(jìn)入:PREROUTING, INPUT

出去:OUTPUT, POSTROUTING

由本機轉發(fā):

PREROUTING, FORWARD, POSTROUTING

數據報文的流向:

源IP和目標IP由流向決定;


iptables

當你要寫(xiě)規則時(shí),應該先確定功能(表),確定報文流向,確定要實(shí)現的目標,確定匹配件。

iptables規則定義原則:

1、同一類(lèi)規則,盡量?jì)?yōu)化條目數量;

2、彼此不相關(guān)的規則匹配量大的規則,放在前面,匹配機會(huì )較多放在上面;

3、同一類(lèi)規則,匹配規則更嚴格放在上面。

必須要注意的是:規則立即生效,所以當你使用iptables時(shí)需要先添加放行自己會(huì )話(huà)的規則,避免自己的會(huì )話(huà)被拒絕。

規則文件:/etc/sysconfig/iptables

保存啟用中的規則于規則文件中:

1、# iptables-save > /etc/sysconfig/iptables

2、# service iptables save


生效規則文件中的規則:

1、# iptables-restore <>

2、# service iptables restart

執行的操作:清空現有規則,讀取并生效規則文件中的規則



基本語(yǔ)法:

iptables [-t TABLE] COMMAND CHAIN  CRETIRIA -j TARGET

下面對每一項進(jìn)行解釋?zhuān)?/p>

-t TABLE: 選擇哪個(gè)表

   nat, mangle, raw, filter

   默認為filter


COMMAND:

鏈:

-F:flush, 清空規則鏈;

-N:new, 自建一條鏈

-X: delete, 刪除一條自定義的空鏈

-Z:zero,計數器歸零

-P:policy,設置默認策略,對filter表來(lái)講,默認規則為ACCEPT或DROP;

-E:重命名自定義鏈


鏈中的規則:

-A 添加規則

-I 插入規則

-D 刪除規則

-R 修改規則


查詢(xún):

-L

   -n: 數字格式顯示主機地址和端口;

   -v: 詳細格式,-vv, -vvv

   -x: exactly,不要對計數器的計數結果做單位換算,而顯示其精確值  

   --line-numbers: 顯示規則編號

查看后得到的

pkts bytes  target     prot opt in        out         source               destination

包數 字節數 目標       協(xié)議  流入的接口  流出的接口   源地址               目標地址


CHAIN:選定哪個(gè)鏈


添加規則

iptables [-t TABLE] -A 鏈名 匹配條件 -j 處理目標

匹配條件

通用匹配

-s 地址:指定報文源IP地址匹配的范圍;可以是IP,也可以是網(wǎng)絡(luò )地址;可使用!取反;

   --src, --source

-d 地址:指定報文目標IP地址匹配的范圍;

   --dst, --destination

-p 協(xié)議:指定匹配報文的協(xié)議類(lèi)型,一般有三種tcp, udp和icmp;

-i INTERFACE: 數據報文流入的接口;PREROUTING, INPUT, FORWARD

-o INTERFACE: 數據報文流出的接口;OUTPUT, FORWARD, POSTROUITING


擴展匹配:調用netfilter額外模塊實(shí)現特殊檢查機制,(使用到相關(guān)功能,要使用iptables命令的-m選項來(lái)指定調用哪個(gè)模塊)


隱式擴展:當使用-p {tcp|udp|icmp}中的一種時(shí),可以直接使用擴展專(zhuān)用選項;

-p tcp:

  --sport PORT[-PORT]: 指定源端口

  --dport PORT[-PORT]: 指定目標端口

  --tcp-flags

 要檢查標志位列表(用逗號分隔)  必須為1的標志位列表(逗號分隔)

  --syn

-p udp:

 --sport 

 --dport

-p icmp [-m icmp]

 --icmp-type

  0: echo-reply, ping響應

  8: echo-request, ping請求


顯式擴展:必須明確說(shuō)明使用哪個(gè)模塊進(jìn)行擴展,而后才能使用其擴展專(zhuān)用選項;

-m 擴展模塊名稱(chēng)


multiport: 多端口匹配

可用于匹配非連續或連續端口;最多指定15個(gè)端口;


專(zhuān)用選項:

--source-ports, --sports port[,port,port:port]

--destination-ports, --dports

--ports

例子:開(kāi)放22,80端口

# iptables -I INPUT -d 172.16.100.7 -p tcp -m multiport --dports 22,80 -j ACCEPT# iptables -I OUTPUT -s 172.16.100.7 -p tcp -m multiport --sports 22,80 -j ACCEPT


iprange: 匹配指定范圍內的地址;

匹配一段連續的地址而非整個(gè)網(wǎng)絡(luò )時(shí)有用;

專(zhuān)用選項:

[!] --src-ragne IP[-IP]

[!] --dst-range

例子:限定一段連續地址可以通過(guò)telnet連接。

# iptables -A INPUT -d 172.16.100.7 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT# iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport 23 -m iprange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT


string: 字符串匹配,能夠檢測報文應用層中的字符串

專(zhuān)用選項:

--algo {kmp|bm}  2種不同的算法,選一種

--string 'STRING'      STRING為你想要匹配的字符串

--hex-string 'HEX_STRING': HEX_STRING為編碼成16進(jìn)制格式的字串;

例子:

# iptables -I OUTPUT -m string --algo kmp --string 'sex' -j DROP


time: 基于時(shí)間做訪(fǎng)問(wèn)控制

專(zhuān)用選項:

--datestart YYYY[-MM][-DD[Thh[:mm[:ss]]]]

--datestop 


--timestart hh:mm[:ss]

--timestop hh:mm[:ss]


--weekdays day[,day]

Mon, Tue,.....     中間用逗號隔開(kāi) 

例子:

# iptables -I INPUT -d 172.16.100.7 -p tcp --dport 80 -m time --timestart 08:20 --timestop 18:40 --weekdays Mon,Tue  -j ACCEPT


connlimit: 連接數限制,對每IP所能夠發(fā)起并發(fā)連接數做限制;

專(zhuān)用選項:

[!] --connlimit-above [n] 


例子:限制同一IP ssh遠程連接數。

#iptables -A INPUT -d 172.16.100.7 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP


limit: 速率限制

專(zhuān)用選項:

--limit n[/second|/minute|/hour|/day]

--limit-burst n  

例子:限制每分鐘只能ping20次

# iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 8 -m limit --limit 20/minute --limit-burst 5 -j ACCEPT


state: 狀態(tài)檢查

專(zhuān)用選項:

--state 


連接追蹤中的狀態(tài):

NEW: 新建立一個(gè)會(huì )話(huà)

ESTABLISHED:已建立的連接

RELATED: 有關(guān)聯(lián)關(guān)系的連接

INVALID: 無(wú)法識別的連接

例子:放行所有已建立連接的數據包。

[root@localhost ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT


處理目標:

1、DROP :  丟棄

2、REJECT: 拒絕

3、ACCEPT: 放行

4、自定義的鏈 :   根據自定義鏈中的規則進(jìn)行匹配

    創(chuàng )建自定義鏈

iptables [-t table] -N chain

    刪除自定義且0引用的空鏈

iptables [-t table] -X chain

    重命名自定義鏈:

iptables [-t table] -E old_name new_name

5、DNAT:明確申明要做的是目的地地址轉換操作   

6、SNAT:明確申明要做的是源地址轉換操作

7、REDIRECT:重定向:主要用于實(shí)現端口重定向

8、MARK:打防火墻標記的

9、RETURN:在自義鏈中無(wú)法匹配報文時(shí),將其返回主鏈

   

調整連接追蹤功能所能容納的連接的最大數目:

/proc/sys/net/nf_conntrack_max

   當前追蹤的所有連接

/proc/net/nf_conntrack

   不同協(xié)議或連接類(lèi)型追蹤時(shí)的屬性:

/proc/sys/net/netfilter目錄:

  

下面我們以ftp服務(wù)為例:

 放行被動(dòng)模式下的FTP服務(wù):

1、裝載模塊/lib/modules/KERNEL_VERSION/kernel/net/netfilter/

模塊:nf_conntrack_ftp

          裝載命令:modprobe nf_conntrack_ftp

          卸載:modprobe -r nf_conntrack_ftp

2、放行請求報文

         (1) 放行NEW狀態(tài)對21端口請求的報文;

[root@localhost ~]# iptables -A INPUT -d 172.16.106.1 -p tcp --dport 21 -m state --NEW -j ACCEPT

(2) 放行ESTABLISHED以及RELATED狀態(tài)的報文

[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

3、放行響應報文

放行ESTABLISHED以及RELATED狀態(tài)的報文

[root@localhost ~]# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

這樣FTP服務(wù)就可以運行了。


iptables的路由轉發(fā)功能

所謂的轉發(fā)功能就是啟用forward功能,并且結合地址轉換功能,使得2個(gè)屬于不同網(wǎng)絡(luò )的主機或者服務(wù)器之間可以進(jìn)行連接通信。(這里默認INPUT,OUTPUT鏈的策略為drop)

首先必須在配置文件中將路由轉發(fā)功能開(kāi)啟:

#vim /etc/sysctl.confnet.ipv4.ip_forward = 1#sysctl -p   重讀配置文件

上面的啟用之后就可以通過(guò)iptables命令來(lái)進(jìn)行添加規則了。

下面我們通過(guò)下圖來(lái)解釋一下轉發(fā)時(shí)的地址轉換原理。


SNAT


假設中間的網(wǎng)關(guān)主機為B:由2個(gè)地址,一個(gè)是內網(wǎng)地址172.16.0.1,一個(gè)外網(wǎng)地址192.168.1.1
當私網(wǎng)中的主機A想訪(fǎng)問(wèn)公網(wǎng)中的WEB主機時(shí),由于不能直接訪(fǎng)問(wèn),于是A就通過(guò)網(wǎng)關(guān)主機的路由發(fā)送請求,

假設不進(jìn)行地址轉換,則網(wǎng)關(guān)主機允許路由轉發(fā),于是請求到達了web主機,然而當web收到請求后,于是返回響應報文,但是WEB發(fā)現該請求的源地址是一個(gè)私網(wǎng)地址,因此WEB無(wú)法將響應報文送回到網(wǎng)關(guān)主機B;

因此在網(wǎng)關(guān)主機B中必須進(jìn)行地址轉換,在報文將要離開(kāi)主機B的之前將源地址改為1.1.1.1(注意:在轉換完成之后,主機B會(huì )自動(dòng)生成一張表,記錄了內網(wǎng)中的那個(gè)主機發(fā)起哪個(gè)請求,因此當該請求的響應報文從遠程主機返回之后,主機B會(huì )自動(dòng)根據該表將響應報文中的IP地址改為請求主機的IP),然后再將報文發(fā)送給WEB;當WEB收到報文后做出響應,發(fā)出響應報文,源地址為2.2.2.2,目標地址問(wèn)1.1.1.1,因此響應報文發(fā)送給了主機B,經(jīng)過(guò)地址轉換之后,主機B又將響應報文送回給A,這樣才完成了整個(gè)通信過(guò)程。

由于上述完成的是一個(gè)SNAT的過(guò)程,即在請求的過(guò)程中目標地址始終沒(méi)變,變的只是源地址,因此在寫(xiě)規則是,寫(xiě)在POSTROUTING鏈中:

#iptables -t nat -A POSTROUTING -s 172.16.6.2   -j SNAT --to-source 1.1.1.1


DNAT

如果是一個(gè)DNAT的過(guò)程的話(huà),寫(xiě)規則時(shí)的鏈就不同,應該寫(xiě)在PREROUTING鏈中:

該過(guò)程就可以看成是公網(wǎng)中的主機C來(lái)訪(fǎng)問(wèn)B中的web的服務(wù),然而B(niǎo)只是一臺代理服務(wù)器,它的web服務(wù)是他內網(wǎng)中的www服務(wù)器提供的,如下圖。

根據C發(fā)出的請求報文應該是,源地址為2.2.2.2,目標地址為1.1.1.1,而到了B主機之后呢?他收到請求之后發(fā)現目標地址為自己,然而他請求的是web服務(wù),應該將請求的目標地址改為WWW主機的IP(172.16.6.2),那么在哪個(gè)地方改呢?對,他只能在路由決策之前修改,不然的話(huà)請求就送給B主機本身處理了,而非轉發(fā)給內網(wǎng)中的WWW主機。因此,該規則只能在PREROUTING鏈中寫(xiě),IP修改完之后才能進(jìn)行轉發(fā)(當然和上面一樣,修改完之后也會(huì )生成一張表,記錄相關(guān)信息,當該請求的響應返回時(shí),主機B將會(huì )自動(dòng)根據該表將響應報文中的源IP地址改為1.1.1.1),然后再將報文發(fā)送給WWW,WWW收到請求后返回響應報文,源地址為172.16.6.2,目標地址為2.2.2.2,當B收到報文后自動(dòng)將源地址改為1.1.1.1,然后再返回給C主機。這樣通信過(guò)程才算完成了。

命令:

#iptables -t nat -A PREROUTING -d 1.1.1.1   -j DNAT --to-destination 172.16.6.2

   本節相關(guān)的內容就講到這里,歡迎大家一起交流,講的不好不對的請批評指正,謝謝!

    本節我們來(lái)講一講防火墻的知識。所謂防火墻指的是一個(gè)由軟件和硬件設備組合而成、在內部網(wǎng)和外部網(wǎng)之間、專(zhuān)用網(wǎng)與公共網(wǎng)之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說(shuō)法,它是一種計算機硬件和軟件的結合,使Internet與Intranet之間建立起一個(gè)安全網(wǎng)關(guān)(Security Gateway),從而保護內部網(wǎng)免受非法用戶(hù)的侵入。防火墻按照工作在不同TCP/IP層又可以分為網(wǎng)絡(luò )層防火墻和應用層網(wǎng)關(guān)防火墻,二本節我們要講的內容為網(wǎng)絡(luò )層防火墻,即iptables,組件為netfilter/iptables。

    netfilter 組件也稱(chēng)為內核空間(kernelspace),是內核的一部分,由一些信息包過(guò)濾表組成,這些表包含內核用來(lái)控制信息包過(guò)濾處理的規則集。

    iptables 組件是一種工具,也稱(chēng)為用戶(hù)空間(userspace),它使插入、修改和除去信息包過(guò)濾表中的規則變得容易。

    那么下面我們就來(lái)講講netfilter的組成部分以及iptables命令的使用方法。


netfilter

netfilter由4表5鏈組成。

5條鏈即為5個(gè)hook function(鉤子函數),可以理解為數據包傳送到該計算機時(shí)的5個(gè)檢查點(diǎn)。分別為:

PREROUTING:路由前

INPUT:到達本機內部的報文必經(jīng)之路

FORWARD:由本機轉發(fā)的報文必經(jīng)之路

OUTPUT:由本機發(fā)出的報文的必經(jīng)之路

POSTROUTING:路由后

而4張表(即功能)分別為:raw, mangle, nat, filter。

raw: 目標是關(guān)閉nat表上啟用的連接追蹤功能;

mangle:包重構,把包拆開(kāi)來(lái)打上某些標記再送走

nat: 地址轉換,啟用connection_track;

SNAT

DNAT

PNAT

filter: 過(guò)濾,定義是否允許通過(guò)防火墻

注意這4張表是有優(yōu)先級的概念的,這里我是按照優(yōu)先級排的。


表和鏈之間的對應關(guān)系。

filter: INPUT, FORWARD, OUTPUT

nat: PREROUTING(DNAT),POSTROUTING(SNAT),OUTPUT

mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw: PREROUTING, OUTPUT


數據報文流程:如下圖所示

跟本機內部進(jìn)程通信:

進(jìn)入:PREROUTING, INPUT

出去:OUTPUT, POSTROUTING

由本機轉發(fā):

PREROUTING, FORWARD, POSTROUTING

數據報文的流向:

源IP和目標IP由流向決定;


iptables

當你要寫(xiě)規則時(shí),應該先確定功能(表),確定報文流向,確定要實(shí)現的目標,確定匹配件。

iptables規則定義原則:

1、同一類(lèi)規則,盡量?jì)?yōu)化條目數量;

2、彼此不相關(guān)的規則匹配量大的規則,放在前面,匹配機會(huì )較多放在上面;

3、同一類(lèi)規則,匹配規則更嚴格放在上面。

必須要注意的是:規則立即生效,所以當你使用iptables時(shí)需要先添加放行自己會(huì )話(huà)的規則,避免自己的會(huì )話(huà)被拒絕。

規則文件:/etc/sysconfig/iptables

保存啟用中的規則于規則文件中:

1、# iptables-save > /etc/sysconfig/iptables

2、# service iptables save


生效規則文件中的規則:

1、# iptables-restore <>

2、# service iptables restart

執行的操作:清空現有規則,讀取并生效規則文件中的規則



基本語(yǔ)法:

iptables [-t TABLE] COMMAND CHAIN  CRETIRIA -j TARGET

下面對每一項進(jìn)行解釋?zhuān)?/p>

-t TABLE: 選擇哪個(gè)表

   nat, mangle, raw, filter

   默認為filter


COMMAND:

鏈:

-F:flush, 清空規則鏈;

-N:new, 自建一條鏈

-X: delete, 刪除一條自定義的空鏈

-Z:zero,計數器歸零

-P:policy,設置默認策略,對filter表來(lái)講,默認規則為ACCEPT或DROP;

-E:重命名自定義鏈


鏈中的規則:

-A 添加規則

-I 插入規則

-D 刪除規則

-R 修改規則


查詢(xún):

-L

   -n: 數字格式顯示主機地址和端口;

   -v: 詳細格式,-vv, -vvv

   -x: exactly,不要對計數器的計數結果做單位換算,而顯示其精確值  

   --line-numbers: 顯示規則編號

查看后得到的

pkts bytes  target     prot opt in        out         source               destination

包數 字節數 目標       協(xié)議  流入的接口  流出的接口   源地址               目標地址


CHAIN:選定哪個(gè)鏈


添加規則

iptables [-t TABLE] -A 鏈名 匹配條件 -j 處理目標

匹配條件

通用匹配

-s 地址:指定報文源IP地址匹配的范圍;可以是IP,也可以是網(wǎng)絡(luò )地址;可使用!取反;

   --src, --source

-d 地址:指定報文目標IP地址匹配的范圍;

   --dst, --destination

-p 協(xié)議:指定匹配報文的協(xié)議類(lèi)型,一般有三種tcp, udp和icmp;

-i INTERFACE: 數據報文流入的接口;PREROUTING, INPUT, FORWARD

-o INTERFACE: 數據報文流出的接口;OUTPUT, FORWARD, POSTROUITING


擴展匹配:調用netfilter額外模塊實(shí)現特殊檢查機制,(使用到相關(guān)功能,要使用iptables命令的-m選項來(lái)指定調用哪個(gè)模塊)


隱式擴展:當使用-p {tcp|udp|icmp}中的一種時(shí),可以直接使用擴展專(zhuān)用選項;

-p tcp:

  --sport PORT[-PORT]: 指定源端口

  --dport PORT[-PORT]: 指定目標端口

  --tcp-flags

 要檢查標志位列表(用逗號分隔)  必須為1的標志位列表(逗號分隔)

  --syn

-p udp:

 --sport 

 --dport

-p icmp [-m icmp]

 --icmp-type

  0: echo-reply, ping響應

  8: echo-request, ping請求


顯式擴展:必須明確說(shuō)明使用哪個(gè)模塊進(jìn)行擴展,而后才能使用其擴展專(zhuān)用選項;

-m 擴展模塊名稱(chēng)


multiport: 多端口匹配

可用于匹配非連續或連續端口;最多指定15個(gè)端口;


專(zhuān)用選項:

--source-ports, --sports port[,port,port:port]

--destination-ports, --dports

--ports

例子:開(kāi)放22,80端口

# iptables -I INPUT -d 172.16.100.7 -p tcp -m multiport --dports 22,80 -j ACCEPT# iptables -I OUTPUT -s 172.16.100.7 -p tcp -m multiport --sports 22,80 -j ACCEPT


iprange: 匹配指定范圍內的地址;

匹配一段連續的地址而非整個(gè)網(wǎng)絡(luò )時(shí)有用;

專(zhuān)用選項:

[!] --src-ragne IP[-IP]

[!] --dst-range

例子:限定一段連續地址可以通過(guò)telnet連接。

# iptables -A INPUT -d 172.16.100.7 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT# iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport 23 -m iprange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT


string: 字符串匹配,能夠檢測報文應用層中的字符串

專(zhuān)用選項:

--algo {kmp|bm}  2種不同的算法,選一種

--string 'STRING'      STRING為你想要匹配的字符串

--hex-string 'HEX_STRING': HEX_STRING為編碼成16進(jìn)制格式的字串;

例子:

# iptables -I OUTPUT -m string --algo kmp --string 'sex' -j DROP


time: 基于時(shí)間做訪(fǎng)問(wèn)控制

專(zhuān)用選項:

--datestart YYYY[-MM][-DD[Thh[:mm[:ss]]]]

--datestop 


--timestart hh:mm[:ss]

--timestop hh:mm[:ss]


--weekdays day[,day]

Mon, Tue,.....     中間用逗號隔開(kāi) 

例子:

# iptables -I INPUT -d 172.16.100.7 -p tcp --dport 80 -m time --timestart 08:20 --timestop 18:40 --weekdays Mon,Tue  -j ACCEPT


connlimit: 連接數限制,對每IP所能夠發(fā)起并發(fā)連接數做限制;

專(zhuān)用選項:

[!] --connlimit-above [n] 


例子:限制同一IP ssh遠程連接數。

#iptables -A INPUT -d 172.16.100.7 -p tcp --dport 22 -m connlimit --connlimit-above 2 -j DROP


limit: 速率限制

專(zhuān)用選項:

--limit n[/second|/minute|/hour|/day]

--limit-burst n  

例子:限制每分鐘只能ping20次

# iptables -A INPUT -d 172.16.100.7 -p icmp --icmp-type 8 -m limit --limit 20/minute --limit-burst 5 -j ACCEPT


state: 狀態(tài)檢查

專(zhuān)用選項:

--state 


連接追蹤中的狀態(tài):

NEW: 新建立一個(gè)會(huì )話(huà)

ESTABLISHED:已建立的連接

RELATED: 有關(guān)聯(lián)關(guān)系的連接

INVALID: 無(wú)法識別的連接

例子:放行所有已建立連接的數據包。

[root@localhost ~]# iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT


處理目標:

1、DROP :  丟棄

2、REJECT: 拒絕

3、ACCEPT: 放行

4、自定義的鏈 :   根據自定義鏈中的規則進(jìn)行匹配

    創(chuàng )建自定義鏈

iptables [-t table] -N chain

    刪除自定義且0引用的空鏈

iptables [-t table] -X chain

    重命名自定義鏈:

iptables [-t table] -E old_name new_name

5、DNAT:明確申明要做的是目的地地址轉換操作   

6、SNAT:明確申明要做的是源地址轉換操作

7、REDIRECT:重定向:主要用于實(shí)現端口重定向

8、MARK:打防火墻標記的

9、RETURN:在自義鏈中無(wú)法匹配報文時(shí),將其返回主鏈

   

調整連接追蹤功能所能容納的連接的最大數目:

/proc/sys/net/nf_conntrack_max

   當前追蹤的所有連接

/proc/net/nf_conntrack

   不同協(xié)議或連接類(lèi)型追蹤時(shí)的屬性:

/proc/sys/net/netfilter目錄:

  

下面我們以ftp服務(wù)為例:

 放行被動(dòng)模式下的FTP服務(wù):

1、裝載模塊/lib/modules/KERNEL_VERSION/kernel/net/netfilter/

模塊:nf_conntrack_ftp

          裝載命令:modprobe nf_conntrack_ftp

          卸載:modprobe -r nf_conntrack_ftp

2、放行請求報文

         (1) 放行NEW狀態(tài)對21端口請求的報文;

[root@localhost ~]# iptables -A INPUT -d 172.16.106.1 -p tcp --dport 21 -m state --NEW -j ACCEPT

(2) 放行ESTABLISHED以及RELATED狀態(tài)的報文

[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

3、放行響應報文

放行ESTABLISHED以及RELATED狀態(tài)的報文

[root@localhost ~]# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

這樣FTP服務(wù)就可以運行了。


iptables的路由轉發(fā)功能

所謂的轉發(fā)功能就是啟用forward功能,并且結合地址轉換功能,使得2個(gè)屬于不同網(wǎng)絡(luò )的主機或者服務(wù)器之間可以進(jìn)行連接通信。(這里默認INPUT,OUTPUT鏈的策略為drop)

首先必須在配置文件中將路由轉發(fā)功能開(kāi)啟:

#vim /etc/sysctl.confnet.ipv4.ip_forward = 1#sysctl -p   重讀配置文件

上面的啟用之后就可以通過(guò)iptables命令來(lái)進(jìn)行添加規則了。

下面我們通過(guò)下圖來(lái)解釋一下轉發(fā)時(shí)的地址轉換原理。


SNAT


假設中間的網(wǎng)關(guān)主機為B:由2個(gè)地址,一個(gè)是內網(wǎng)地址172.16.0.1,一個(gè)外網(wǎng)地址192.168.1.1
當私網(wǎng)中的主機A想訪(fǎng)問(wèn)公網(wǎng)中的WEB主機時(shí),由于不能直接訪(fǎng)問(wèn),于是A就通過(guò)網(wǎng)關(guān)主機的路由發(fā)送請求,

假設不進(jìn)行地址轉換,則網(wǎng)關(guān)主機允許路由轉發(fā),于是請求到達了web主機,然而當web收到請求后,于是返回響應報文,但是WEB發(fā)現該請求的源地址是一個(gè)私網(wǎng)地址,因此WEB無(wú)法將響應報文送回到網(wǎng)關(guān)主機B;

因此在網(wǎng)關(guān)主機B中必須進(jìn)行地址轉換,在報文將要離開(kāi)主機B的之前將源地址改為1.1.1.1(注意:在轉換完成之后,主機B會(huì )自動(dòng)生成一張表,記錄了內網(wǎng)中的那個(gè)主機發(fā)起哪個(gè)請求,因此當該請求的響應報文從遠程主機返回之后,主機B會(huì )自動(dòng)根據該表將響應報文中的IP地址改為請求主機的IP),然后再將報文發(fā)送給WEB;當WEB收到報文后做出響應,發(fā)出響應報文,源地址為2.2.2.2,目標地址問(wèn)1.1.1.1,因此響應報文發(fā)送給了主機B,經(jīng)過(guò)地址轉換之后,主機B又將響應報文送回給A,這樣才完成了整個(gè)通信過(guò)程。

由于上述完成的是一個(gè)SNAT的過(guò)程,即在請求的過(guò)程中目標地址始終沒(méi)變,變的只是源地址,因此在寫(xiě)規則是,寫(xiě)在POSTROUTING鏈中:

#iptables -t nat -A POSTROUTING -s 172.16.6.2   -j SNAT --to-source 1.1.1.1


DNAT

如果是一個(gè)DNAT的過(guò)程的話(huà),寫(xiě)規則時(shí)的鏈就不同,應該寫(xiě)在PREROUTING鏈中:

該過(guò)程就可以看成是公網(wǎng)中的主機C來(lái)訪(fǎng)問(wèn)B中的web的服務(wù),然而B(niǎo)只是一臺代理服務(wù)器,它的web服務(wù)是他內網(wǎng)中的www服務(wù)器提供的,如下圖。

根據C發(fā)出的請求報文應該是,源地址為2.2.2.2,目標地址為1.1.1.1,而到了B主機之后呢?他收到請求之后發(fā)現目標地址為自己,然而他請求的是web服務(wù),應該將請求的目標地址改為WWW主機的IP(172.16.6.2),那么在哪個(gè)地方改呢?對,他只能在路由決策之前修改,不然的話(huà)請求就送給B主機本身處理了,而非轉發(fā)給內網(wǎng)中的WWW主機。因此,該規則只能在PREROUTING鏈中寫(xiě),IP修改完之后才能進(jìn)行轉發(fā)(當然和上面一樣,修改完之后也會(huì )生成一張表,記錄相關(guān)信息,當該請求的響應返回時(shí),主機B將會(huì )自動(dòng)根據該表將響應報文中的源IP地址改為1.1.1.1),然后再將報文發(fā)送給WWW,WWW收到請求后返回響應報文,源地址為172.16.6.2,目標地址為2.2.2.2,當B收到報文后自動(dòng)將源地址改為1.1.1.1,然后再返回給C主機。這樣通信過(guò)程才算完成了。

命令:

#iptables -t nat -A PREROUTING -d 1.1.1.1   -j DNAT --to-destination 172.16.6.2
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
基于iptables實(shí)現NAT的分析與應用
SNAT/DNAT——iptables防火墻基礎策略匯總(二)
iptables詳解2:iptables基礎操作之查看操作
iptables 原理及應用詳解(轉)
iptables/netfilter全攻略詳解
防火墻iptables詳解
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久