web服務器防止dos拒絕服務攻擊

服務器安全防禦是很是重要的滴,mysql 3306 ,ftp 21 20 ,ssh 22端口等等均可以直接用iptables設置訪問的權限,centos系統能夠在etc/sysconfig/iptables中加入相似的語句。mysql

-A INPUT -s 192.168.3.192/32 -p tcp -m tcp --dport 3306 -j ACCEPTnginx

表示只有192.168.3.192這個ip能夠訪問服務器的3306端口等,這樣就安全了許多。可是web服務因爲要面向全部用戶,因此這樣就不合適。如今是時候祭出神器fail2ban的時候了。不過也只能防通常的小黑客。ddos估計一下就打死了。dos和ddos差異是一個是一臺一個是多臺。web

安裝sql

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmvim

yum install fail2bancentos

配置安全

安裝完成後,服務配置目錄爲:/etc/fail2ban
/etc/fail2ban/action.d                #動做文件夾,內含默認文件。iptables以及mail等動做配置
/etc/fail2ban/fail2ban.conf           #定義了fai2ban日誌級別、日誌位置及sock文件位置
/etc/fail2ban/filter.d                #條件文件夾,內含默認文件。過濾日誌關鍵內容設置
/etc/fail2ban/jail.conf               #主要配置文件,模塊化。主要設置啓用ban動做的服務及動做閥值
/etc/rc.d/init.d/fail2ban             #啓動腳本文件
3. vi /etc/fail2ban/fail2ban.conf
[Definition]
logtarget = /var/log/fail2ban.log   #咱們須要作的就是把這行改爲/var/log/fail2ban.log,方便用來記錄日誌信息服務器

vim /etc/fail2ban/jail.conf里加入ssh

[nginx-dos]
enabled = true
port = http,https
filter = nginx-bansniffer
action = iptables[name=bbs-nginx-ddos, port=http, protocol=tcp]
         sendmail-whois[name=bbs-nginx-ddos, dest=xxxx@xxx.com sender=root]
logpath = /data/nginx/logs/bbs.access.log#放日誌的地方。
maxretry = 4000   #注意
findtime = 60
bantime = 3600socket

socket = /var/run/fail2ban/fail2ban.sock

而後建立文件/etc/fail2ban/filter.d/nginx-bansniffer.conf,內容以下:

[Definition]
failregex = <HOST> -.*- .*HTTP/1.* .* .*$
ignoreregex =

原理fail2ban採集登錄日誌調用iptables進行封ip,能夠用國外一個大神hulk等工具進行測試。上面的配置maxretry = 4000,不僅僅是最大4000個ip才就封掉,而是要看清楚網頁加載的時候fail2ban的日誌中會產生多少了記錄,sendemail和iptables要上下對齊。

相關文章
相關標籤/搜索