对抗ssh探测或攻击

2009-05-13 11:44:43来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


以下翻译多自己针对中文习惯组织内容,并非与原版一一对应。
  限制多次失败或者无效的ssh登录
  介绍:
  通过日志,我们时常看到有人想要拆解我们的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:
CODE:[Copy to clipboard]#!/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:
CODE:[Copy to clipboard]#!/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 -

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:VPN设备日志syslog到BSD服务器

下一篇:BSD系列如何切换虚拟控制台