成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CentOS SYN Flood攻擊原理Linux下設置

系統 Linux
未連接隊列:在三次握手協議中,服務器維護一個未連接隊列,該隊列為每個客戶端的CentOS SYN包 (syn=j)開設一個條目,該條目表明服務器已收到CentOS SYN包,并向客戶發出確認,正在等待客戶的確認包。

特別值得一提的是CentOS SYN有很多值得學習的地方,這里我們主要介紹CentOS SYN攻擊,包括介紹CentOS SYN 原理等方面。CentOS SYN Flood攻擊利用的是IPv4中TCP協議的三次握手(Three-Way Handshake)過程進行的攻擊。

一:什么是CentOS SYN Flood攻擊

CentOS SYN Flood攻擊利用的是IPv4中TCP協議的三次握手(Three-Way Handshake)過程進行的攻擊。這個協議規定,如果一端想向另一端發起TCP連接,它需要首先發送TCP SYN (synchronize)包到對方。

對方收到后發送一個TCP SYN+ACK包回來,發起方再發送TCP ACK (ACKnowledge Character)包回去,這樣三次握手就結束了。在上述過程中,還有一些重要的概念。

未連接隊列:在三次握手協議中,服務器維護一個未連接隊列,該隊列為每個客戶端的CentOS SYN包 (syn=j)開設一個條目,該條目表明服務器已收到CentOS SYN包,并向客戶發出確認,正在等待客戶的確認包。

這些條目所標識的連接在服務器處于CentOS SYN_RECV狀態,當服務器收到客戶的確認包時,刪除該條目,服務器進入ESTABLISHED狀態。或者說TCP服務器收到TCP SYN request包時。

在發送TCP SYN+ACK包回TCP客戶機前,TCP服務器要先分配好一個數據區專門服務于這個即把形成的TCP連接。一般把收到CentOS SYN包而還未收到ACK包時的連 接狀態成為半開連接(Half-open Connection)。

Backlog參數:表示未連接隊列的最大容納數目。CentOS SYN -ACK 重傳次數:服務器發送完CentOS SYN -ACK包,如果未收到客戶確認包,服務器進行首次重傳,等待一段時間仍未收到客戶確認包,進行第二次重傳,如果重傳次數超過系統規定的最大重傳次數。

系統將該連接信息從半連接隊列中刪除。注意,每次重傳等待的時間不一定相同。半連接存活時間:是指半連接隊列的條目存活的最長時間,也即服務從收到SYN包到確認這個報文無效的最長時間。

該時間值是所有重傳請求包的最長等待時間總和。有時我們也稱半連接存活時間為Timeout時間、CentOS SYN _RECV存活時間。在最常見的CentOS SYN Flood攻擊中,攻擊者在短時間內發送大量的TCP SYN包給受害者,這時攻擊者是TCP客戶機,受害者是TCP服務器。

根據上面的描述,受害者會為每個TCP SYN包分配一個特定的數據區,只要這些CentOS SYN 包具有不同的源地址(這一點對于攻擊者來說是很容易偽造的)。這把給TCP服務器系統造成很大的系統負擔, 最終導致系統不能正常工作。

二:CentOS SYN Cookie原理

能夠有效防范CentOS SYN Flood攻擊的手段之一,就是SYN Cookie。SYN Cookie原理由D. J. Bernstain和 Eric Schenk發明。CentOS SYN Cookie是對TCP服務器端的三次握手協議作一些修改,專門用來防范CentOS SYN Flood攻擊的一種手段。

它的原理是, 在TCP服務器收到TCP SYN包并返回TCP SYN+ACK包時,不分配一個專門的數據區,而是根據這個CentOS SYN包計算出一個cookie值。在收到TCP ACK包時,TCP服務器在根據那個cookie值檢查這個TCP ACK包的合法性。

如果合法,再分配專門的數據區進行處理未來的TCP連接。下面分Linux和FreeBSD來說說如何配置內核參數來實現CentOS SYN Cookie

三:Linux下設置

如果你的服務器配置不太好,TCP TIME_WAIT套接字數量達到兩、三萬,服務器很容易被拖死。通過修改Linux內核參數,可以減少服務器的TIME_WAIT套接字數量。

TIME_WAIT可以通過以下命令查看:以下是代碼片段:netstat -an | grep "TIME_WAIT" | wc -l 在Linux下,如CentOS,可以通過修改/etc/sysctl.conf文件來達到目的。

增加以下幾行:以下是代碼片段:

  1. net.ipv4.tcp_fin_timeout = 30 
  2. net.ipv4.tcp_keepalive_time = 1200 
  3. net.ipv4.tcp_syncookies = 1 
  4. net.ipv4.tcp_tw_reuse = 1 
  5. net.ipv4.tcp_tw_recycle = 1 
  6. net.ipv4.ip_local_port_range = 102465000 
  7. net.ipv4.tcp_max_syn_backlog = 8192 
  8. net.ipv4.tcp_max_tw_buckets = 5000 
  9. net.ipv4.tcp_synack_retries = 2 
  10. net.ipv4.tcp_syn_retries = 2  

說明:

net.ipv4.tcp_syncookies = 1 表示開啟CentOS SYN Cookies,這是個BOOLEAN。當出現CentOS SYN等待隊列溢出時,啟用cookies來處理,可防范少量CentOS SYN攻擊,默認為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1 表示開啟重用,這是個BOOLEAN。允許將TIME-WAIT sockets重新用于新的TCP連接,默認為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,這是個BOOLEAN,默認為0,表示關閉。

net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。單位為秒。

net.ipv4.tcp_keepalive_time = 1200 表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。單位為秒。

net.ipv4.ip_local_port_range = 102465000 表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192 表示CentOS SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。

net.ipv4.tcp_max_tw_buckets = 5000 表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除并打印警告信息。

默認為180000,改 為5000。對于Apache、Nginx等服務器,上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對于Squid,效果卻不大。此項參數可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

net.ipv4.tcp_synack_retries和net.ipv4.tcp_syn_retries是定義CentOS SYN重試次數。 執行以下命令使配置生效:以下是代碼片段:/sbin/sysctl -p 如果你不想修改/etc/sysctl.conf,你也可以直接使用命令修改:以下是代碼片段:/sbin/sysctl -w key=value

四:FreeBSD下設置

yayu個人學習的觀點:FreeBSD中對CentOS SYN的防御和Linux下可能不一樣,配置的參數也不完全相同,相關配置和理解可能不對:)TCP鏈接中有一個MSL(max segment lifetime)的概念,也就是最大生成時間,MSL 的值在一般的實現中取30s,有些實現采用2分鐘。

在TCP的狀態機中的“被動關閉”:從CLOSE_WAIT到LAST_ACK中有一個如下的規則:當 TCP執行一個主動關閉,并發回最后一個ACK,該連接必須在TIME_WAIT狀態停留的時間為2倍的MSL。這樣可讓TCP再次發送最后的ACK以防 這個ACK丟失(另一端超時并重發最后的 FIN)。

存在這個規則導致一個后果就是在這個2*MSL的時間內,該地址上的鏈接(客戶端地址、端口和服務器端的地址、端口)不能被使用。比如我們在建立一個鏈接后關閉鏈接然后迅速重啟鏈接,那么就會出現端口不可用的情況。

TIME_WAIT時間是2*MSL。因此可以通過調整net.inet.tcp.msl來減少TIME_WAIT時間。對于Web服務器完全可以將這個值調整為7500或2000(訪問一個web,超過4~15秒頁面還刷不出來,就可以考慮放棄了-_-)

參數設置參考:

以下是引用片段:net.inet.tcp.syncookies=1防止DOS攻擊net.inet.tcp.msl=7500防止DOS攻擊,默認為30000net.inet.tcp.blackhole=2接收到一個已經關閉的端口發來的所有包,直接drop,如果設置為1則是只針對TCP包

net.inet.udp.blackhole=1接收到一個已經關閉的端口發來的所有UDP包直接dropFreeBSD下,yayu沒看見“/sbin/sysctl -p”這樣的命令可以使/etc/sysctl.conf的內容生效,所以直接使用命令了:

以下是代碼片段:sysctl net.inet.tcp.syncookies=1 net.inet.tcp.msl=7500 net.inet.tcp.blackhole=2 net.inet.udp.blackhole=1

五:其他

除了修改服務器的內核參數,還可以修改apache的配置文件中的Timeout、KeepAlive、MaxClients等參數來防止Dos攻擊,如果有接口調用,還要注意控制一下調用的時間。請聽下文分解。

ACK 英文縮寫: ACK (ACKnowledge Character) 中文譯名: 確認字符 分 類: 傳輸與接入 解 釋: 在數據通信傳輸中,接收站發給發送站的一種傳輸控制字符。它表示確認發來的數據已經接受無誤。

NAK是否定應答或者非應答的縮寫。它是一個用于數字通信中確認數據受到但是有小錯誤的信號。有時候NAK信號也叫REJ(拒絕)。
CentOS SYN 包(synchronize)

TCP連接的第一個包,非常小的一種數據包。CentOS SYN 攻擊包括大量此類的包,由于這些包看上去來自實際不存在的站點,因此無法有效進行處理。每個機器的欺騙包都要花幾秒鐘進行嘗試方可放棄提供正常響應。

在黑客攻擊事件中,CentOS SYN攻擊是最常見又最容易被利用的一種攻擊手法。CentOS SYN攻擊屬于DOS攻擊的一種,它利用TCP協議缺陷,通過發送大量的半連接請求,耗費CPU和內存資源。

CentOS SYN攻擊除了能影響主機外,還可以危害路由 器、防火墻等網絡系統,事實上CentOS SYN攻擊并不管目標是什么系統,只要這些系統打開TCP服務就可以實施。服務器接收到連接請求(syn= j),將此信息加入未連接隊列,并發送請求包給客戶(syn=k,ack=j+1),此時進入SYN_RECV狀態。

當服務器未收到客戶端的確認包時,重 發請求包,一直到超時,才將此條目從未連接隊列刪除。配合IP欺騙,CentOS SYN攻擊能達到很好的效果,通常,客戶端在短時間內偽造大量不存在的IP地址,向服 務器不斷地發送syn包,服務器回復確認包,并等待客戶的確認。

由于源地址是不存在的,服務器需要不斷的重發直至超時,這些偽造的CentOS SYN包將長時間占用未 連接隊列,正常的CentOS SYN請求被丟棄,目標系統運行緩慢,嚴重者引起網絡堵塞甚至系統癱瘓。

關于CentOS SYN攻擊防范技術,人們研究得比較早。歸納起來,主要有兩大類,一類是通過防火墻、路由器等過濾網關防護,另一類是通過加固TCP/IP協議棧防范.但必須清楚的是,CentOS SYN攻擊不能完全被阻止,我們所做的是盡可能的減輕CentOS SYN攻擊的危害,除非將TCP協議重新設計。

【編輯推薦】

  1. CentOS VNC試驗用的工控機不支持鼠標
  2. CentOS gcc安裝問題的解決方法
  3. CentOS系統是Linux常見版本之一
  4. CentOS PPPOE安裝配置客戶端軟件和前提條件
  5. CentOS NTFS安裝支持掛載與使用方法
責任編輯:佚名 來源: CSDN
相關推薦

2010-09-17 15:36:21

2010-09-30 10:01:38

2010-09-13 10:26:48

2010-03-10 14:18:09

2021-09-28 20:19:09

參數優化Zookeeper

2010-09-30 11:02:33

2010-08-24 11:24:35

2010-09-13 10:45:04

2011-08-29 16:19:01

UbuntuRamDisk

2014-07-25 14:20:45

Linux腳本

2016-09-21 08:54:33

2009-07-06 17:00:17

Ubuntu Linushorewall防火墻

2009-11-11 10:26:02

LinuxOracle監聽自啟動

2009-06-29 08:38:14

Linux操作系統

2009-07-03 06:55:33

Linux

2014-04-09 14:15:23

2010-09-14 11:33:39

Linux下設置tft

2009-08-20 16:45:32

2017-10-12 15:41:45

2009-12-17 15:03:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品2区 | 国产在线一区二区三区 | av手机在线免费观看 | 成人一区二区三区在线观看 | 男女啪啪网址 | 午夜天堂精品久久久久 | 国产精品久久久久久久午夜 | 不卡视频一区二区三区 | 嫩草视频入口 | 国产精品无码久久久久 | 精品欧美一区二区在线观看欧美熟 | 亚洲欧美激情国产综合久久久 | 中文字幕在线观看成人 | 精品免费视频 | 精品国产91乱码一区二区三区 | 午夜精品福利视频 | 日本激情视频中文字幕 | 日韩在线一区二区三区 | 成人在线视频一区二区三区 | 国产高清精品在线 | 亚洲一区二区三区免费在线观看 | 国产一区高清 | 日本在线中文 | 欧美 日韩 综合 | 看亚洲a级一级毛片 | 日韩手机在线视频 | 国产黄色av电影 | 久久成人免费 | 91免费在线播放 | 欧美视频一区二区三区 | 国产在线观看一区二区三区 | 成人精品一区二区三区中文字幕 | 特级一级黄色片 | 国产精品久久久久久久久久久久久 | 国产精品久久久久久中文字 | 色狠狠一区 | 国产sm主人调教女m视频 | 久久久久1 | 成人国产午夜在线观看 | 日韩在线欧美 | 香蕉视频91 |