2013 年 6 月 8 日

DA在线授权修改已经上线啦。
不过没有开放自助购买,只是开放了自助修改授权。
请各位在我处购买DA授权的用户,
联系我关联你自己的授权ID 并授权自助修改资格。
谢谢。
至于修改地址就是http://www.directadmin.cc

 

再次重申一下在我处购买的DA授权说明:

1、所有授权类型,修改DA授权的间隔不能小于30天。如果频繁修改DA授权需要我处手工处理,每修改1次,加收20元手续费/次。

2、在我处购买的DA授权,均为DA正版授权,无市面上流传的DA破解版。

3、我处售出的DA授权,分2种:终身授权,年付授权。

4、终身授权,价格统一,399元/终身,无限次修改IP和系统,前提是在遵守DA官方和我处服务条款的基础上。

5、年付授权,价格统一,180元/年,在有效期内也是无限次修改IP和系统,前提是在遵守DA官方服务条款的基础上。

 

所有购买授权的用户可以获得自助修改授权的资格,至于修改地址就是http://www.directadmin.cc

?

 

 

2017 年 11 月 3 日
      更新grub配置文件:

 

    1. 下载 Debian netboot mini.iso 到’/boot‘文件夹内.
       
      1
      wget -qO /boot/mini.iso https://moeclub.org/get-deb-livecd
    2. 在/boot文件夹/子目录内寻找GRUB配置文件.

       

      • 如果GRUB的配置文件为’grub.cfg’:
        在文件的末尾添加
         
        1
        2
        3
        4
        5
        6
        menuentry “Boot mini” {
        set isoimage=”/boot/mini.iso”
        loopback loop (hd0,1)$isoimage
        linux (loop)/linux auto=true LANG=en_US.UTF-8 KEYTABLE=us netcfg/dhcp_options=”Configure network manually” netcfg/dhcp_failed=note netcfg/get_nameservers=8.8.8.8 hostname=MoeClub domain=MoeClub.org — quiet
        initrd (loop)/initrd.gz
        }

        如果不好添加,就直接用echo的方式,简单暴力:

         
         
        echo -ne ‘menuentry “Boot mini” {\n\tset isoimage=”/boot/mini.iso”\n\tloopback loop (hd0,1)$isoimage\n\tlinux (loop)/linux auto=true LANG=en_US.UTF-8 KEYTABLE=us netcfg/dhcp_options=”Configure network manually” netcfg/dhcp_failed=note netcfg/get_nameservers=8.8.8.8 hostname=MoeClub domain=MoeClub.org — quiet\n\tinitrd (loop)/initrd.gz\n\t}\n\n’ >>/boot/grub/grub.cfg
      • 如果GRUB的配置文件为’grub.conf’:
         
        1
        #自行修改对应的部分.
    3. 获取本机的IP,子网掩码,网关并记录下来.
      一般控制台最下面有这些参数.
      如果没办法获取到这三项参数,可以用以下命令获取.
      代码片段摘自 Debian(Ubuntu)网络安装/重装一键脚本
       
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      DEFAULTNET=”$(ip route show |grep -o ‘default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.*’ |head -n1 |sed ‘s/proto.*\|onlink.*//g’ |awk ‘{print $NF}’)”
      [ -n "$DEFAULTNET" ] && IPSUB=”$(ip addr |grep ”${DEFAULTNET}” |grep ‘global’ |grep ‘brd’ |head -n1 |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/[0-9]\{1,2\}’)”
      IPv4=”$(echo -n “$IPSUB” |cut -d’/’ -f1)”
      NETSUB=”$(echo -n “$IPSUB” |grep -o ‘/[0-9]\{1,2\}’)”
      GATE=”$(ip route show |grep -o ‘default via [0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’ |head -n1 |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’)”
      [ -n "$NETSUB" ] && MASK=”$(echo -n ’128.0.0.0/1,192.0.0.0/2,224.0.0.0/3,240.0.0.0/4,248.0.0.0/5,252.0.0.0/6,254.0.0.0/7,255.0.0.0/8,255.128.0.0/9,255.192.0.0/10,255.224.0.0/11,255.240.0.0/12,255.248.0.0/13,255.252.0.0/14,255.254.0.0/15,255.255.0.0/16,255.255.128.0/17,255.255.192.0/18,255.255.224.0/19,255.255.240.0/20,255.255.248.0/21,255.255.252.0/22,255.255.254.0/23,255.255.255.0/24,255.255.255.128/25,255.255.255.192/26,255.255.255.224/27,255.255.255.240/28,255.255.255.248/29,255.255.255.252/30,255.255.255.254/31,255.255.255.255/32′ |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’${NETSUB}” |cut -d’/’ -f1)”
      [ -n "$GATE" ] && [ -n "$MASK" ] && [ -n "$IPv4" ] || {
      ipNum() {
        local IFS=’.’
        read ip1 ip2 ip3 ip4 <<<”$1″
        echo $((ip1*(1<<24)+ip2*(1<<16)+ip3*(1<<8)+ip4))
      }
      SelectMax(){
      ii=0
      for IPITEM in `route -n |awk -v OUT=$1 ‘{print $OUT}’ |grep ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’`
        do
          NumTMP=”$(ipNum $IPITEM)”
          eval “arrayNum[$ii]=’$NumTMP,$IPITEM’”
          ii=$[$ii+1]
        done
      echo ${arrayNum[@]} |sed ‘s/\s/\n/g’ |sort -n -k 1 -t ‘,’ |tail -n1 |cut -d’,’ -f2
      }
      [[ -z $IPv4 ]] && IPv4=”$(ifconfig |grep ‘Bcast’ |head -n1 |grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’ |head -n1)”
      [[ -z $GATE ]] && GATE=”$(SelectMax 2)”
      [[ -z $MASK ]] && MASK=”$(SelectMax 3)”
      }
      PubIPv4=”$(wget -qO- checkip.amazonaws.com)”
      [ -n "$IPv4" ] && [ -n "$PubIPv4" ] && {
      [ "$IPv4" != "$PubIPv4" ] && IPv4=”$(echo “$IPv4; $PubIPv4″)”
      }
      [ -n "$GATE" ] && [ -n "$MASK" ] && [ -n "$IPv4" ] && {
      echo -e “IPv4:\t\033[33m$IPv4\033[0m\nMASK:\t\033[33m$MASK\033[0m\nGATE:\t\033[33m$GATE\033[0m”
      } || {
      echo “Error! Not found network config. “
      }
    4. 进入VNC界面,然后在SSH终端输入重启命令.
      在VNC界面中可以看到启动菜单,选择’Boot mini‘

      安装WINDOWS镜像:

 

    • 此时进入Debian的安装界面,注意对话框顶部.
      • 如果出现的是
        Download debconf preconfiguration file
        请按两次ESC键,选择倒数第二个:
        Execute a shell
        选中Continue,并按回车
      • 如果出现的是
        Configure the network
        请按要求填入网络参数,等待出现
        Download debconf preconfiguration file
        按两次ESC键,选择倒数第二个:
        Execute a shell
        选中Continue,并按回车
    • 使用ls /dev命令可查看硬盘状况
      可知DigitalOcean机器的硬盘为’/dev/vda‘
    • 接下使用dd命令进行应用镜像,也可以使用自己的镜像.
       
      1
      wget -O- http://vps.4he.net/windows2008.R2.raw |dd of=/dev/vda
    • 待完成后,输入reboot命令
      就可看到久违的WINDOWS启动界面.按照正常步骤安装.
    • 安装完成后,如果没有网络,你需要自行完善网络配置.
    • 远程桌面服务如果没有意外,我提供的镜像会自动打开.

提示:在安装步骤时鼠标位置不好找,可能不太适应.
请尝试使用空格键回车键Tab键方向键进行操作.

  • 在磁盘管理中,点击’C‘盘,右键选择’扩展卷‘,可以直接’增加‘C盘的空间.
2017 年 7 月 31 日

阿里云和腾讯云默认都是LAN网络,不显示公网IP。
但安装Directadmin需要外网授权IP,所以必须增加一个虚拟网卡才能够进行安装。

比如设置阿里云内网为IP是172.18.13.88, 外网分配IP是120.24.100.100,环境为CentOS6.8

首先设置一张虚拟网卡:

/sbin/ifconfig eth0:0 120.24.100.100 netmask 255.255.255.0 up
echo "/sbin/ifconfig eth0:0 120.24.100.100 netmask 255.255.255.0 up" >> /etc/rc.local

设置NAT转发:

iptables -t nat -A POSTROUTING -s 120.24.100.100 -j SNAT --to-source=172.18.13.88

这是测试一下是否能够正确curl

curl --interface eth0:0 -v https://www.directadmin.com

 

如果能够无错误提示,这是就我们就保存一下iptables

service iptables save

建议reboot服务器,再进行安装DA。

 

安装完以后,

进入IP管理,把内网IP链接到公网IP上。

再打开/usr/local/directadmin/conf/directadmin.conf 增加一行

lan_ip=172.18.13.88

 

保存后重启DA,就可以正常访问了。

另外可参考官方教程 https://www.directadmin.com/lan.php

2015 年 9 月 13 日

这几天天天逛着directadmin的官方论坛,看到这样的一个插件,使用了几天相当不错,发出来给大家看看。
插件原帖地址:http://forum.directadmin.com/showthread.php?t=44743
插件建议要求版本DirectAdmin 1.45.4 以及以上。

CB2.0都有什么内容? (不翻译了,大家能看懂)

Major change: nginx webserver support
Major change: nginx+apache combination support (nginx as a reverse proxy)
Major change: LiteSpeed webserver support (warning: commercial product, so please upload your license key to configure/litespeed before installation) with lsphp support as a PHP mode using LiteSpeed SAPI.
Major change: pigeonhole support
Major change: php-fastcgi support (using mod_fcgid)
Major change: PHP-FPM support was added, new paths to PHP binaries/configs (/usr/local/php53(54))
Major change: mod_ruid2 support was added (you can use it together with suPHP)
Major change: new way of PHP exension installations (using php.conf.d, not the main php.ini), ability to include many new extensions to the future versions of CB
Major change: mysqlnd (MySQL native driver) is used for MySQL, pdo-MySQL and MySQLi in php configuration.
Added htscanner support.
Added suhosin support.
Added zend opcache support.
Added custom_versions.txt support.
Added pigz support (./build pigz).
Added “./build version” to show the CustomBuild version.
Added “./build mysql_backup” to do MySQL backup only (without installation).
Added libxml2, libxslt and clamav files to /configure/ directory, so they are not hardcoded anymore, and there is ability to customize them.
Added automatic upload scans with ClamAV for ProFTPd, Pure-FTPd and PHP (using suhosin).
Dropped mod_perl support.
Added –with-xsl, –enable-soap to PHP configuration files
php1_mode/php2_mode + php1_release/php2_release options.conf settings. php1_release is the main version of PHP, php2 is the additional one.
Major change: if php1/php2_mode is set to suphp, fastcgi or php-fpm, event Apache MPM is used (when no mod_php is selected).
Major change: pureftpd is now the default FTP service. New option: ftpd=pureftpd/proftpd. (replaced old pureftpd=yes/no, proftpd=yes/no)
Added PHP 5.5 support
Added PHP 5.6 support
Using PHP 5.5 as mod_php + mod_ruid2 by default (except FreeBSD systems where PHP 5.5 is installed in suPHP mode without mod_ruid2)
Dropped PHP 4.4, 5.2 support
Dropped Apache 1.3, 2.0, 2.2 support
Dropped MySQL 4.1 support
Dropped UebiMiau and Atmail Open webmail support.
Ability to install PHP 5.3, 5.4 or 5.5 together (2 versions of any combination)
Automatic exim.conf changes after installation/update of ClamAV/SpamAssassin (it uses includes of /etc/exim.spamassassin.conf and /etc/exim.clamav.conf in /etc/exim.conf.

如何升级到CustomBuild 2.0?
1.最好是先执行一些预安装命令,详见官方说明文档:http://help.directadmin.com/item.php?id=354
2.删除原先的版本,升级到2.0

  1. cd /usr/local/directadmin
  2. mv custombuild custombuild_1.x
  3. wget -O custombuild.tar.gz http://files.directadmin.com/services/custombuild/2.0/custombuild.tar.gz
  4. tar xvzf custombuild.tar.gz
  5. cd custombuild
  6. ./build update_da

复制代码

3.打开 /usr/local/directadmin/custombuild/option.conf??,检查默认选项,设置为你想要的相应软件版本,
设置完后,SSH里面执行

  1. ./build options

复制代码

,输入类似以下设置结果,看看是不是跟你预想的一样。

  1. Apache: 2.4.3
  2. Dovecot: 2.1.10
  3. MySQL: 5.5.27
  4. PHP (default): 5.4.7 as mod_php
  5. Run “clean” every time: yes

复制代码

确认没错,然后执行。

  1. ./build apache
  2. ./build php n
  3. ./build rewrite_confs

复制代码

当然你也可以全部重建,

  1. ./build all d

复制代码

 

注意事项:
如果选择安装nginx,php模式选择php-fpm,
不可同时将php1_release和php2_release设置为相同版本。
如果设置了php2_release,不可同时设置php1_mode和php2_mode为mod_php
不可把mod_ruid2和php-fpm或者php-fastcgi同时使用。

到这里只是完成安装CustomBuild 2.0,为了后续操作方便,我们今天要重点介绍插件CustomBuild 2.0 UI,图形化操作界面。
该插件由smtalk 一个活跃在DA官方论坛的技术人员开发,在论坛里面有问必答。(说真的,国外的技术论坛跟国内的差距就是很大啊!)
插件发布页面:CustomBuild 2.0 UI??http://forum.directadmin.com/showthread.php?t=48989

大家可以直接进入DA后台插件目录,直接通过连接安装,或者是下载到本地然后上传到DA插件目录里面。
插件下载地址:http://www.custombuild.eu/plugin/custombuild.tar.gz

如果你执行了我以上说升级CB2.0以及build Apache以及php两个软件,那你安装这个插件后,应该可以看到这个界面。
01

点击链接后,显示的是这样

02

在这个界面里面可以完成所有需要通过命令行才能执行的custombuild的相关操作,比如升级版本,选择对应版本等等操作,功能十分强大。
具体还要大家自己去尝试。
03
04

执行命令是显示的类似如下图效果,
05

这下妈妈不用担心我重建系统时SSH卡掉线了!。。

2013 年 8 月 30 日

问: 以下几种方式测试磁盘读写速度有什么区别?

dd bs=1M count=128 if=/dev/zero of=test

dd bs=1M count=128 if=/dev/zero of=test; sync

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

dd bs=1M count=128 if=/dev/zero of=test oflag=dsync

答:区别在于内存中写缓存的处理方式。

dd bs=1M count=128 if=/dev/zero of=test

没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地 把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不 到了。所以如果这个速度很快,先不要偷着乐。呵呵

dd bs=1M count=128 if=/dev/zero of=test; sync

和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。

dd bs=1M count=128 if=/dev/zero of=test oflag=dsync

加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。

问:那应该用哪一种呢?

答:建议使用

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。

PS:

写: dd if=/dev/zero of=test.bin bs=4096 count=1M conv=fdatasync

读: dd if=test.bin of=/dev/zero bs=4096 count=1M iflag=direct

 

 

英文原文

http://romanrm.ru/en/dd-benchmark

2013 年 7 月 19 日

1、现象

login as: root

Access denied

root@10.10.40.62′s password:
Last login: Fri Aug 24 21:19:57 2012 from 10.10.10.10
[root@node62 ~]#
2、解决

解决方法:

默认的情况下 /etc/ssh/sshd_config 是一个 全部注释得文件 去掉注释 PermitRootLogin??yes??就可以登陆了

如果不行,继续以下操作。

# vim /etc/ssh/sshd_config
注释掉
GSSAPIAuthentication yes
取消注释
UseDNS yes
# /etc/init.d/sshd restart
Stopping sshd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ ?OK ?]
Starting sshd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ ?OK ?]
如果登录慢

客户端:

vi /etc/ssh/ssh_conf?

找到?

GSSAPIAuthentication yes?

改为?

GSSAPIAuthentication no?

修改/etc/ssh/sshd_config内的 UseDns注释去掉并改为

UseDns no

如果没有就加上上面这句

2013 年 7 月 9 日

IMAP是电子邮件客户端组件,

本文环境为Centos 64位 DirectAdmin

32 bit

yum install krb5-devel libc-client libc-client-devel -y
wget http://dave.t0xic.nl/tars/imapback-2004c1-x86.tar.gz
tar xzf imapback-2004c1-x86.tar.gz
cd imap-2004c1
./buildit
cd c-client
mkdir /usr/local/imap-2004c1/
mkdir /usr/local/imap-2004c1/lib
mkdir /usr/local/imap-2004c1/include
cp *.h /usr/local/imap-2004c1/include
cp *.c /usr/local/imap-2004c1/lib
cp c-client.a /usr/local/imap-2004c1/lib
ln -s /usr/local/imap-2004c1/c-client.a /usr/local/imap-2004c1/libc-client.a

64bit

yum install krb5-devel libc-client libc-client-devel -y
cd /usr/local/directadmin/custombuild
wget http://dave.t0xic.nl/tars/imapback-2004c1-x86_64.tar.gz
tar xzf imapback-2004c1-x86_64.tar.gz
cd imap-2004c1
./buildit
cd c-client
mkdir /usr/local/imap/
mkdir /usr/local/imap/lib
mkdir /usr/local/imap/include
cp *.h /usr/local/imap/include
cp *.c /usr/local/imap/lib
cp c-client.a /usr/local/imap/lib
ln -s /usr/local/imap/c-client.a /usr/local/imap/libc-client.a

然后添加编译php的参数 重新编译成一次 即可

--with-pic \
--with-imap=/usr/local/imap \
--with-imap-ssl=/usr/local/imap

最后测试
php -m | grep imap

2013 年 6 月 8 日

一般情况下,现在新安装directadmin, 都建议不要用那个缺省的CLI模式而选择CGI模式,尤其当你遇到CPU负载飙高的时候,CGI模式可以看到是哪个账户的占用,这点比CLI模式更方 便。其实,我一直也是CGI模式的安装,不过今天有遇到朋友希望CLI转换为CGI,百度找到那些教程千篇一律的复制粘贴,我就有了动手试试的冲动。

首先,我们编辑custombuild选项中的PHP模式,将CLI设定no,CGI设定yes

cd /usr/local/directadmin/custombuild ./build update ./build clean nano options.conf

注意图中的着重框起来的部分,就是修改后的部分。

php

如果nano运行报错没有安装的话,请安装,也可以用VI命令编辑都可以的。接着,我们重编译PHP。

./build php n

记住用screen,这一步可能比较久。

下面就是遇到的问题了,最容易出现的,就是旧的账户可能报500错误,这是权限问题导致,多半是之前CLI的时候设定了777,遵循文件夹755,文件644的原则去修改下文件权限就可以了。如果遇到squirrelmail或者phpmyadmin报错,也请尝试重build。我是新装了一个DA用的CLI然后放一个WP之后转换再试的,目前就是遇到一个权限问题修改了就OK,我在慢慢摸索可能遇到的更多的问题,网上流传的那个2010年出来的转换方式很可能根本就不成功,大家要留意。

因为PHP5.3和zend3.3不是非常兼容,所以我们建议将PHP5.3降级为PHP5.2使用。
具体方法如下:
# cd /usr/local/directadmin/custombuild
# ./build clean
# ./build set php5_ver 5.2
# ./build php n
# service httpd restart
然后重新安装zend。

在 DirectAdmin 中安装Zend Optimizer / Guard Loader 是非常容易的,只要几个指令,就可以完成,,系统会自行辨认PHP 的版本,而去決定安装Zend Optimizer 还是 Zend Guard Loader 的。

[root@3w ~]# cd /usr/local/directadmin/custombuild

[root@3w custombuild]# ./build set zend yes

Changed zend option from no to yes

[root@3w custombuild]# ./build zend

Downloading ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz…
–2013-06-01 07:00:29– http://files2.directadmin.com/services/custombuild/Zend GuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
Resolving files2.directadmin.com… 69.30.193.202
Connecting to files2.directadmin.com|69.30.193.202|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 434691 (425K) [application/x-gzip]
Saving to: `/usr/local/directadmin/custombuild/ZendGuardLoader-php-5.3-linux-gli bc23-x86_64.tar.gz’

100%[======================================>] 434,691 1.10M/s in 0.4s

2013-06-01 07:00:30 (1.10 MB/s) – `/usr/local/directadmin/custombuild/ZendGuardL oader-php-5.3-linux-glibc23-x86_64.tar.gz’ saved [434691/434691]

Zend Guard Loader has been installed.

重启apache

service httpd restart

然后我们再来看看php -v ,已经安装好Zend Guard Loader.

[root@3w custombuild]# php -v
PHP 5.3.25 (cli) (built: May 31 2013 20:07:33)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies

mod_evasive 是Apache服务器的防CC攻击的一个模块,它可以检测和限制同个IP的请求次数,达到一定条件时执行命令(如使用iptables封禁IP),虽然并不能完全防御CC攻击,但在一定条件下能起到缓解Apache服务器的压力。

1)预安装:

yum install httpd-devel

2)获得mod_evasive,解压,安装。

cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar xzf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/sbin/apxs -cia mod_evasive20.c

3)添加配置文件
vi /etc/httpd/conf/httpd.conf,在LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so下面添加引用httpd-evasive.conf文件。

LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so
Include /etc/httpd/conf/extra/httpd-evasive.conf

httpd-evasive.conf文件的内容如下:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097(哈希表大小,无需修改)
DOSPageCount 2(允许单IP的最大并发连接(瞬间值)
DOSSiteCount 50(允许单台机在指定秒数内访问同一页的次数)
DOSPageInterval 1 单页请求检测时间(默认1秒)
DOSSiteInterval 1 全站请求检测时间(默认1秒)
DOSBlockingPeriod 3600 黑名单封禁时间(默认3600秒)
DOSEmailNotify someone@somewhere.com有新黑名单记录通知管理员
DOSSystemCommand “iptables -A INPUT -s %s -j DROP” 进黑名单执行命令
</IfModule>

4)重启apache

/etc/init.d/httpd restart

教程参考

1、https://library.linode.com/web-servers/apache/mod-evasive

2、http://www.kwx.gd/CentOSApp/CentOS-DA-mod-evasive.html

3、mod_evasive官方博客http://www.zdziarski.com/blog/?page_id=442