FreeBSD 6.0 抗DOS

来源:互联网 发布:酒店网络销售工作职责 编辑:程序博客网 时间:2024/05/01 07:59

 

系统使用FreeBSD6.0

原理:
1、打开Polling防止DOS时大量的发包使网卡中断过多而拖垮系统(CPU)。
2、使用PF 防火墙防止SynFlood等Flood,以及防止不必要的包进入系统。
功效:
对DOS有较好的效果,DDOS也有一定的效果,慢速DDOS效果不大。
但是对DOS和DDOS带宽耗尽没有很好的防御(PS:其他方法也对此也无可奈何)。
网卡推荐使用Intel的intel pro 100(fxp)或intel pro 1000(em),因为FreeBSD对intel的网卡支持比较好。

配置内核时加上

options         DEVICE_POLLING #打开 Polling
options HZ=1000

device pf  #编译上PF防火墙模块
device pflog

以下以WEB服务器为例,网卡为em0(intel pro 1000)

1、PF防火墙配置

ext_if="em0"

table {}
scrub in all 
block in  on $ext_if #默认拒绝
pass out all
pass quick on lo
block in  on $ext_if
block in quick on $ext_if from to any
pass  in quick  on $ext_if proto tcp from any to $ext_if port 80  /
        flags S/SA modulate state (source-track rule, max-src-conn-rate 10/1,max-src-states 30, overload flush, src.track 1)
         #同一原地址最大连接数30个,当每秒钟建立连接数超过10个/秒(Syn包)加入黑名单并断开所有这个ip的连接。
pass in quick on $ext_if proto udp from any port 53 to $ext_if  keep state #打开DNS
pass out quick  on $ext_if proto { tcp, udp} all keep state  #PASS自身出去的包
2、优化网络参数:

net.isr.direct=1 #必要时打开
net.inet.tcp.sendspace=65536
net.inet.udp.recvspace=65536
net.inet.udp.maxdgram=65536
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.inet.tcp.msl=7500

3、攻击时打开polling

#ifconfig em0 polling

原创粉丝点击