起因

上周用net-speeder给vps加速以后,这几天每天都看看使用流量,今天上午一看吓一跳,昨晚用了四个多G,
而且是我睡觉的时候。莫非是被人盯上了?
登录上去查看一下secure日志,发现好多尝试访问ssh的记录。不由一头冷汗。
当然就网络攻击这一块,我从初二以后就没服过谁(开玩笑的,我都快吓尿了)。

解决步骤

机智的我当然没有慌乱,上网整理了一下资料,然后开始加固安全防范.
以下步骤全部基于CentOS 6.5

更换ssh端口号

我这次遇到的攻击是企图暴力破解root密码,更换个端口号会增大很多难度。
修改/etc/ssh/sshd_config,搜索Port 22,随便成一个你喜欢的数字。。
然后重启ssh,service sshd restart

注意:/etc/ssh下有一个ssh_config的文件,注意是修改sshd_config,不是ssd_config

创建新用户,屏蔽root用户登录

1
2
3
4
5
6
# 创建用户
useradd 用户名
# 修改密码
passwd 用户名
# 加权限
usermod -g root 用户名

修改/etc/ssh/sshd_config,搜索PermitRootLogin yes,改成PermitRootLogin no.
重启sshd服务
然后以后用新建的用户登录。

黑名单

定时扫描/var/log/secure日志,发现有多次尝试用户名密码登录的ip,加入hosts.deny
扫描日志脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
# 定义攻击次数,2次密码输错就视为攻击
DEFINE="2"
for i in `cat ./black.txt`
do
IP=`echo ${i}|awk -F= '{print $1}'`
NUM=`echo ${i}|awk -F= '{print $2}'`
if [ ${NUM} -gt ${DEFINE} ];then
sed -i '/'${IP}'/d' /etc/hosts.deny
if [ $? > 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done

暂时命名为scan_attack.sh,加权限。
定时设置如下(每分钟扫描一次):

1
2
crontab -e
* * * * * /to/path/scan_attack.sh

至此本次防御工作就全部结束了。当然也可以配置白名单,但是每次到新环境上网都要改觉得比较麻烦。

Comments

Jun 30 2017

⬆︎TOP