暴力破解FTP服务器技术探讨与防范措施分享(2)

图4
4). 计算机标识限制及其突破
最烦琐的FTP安全策略就是使用用户计算机的标识来进行限制了。所谓用户计算机的标识是指在FTP服务器和用户计算机的交互中,服务器通过某种途径记录了用户计算机的某些标识,如MAC地址、Ccookies信息、硬件编号等。当管理员设置的连接频率、错误次数限制达到的时候,FTP服务器就会根据计算机标识来识别用户计算机,进而进行连接限制。
这样的限制方法在网络上出现的不多,不过国外的某些营利性组织经常使用这样的方法来进行安全保障,比如投资公司、股票顾问、非法博彩等站点。从技术上说,这样的策略是比较狠的,要对这样策略下的FTP服务器进行暴力破解攻击,比较难--但不是说毫无办法。举例来说,常见的这种限制是通过网卡的MAC地址识别来实现的,而MAC地址是可以更改的,攻击者完全可以自己编写程序,每次暴力破解发起的时候,都改变一次MAC地址。当然,网络中到处都是MAC地址的改变程序,甚至很多硬件信息也是可以随意生成的,如Mac MakeUp等,如图5

图5
如果目标FTP服务器是通过cookies等信息来辅助验证的话,突破方法就更为简单了。攻击者可以自己编程实现每次暴力破解前都清空一次cookies,也可以使用SteganosIntemet Anonym Pro等工具实现cookies自动删除、浏览记录自动删除等。
四、应对措施第三方软件Fail2ban加固方法
魔高一尺道高一丈,总的来说,只要FTP服务器妄图让正常用户使用,要彻底地杜绝FTP的暴力破解攻击就非常困难,至少目前没有办法实现,下面我们用第三方软件来进行加固,经过笔者长期对比发现Fail2ban对于解决暴力破解、非法扫描能起到比较好的效果,它是一个基于防火墙链添加新规则构成,并发送e-mail通知系统管理员。Fail2ban不仅可以使用自动识别可能的暴力入侵,而且可按照快速且简易的用户自定义规则去分析,因为fail2ban 的原理是调用iptables 实时阻挡外界的攻击,按照你的要求在一段时间内找出符合条件的日志,然后动作,所以你的系统里必选装有iptables,以及Python的支持。
1.下载安装:
在基于debian系统下安装fail2ban是非常畅快的。以root用户执行下列命令
# apt-get install fail2ban
在GNU/Linux 系统上源码安装,为了编译Fail2ban,你需要下载最新的源码(http://sourceforge.net/projects/fail2ban )。当获取后,你可以该改变你的源码目录,并执行下列命令:
#tar xvjf fail2ban-x.x.x.tar.bz2
你会在当前工作目录下得到一个Fail2ban的解压后的源码目录。你须CD到新的目录中。现在以root用户执行安装:
#./setup.py install
Fail2ban 会安装在 /usr/share/fail2ban/ 和 /usr/bin/目录中,装好后,稍微根据自己的情况改一下配置就可以使用了。
2.系统配置
一个典型的配置文件如下:
/etc/fail2ban/
├── action.d
│ ├── dummy.conf
│ ├── hostsdeny.conf
│ ├── iptables.conf
│ ├── mail-whois.conf
│ ├── mail.conf
│ └── shorewall.conf
├── fail2ban.conf
├── fail2ban.local
├── filter.d
│ ├── apache-auth.conf
│ ├── apache-noscript.conf
│ ├── couriersmtp.conf
│ ├── postfix.conf
│ ├── proftpd.conf
│ ├── qmail.conf
│ ├── sasl.conf
│ ├── sshd.conf
│ └── vsftpd.conf
├── jail.conf
└── jail.local
每个.conf文件都会被名为 .local的文件覆盖。.conf首先被读取,其次是.local。新的配置会覆盖早先的。因此,.local 文件不必包含每个相应于.conf中的选项,只是填写你想要覆盖的设置。
首先编辑fail2ban.conf
#vi /etc/fail2ban.conf #以 daemon 方式启动 fail2ban
background = true #允许尝试次数
maxfailures = 3 #触发 maxfailures 之後的封锁时间(秒); 设为 -1 表示永远封锁
bantime = 3600 #以 findtime (秒) 时间内的错误记录作为 maxfailures 的计数基准
findtime = 600 #排除 IP 范围, 以空白隔开
ignoreip = 127.0.0.1 192.168.0.0/24 #不启用 mail 通知
[MAIL]enabled = false #修改自 VSFTPD, 未提及的部份保持原设定
[PROFTPD]enabled = true
logfile = /var/log/proftpd/proftpd.log
failregex = no such user|Incorrect password #未提及的部份保持原设定
[SSH]enabled = true
logfile = /var/log/secureservice fail2ban
开始启动这个服务启动以后,每天都能在 /var/log/fail2ban.log 中看到有攻击的肉鸡被 ban 了。
下面一步就复制初始化脚本到系统的 /etc/init.d 目录下,执行chkconfig 和update-rc.d或手工创建一个符号链接,设置权限
# chmod 755 /etc/init.d/fail2ban
#chkconfig -a fail2ban
#ln -s /etc/init.d/fail2ban /etc/rc2.d/S20fail2ban
最后,整合fail2ban到日志循环中
创建文件:"/etc/logrotate.d/fail2ban":
/var/log/fail2ban.log {
weekly
rotate 7
missingok
compress
postrotate
/usr/local/bin/fail2ban-client reload 1>/dev/null || true
endscript
最后是Iptables微调,只允许每组IP同时5个21端口转发 ,类似功能大家可以去发挥。
#iptables -A FORWARD -p tcp --syn --dport 21 -m connlimit --connlimit-above 5 --connlimit-mask 24 -j DROP
好了,经过安装、配置下面我们看看使用它的效果吧,先浏览一下iptables
#iptables -L -nv
pkts bytes target protopt in out source destination
301 12740 fail2ban-ftp tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
3354 253K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
438 33979 fail2ban-httpdtcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 5703 packets, 829K bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
3354 253K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-ftp (1 references)
pkts bytes target prot opt in out source destination
301 12740 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-httpd (1 references)
pkts bytes target prot opt in out source destination
438 33979 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
查看fail2ban的日志
通过以下命令就能方便的查看到被记录的非法暴力破解IP
# cat fail2ban.log | grep '] Ban '
最后,我们要注意fail2ban是一个日志分析器,在写入日志前不会做任何事情。大多数系统日志守护进程都会缓冲他们的输出。这可能会和fail2ban性能有所冲突。因此,最好能禁止缓冲你的系统日志守护进程,以提高性能。目前来看,只要FTP服务器希望让正常用户使用,要完全杜绝FTP暴力破解攻击就会很难,因此要从细微之处入手,尽量降低被暴力破解的概率。
- 最新评论
