转截请写明出处,谢谢!
最近老同事的电子商务网站经常性的对手ab,无奈我花些时间google,发现有不少朋友用mod_dosevasive来对抗ddos攻击(当然是小范围的,如果没有带宽和硬件的保障效果会更好).
居体的安装可以参看
关于Apache (httpd)服务器防DDOS模块mod_evasive的使用说明
上面写的够详细了。
下面是我的安装过程
1.安装apxs 即要有 apache开发版本的支持
#yum install httpd-devel
2.进入mod_evasive目录
查看apxs在哪里
#whereis apxs /* /usr/bin/apxs*/
#/usr/bin/apxs -i -a -c mod_dosevasive20.c
执行上面的命令后系统会在/etc/httpd/conf/httpd.conf中加入下面一行
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.so
3.加入在被DDOS时的处理操作
手工在/etc/httpd/conf/httpd.conf最下方加入下面内容
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotifymy@email.com
DOSSystemCommand "sudo iptables -A INPUT -s %s -p tcp --dport 80 -j DROP"
DOSLogDir "/tmp/lock/mod_evasive"
</IfModule>
针对上面的配置在mod_dosevasive目录下面的REAME中有详细说明。
做了上面的配置之后记得要重启apache
4.重启apache
#service httpd restart
4.测试
我用压力测试工具ab
#ab -n 1000 -c 100 http://192.168.1.254/index.php
5.查看是否本机IP(192.168.1.100)是否被封
#iptables -nvL
显示:
- Chain INPUT (policy ACCEPT 64628 packets, 6176K bytes)
- pkts bytes target prot opt in out source destination
- Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
- pkts bytes target prot opt in out source destination
- Chain OUTPUT (policy ACCEPT 49010 packets, 10M bytes)
- pkts bytes target prot opt in out source destination
结果显示并没有封着我的本机IP
分析原因是apache用户执行sudo处没有执行,因为我把
DOSSystemCommand "sudo iptables -A INPUT -s %s -p tcp --dport 80 -j DROP"
改成了
DOSSystemCommand "/bin/touch /tmp/%s.log"
重启apache没有问题故可以判断是sudo执行iptables的问题。因iptables命令是一定要root用户才能执行的。
中间我还把相关的命令写在了一个shell(/tmp/do.sh)中,并且把do.sh的权限改为4755(该权限会改变文件执行的属主为root)
do.sh
- #!/bin/sh
- #相关的参数判断自己来吧
- /sbin/iptables -A INPUT -s $1 -p tcp --dport 80 -j DROP
重启apache再压力测试。用iptables -nvL查看还是没有看到策略中有被封的IP
针对上面的测试问题就在定位到了sudo 下面就是google.
最终找到相关的答案
Gentoo Sudo(ers)指南
简单的步骤就是
#visudo
加入下面的内容
apache ALL=NOPASSWD: /sbin/iptables
然后用sudo -l可以查看apache用户是否成功加入可以执行sudo的行列
重启apache->压力测试->查看防火墙策略->结果依旧(失败)查看apache的error日志显示
sudo: sorry, you must have a tty to run sudo
意思就是apache运行sudo要求是终端模式,在做web服务器用sudo的时候肯定是不能用终端了。
经查看visudo的配置和google的结果显示 我们需要将visudo中的
Defaults requiretty
注解掉
#Defaults requiretty
最终重复测试流程在
#iptables -nvL的命令下看到了被封堵的记录
- Chain INPUT (policy ACCEPT 64543 packets, 6168K bytes)
- pkts bytes target prot opt in out source destination
- 836 39828 DROP tcp -- * * 192.168.1.100 0.0.0.0/0 tcp dpt:80
- Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
- pkts bytes target prot opt in out source destination
- Chain OUTPUT (policy ACCEPT 48945 packets, 10M bytes)
- pkts bytes target prot opt in out source destination
相关推荐
`mod_evasive` 和 `mod_dosevasive22` 是Apache Web服务器上的安全模块,主要用于防止DDoS(分布式拒绝服务)攻击和CSRF(跨站请求伪造)攻击。这两个模块通过智能监控和限制来自同一IP地址的过多请求来保护服务器,...
centos5.3_64镜像包,安装包,ISO镜像
在 CentOS 5.3 中,lm_sensors 是一个用于监控硬件温度、电压和风扇速度的开源工具。要安装并配置 lm_sensors 来监控 CPU 温度,你需要遵循以下步骤: 1. **检查 lm_sensors 是否已安装** 在开始之前,首先确认...
【标题】"CentOS5.3-5.8_32x64位DVD镜像下载种子"涉及的是Linux操作系统中的一个发行版本——CentOS,具体是5.x系列的多个版本。CentOS是一款基于Red Hat Enterprise Linux源代码再编译的开源操作系统,它提供了与...
至于提供的资源,"CentOS5.3 Linux 编译安装 mysql-6.0.10-alpha 视频教程.avi" 可能是一个详细的视频指南,可以帮助你更直观地了解每个步骤。"访问脚本之家.html" 和 "服务器常用软件.html" 可能包含更多关于服务器...
LINUX操作系统_CentOS5.3_超详细的安装图文教程.doc
1. **内核升级**:CentOS 5.3 使用了Linux内核版本2.6.18,提供了更好的硬件支持和性能优化,尤其是在处理多核处理器和虚拟化技术方面。 2. **安全性增强**:此版本加强了系统的安全特性,包括 SELinux(Security-...
在CentOS 5.3系统下配置vsftpd(Very Secure FTP Daemon)以创建并管理新的FTP用户是一项关键的IT技能,尤其对于那些负责维护服务器和确保数据安全的专业人士而言。下面将详细介绍如何在CentOS 5.3环境中通过vsftpd...
以下是在CentOS 5.3版本上挂载NTFS驱动器的详细步骤: 1. **安装内核补丁**: 在进行NTFS挂载之前,首先需要确保你的系统内核支持NTFS。通过运行`uname -a`命令来查看当前系统的内核版本。例如,如果你的内核版本...
阿里云服务器centos+apache+php5.3+mysql+Zend Guard Loader+memcached+ftp环境搭建笔记
### CentOS 5.3 管理指南知识点详解 #### 一、课程介绍与目标 - **课程背景:** - 本课程旨在为学员提供一套全面的基础工具、技能及实践,以帮助他们掌握配置、保护及维护 Linux 服务器的能力。 - **目标受众:*...
在centos6.5 32位操作系统下 apache版本:http2.2.27 tomcat版本:tomcat6.0 下测试通过
本文将详细介绍在CentOS 5.3上安装JDK 1.5的完整步骤,这对于系统管理员和开发者来说是一项基础任务。 首先,我们需要下载JDK的安装包。在CentOS 5.3的时代,Sun Microsystems是Java的主要供应商,但现在Oracle已经...
一、安装 二、启动脚本 三、设置开机启动
mod_ssl-2.2.15-60.el6.centos.6.x86_64.rpm mod_ssl-2.2.15-60.el6.centos.6.x86_64.rpm
mod_ssl-2.2.15-69.el6.centos.x86_64.rpm
以上步骤提供了ispCP在CentOS 5.3上的安装概览,但请注意,实际操作时可能需要根据官方文档和错误提示进行更细致的调整。务必确保每个步骤都成功执行,以确保ispCP能够稳定运行。在安装过程中遇到任何问题,建议在...
CentOS 5.3 配置 DNS 详解 CentOS 5.3 配置 DNS 需要安装相应的软件包,包括 bind、bind-libs、bind-chroot、bind-utils 和 caching-nameserver。这些软件包可以使用 rpm 命令进行安装。安装完成后,需要配置 DNS ...
### CentOS 5.3 下安装 Oracle 10G 超详细教程 #### 一、前期准备 在开始安装过程之前,确保以下准备工作已完成: - **操作系统**: CentOS 5.3 i386 版本。 - **Oracle 10G 完整版**:下载并准备好安装文件。 - **...