怎么对抗ssh探测问题

68次阅读
没有评论

共计 2243 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章给大家分享的是有关怎么对抗 ssh 探测问题的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

通过日志,我们时常看到有人想要拆解我们的 ssh 登录密码。我们现在要做的就是屏蔽这样子的 ***。

首先,限制 ssh 的登录回话:
man 5 sshd_config,可以看到如下的配置:
    * LoginGraceTime 120
      如果用户在规定的时间之内没有正确的登录,则断开。如果为 0,则不限制;默认 120 秒

MaxStartups 10
设置同时发生的未验证的并发量,即同时可以有几个登录连接,默认为 10
      也可以使用 start:rate:full 这样子的配置,例如:15:30:60,如果当前的登录连接数为 15 个,则 30% 被抛弃;如果达到了 60 个,则全部抛弃

然后,使用防火墙,限制多次失败或者无效的 ssh 登录。
其原理很简单,通过检查 auth.log,如果一个 ip 登录失败达到或者超过 5 次,我们就认为是捣乱的。
先检查 /etc/syslog.conf,看看是否存在:
auth.*                             /var/log/auth.log
没有就加上,我们需要记录登录的日志来进行判断。

随后,我们就使用防火墙来做我们想要做得事情了。

IPFW:

 

[Copy to clipboard]
 
 

CODE:

#!/bin/sh
 
if ipfw show | awk {print $1} | grep -q 20000 ; then
 
     ipfw delete 20000
 
fi
 
for ips in `cat /var/log/auth.log | grep sshd | grep Illegal | awk {print $10} | uniq -d` ; do
 
     ipfw -q add 20000 deny tcp from $ips to any
 
done
 
cat /var/log/auth.log | grep sshd | grep Failed | rev | cut -d\ -f 4 | rev | sort | uniq -c | \
 
(while read num ips; do
 
    if [$num -gt 5]; then
 
       if ! ipfw show | grep -q $ips ; then
 
            ipfw -q add 20000 deny tcp from $ips to any
 
     fi
 
    fi
 
 done
 
)

IPF:

 

[Copy to clipboard]
 
 

CODE:

#!/bin/sh
 
IFS=
 

 
for rules in `ipfstat -i | grep group 20000 ` ; do
 
      echo $rules | ipf -r -f –
 
done
 
for ips in `cat /var/log/auth.log | grep sshd | grep Illegal | awk {print $10} | uniq -d` ; do
 
      echo block in quick from $ips to any group 20000 | ipf -f –
 
done
 
cat /var/log/auth.log | grep sshd | grep Failed | rev | cut -d\ -f 4 | rev | sort | uniq -c | \
 
(while read num ips; do
 
   if [$num -gt 5]; then
 
     if ! ipfstat -i | grep $ips ; then
 
           echo block in quick from $ips to any group 20000 | ipf -f –
 
      fi
 
    fi
 
done
 
)

PF:

 

[Copy to clipboard]
 
 

CODE:

#!/bin/sh
 
pfctl -t ssh-violations -T flush
 
for ips in `cat /var/log/authlog | grep sshd | grep Illegal | awk {print $10} | uniq -d` ; do
 
      pfctl -t ssh-violations -T add $ips
 
done
 
cat /var/log/authlog | grep sshd | grep Failed | rev | cut -d\ -f 4 | rev | sort | uniq -c | \
 
(while read num ips; do
 
    if [$num -gt 5]; then
 
       if ! pfctl -s rules | grep -q $ips ; then
 
            pfctl -t ssh-violations -T add $ips
 
     fi
 
    fi
 
 done
 
)

PF 还需要如下设置:
/etc/pf.conf

 

[Copy to clipboard]
 
 

CODE:

table ssh-violations persist file /etc/ssh-violations
 

 
block drop in from ssh-violations to any

然后设置 crontab:

 

[Copy to clipboard]
 
 

CODE:

*/1    *      *      *      *      root    /operator/sshd-fwscan.sh

好了,现在可以自己测试一下子。
注意,测试不要把自己搞定了啊,呵呵!

注意 IPFW 和 IPF 之中的 2000,根据你自己的实际情况设定规则号或者组号。

把 SSH 的端口改了, 然后装上 portsentry, 把 22 端口打开, 只要他一扫描你的 22 端口立马让他进黑名单!

感谢各位的阅读!关于“怎么对抗 ssh 探测问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计2243字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)