找回密码
 注册
广告投放 虚位以待【阿里云】2核2G云新老同享 99元/年,续费同价做网站就用糖果主机-sugarhosts.comJtti.com-新加坡服务器,美国服务器,香港服务器
查看: 926|回复: 0

用fail2ban阻止SSH和VSFTP暴力破解密码

[复制链接]
发表于 2010 年 10 月 2 日 22:57:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

最近deepvps发现自己的VPS每天都被不停的探测SSH和VSFTP的密码。虽然已经做了一些简单的防护,但是总觉的不保险。为了彻底解决这个问题。deepvps发现了fail2ban这款软件很好,可以有效阻止这样的攻击,下面是基本的安装配置方法:

一、下载安装

  1. wget http://cdnetworks-kr-2.dl.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2
    tar xvfj fail2ban-0.8.4.tar.bz2
    cd fail2ban-0.8.4
    python setup.py install
    cd files
    cp ./redhat-initd /etc/init.d/fail2ban
    chkconfig –add fail2ban
    service fail2ban start
复制代码

注意:假设重起iptables 记的一定还要重起fail2ban,不然他就不能生效,fail2ban的过滤表是在iptables 启动后在加入的。

二、配置
1、fail2ban本身配置
默认fail2ban.conf里面就三个参数,而且都有注释。
#默认日志的级别

  1. loglevel = 3
复制代码
#日志的存放路径
  1. logtarget = /var/log/fail2ban.log
复制代码
#socket的位置
  1. socket = /tmp/fail2ban.sock
复制代码

2、fail2ban防护配置
全局设置

  1. vi /etc/fail2ban/jail.conf
复制代码
# 忽悠 IP范围 假设有二组以上用空白做为间隔
  1. ignoreip = 127.0.0.1
复制代码
# 设定 IP 被封锁的时间(秒),假设值为 -1,代表永远封锁
  1. bantime = 86400
复制代码
# 设定在多少时间内达到 maxretry 的次数就封锁
  1. findtime = 600
复制代码
# 设定在多少时间内达到 maxretry 的次数就封锁
  1. maxretry = 3
复制代码
# 允许尝试的次数

分类设置
#针对sshd暴力入侵防护

  1. [ssh-iptables]
    enabled = true
    filter = sshd
    action = iptables[name=SSH, port=ssh, protocol=tcp]
    sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
    logpath = /var/log/secure
复制代码
# 假设有个别的次数设定就设在这里
  1. maxretry = 3
复制代码

#针对vsftpd暴力入侵防护

  1. [vsftpd-iptables]
    enabled = true
    filter = vsftpd
    action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
    sendmail-whois[name=VSFTPD, dest=you@mail.com]
    logpath = /var/log/secure
    maxretry = 3
复制代码

建议设置成maxretry为 3 表示3次错误就封锁,另外logpath(Centos5和Rhel5中)要改成/var/log/secure。

然后我们设置启动服务:

  1. chkconfig –level 345 fail2ban on
    service fail2ban start
复制代码

三、测试
查看iptables 的规则多出了 iptables-ssh的规则

  1. iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh
    fail2ban-SSH tcp — anywhere anywhere tcp dpt:ssh
    Chain fail2ban-SSH (2 references)
    target prot opt source destination
    DROP all — 122.102.64.54 anywhere
复制代码

# 这有一个被阻止的IP 拒绝时间根据在你的配置文件设置时间有关 我设置的是一天

  1. RETURN all — anywhere anywhere
复制代码

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在其他的机器上ssh 192.168.1.2
连续三次输错密码

使用命令

  1. fail2ban-client status ssh-iptables
复制代码

查看阻止状态或者

  1. fail2ban-client status
    Status
    |- Number of jail: 1
    `- Jail list: ssh-iptables
复制代码

测试结果:

fail2ban-client status ssh-iptables
Status for the jail: ssh-iptables
|- filter
| |- File list: /var/log/secure
| |- Currently failed: 0
| `- Total failed: 3
`- action
|- Currently banned: 1
| `- IP list: 192.168.1.1
`- Total banned: 1

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

我们在来看看fail2ban的日志记录

2010-05-17 16:57:23,964 fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.1.1
2010-05-17 21:35:00,449 fail2ban.actions: WARNING [ssh-iptables] Ban 218.108.85.244
2010-05-18 03:56:34,986 fail2ban.actions: WARNING [ssh-iptables] Ban 59.39.66.30

记录了被阻止的IP,成功阻止了ssh 密码猜测

这里只是只介绍了保护SSH和VPSFTP方法,配置文件中还有其他的服务配置,有时间了大家可以自己研究一下。

转载自深度VPS [ http://www.deepvps.com ]



Jgwy.Com - Free Web Hosting Guide & Directory In China since 2001! Jgwy.Net-Jglt.Net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|金光论坛

GMT+8, 2025 年 2 月 3 日 07:45 , Processed in 0.025779 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表