Dshield是一个轻量型的DDos防护工具,它在受到如CC、压测工具等拒绝服务攻击时,能进行比较有效的防御。实际上它并不具备阻截能力,它是基于IPtables防火墙,利用类似于SS命令过滤出可疑IP,与IPtables防火墙实现联动。在发生恶意拒绝服务攻击时,本工具会实时分析连接来源的企图,并自动将其加入iptables防火墙的DROP链表中进行阻截。同时将攻击IP记录数据库中,当达到预定时间后,工具自动从IPtables防火墙中解封对应IP。在基本测试过程中,应付单IP并发连接攻击、cc攻击等效果明显。但它并不适合于真正的大流量攻击,只要攻击流量不超过服务器的最高带宽一般不会造成服务宕机,能对抗轻量DDOS。它也许是在软件级别上安装最方便和最简单的一个解决方案。本工具完全由python开发,程序简单易读,方便后期修改。
本工具经过了4次更新,原名叫“DDoS-Defender”,本版本V4.0.0中新增了基于web可视化的图形界面,代码层基本上全部进行了重构。由于面向web可视化,所以底层架构上采用了influxDB + grafana的结合,你可以不需要安装任何额外的http服务来支持它的运行,因为grafana工具已集成了一套http服务,且图形是可自定义配置的。使用起来相当容易。保证你会喜欢上它!
使用root用户来进行安装(要求你本机使用python2.6 Centos系统):
(1)安装grafana
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-4.0.2-1481203731.x86_64.rpm
或者添加YUM源的方式,使用vi /etc/yum.repos.d/grafana.repo 将以下内容追加到文件里:
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
然后执行YUM安装以及使用service命令启动
yum install grafana
(2) 安装Dshield
wget https://github.com/ywjt/Dshield/archive/master.zip
unzip Dshield-master.zip
cd Dshield-master/
mv src /usr/local/Dshield
mv grafana.db /var/lib/grafana/
service grafana-server start
tar zxvf env.tar.gz -C /usr/local/Dshield/
注:env.tar.gz 是打包好的运行环境,要求你本机使用python2.6 Centos系统。 安装完成,现在可以启动Dshield工具!
/usr/local/Dshield/sbin/dshield all start
赶紧打开 http://{your_ip}:3000/ 看看。
修改配置文件
打开 /usr/local/Dshield/conf/default.ini
白名单列表
支持CIRD格式
whitelisted_ips = “10.10.10.0/24,172.16.0.0/16”
whitel_ttl_ips = “10.10.10.0/24,172.16.0.0/16”
监控接口
mont_interface = “eth0”
监控端口 mont_port = “80,22”
监听模式 false 表示主动防御 true 表示只作记录不会锁IP,ttl
mont_listen = false
监控密度,单位为秒
rexec_time = 5
锁定连接数,该项能确定监控的敏感度 建议:100
no_of_connections = 100
ip封锁时间 支持1d/1h/1m格式
block_period_ip = “1m”
监控协议 对TTL监控模块生效 tcp 模式 udp 模式 ” 表示所有协议
mont_protocol = “tcp”
锁定连接数,该项能确定监控的敏感度 建议:100000
no_ttl_connections = 100000
ttl封锁时间 支持1d/1h/1m格式
block_period_ttl = “1m”
github源:https://github.com/ywjt/Dshield