zoukankan      html  css  js  c++  java
  • sshd服务防止暴力破解

    sshd防止暴力破解几种方式:

    1.密码足够复杂

    2.修改默认端口号

    3.不适用root用户名登录。

    1 #是否可以禁止root身份登录?不行,因为有些程序需要使用root什么登录,另外判断一个用户是不是超级管理员,看的是用户的id是否为0
    2 # 例如
    3 [root@localhost ~]# useradd steven        //创建一个普通用户    
    4 [root@localhost ~]# passwd steven          //给用户一个密码
    5 [root@localhost ~]# vi /etc/passwd         // 修改用户权限
    6 root:x:0:0:root:/root:/sbin/nologin          //禁止用root名登录
    7 //没改之前  root:x:0:0:root:/root:/bin/bash     
    8 steven:x:0:0::/home/steven:/bin/bash     //
    9 //没改之前 steven:x:500:500::/home/steven:/bin/bash

    3.暴力破解情况比较严重时,需要把暴力破解的ip给直接封掉。

    3.1安装fail2ban

    命令lastb 查看登陆失败的用户

    1 [root@localhost log]# lastb
    2 steven   ssh:notty    10.0.5.172       Sat Nov  3 08:18 - 08:18  (00:00)
    3 steven   ssh:notty    10.0.5.172       Sat Nov  3 02:36 - 02:36  (00:00)
    4 steven   ssh:notty    10.0.5.172       Fri Nov  2 23:52 - 23:52  (00:00)
    5 steven   ssh:notty    10.0.5.172       Fri Nov  2 23:52 - 23:52  (00:00)
    6 steven   ssh:notty    10.0.5.172       Fri Nov  2 23:51 - 23:51  (00:00)

    ll -h /var/log/   btmp登录失败的用户信息日志  secure登录成功的用户信息日志

    暴力破解就算不成功也会导致服务器负载很高,因为暴力破解的时候,系统会不断的认证用户,从而增加了系统资源的额外开销,导致公司网站速度变慢。

    fail2ban可以监视你的系统日志,然后匹配日志的错误信息,执行相应的屏蔽动作,一般是防火墙,而且可以发送e-mail通知系统管理员。

    fail2ban的工作原理就是通过分析一定时间内的相关服务日至,将满足动作的有关ip利用iptables加入到drop列表。

    1 下载软件包:
    2 官方地址:http://www.fail2ban.org
    3 建议选择stable稳定版的
    4 tar -zxvf 0.9.4.tar.gz  //解压5 cd fail2ban-0.9.4/     6 python setup.py install   //此处如果没有安装Python的请先安装python,因为使用Python写的软件

    3.2生成服务启动脚本

    1 [root@localhost fail2ban-0.9.4]# cp files/redhat-initd /etc/init.d/fail2ban   //copy redhat-initd文件夹到init.d文件夹下
    2 [root@localhost fail2ban-0.9.4]# chkconfig --add fail2ban    //可以看一下/etc/inin.d/fail2ban的代码

    3.3怎么找到脚本文件的

    1 [root@localhost fail2ban-0.9.4]# grep chkconfig ./* -R --color   //通过过滤  chkconfig 
    2 ./files/redhat-initd:# chkconfig: - 92 08  

    3.4 配置文件说明

    /etc/fail2ban/action.d    #动作文件夹,内含默认文件,iptables以及mail等动作。

    /etc/fail2ban/fail2ban.conf    # 定义了fail2ban日志级别,日志位置以及sock文件位置

    /etc/fail2ban/filter.d  # 条件文件夹,内含默认文件,过滤日志等关键内容

    /etc/fail2ban/jail.conf  # 只要配置文件,模块化。主要设置启用ban动作的服务及动作阀

    /etc/rc.d/init.d/fail2ban  #启动脚本文件

    3.5 实力应用

    设置条件:ssh远程登录5分钟内3次密码验证失败,禁止ip用户访问主机1小时,1小时候自动解除,用户可以重新登录。

     3.5.1 修改jail.conf

     1  [root@localhost fail2ban]# vi jail.conf
     2  [DEFAULT]   全局设置
     3  //ifnoreip=127.0.0.1/8  忽略的ip列表,不受限制的ip
     4  //bantime = 600  屏蔽时间s
     5  //findtime = 600  这个时间内超过规定时间会被ban掉
     6  //maxretry = 3 规定时间内重试次数
     7  //backend = auto  自动恢复
     8   
     9  [ssh-iptables]#单个服务检查设置,如设置bantime、findtime等和全局设置冲突,则优先级要大于全局
    10  enabled = false  是否启用此服务,改成true
    11  filter = sshd   过滤规则filter的名字,对应filt.d目录下的sshd.conf
    12  action = iptables[name=SSH,port=ssh,protocol=tcp] 动作参数
    13  sender=fail2ban@example.com,sendername='Fai2Ban'] #触发报警的收件人
    14  bantime = 600     # 改成要屏蔽的时间36000
    15  findtime = 500
    16  maxretry = 5
    17  logpath = /var/log/secure  

    3.5.2 启动服务测试

    1 [root@localhost fail2ban]# > /var/log/secure    //清空日志
    2 [root@localhost fail2ban]# service fail2ban start   //或者/etc/init.d/fail2ban start
    3 启动fail2ban:                                              [确定]  //启动成功  

     3.53 测试 故意输错三次

     3.54 查看状态 

    1 [root@localhost ~]# fail2ban-client status
    2 Status
    3 |- Number of jail:    1
    4 `- Jail list:    ssh-iptables
     1 //查看详细状态
     2 Status for the jail: ssh-iptables
     3 |- Filter
     4 |  |- Currently failed:    1
     5 |  |- Total failed:    5
     6 |  `- File list:    /var/log/secure
     7 `- Actions
     8    |- Currently banned:    0
     9    |- Total banned:    3  
    10    `- Banned IP list:
  • 相关阅读:
    005本周总结报告
    《大道至简》读后感
    004本周总结报告
    003本周总结报告
    002本周总结报告
    001本周总结报告
    【财经】股市是不是零和博弈?
    【Spring】使用Spring的AbstractRoutingDataSource实现多数据源切换
    【Java每日一题】20170217
    【Java每日一题】20170216
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/8849485.html
Copyright © 2011-2022 走看看