本文来源:http://neucert.neu.edu.cn/archives/174
不少Linux或Unix管理员都会发现自己系统每时每刻都在被大量的主机试探密码,并试图控制该主机。目前大部分用户都是通过防火墙封锁 TCP/22端口,有部分管理员习惯把SSH监听端口改成2222等一些非默认端口,也可以在一定程度上防止密码试探。同样在互联网上也有一些稍微智能一 些的方法,如:巧用Recent模块加固Linux安全、通过iptables的recent模块保护某些私有服务,但是对于一些非Linux主机或不支持recent模块的主机,这个方法就无效了。
经过努力,东北大学网络应急响应组通过部署相应的SSH攻击采集程序,收集了部分发起SSH攻击的主机IP地址,连接地址为:http://antivirus.neu.edu.cn/ssh/lists/neu.txt,列表每5分钟更新一次,同时本站还同步sshbl.org的黑名单数据,详见:http://antivirus.neu.edu.cn/ssh/lists/目录下的base.txt等。我们将本站收集的IP地址列表与sshbl.org提供的列表进行合并,生成新的hosts.deny列表,链接地址:http://antivirus.neu.edu.cn/ssh/lists/neu_sshbl_hosts.deny,Linux或Unix管理员可以通过更新hosts.deny文件来防止主机被攻击。
同时我们还提供一个自动更新脚本:
#!/bin/sh
# Fetch NEU SSH Black list to /etc/hosts.deny
#
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
URL=http://antivirus.neu.edu.cn/ssh/lists/neu_sshbl_hosts.deny.gz
HOSTSDENY=/etc/hosts.deny
TMP_DIR=/dev/shm
FILE=hosts.deny
cd $TMP_DIR
curl $URL 2> /dev/null | gzip -dc > $FILE
LINES=`grep "^sshd:" $FILE | wc -l`
if [ $LINES -gt 10 ]
then
sed -i '/^####SSH BlackList START####/,/^####SSH BlackList END####/d' $HOSTSDENY
echo "####SSH BlackList START####" >> $HOSTSDENY
cat $FILE >> $HOSTSDENY
echo "####SSH BlackList END####" >> $HOSTSDENY
fi
脚本定期运行即可,对于不会安装配置denyhosts的新手来说也能在一定程序上抵挡部分恶意扫描。
不少Linux或Unix管理员都会发现自己系统每时每刻都在被大量的主机试探密码,并试图控制该主机。目前大部分用户都是通过防火墙封锁 TCP/22端口,有部分管理员习惯把SSH监听端口改成2222等一些非默认端口,也可以在一定程度上防止密码试探。同样在互联网上也有一些稍微智能一 些的方法,如:巧用Recent模块加固Linux安全、通过iptables的recent模块保护某些私有服务,但是对于一些非Linux主机或不支持recent模块的主机,这个方法就无效了。
经过努力,东北大学网络应急响应组通过部署相应的SSH攻击采集程序,收集了部分发起SSH攻击的主机IP地址,连接地址为:http://antivirus.neu.edu.cn/ssh/lists/neu.txt,列表每5分钟更新一次,同时本站还同步sshbl.org的黑名单数据,详见:http://antivirus.neu.edu.cn/ssh/lists/目录下的base.txt等。我们将本站收集的IP地址列表与sshbl.org提供的列表进行合并,生成新的hosts.deny列表,链接地址:http://antivirus.neu.edu.cn/ssh/lists/neu_sshbl_hosts.deny,Linux或Unix管理员可以通过更新hosts.deny文件来防止主机被攻击。
同时我们还提供一个自动更新脚本:
#!/bin/sh
# Fetch NEU SSH Black list to /etc/hosts.deny
#
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
URL=http://antivirus.neu.edu.cn/ssh/lists/neu_sshbl_hosts.deny.gz
HOSTSDENY=/etc/hosts.deny
TMP_DIR=/dev/shm
FILE=hosts.deny
cd $TMP_DIR
curl $URL 2> /dev/null | gzip -dc > $FILE
LINES=`grep "^sshd:" $FILE | wc -l`
if [ $LINES -gt 10 ]
then
sed -i '/^####SSH BlackList START####/,/^####SSH BlackList END####/d' $HOSTSDENY
echo "####SSH BlackList START####" >> $HOSTSDENY
cat $FILE >> $HOSTSDENY
echo "####SSH BlackList END####" >> $HOSTSDENY
fi
脚本定期运行即可,对于不会安装配置denyhosts的新手来说也能在一定程序上抵挡部分恶意扫描。