zoukankan      html  css  js  c++  java
  • 【Linux系统】防暴力破解

    在日志文件/var/log/secure 中可以看到涉及到安全方面的日志,可以查看是否有人尝试暴力破解及是否成功,对于肉鸡行为有一定帮助

    思路基本上都是加强密码的复杂度,增加iptables配置黑名单的方法来防止肉鸡

    方法一:

      建议各位用ECS或其他VPS的站长不要将密码长度设置低于12位,同时也要数字、大小写字母、符号,混合组成,保证安全性。

      优点:不需要操作服务器,可以直接在阿里云等VPS网页改,操作方便

      缺点:如果黑客锲而不舍,早晚都能试出来。

    方法二:

      启用防火墙iptables,限制22端口只能由 指定IP 连接,其他都舍弃

    方法三:

      修改默认22端口为1024以上的端口,并启用防火墙,动态添加黑名单

    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set  
    iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP 
    

    上面iptables的语句中第一句是说,对于外来数据,如果是 TCP 协议,目标端口号是 22,网络接口是 eth0,状态是新连接,那么把它加到最近列表中。 第二句是说,对于这样的连接,如果在最近列表中,并且在 60 秒内达到或者超过四次,那么丢弃该数据。其中的-m是模块的意思。 也就是说,如果有人从一个 IP 一分钟内连接尝试四次 ssh 登录的话,那么它就会被加入黑名单,后续连接将会被丢弃。

    iptables -nxvL

    grep fail /var/log/audit/audit.*|cut -d' ' -f11|cut -d'=' -f2|sort |uniq -c|sort -n -k1  -r

    方法四:

    基本思路是设置ssh的登录权限,统计secure中ssh认证失败的ip设置黑名单

    #!/bin/bash
    LIMIT=30     #这边可以自定义限制次数
    LOGFILE="/var/log/block_ssh.log"     #日志路径
    TIME=$(date '+%b %e %H')     #example: Apr 11 11
    BLOCK_IP=$(grep "$TIME" /var/log/secure|grep Failed|awk '{print $(NF-3)}'|sort|uniq -c|awk '$1>"$LIMIT"{print $1":"$2}')     #将1小时内ssh认证失败超过30次的ip抓出来
    for i in $BLOCK_IP
    do
         IP=$(echo $i|awk -F: '{print $2}')
         iptables-save|grep INPUT|grep DROP|grep $IP>/dev/null     #先判断下是否已经被屏蔽
         if [ $? -gt 0 ];then
              iptables -A INPUT -s $IP -p tcp --dport 22 -j DROP     #屏蔽ip
              NOW=$(date '+%Y-%m-%d %H:%M')
              echo -e "$NOW : $IP">>${LOGFILE}
         fi
    done
    

    基本思路是统计出1小时ssh认证失败超过30次的IP,如果没屏蔽过的就将其加入iptables屏蔽。
    这里就不设置白名单了,正常ip在一个小时内不会有那么多的Failed认证。

    给予脚本执行权限:

    chmod 755 /root/block_ssh.sh
    

    最后加入到crontab定时任务,10分钟运行一次:

    echo "*/10 * * * * root /root/block_ssh.sh" >>/etc/crontab
    

    脚本运行一段时间后的日志:

    [root@vps ~]# more /var/log/block_ssh_ip.log
    2012-04-13 02:10 : 210.75.241.20
    2012-04-13 02:10 : 59.60.7.102
    2012-04-13 11:30 : 189.47.32.19
    2012-04-13 13:30 : 184.107.119.213
    2012-04-13 18:30 : 222.122.20.145
    2012-04-14 05:10 : 188.127.226.66
    2012-04-14 09:00 : 69.163.33.98
    2012-04-14 10:10 : 184.106.165.164
    2012-04-14 22:10 : 65.117.150.99
    2012-04-15 06:00 : 124.205.252.158
    

    提高ssh安全性的方法:

    原文转自:http://www.cszhi.com/20120413/block-abuse-ssh-ip.html

    对于在服务器上安装了多个网卡或配置多个IP地址的情况,设定sshd只在其中一个指定的接口地址监听,这样可以减少sshd的入口,降低入侵的可能性。
    ListenAddress 192.168.0.1

    如果允许用户使用root用户登录,那么黑客们可以针对root用户尝试暴力破解密码,给系统安全带来风险。
    PermitRootLogin no

    允许使用空密码系统就像不设防的堡垒,任何安全措施都是一句空话。
    PermitEmptyPasswords no

    只允许指定的某些用户通过ssh访问服务器,将ssh使用权限限定在最小的范围内。
    AllowUsers sshuser1 sshuser2

    同上面的AllowUsers类似,限定指定的用户组通过ssh访问服务器,二者对于限定访问服务器有相同的效果。
    AllowGroups sshgroup

    禁止使用版本1协议,因为其存在设计缺陷,很容易使密码被黑掉。
    Protocol 2

    关闭X11Forwarding,防止会话被劫持。
    X11Forwarding no

    sshd服务运行时每一个连接都要使用一大块可观的内存,这也是ssh存在拒绝服务攻击的原因。一台服务器除非存在许多管理员同时管理服务器,否则上面这 个连接数设置是够用了。
    MaxStartups 5

    注意:以上参数设置仅仅是一个示例,用户具体使用时应根据各自的环境做相应的更改。

    2. 修改sshd服务器的配置文件/etc/ssh/sshd_config的读写权限,对所有非root用户设置只读权限,防止非授权用户修改sshd 服务的安全设置。
    chmod 644 /etc/ssh/sshd_config

    3. 设置TCP Wrappers。服务器默认接受所有的请求连接,这是非常危险的。使用TCP Wrappers可以阻止或允许应用服务仅对某些主机开放,给系统在增加一道安全屏障。这部分设置共涉计到两个文件:hosts.allow和 hosts.deny。

    将那些明确允许的请求添加到/etc/hosts.allow中。如系统仅允许IP地址为192.168.0.15和10.0.0.11的主机使用 sshd服务,则添加如下内容:
    sshd:192.168.0.15 10.0.0.11

    将需要禁止使用的信息添加到/etc/hosts.deny中。如对除了在hosts.allow列表中明确允许使用sshd的用户外,所有其他用户都禁 止使用sshd服务,则添加如下内容到hosts.deny文件中:
    sshd:All

    注意:系统对上述两个文件的判断顺序是先检查hosts.allow文件再查看hosts.deny文件,因此一个用户在hosts.allow允许使用 网络资源,而同时在hosts.deny中禁止使用该网络资源,在这种情况下系统优先选择使用hosts.allow配置,允许用户使用该网络资源。

    4. 尽量关闭一些系统不需要的启动服务。系统默认情况下启动了许多与网络相关的服务,因此相对应的开放了许多端口进行LISTENING(监听)。我们知 道,开放的端口越多,系统从外部被入侵的可能也就越大,所以我们要尽量关闭一些不需要的启动服务,从而尽可能的关闭端口,提供系统的安全性。

    通过以上步骤基本上将sshd服务设置上可能出现的漏洞堵上了,不需要投资,只要我们稍微花点时间调整一下配置,就可极大提高系统的安全环境,何乐而不为呢?

  • 相关阅读:
    (二)springmvc+mybatis+dubbo+zookeeper分布式架构 整合
    (一)springmvc+mybatis+dubbo+zookeeper分布式架构 整合
    微服务架构 SpringCloud(四)Ribbon
    微服务架构 SpringCloud(三)注册中心集群篇
    微服务架构 SpringCloud(二)Eureka(服务注册和服务发现基础篇)
    微服务架构 SpringCloud(一)组件和概念介绍
    企业分布式微服务云SpringCloud SpringBoot mybatis (十四)服务注册(consul)
    20 TextView显示阴影
    19 shape
    18 手动发广播扫描sd卡
  • 原文地址:https://www.cnblogs.com/yingsong/p/6023804.html
Copyright © 2011-2022 走看看