免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8162 | 回复: 15
打印 上一主题 下一主题

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-07-13 22:53 |只看该作者 |倒序浏览
出自http://shidongxue.blogdriver.com/shidongxue/699924.html
  1. 基于freebsd5.3下 PF synproxy的DDOS防范方案- -
  2.                                        


  3. 基于freebsd下 PF synproxy的DDOS防范方案

  4. [摘要]
  5. 本文讲述了基于freebsd5.3 下PF synproxy的DDOS防范方案,对于中小型企业抵挡每秒3万个包的攻击不失为一种可用方案。

  6. [环境]
  7. 防火墙:台式机P4 2G,512内存。 FREEBSD5.3
  8. WEB服务器:笔记本PIII 700 256m, suse linux enterprise server 9
  9. 攻击机器:笔记本:PIII 700 256M, WIN2000 SERVER
  10. 攻击工具:HGOD v0.4
  11. 测试机:笔记本:PIII 700

  12. 拓朴:
  13. =====
  14. 防火墙:xl0 外网卡:172.16.0.1; sis0 内网卡:192.168.100.1
  15. WEB服务器:eth0 192.168.100.2
  16. 攻击机:172.16.0.194
  17. 测试机:172.16.0.195

  18. 一、编译内核
  19. #cd /usr/src/sys/i386/conf
  20. #cp GENERIC billy-pf
  21. #vi billy-pf
  22. 添加:
  23. device pf
  24. device pflog
  25. device pfsync
  26. options ALTQ
  27. options ALTQ_CBQ # Class Bases Queuing (CBQ)
  28. options ALTQ_RED # Random Early Detection (RED)
  29. options ALTQ_RIO # RED In/Out
  30. options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
  31. options ALTQ_PRIQ # Priority Queuing (PRIQ)
  32. options ALTQ_NOPCC # Required for SMP build
  33. #config billy-pf
  34. #cd ../compile/billy-pf
  35. #make depend;make make install
  36. 二、编辑启动脚本/etc/rc.conf
  37. pf_enable="YES" # Enable PF (load module if required)
  38. pf_rules="/etc/pf.conf" # rules definition file for pf
  39. pf_flags="" # additional flags for pfctl startup
  40. pflog_enable="YES" # start pflogd(8)
  41. pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
  42. pflog_flags="" # additional flags for pflogd startup

  43. gateway_enable="YES"

  44. 三、修改/etc/pf.conf
  45. ext_if="xl0"
  46. int_if="sis0"
  47. internal_net="192.168.100.1/24"
  48. external_addr="172.16.0.1"
  49. web_server="192.168.100.2"
  50. nat on $ext_if from $internal_net to any ->; ($ext_if)
  51. #($ext_if) 括起来的原因:如果你使用DHCP还配置外部地址,不括起来会存在问题。如果你分配的IP地址改变了,NAT仍然会使用旧的IP地址转换出去的数据包。这会导致对外的连接停止工作。为解决这个问题,应该给接口名称加上括号,告诉PF自动更新转换地址。
  52. rdr on $ext_if proto tcp from any to $external_addr/32 port 80 ->; $web_server port 80
  53. #这一行重定向了TCP端口80(web服务器)流量到内部网络地址$web_server。因此,即使$web_server在网关后面的内部网络,外部仍然能够访问它。
  54. pass in on $ext_if proto tcp from any to $web_server port 80 flags S/SA synproxy state
  55. #连到外部地址的80端口,作SYNPROXY,以防DDOS攻击

  56. 四、修改192.168.100.2的网关IP为192.168.100.1

  57. 五、修改/etc/sysctl.conf
  58. net.inet.ip.forwarding=1
  59. 使防火墙进行IP转发

  60. 重启

  61. 六、测试
  62. 攻击前先访问http://172.16.0.1/index.html,正常打开了WEB服务器上的主页
  63. 攻击:
  64. 往防火墙的外部IP172.16.0.1的80端口发动DDOS攻击。
  65. hgod 172.16.0.1 80
  66. 观察WEB服务器192.168.100.2上的80端口连接情况和收到的包数。
  67. 统计防火墙上受攻击强度(包/每秒)。
  68. speed.sh
  69. #!/bin/sh
  70. oldval=0
  71. curval=0
  72. while true
  73. do
  74. curval=`netstat -i | grep xl0 | head -1 | awk '{print $5}'
  75. if [ $oldval = 0 ]; then
  76. old=$curval
  77. else
  78. echo `date`" pkg inbound rate on xl0: $(($curval-$oldval)) pps"
  79. oldval=$curval
  80. fi
  81. sleep 1
  82. done
  83. `


  84. 七、测试结果

  85. DDOS攻击下,防火墙接收到的包速率为:2.6万-2.8万个包每秒
  86. 在PF的保护下,仅DDOS攻击时,WEB服务器没有收到一个包,说明防火墙全挡住了非法包。
  87. 去掉SYNPROXY的保护,即最后一条规则时,WEB服务器收到的包速成率与防火墙收到的包相当。访问WEB服务器时被拒绝。
  88. 在PF保护下,WEB_server的访问正常。

  89. 结论:
  90. 基于PF的防DDOS攻击对于每秒3万个包以下的攻击抵挡效果出色。对于更大流量的攻击,有待进一步测试。

  91. 进一步的工作:

  92. 结合ALTQ中RED算法的连接耖尽攻击防范。
  93. 尽管对于非法IP的拦截PF可以大显身手,但对于完整TCP连接的消耖攻击,同样非常重要,下一篇将讲述如何利用RED(Random Early Detection)算法来适当保护合法用户。利用二八原则来区分用户的合法性。在表面上区分不了连接的合法性时,只能作适当的牺牲,牺牲突然前来地访问的用户。

  94. 作为保护服务器的不停机运行的第三把利剑,还可结合负载均衡来增强WEB服务器的高可用性.
复制代码




##################write by zjzf_1#######################

pf的synproxy 实现在nat 上
这可不是 个好的选择    低效呀   而且要改变网络拓扑

我粗略的看了看pf  发表点看法  不当之处希望高手指出

pf对每一个连接要用struct pf_state这个数据结构保存连接状态

pf通过调用RB_FIND RB_INSETR... ...完成对连接状态表的操作(openbsd/src/sys/tree.h)

这是一个树形结构好像叫什么red-black trees


我要说的是 我觉得 对防火墙这种 实时要求比较高的东西上 我觉得这种做法不是很妥当   我建议用hash 分段  来处理这个问题



以上两点 我个人认为 是pf synproxy 不怎么样的关键原因


我个人实在ethernet bridge上面实现的 效果还不错哈 已经有产品出了

###########加精后修改##################

我上面 只是借转载文章粗略的说了一下pf的synproxy   如果朋友们愿意 深入讨论这个问题

我们可以深入的讨论一下     顺便谢谢斑竹[/url]

论坛徽章:
0
2 [报告]
发表于 2005-07-14 08:58 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

给你精华了,呵呵~

论坛徽章:
5
巳蛇
日期:2013-08-28 09:26:15CU十二周年纪念徽章
日期:2013-10-24 15:41:34射手座
日期:2013-10-31 09:13:04射手座
日期:2014-02-11 13:18:34天秤座
日期:2014-03-25 09:22:28
3 [报告]
发表于 2005-07-14 09:30 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

[quote]原帖由 "ayazero"]给你精华了,呵呵~[/quote 发表:


这个是转贴,楼主已经说明了,不能是原创吧?  

论坛徽章:
0
4 [报告]
发表于 2005-07-14 12:31 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

好文章就行了,顶

论坛徽章:
0
5 [报告]
发表于 2005-07-17 02:12 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

没收到预期效果

论坛徽章:
0
6 [报告]
发表于 2005-07-17 02:13 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

懂行的看门道  不懂得 帮我 顶

论坛徽章:
0
7 [报告]
发表于 2005-07-17 06:00 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

多谢兄弟指教,我加我网站里了。

论坛徽章:
0
8 [报告]
发表于 2005-07-21 07:42 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

楼主,bridge方式下如何实现syn代理?
既然没有ip,也就无法“代理吧”,只能中途“伪装”一下吧。

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
9 [报告]
发表于 2005-07-21 08:33 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

收藏一下

论坛徽章:
0
10 [报告]
发表于 2005-07-21 10:55 |只看该作者

基于freebsd5.3下 PF synproxy的DDOS防范方案(转载+评论)

colddawn     所谓的代理  就是代替原有的服务提供单元 完成服务
可以有tcp 代理
ip代理
arp代理
ipx代理
以太网有arp代理
不一定要用sock代理或者http代理 把你对代理网络服务的认识局限住
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP