防人之心不可无。 网上总有些无聊或者有意的人。不多说了。上干货,配置vps apf防小流量ddos攻击。

对于大流量的ddos攻击, 需要机房的硬件防火墙,vps内部可能也扛不住。

1. 安装 DDoS deflate

DDoS deflate的原理是通过netstat命令找出 发出过量连接的单个IP,并使用iptables防火墙将这些IP进行拒绝。由于iptables防火墙拒绝IP的连接远比从Apache层面上来得高效,因此iptables便成了运行在Apache前端的“过滤器”。同样的,DDoS deflate也可以设置采用APF(高级防火墙)进行IP阻止。

wget http://www.inetbase.com/scripts/ddos/install.sh
chmod +x install.sh
./install.sh
主要功能与配置

1、可以设置IP白名单,在 /usr/local/ddos/ignore.ip.list 中设置即可;

2、主要配置文件位于 /usr/local/ddos/ddos.conf ,打开此文件,根据提示进行简单的编辑即可;

3、DDoS deflate可以在阻止某一IP后,隔一段预置的时候自动对其解封;

4、可以在配置文件中设置多长时间检查一次网络连接情况;

5、当阻止IP后,可以设置Email提醒

简单配置一下:

FREQ=1 #检测的频率为1分钟
NO_OF_CONNECTIONS=100 #当单个IP超过100个连接请求时判定为DDOS APF_BAN=1 #如果打算使用APF阻止IP,则设置为1(需要预先安装APF);如果使用iptables,则设置为0; KILL=1 #是否阻止 EMAIL_TO="webmaster@firstVM.com" #接收邮件 BAN_PERIOD=600 #阻止时长,10分钟

2. 安装配置apf。

APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptables的规则,易于理解及使用。

适合对iptables不是很熟悉的人使用,因为它的安装配置比较简单,但是功能还是非常强大的。

脚本安装:

root@linux:/home/zhangy# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz
root@linux:/home/zhangy# tar -xvzf apf-current.tar.gz
root@linux:/home/zhangy# cd apf-9.7-1
root@linux:/home/zhangy/apf-9.7-1# ./install.sh

ubuntu 可以快速安装:

sudo aptitude install apf-firewall

配置:

vi /etc/apf/conf.apf

往后翻页,找到:

# Configure inbound (ingress) accepted services. This is an optional
# feature; services and customized entries may be made directly to an ip's
# virtual net file located in the vnet/ directory. Format is comma separated
# and underscore separator for ranges.
#
# Example:
# IG_TCP_CPORTS="21,22,25,53,80,443,110,143,6000_7000"
# IG_UDP_CPORTS="20,21,53,123"
# IG_ICMP_TYPES="3,5,11,0,30,8" # Common inbound (ingress) TCP ports
IG_TCP_CPORTS="22"

默认只有22端口开放。 我们先不管。 访问以下80端口的网站试试。 发现竟然可以访问。 为什么规则没有起作用。

继续查看配置文件。 找啊找。

这一行引起了我的注意:

# Untrusted Network interface(s); all traffic on defined interface will be
# subject to all firewall rules. This should be your internet exposed
# interfaces. Only one interface is accepted for each value.
IFACE_IN="eth0"

突然想到, 会不会是监听端口的问题。

我们知道, 如果是真实服务器或者是 xen虚拟化的vps, 其网卡是 eth*。  例如:

ifconfig

但是, 我这台vps是openvz虚拟化的。 它的网卡一般是 vnet* 的。 比如:

于是改上面的配置文件:

# Untrusted Network interface(s); all traffic on defined interface will be
# subject to all firewall rules. This should be your internet exposed
# interfaces. Only one interface is accepted for each value.
IFACE_IN="venet0"

重启 apf:

apf -r

提示说找不到 ip_tables 模块。

ip_tables

apf(4677): {glob} unable to load iptables module (ip_tables), aborting.

于是搜索:  ubuntu  apf  找到这篇文章

http://davidwinter.me/articles/2011/06/05/install-apf-on-ubuntu-11-04/

大致意思是说, 在ubuntu中, iptables默认被编译进了内核, 而不是以模块方式运行的。apf默认是使用模块方式调用iptables。 所以要修改apf的配置:

SET_MONOKERN="1"

然后重启 apf

然后看到一长串的日志:

看样子是成功了。

试一下, 果然80端口不能访问了。

只有22还在。

回到配置文件, 我们把端口开放:

vi /etc/apf/conf.apf

找到:

# Configure inbound (ingress) accepted services. This is an optional
# feature; services and customized entries may be made directly to an ip's
# virtual net file located in the vnet/ directory. Format is comma separated
# and underscore separator for ranges.
#
# Example:
# IG_TCP_CPORTS="21,22,25,53,80,443,110,143,6000_7000"
# IG_UDP_CPORTS="20,21,53,123"
# IG_ICMP_TYPES="3,5,11,0,30,8" # Common inbound (ingress) TCP ports
IG_TCP_CPORTS="22,80,443"

保存,重启:  apf –r

再访问以下,成功了。

最后, 关闭apf的调试模式,正式上线:

找到:

# !!! Do not leave set to (1) !!!
# When set to enabled; 5 minute cronjob is set to stop the firewall. Set
# this off (0) when firewall is determined to be operating as desired.
DEVEL_MODE="1"

改成 0:

# !!! Do not leave set to (1) !!!
# When set to enabled; 5 minute cronjob is set to stop the firewall. Set
# this off (0) when firewall is determined to be operating as desired.
DEVEL_MODE="0"

欢迎大家访问我的个人独立博客: http://blog.byneil.com

简单配置vps,防ddos攻击的更多相关文章

  1. 转:nginx防DDOS攻击的简单配置

    文章来自于: 近期由于工作需要,做了些防DDOS攻击的研究,发现nginx本身就有这方面的模块ngx_http_limit_req_module和ngx_http_limit_conn_module. ...

  2. iptables防DDOS攻击和CC攻击配置

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp –syn -j syn-flood iptables ...

  3. 配置 Haproxy 防范 DDOS 攻击

    作为 load balancer, Happroxy 常常作为服务器的前端,向外界用户提供服务的入口,如果能在入口处处理安全相关问题,将极大简化后端的设计.事实上,Haproxy 不仅仅是一款开源出色 ...

  4. Azure上Linux VM防DDOS攻击:使用Apache mod_evasive

    部署在云端的虚拟机和web服务,很容易受到DoS护着DDoS的服务攻击,让一些新上线的业务苦不堪言,当然各个云服务提供商也有不同层面DDOS的防护,然而由于防护粒度,攻击复杂度的关系,未必可以满足你的 ...

  5. 《DNS攻击防范科普系列2》 -DNS服务器怎么防DDoS攻击

    在上个系列<你的DNS服务真的安全么?>里我们介绍了DNS服务器常见的攻击场景,看完后,你是否对ddos攻击忧心重重?本节我们来告诉你,怎么破局!! 首先回顾一下DDoS攻击的原理.DDo ...

  6. 防DDOS攻击SHELL脚本

    最近一段时间服务器频繁遭到DDOS攻击,目前只能通过封IP来源来暂时解决.IP不源变化多端,光靠手工来添加简直是恶梦,想了个方法,用SHELL来做. 比较简单,但很实用:) 以下内容根据作者原文进行适 ...

  7. iptables防DDOS攻击和CC攻击设置

    防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...

  8. 防火墙防DDOS攻击的简单设置

    #Ping洪水攻击(Ping of Death) iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s - ...

  9. 防DDOS攻击

    /ip firewall filter add chain=forward connection-state=new action=jump jump-target=block-ddos add ch ...

随机推荐

  1. [转]FluentData

    本文来自:http://fluentdata.codeplex.com/wikipage?title=Fluency&referringTitle=Home Documentation  Fl ...

  2. asp.net webapi 自托管插件式服务

    webapi问世已久,稀里糊涂的人哪它都当mvc来使,毕竟已mvc使用级别的经验就可以应对webapi. webapi和mvc在asp.net5时代合体了,这告诉我们,其实 它俩还是有区别的,要不现在 ...

  3. 在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

    有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代 ...

  4. EF Attach时报错

    ASP.NET MVC项目 Repository层中,Update.Delete总是失败 another entity of the same type already has the same pr ...

  5. C# JSON 序列化

    1.JavaScriptSerializer System.Web.Extensions.dll System.Web.Script.Serialization命名空间 Serialize Deser ...

  6. sqlserver: 使用While 示例

    declare @i intset @i = 1999while(@i<2009)begin declare @sql varchar(8000) set @sql = 'update    d ...

  7. Multipart polyline to single part lines

    Breaking Up Polylines  http://forums.esri.com/Thread.asp?c=93&f=987&t=74554&mc=4#msgid19 ...

  8. maven 中的依赖

  9. 【mysql数据库】一条语句添加多条数据

    insert into persons (id_p, lastname , firstName, city ) values (200,'haha' , 'deng' , 'shenzhen'), ( ...

  10. 如何阅读一个Web项目 【转载】

    摘自网络博客. ============================================================================================ ...