应对ssh端口扫描,将超过指定次数的ip自动加入黑名单

· Read in about 1 min · (158 Words)

做好服务器安全防护刻不容缓。

last update: 2015-12-08

最近一些QQ群里老有想收购“shell”的人想加进来,说白了就是买被黑掉的服务器的权限。想到之前的斯诺登事件等安全事件,我今天特意看检查了服务器的ssh日志,让人大吃一惊:短短三天就有1400多次失败的ssh登录尝试。

从网上搜索结果来看,应对措施有:

当然,这只是服务器安全的一部分,想成为一名合格的运维人员,还有很多功课要补~

不想成为肉鸡,就好好照顾下自己的服务器吧。安装rootkit hunter来检测自己是否被肉鸡了

fetch_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

auto_add_badips_to_hosts.deny

#!/bin/sh
cat /var/log/secure | grep "Failed password" | awk '{ print $(NF-3)}' | sort -n | uniq -c | awk '{ print $2"="$1}' > /tmp/bad_ips.txt
ipaddr=(`cat /tmp/bad_ips.txt`)
for i in ${ipaddr[*]}; do       
  IP=`echo $i |awk -F= '{print $1}'`       
  NUM=`echo $i|awk -F= '{print $2}'`         
  if [ $NUM -gt 3  ]; then              
    grep $IP /etc/hosts.deny > /dev/null               
    # echo "$?\n"
    if [ $? -gt 0  ]; then                      
      # echo "sshd:$IP\n"
      echo "sshd: $IP" >> /etc/hosts.deny                
    fi       
  fi
done