使用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.www58058.com/690

(0)
追馬追馬
上一篇 2015-03-04 13:30
下一篇 2015-03-04 17:36

相關推薦

  • 如何在微軟云上搭建mysql主從

    大家好: 今天我分享下在生產環境的微軟云服務器上如何搭建mysql主從: 環境如下圖: 我把cnux06-testing設為Mysql主服務器,暫時沒需求的cnux04-web1db2設為Mysql從服務器 1–首先要在master上開啟binlog日志功能并使主從庫中的 server-id保持不同 操作步驟如下: A: 先查看mysql的主目錄…

    Linux干貨 2017-02-14
  • linux再次入門

               時隔一年,重新拾起Linux,從頭開始再學一遍            現在來總結一下曾經可能聽說過但是我以前絕對不會的命令(尷尬臉) 克隆窗口:右鍵單擊點克隆窗口(真是…

    2017-07-15
  • 設計模式 ( 十四 ) 迭代器模式Iterator(對象行為型)

    1.概述 類中的面向對象編程封裝應用邏輯。類,就是實例化的對象,每個單獨的對象都有一個特定的身份和狀態。單獨的對象是一種組織代碼的有用方法,但通常你會處理一組對象或者集合。 集合不一定是均一的。圖形用戶界面框架中的 Window 對象可以收集任意數量的控制對象 - Menu、Slider 和 Button。并且,集合的實現可以有多種方式:PHP 數字是一個集…

    Linux干貨 2015-07-19
  • shell腳本的一點補充

    腳本內容補充 數組 變量:存儲單個元素的內存空間數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。 數組名和索引 索引:編號從0開始,屬于數值索引注意:索引可支持使用自定義的格式,而不僅是數值格式,即為關聯索引,bash4.0版本之后開始支持。bash的數組支持稀疏格式(索引不連續) 數組的使用 聲明數組: declare -a ARRAY_NAME…

    Linux干貨 2016-08-24
  • OpenSSL

    OpenSSL由三部分組成:             libencrypto庫             libssl庫 …

    Linux干貨 2017-05-30
  • 計算機和操作系統的一些概念

    一、計算機組成     (一) 硬件         CPU:運算器、控制器、寄存器、緩存器         存儲器:主內存,RAM(Random Access…

    Linux干貨 2016-08-15
欧美性久久久久