web服务器防止dos拒绝服务攻击
2019獨角獸企業重金招聘Python工程師標準>>>
服務器安全防護是非常重要的滴,mysql 3306 ,ftp 21 20 ,ssh 22端口等等都可以直接用iptables設置訪問的權限,centos系統可以在etc/sysconfig/iptables中加入類似的語句。
-A INPUT -s 192.168.3.192/32 -p tcp -m tcp --dport 3306 -j ACCEPT
表示只有192.168.3.192這個ip可以訪問服務器的3306端口等,這樣就安全了許多。但是web服務由于要面向所有用戶,所以這樣就不合適?,F在是時候祭出神器fail2ban的時候了。不過也只能防一般的小黑客。ddos估計一下就打死了。dos和ddos差別是一個是一臺一個是多臺。
安裝
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install fail2ban
配置
安裝完成后,服務配置目錄為:/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里加入
[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 = 3600
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要上下對齊。
轉載于:https://my.oschina.net/luoyedao/blog/517112
總結
以上是生活随笔為你收集整理的web服务器防止dos拒绝服务攻击的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS教程:详解iOS多图下载的缓存机制
- 下一篇: 图片实现旋转