1. 程式人生 > >網站安全DDOS攻擊及監測

網站安全DDOS攻擊及監測

.com 功能 查看系統資源 資源 解決方法 五個 常用 net -s

一. 監測

在類Unix系統中可以使用top查看系統資源、進程、內存占用等信息。查看網絡狀態可以使用netstat、nmap等工具。若要查看實時的網絡流量,監控TCP/IP連接等,則可以使用iftop。

一、iftop是什麽?

iftop是類似於top的實時流量監控工具。

官方網站:http://www.ex-parrot.com/~pdw/iftop/

二、iftop有什麽用?

iftop可以用來監控網卡的實時流量(可以指定網段)、反向解析IP、顯示端口信息等,詳細的將會在後面的使用參數中說明。

三、安裝iftop

安裝方法1、編譯安裝

如果采用編譯安裝可以到iftop官網下載最新的源碼包。

安裝前需要已經安裝好基本的編譯所需的環境,比如make、gcc、autoconf等。安裝iftop還需要安裝libpcap和libcurses。

CentOS上安裝所需依賴包:

yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel

下載iftop

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

tar zxvf iftop-0.17.tar.gz

cd iftop-0.17

./configure

make && make install

四、運行iftop

直接運行: iftop

效果如下圖:

技術分享圖片

五、相關參數及說明

1、iftop界面相關說明

界面上面顯示的是類似刻度尺的刻度範圍,為顯示流量圖形的長條作標尺用的。

中間的<= =>這兩個左右箭頭,表示的是流量的方向。

TX:發送流量
RX:接收流量
TOTAL:總流量
Cumm:運行iftop到目前時間的總流量
peak:流量峰值
rates:分別表示過去 2s 10s 40s 的平均流量

2、iftop相關參數

常用的參數

-i設定監測的網卡,如:# iftop -i eth1

-B 以bytes為單位顯示流量(默認是bits),如:# iftop -B

-n使host信息默認直接都顯示IP,如:# iftop -n

-N使端口信息默認直接都顯示端口號,如: # iftop -N

-F顯示特定網段的進出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

-h(display this message),幫助,顯示參數信息

-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機以外的IP信息;

-b使流量圖形條默認就顯示;

-f這個暫時還不太會用,過濾計算包用的;

-P使host信息及端口信息默認就都顯示;

-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M

進入iftop畫面後的一些操作命令(註意大小寫)

按h切換是否顯示幫助;

按n切換顯示本機的IP或主機名;

按s切換是否顯示本機的host信息;

按d切換是否顯示遠端目標主機的host信息;

按t切換顯示格式為2行/1行/只顯示發送流量/只顯示接收流量;

按N切換顯示端口號或端口服務名稱;

按S切換是否顯示本機的端口信息;

按D切換是否顯示遠端目標主機的端口信息;

按p切換是否顯示端口信息;

按P切換暫停/繼續顯示;

按b切換是否顯示平均流量圖形條;

按B切換計算2秒或10秒或40秒內的平均流量;

按T切換是否顯示每個連接的總流量;

按l打開屏幕過濾功能,輸入要過濾的字符,比如ip,按回車後,屏幕就只顯示這個IP相關的流量信息;

按L切換顯示畫面上邊的刻度;刻度不同,流量圖形條會有變化;

按j或按k可以向上或向下滾動屏幕顯示的連接記錄;

按1或2或3可以根據右側顯示的三列流量數據進行排序;

按<根據左邊的本機名或IP排序;

按>根據遠端目標主機的主機名或IP排序;

按o切換是否固定只顯示當前的連接;

按f可以編輯過濾代碼,這是翻譯過來的說法,我還沒用過這個!

按!可以使用shell命令,這個沒用過!沒搞明白啥命令在這好用呢!

按q退出監控。

六、常見問題

1、make: yacc: Command not found
make: *** [grammar.c] Error 127

解決方法:apt-get install byacc / yum install byacc

2、configure: error: Curses! Foiled again!
(Can‘t find a curses library supporting mvchgat.)
Consider installing ncurses.

解決方法:apt-get install libncurses5-dev / yum install ncurses-devel

iftop安裝原文地址:http://www.vpser.net/manage/iftop.html

二. 常用命令

查看所有ip連接數 netstat -ntu | awk ‘{print $5}‘ | cut -d: -f1 | sort | uniq -c | sort -n

查看端口總連接數 netstat -pnt | grep :80 | wc -l

查看php-cgi進程 netstat -anpo | grep "php-cgi" | wc -l

三. 解決方案

#防禦太多DOS攻擊連接,可以允許外網每個IP最多15個初始連接,超過的丟棄,第二條是在第一條的基礎上允許已經建立的連接和子連接允許

iptables -A INPUT -i eth0 -p tcp --syn -m connlimit --connlimit-above 15 --connlimit-mask 32 -j DROP (--connlimit-mask 32為主機掩碼,32即為一個主機ip,也可以是網段)
iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

#抵禦DDOS ,允許外網最多24個初始連接,然後服務器每秒新增12個,訪問太多超過的丟棄,第二條是允許服務器內部每秒1個初始連接進行轉發
iptables -A INPUT -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#允許單個IP訪問服務器的80端口的最大連接數為 20

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT

#對訪問本機的22端口進行限制,每個ip每小時只能連接5次,超過的拒接,1小時候重新計算次數

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --rcheck --seconds 3600 --hitcount 5 -j DROP

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --set -j ACCEPT

(上面recent規則只適用於默認規則為DROP中,如果要適用默認ACCEPT的規則,需要--set放前面 並且無-j ACCEPT)

網站安全DDOS攻擊及監測