偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iptables的基礎(chǔ)知識-iptables中TCP三次握手

運維 系統(tǒng)運維
iptables的基礎(chǔ)知識-iptables中TCP三次握手:iptabels被認(rèn)為是Linux中實現(xiàn)包過濾功能的第四代應(yīng)用程序。iptables包含在Linux2.4以后的內(nèi)核中,它可以實現(xiàn)iptables防火墻、NAT(網(wǎng)絡(luò)地址翻譯)和數(shù)據(jù)包的分割等功能。本文介紹的是iptables的基礎(chǔ)知識-iptables中TCP三次握手。

iptables的基礎(chǔ)知識-iptables中TCP三次握手:

  一個TCP連接是通過三次握手的方式完成的。首先,客戶程序發(fā)出一個同步請求(發(fā)出一個SYN分組);接著,服務(wù)器端回應(yīng)一個SYN|ACK分組;最后返回一個ACK分組,連接完成,一共需要三個步驟,整個iptables過程如下所示:

  1. Client          Server  
  2.  
  3. 1 SYN ---> 
  4. 2         <--- SYN+ACK  
  5. 3 ACK ---> 
  6.          <--- ACK  
  7. ACK ---> 
  8.  

   

  接下來我們看具體iptables的過程,假設(shè)client(192.168.10.7)要訪問server(192.168.10.100,同時啟用iptables)的WEB主頁。

  1 client首先發(fā)出一個SYN的連線請求(注意ack,rst等的值),源端口是1286,目的端口是80。

  2 Server收到著請求后應(yīng)答一個SYN+ACK,因為是SERVER應(yīng)答client,所以源端口是80,目的端口是1286。

  3 client再答復(fù)一個ACK,至此三步握手的過程結(jié)束,一個正常的連接建立。

  從以上的三步中可以看到,一個正常的tcp連接建立的過程。值得注意的是一個正常的tcp發(fā)起的請求,tcp中包頭中SYN位是1,這就意味著如果一個新的包但是SYN卻不置位,這個包肯定有問題。

  為了跟蹤一個TCP連接的狀態(tài),我們在SERVER使用了如下命令:

  1.   iptables -A INPUT -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT  
  2.  
  3.   iptables -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT  
  4.  

  接著看在連接建立過程中iptables狀態(tài)表的變化:

  1> 由于CLIENT和SERVER之前沒有任何連接,CLIENT發(fā)送的SYN(此時的TCP狀態(tài)是SYN_SENT)請求進入iptables 的INPUT鏈,發(fā)現(xiàn)是一個新包,那么此時iptables將此狀態(tài)定義為NEW,因為我們的規(guī)則允許,這個請求包被接受。

  2> server返回一個SYN+ACK的包(此時的TCP狀態(tài)是SYN_RECIV),這個包要經(jīng)過OUTPUT鏈(因為這個包是從本機發(fā)出的,目的地址是client),由于之前曾經(jīng)收到一個包,此時個狀態(tài),已經(jīng)變成了ESTABLISHED,按照規(guī)則,這個包成功發(fā)送出去。

  3> 接下來client發(fā)送一個ACK,同樣由于INPUT中允許,server接受這個包,至此連接完成,在整個過程中狀態(tài)從NEW變?yōu)镋STABLISHED(此時的TCP也是established)

  注意:在第二步的時候,server上TCP的狀態(tài)是SYN_RECVD,對于iptables來講,狀態(tài)已經(jīng)是established,但此時的三次握手并沒有完成,實際是半連接(對與TCP來講,必須是三次握手完成以后,狀態(tài)才是established)。所以iptables面對SYNFLOOD攻擊,可以通過控制SYN流量結(jié)合tc等實現(xiàn)。但是對于SYN攻擊,即便能保護服務(wù)器,對于帶寬的消耗也是沒有辦法的,因為攻擊者消耗了你大部分帶寬。具體連接過程中TCP狀態(tài)是如何變化可參考看TCP/IP V1等著作(douglas E.comer或者Steven Richard等的經(jīng)典之作)。

  注意iptables狀態(tài)機制在用戶空間里的部分不會查看TCP包的標(biāo)志位(也就是說TCP標(biāo)志對它而言是透明的)。如果我們想讓NEW狀態(tài)的包通過防火墻,就要指定NEW狀態(tài),我們理解的NEW狀態(tài)的意思就是指SYN包,可是iptables又不查看這些標(biāo)志位。這就是問題所在。有些沒有設(shè)置SYN或ACK的包,也會被看作NEW狀態(tài)的。這樣的包可能會被冗余防火墻用到,但對只有一個防火墻的網(wǎng)絡(luò)是很不利的(可能會被攻擊哦)。那我們怎樣才能不受這樣的包的影響呢?可以使用tcp-flags進行檢查。

  上一節(jié):iptables中的狀態(tài)檢測  下一節(jié):iptables中的ICMP。

【編輯推薦】

IPtables防火墻使用技巧(超實用)

Linux下Iptables端口轉(zhuǎn)發(fā)功能的解決

四種NAT的iptables實現(xiàn)

責(zé)任編輯:zhaolei 來源: netren
相關(guān)推薦

2011-03-16 11:17:56

IptablesICMP

2011-03-18 09:26:13

Iptables規(guī)則

2011-03-16 11:12:06

Iptables

2011-03-18 08:52:23

Iptables

2011-03-18 09:26:14

iptableslimit

2023-09-07 16:46:54

TCP數(shù)據(jù)傳遞

2020-12-08 06:34:16

TCP握手SYN 報文

2015-10-13 09:42:52

TCP網(wǎng)絡(luò)協(xié)議

2024-01-12 08:23:11

TCPACK服務(wù)器

2023-10-24 15:22:09

TCPUDP

2024-10-09 20:54:16

2022-10-10 07:34:36

TCP三次握手區(qū)塊鏈

2022-07-07 09:00:17

TCP 連接HTTP 協(xié)議

2021-05-18 12:27:40

TCP控制協(xié)議

2021-01-29 06:11:08

TCP通信三次握手

2019-06-12 11:26:37

TCP三次握手四次揮手

2011-03-16 11:06:55

Iptables防火墻

2022-07-25 07:07:35

TCP客戶端服務(wù)器

2021-03-08 18:08:08

TCP Connect 協(xié)議

2018-07-05 14:25:01

TCP握手原理
點贊
收藏

51CTO技術(shù)棧公眾號