设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 45846|回复: 1

[系统安全] 开源DDos防御工具 Dshield-v4.0.0 [复制链接]

Rank: 6Rank: 6

签到
98
注册时间
2011-5-11
最后登录
2019-7-22
在线时间
48 小时
阅读权限
70
积分
8644
帖子
20
主题
9
精华
0
UID
13591
发表于 2016-12-16 16:06:03 |显示全部楼层
记得很久之前写过一个工具轻量的DDos防御工具叫“DDoS-Defender”,也在论坛里分享过,同学们好像也比较有兴趣。最近整理硬盘的时候,无意中又看到了它。所以突发其想,想重新玩一下。

起因是这样的,最近看到了一个比较有趣的《collectd+influxDB+grafana》的开源监控框架。collectd负责收集系统数据,然后传送给influxDB,influxDB是一个时序式数据库,而且支持Restful接口、伪SQL语法,轻量易用。grafana主要是个图形框架,内置http服务器,可以定制各种自已喜欢的图形和表格,功能强大好玩。

至于监控,我是不太感兴趣了,我反而觉得如果把之前写的DDos工具,进行web可视化,这绝对高逼格啊~~ 所以我真的把代码重写了~~ 然后我给它起了个全新的名字:“Dshield”。

#简介:


Dshield是一个轻量型的DDos防护工具,它在受到如CC、压测工具等拒绝服务攻击时,能进行比较有效的防御。实际上它并不具备阻截能力,它是基于IPtables防火墙,利用类似于SS命令过滤出可疑IP,与IPtables防火墙实现联动。在发生恶意拒绝服务攻击时,本工具会实时分析连接来源的企图,并自动将其加入iptables防火墙的DROP链表中进行阻截。同时将攻击IP记录数据库中,当达到预定时间后,工具自动从IPtables防火墙中解封对应IP。在基本测试过程中,应付单IP并发连接攻击、cc攻击等效果明显。但它并不适合于真正的大流量攻击,只要攻击流量不超过服务器的最高带宽一般不会造成服务宕机,能对抗轻量DDOS。工具完全由python开发,程序简单易读,方便后期修改。工具新增了基于web可视化的图形界面,代码层基本上全部进行了重构。由于面向web可视化,所以底层架构上采用了influxDB + grafana的结合,你可以不需要安装任何额外的http服务来支持它的运行,因为grafana工具已集成了一套http服务,且图形是可自定义配置的。使用起来相当容易。保证你会喜欢上它!

GitHub开源:  https://github.com/ywjt/Dshield

#程序结构


Dshield/conf     配置文件
Dshield/data     存放数据缓存
Dshield/lib       功能模块实例
Dshield/sbin     主程序
Dshield/logs     日志输出记录
Dshield/test     测试用例

做了一些全新的优化:
(1) 改为使用SS命令来分析连接状态,SS在效率上极优于netstat,高并发连接情况下速度快,不影响系统性能。
(2) 增加TTL检测进程,对异常TTL进行封锁。TTL封锁可对随机IP并发连接攻击类有一定保护效果,只要封定成功能保证系统不会因为消耗资源而宕机,但是无法解决带宽被占满的问题。同时,TTL有可能会造成误杀情况,所以可酌情而开启。它与主进程是独立运作的,可以手工开启或关闭,又或者设为只监听状态。
(3) 支持CRID的白名单书写规范,如 192.168.1.0/24。你再也不用一个个IP地填上去了。但是目前最多支持8组白名单。


#安装方式


使用root用户来进行安装。

(1) 安装grafana
  1. # yum -y install https://grafanarel.s3.amazonaws.com/builds/grafana-4.0.2-1481203731.x86_64.rpm
  2. # service grafana-server start
复制代码

或者添加YUM源的方式,使用vi /etc/yum.repos.d/grafana.repo 将以下内容追加到文件里:
  1. [grafana]
  2. name=grafana
  3. baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
  4. repo_gpgcheck=1
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
  8. sslverify=1
  9. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
复制代码

然后执行YUM安装以及使用service命令启动
  1. # yum install grafana
  2. # service grafana-server start
复制代码

(2) 安装Dshield
  1. wget https://github.com/ywjt/Dshield/archive/master.zip
  2. unzip master.zip
  3. cd Dshield-master/
  4. sh install.sh
复制代码

安装完成,现在可以启动Dshield工具!
  1. service grafana-server restart
  2. /usr/local/Dshield/sbin/dshield all start
复制代码

打开 http://{your_ip}:3000/ 看看。用户名/密码:admin /admin



你可以自行再修改界面,grafana还是蛮好玩的~~

#使用帮助


(1) 命令使用
  1. # /usr/local/Dshield/sbin/dshield all {start|stop|restart}    #启动全部服务
  2. # /usr/local/Dshield/sbin/dshield cc {start|stop|restart}     #启动主进程
  3. # /usr/local/Dshield/sbin/dshield sniff {start|stop|restart}  #启动ttl模块
  4. # /usr/local/Dshield/sbin/inflctl {start|stop|restart}        #独立启动数据缓存
复制代码

(2) 修改配置文件
打开 /usr/local/Dshield/conf/default.ini
  1. #白名单列表
  2. #支持CIRD格式
  3. whitelisted_ips = "10.10.10.0/24,172.16.0.0/16"
  4. whitel_ttl_ips = "10.10.10.0/24,172.16.0.0/16"

  5. #监控接口
  6. mont_interface = "eth0"

  7. #监控端口
  8. mont_port = "80,22"

  9. #监听模式 false 表示主动防御 true 表示只作记录不会锁IP,ttl
  10. mont_listen = false

  11. #监控密度,单位为秒
  12. rexec_time = 5

  13. #锁定连接数,该项能确定监控的敏感度 建议:100
  14. no_of_connections = 100

  15. #ip封锁时间 支持1d/1h/1m格式
  16. block_period_ip = "1m"

  17. #监控协议 对TTL监控模块生效 tcp 模式 udp 模式 '' 表示所有协议
  18. mont_protocol = "tcp"

  19. #锁定连接数,该项能确定监控的敏感度
  20. #建议:20000~100000
  21. no_ttl_connections = 20000

  22. #ttl封锁时间 支持1d/1h/1m格式
  23. block_period_ttl = "1m"
复制代码

Enjoy!

你可以拿 webbench、ab、siege、LoadRunner 来压测! 也可以装个hping3 模拟随机IP来发动洪水(注意发包量,这个并不是真正意义的防火墙。“小玩怡情,大玩耍流氓!”)。




Rank: 8Rank: 8

注册时间
2011-9-16
最后登录
2020-2-21
在线时间
948 小时
阅读权限
90
积分
266217
帖子
2158
主题
2
精华
0
UID
15647
发表于 2016-12-16 21:19:27 |显示全部楼层
感谢楼主分享!

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2020-2-21 09:21 , Processed in 0.022089 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部