美文网首页
Centos下防止ssh暴力破解

Centos下防止ssh暴力破解

作者: 桐间纱路 | 来源:发表于2018-10-25 12:21 被阅读0次

    首先修改ssh的连接端口,增加破解难度

    vi /etc/ssh/sshd_config
    

    找到Port 22这一行,发现已经被注释了,将注释解开,并添加一行Port 2333,保存退出,重启ssh

    systemctl restart sshd.service
    

    然后尝试用2333端口进行连接,如果连接不上,可以添加防火墙规则:

    iptables -A INPUT -p tcp --dport 2333 -j ACCEPT
    service iptables save
    

    连接成功之后,再打开sshd_config

    vi /etc/ssh/sshd_config
    

    找到Port 22,删除该行,重启ssh

    systemctl restart sshd.service
    

    至此,ssh连接端口已改为2333。

    方法一

    收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面。
    先把始终允许的IP填入 /etc/hosts.allow这很重要!比如:
    sshd:19.16.18.1:allow
    sshd:19.16.18.2:allow

    vi /usr/local/bin/secure_ssh.sh
    

    创建脚本

    #! /bin/bash
    cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
    for i in `cat  /usr/local/bin/black.list`
    do
      IP=`echo $i |awk -F= '{print $1}'`
      NUM=`echo $i|awk -F= '{print $2}'`
      if [ ${#NUM} -gt 1 ]; then
        grep $IP /etc/hosts.deny > /dev/null
        if [ $? -gt 0 ];then
          echo "sshd:$IP:deny" >> /etc/hosts.deny
        fi
      fi
    done
    

    通过crontab来执行,每个整点1分执行一次。

    crontab -e
    1 * * * *  sh /usr/local/bin/secure_ssh.sh
    

    方法二

    DenyHosts官方网站为:http://denyhosts.sourceforge.net

    1. 安装
    tar -zxvf DenyHosts-2.6.tar.gz 
    cd DenyHosts-2.6 
    python setup.py install
    

    默认是安装到/usr/share/denyhosts目录的。

    1. 配置
    cd /usr/share/denyhosts/ 
    cp denyhosts.cfg-dist denyhosts.cfg 
    vi denyhosts.cfg 
    
    PURGE_DENY = 50m #过多久后清除已阻止IP 
    HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny 
    BLOCK_SERVICE = sshd #阻止服务名 
    DENY_THRESHOLD_INVALID = 1 #允许无效用户登录失败的次数 
    DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数 
    DENY_THRESHOLD_ROOT = 5 #允许root登录失败的次数 
    WORK_DIR = /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中 
    DENY_THRESHOLD_RESTRICTED = 1 #设定 deny host 写入到该资料夹 
    LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。 
    HOSTNAME_LOOKUP=NO #是否做域名反解 
    ADMIN_EMAIL = #设置管理员邮件地址 
    DAEMON_LOG = /var/log/denyhosts #自己的日志文件 
    DAEMON_PURGE = 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
    
    1. 设置启动脚本
    cp daemon-control-dist daemon-control 
    chown root daemon-control 
    chmod 700 daemon-control
    ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts 
    chkconfig --add denyhosts 
    chkconfig denyhosts on
    service denyhosts start 
    

    相关文章

      网友评论

          本文标题:Centos下防止ssh暴力破解

          本文链接:https://www.haomeiwen.com/subject/mvvqtqtx.html