对抗ssh探测或攻击[转]
2009-03-21 20:54
225 查看
对抗ssh探测或攻击 以下翻译多自己针对中文习惯组织内容,并非与原版一一对应。
限制多次失败或者无效的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 -
fi
fi
done
)
PF:
CODE:[Copy to clipboard]#!/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
CODE:[Copy to clipboard]table <ssh-violations> persist file "/etc/ssh-violations"
...
block drop in from <ssh-violations> to any
然后设置crontab:
CODE:[Copy to clipboard]*/1 * * * * root /operator/sshd-fwscan.sh
好了,现在可以自己测试一下子。
注意,测试不要把自己搞定了啊,呵呵!
原文地址:http://www.freebsdwiki.net/index.php/Block_repeated_illegal_or_failed_SSH_logins
原文版权声明:
# Copyright (c) 2004,2005 RPTN.Net,
# Copyright (c) 2005 DaveG.ca,
# Copyright (c) 2006 Bob (kba at ats32.ru)
# You may use this code under the GPL, version 2 or newer.
# Updates for IPF by Sasha.by
原文地址
限制多次失败或者无效的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 -
fi
fi
done
)
PF:
CODE:[Copy to clipboard]#!/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
CODE:[Copy to clipboard]table <ssh-violations> persist file "/etc/ssh-violations"
...
block drop in from <ssh-violations> to any
然后设置crontab:
CODE:[Copy to clipboard]*/1 * * * * root /operator/sshd-fwscan.sh
好了,现在可以自己测试一下子。
注意,测试不要把自己搞定了啊,呵呵!
原文地址:http://www.freebsdwiki.net/index.php/Block_repeated_illegal_or_failed_SSH_logins
原文版权声明:
# Copyright (c) 2004,2005 RPTN.Net,
# Copyright (c) 2005 DaveG.ca,
# Copyright (c) 2006 Bob (kba at ats32.ru)
# You may use this code under the GPL, version 2 or newer.
# Updates for IPF by Sasha.by
原文地址
相关文章推荐
- 如何对抗ssh探测或攻击
- 如何对抗ssh探测或攻击
- ssh 暴力攻击 <-- 从中韩渔民海警对抗到网络对抗
- CMU提出对抗生成网络:可实现对人脸识别模型的神经网络攻击
- 如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击
- 用 iptables 对抗 CC 攻击
- 【服务器防护】WEB防护 - WEBSHELL攻击探测【转载】
- VPS 防止 SSH 暴力登录尝试攻击
- 如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击
- 如何对抗、预防 SQL注入 攻击
- Erlang版TCP服务器对抗攻击解决方案
- 德国图宾根大学发布可扩展「对抗黑盒攻击」,仅通过观察决策即可愚弄深度神经网络
- pam_abl 防暴力SSH攻击Linux PAM模块
- 对抗攻击最新研究:仅修改「一个像素」即可骗过神经网络!
- ssh认证的流程与攻击防范
- 一次基于ssh的sftp服务器被攻击实记
- 如何使用 fail2ban 防御 SSH 服务器的暴力破解攻击
- 【趣事】用 JavaScript 对抗 DDOS 攻击
- T-Pot平台Honeytrap蜜罐TCP/UDP服务攻击探测及实现自动化邮件告警
- Linux下检测SSH暴力破解攻击与防护功能