使用fail2ban防止暴力破解ssh及vsftpd密码

此文介绍一个linux下通过监控日志防止密码被暴力破解的软件-fail2ban。fail2ban支持常用的服务,如sshd, apache, qmail, proftpd, sasl, asterisk等的密码验证保护,当发现暴力破解的迹像时,可以通过iptables, tcp-wrapper, shorewall等方式阻止此IP的访问。

python安装

安装fail2ban需要Python >= 2.4,可以直接执行python查询版本号,但fail2ban 2.4有一个bug,所以还是推荐安装2.5以上的python
python安装方法:

  1. cd /tmp
  2. wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
  3. tar xzf Python-2.7.3.tgz
  4. cd Python-2.7.3
  5. ./configure
  6. make && make install
  7. rm -rf /usr/bin/python
  8. ln -s /tmp/Python-2.7.3/python /usr/bin/

fail2ban安装

  1. cd /tmp
  2. wget https://github.com/downloads/fail2ban/fail2ban/fail2ban_0.8.6.orig.tar.gz
  3. tar xzf fail2ban_0.8.6.orig.tar.gz
  4. cd fail2ban-fail2ban-a20d1f8/
  5. ./setup.py install
  6. cp files/redhat-initd  /etc/init.d/fail2ban
  7. chmod 755 /etc/init.d/fail2ban

配置fail2ban日志轮循:

  1. vi /etc/logrotate.d/fail2ban

写入:

  1. /var/log/fail2ban.log {
  2.     weekly
  3.     rotate 7
  4.     missingok
  5.     compress
  6.     postrotate
  7.       /etc/init.d/fail2ban restart 1>/dev/null || true
  8.     endscript
  9. }

fail2ban使用方法

配置文件:

  1. /etc/fail2ban/
  2. ├── action.d
  3. │   ├── dummy.conf
  4. │   ├── hostsdeny.conf
  5. │   ├── iptables.conf
  6. │   ├── mail-whois.conf
  7. │   ├── mail.conf
  8. │   └── shorewall.conf
  9. ├── fail2ban.conf
  10. ├── fail2ban.local
  11. ├── filter.d
  12. │   ├── apache-auth.conf
  13. │   ├── apache-noscript.conf
  14. │   ├── couriersmtp.conf
  15. │   ├── postfix.conf
  16. │   ├── proftpd.conf
  17. │   ├── qmail.conf
  18. │   ├── sasl.conf
  19. │   ├── sshd.conf
  20. │   └── vsftpd.conf
  21. ├── jail.conf
  22. └── jail.local

目录action.d下的文件指定满足条件时执行的一些动作,比如使用iptables禁止ip访问。
目录filter.d下的文件定义匹配日志的正则表达式。
fail2ban.conf文件是配置fail2ban-server程序启动的一些参数
jail.conf文件包含filter及action的指定。
每个conf文件可被local文件覆盖,conf文件第一个被读取,接着是读取local文件,所以local文件中定义的参数会覆盖conf中的参数。所以我们不需要添加所有的内容到local文件,只需要添加conf文件中你想覆盖的部分参数就好。

防ssh及vsftpd暴力破解实例

建立/etc/fail2ban/jail.local文件,在文件中加入:

  1. [vsftpd-iptables]
  2. enabled = true
  3. filter = vsftpd
  4. action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
  5. sendmail-whois[name=VSFTPD, dest=you@mail.com]
  6. logpath = /var/log/secure
  7. maxretry = 3
  8. [ssh-iptables]
  9. enabled  = true
  10. filter   = sshd
  11. action   = iptables[name=SSH, port=ssh, protocol=tcp]
  12.            sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com]
  13. logpath  = /var/log/secure.log
  14. maxretry = 5

enabled:可选值false,true
filter:指定/etc/fail2ban/filter.d/目录下的正则文件,如filter = sshd则是指定/etc/fail2ban/filter.d/sshd.conf。
action:指定执行的动作,具体动作文件在/etc/fail2ban/action.d目录下。
logpath:指定监控日志的路径。
maxretry:执行action匹配的次数。
接着执行:

  1. service iptables start
  2. service fail2ban start

问题解决

1、WARNING: Unable to find a corresponding IP address for xxx
http://www.centos.bz/2012/05/warning-unable-to-find-a-corresponding-ip-address-for/
参考:http://www.fail2ban.org/wiki/index.php/MANUAL_0_8

文章链接:https://www.centos.bz/2012/04/prevent-ssh-break-in-with-fail2ban/

原创文章,作者:追马,如若转载,请注明出处:http://www.178linux.com/690

(0)
追马追马
上一篇 2015-03-04
下一篇 2015-03-04

相关推荐

  • Linux文件夹作用

    适用对象:本文适用于初学Linux以及有志于学习Linux的朋友们。   Linux文件系统形状类似于倒置的树状结构,所有的文件或文件夹都可以被认为是根目录/的子目录。 在Linux系统安装完成之后,系统会自动在/目录下创建一些文件,而这些文件都有自己特殊的作用。本文就/下的目录做个简单的介绍。 /bin:存放所有用户使用的二进制可执行命令 /bo…

    Linux干货 2016-10-19
  • 优云软件老司机:如何让运维操作更轻松、高效

    讲师介绍 庞辉富 •广通软件技术总监 •拥有10多年IT运维管理软件研发经验 •致力于自动化运维解决方案的研究和推广 •主导研发的产品广泛应用于海关、公安、能源等多个行业 技术发展给运维带来的挑战 当前的IT建设在这些新技术的演进下,我们看到的是呈现“双态IT”特征。Gartner也提出双模IT理论,与现在谈的双态IT是异曲同工的,不再是一种单纯的形态,而是…

    系统运维 2017-01-09
  • 萝卜运维记-第二周

    part2–针对文件命令的介绍,使用,演示 Ⅰ Linux文件管理类命令常用方法 Ⅱ bash的工作特性,相关示例 Ⅲ 文件的元数据有哪些,以及所代表的含义。 Ⅳ 相关命令的操作,和结果演示。 ①Linux文件管理命令常用方法 Linux常见文件类型 -:常规文件;即f; d: directory…

    Linux干货 2016-12-12
  • 第三周作业

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2.取出最后登录到当前系统的用户的相关信息。 […

    Linux干货 2017-01-04
  • 2017-10-4Linux基础知识(3)

    在上一章中讲到了操作系统的历史的发展以及Linux的如何诞生,在1991年的8月份,创始人Linus宣布成立Linux的,Larry Wall开发diff和patch打补丁的命令程序使得Linux可以在安全性方面有很大的提升。

    Linux干货 2017-10-05
  • keepalived+nginx-upstream部署高可用反向代理

    keepalived+nginx-upstream部署高可用反向代理 实验拓扑 实验要求 两个web server提供httpd服务,ip地址分别是172.18.27.201、202,掩码是16 两个nginx proxy提供高可用反向代理,ip地址分别是172.18.27.102、200,掩码是16. client能够访问web server,使用dr模型…

    2017-05-15