fail2ban 安装使用

Posted on Posted in 安全

[官网](http://www.fail2ban.org/wiki/index.php/Main_Page)

> 安装

  1. yum install python iptables rsyslog -y  
  2. service rsyslog restart  
  3.   
  4. [root@mycentos src]# pwd  
  5. /usr/src  
  6. [root@mycentos src]# tar zxvf fail2ban-0.9.4.tar.gz  
  7. [root@mycentos src]# cd fail2ban-0.9.4  
  8. [root@mycentos fail2ban-0.9.4]# python setup.py install  
  9. [root@mycentos fail2ban-0.9.4]# cp -rf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local  
  10. [root@mycentos fail2ban-0.9.4]# sed -i 's/# \[sshd\]/\[sshd\]/g' /etc/fail2ban/jail.local  
  11. [root@mycentos fail2ban-0.9.4]# sed -i 's/# enabled = true/enabled = true/g' /etc/fail2ban/jail.local  
  12. [root@mycentos fail2ban-0.9.4]# vim /etc/init.d/fail2ban  
  13. PATH=/usr/sbin:/usr/bin:/sbin:/bin  
  14. NAME=fail2ban  
  15.   
  16. # fail2ban-client is not a daemon itself but starts a daemon and  
  17. # loads its with configuration  
  18. DAEMON=/usr/bin/$NAME-client  
  19. SCRIPTNAME=/etc/init.d/$NAME  
  20.   
  21. # Exit if the package is not installed  
  22. [ -x "$DAEMON" ] || exit 0  
  23.   
  24. do_start()  
  25. {  
  26.     # Assure that /var/run/fail2ban exists  
  27.     [ -d /var/run/fail2ban ] || mkdir -p /var/run/fail2ban  
  28.   
  29.     echo -n "Starting fail2ban..."  
  30.     $DAEMON -x start > /dev/null  
  31.     if [ $? -eq 0 ]; then  
  32.         echo " done"  
  33.     else  
  34.         echo " failed"  
  35.     fi  
  36. }  
  37.   
  38. do_status()  
  39. {  
  40.     $DAEMON ping > /dev/null 2>&1  
  41.     if [ $? -eq 0 ]; then  
  42.         echo "fail2ban is running."  
  43.     else  
  44.         echo "fail2ban is stop."  
  45.     fi  
  46. }  
  47.   
  48. do_stop()  
  49. {  
  50.     echo -n "Stopping fail2ban..."  
  51.     $DAEMON stop > /dev/null || return 2  
  52.     if [ $? -eq 0 ]; then  
  53.         echo " done"  
  54.     else  
  55.         echo " failed"  
  56.     fi  
  57. }  
  58.   
  59. do_reload() {  
  60.     echo -n "Reloading fail2ban..."  
  61.     $DAEMON reload > /dev/null  
  62.     if [ $? -eq 0 ]; then  
  63.         echo " done"  
  64.     else  
  65.         echo " failed"  
  66.     fi  
  67. }  
  68.  &
    nbsp;
  69. command="$1"  
  70. case "$command" in  
  71.     start|force-start)  
  72.         do_start "$command"  
  73.         ;;  
  74.   
  75.     stop)  
  76.         do_stop  
  77.         ;;  
  78.   
  79.     restart|force-reload)  
  80.         do_stop  
  81.         do_start  
  82.         ;;  
  83.   
  84.     reload|force-reload)  
  85.         do_reload  
  86.         ;;  
  87.   
  88.     status)  
  89.         do_status  
  90.         ;;  
  91.     *)  
  92.         echo "Usage: $SCRIPTNAME {start|force-start|stop|restart|force-reload|status}" >&2  
  93.         ;;  
  94. esac  
  95. [root@mycentos fail2ban-0.9.4]# chmod +x /etc/init.d/fail2ban  
  96. [root@mycentos fail2ban-0.9.4]# sed -i 's#%(sshd_log)s#/var/log/secure#g' /etc/fail2ban/jail.local  

> jail.local 基本配置

  1. [DEFAULT]  
  2. # 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名  
  3. # 用于指定哪些地址可以忽略 fail2ban 防御  
  4. ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24  
  5. # 客户端主机被禁止的时长(秒)  
  6. bantime = 86400  
  7. # 客户端主机被禁止前允许失败的次数   
  8. maxretry = 5  
  9. # 查找失败次数的时长(秒)  
  10. findtime = 600  
  11. [ssh-iptables]  
  12. enabled = true  
  13. filter = sshd  
  14. action = iptables[name=SSH, port=ssh, protocol=tcp]  
  15. sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]  
  16. # Debian 系的发行版   
  17. logpath = /var/log/auth.log  
  18. # Red Hat 系的发行版  
  19. logpath = /var/log/secure  
  20. # ssh 服务的最大尝试次数   
  21. maxretry = 3  
» 转载请注明来源:若我若鱼 » fail2ban 安装使用

Leave a Reply

Your email address will not be published. Required fields are marked *

nineteen − 7 =