Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2784235
  • 博文数量: 154
  • 博客积分: 7136
  • 博客等级: 准将
  • 技术积分: 1428
  • 用 户 组: 管理员
  • 注册时间: 2010-02-21 11:26
文章分类

全部博文(154)

文章存档

2016年(2)

2014年(2)

2013年(4)

2012年(16)

2011年(51)

2010年(68)

2009年(3)

2006年(3)

2005年(5)

分类:

2011-04-29 15:37:37

原文地址:freebsd ipfw拒绝发信IP段 作者:zeuls

(弱智招,在哪个网段邮件服务器也被拒绝,这批文章只能用来参考在freebsd下ipfw的启用了)
 
没想到有网络流氓,我的邮件服务器一直没有安装防火墙,结果发现流氓扫描学生的弱口令,利用我的服务器来发垃圾邮件,3天干了67万封堆在服务器里,简直气死我了。
 
经研究,决定使用IPFW来deny掉源IP段的25端口,过程如下:
 
1.编译内核,激活IPFW:
# cd /usr/src/sys/amd64/conf
# cp GENERIC ZXIPFW
# vi ZXIPFW
修改内容如下:
#ident          GENERIC
ident           zxipfw
加入:
options         IPFIREWALL  
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=10
options         IPFIREWALL_FORWARD
options         DUMMYNET
注意内核参数中别的最好别动,我搞笑的把options NFSCLIENT 和options NFSSERVER 给关了,结果导致内核编译出错,还不知道神马回事。
 
 
然后编译内核:
# /usr/sbin/config ZXIPFW
# cd ../compile/ZXIPFW
# make cleandepend && make depend
# make
# make install
可以重启下。
修改/etc/rc.conf
加入:
firewall_enable="YES"
firewall_script="YES" 
firewall_script="/etc/ipfw.rules"
firewall_quiet="NO"
firewall_logging_enable="YES"
我不知道为什么,我用firewall_script="/etc/rc.firewall" 老出错,干脆就自己写了ipfw.rules了。
 
编辑/etc/ipfw.rules
加入:
ipfw -q -f flush
ipfw -q add check-state
ipfw -q add deny log tcp from 121.206.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 111.78.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 117.44.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 182.114.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 211.154.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 124.225.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 183.15.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 60.22.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 59.50.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 59.58.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 59.38.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 42.49.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 59.38.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 222.78.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 222.246.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 110.53.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 61.154.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 219.131.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 124.126.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 219.142.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 222.213.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 120.38.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 218.86.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 117.21.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 58.60.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 221.234.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 222.186.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 110.205.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 202.108.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 112.94.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 222.244.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 113.90.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 119.41.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 112.67.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 219.154.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 123.11.0.0/16 to any 25 via em0
ipfw -q add deny log tcp from 116.25.0.0/16 to any 25 via em0
 
这些万恶的IP段就是利用我的邮件服务器发送垃圾邮件的源地址,smtp是TCP 25端口,我用的是em0网口。
这些地址持续更新中。
 
重启一下网卡就生效了:/etc/netstart
看看效果:ipfw show 如果有被拦截的,则会显示拦截包数量。
 
看看你的过滤规则:ipfw list
 
如果需要看到拦截的日志:
touch /var/log/ipfw.log
需要在规则中加log字段:
ipfw -q add deny log tcp from 42.49.0.0/16 to any 25 via em0
 
要让系统日志自动每日打包:
编辑/etc/syslog.conf加入:
!ipfw
*.* /var/log/ipfw.log
OK!
 
阅读(1865) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~