首先,需要说明的是,我的VPS已经是使用的RSA密钥登录,所以ssh密码枚举已经是基本上没有用的而且端口也不是22,不过呢,上个月(7月21日)把ssh登录日志打开了,这才一个月(今天8月20日)查看了一下日志
ls -al /var/log/auth.log
-rw-r--r-- 1 root root 44918619 Aug 19 21:39 /var/log/auth.log
已经42M了,看来里面确有文章,查看一下咯(因为我是Debain所以一下代码适用与Debain和Ubuntu这一系列)
cat /var/log/auth.log|grep bad |grep -o from[^:]*|awk '/from/{print $(NF)}'|sort|uniq -c|awk '{print $2"="$1;}'
结果如下(截取部分):
106.187.51.28=219
112.91.181.202=101
115.238.73.16=491
125.64.92.34=177
1.62.100.3=502
167.206.9.9=8680
177.1.83.107=213
185.5.53.59=482
186.42.174.226=482
188.132.242.105=663
198.58.115.224=145
200.195.35.214=429
200.41.168.2=482
202.66.35.173=313
211.109.1.10=452
213.235.231.120=396
216.58.30.211=482
219.239.26.4=108
223.194.70.135=312
58.16.127.30=5240
61.139.54.71=143
62.133.128.47=115
64.34.173.120=482
69.85.204.90=482
71.126.160.28=133
72.51.35.20=1914
74.118.194.220=141
77.92.132.184=350
86.51.151.162=369
最狠的是这哥们儿:167.206.9.9=8680试探了8690次,搞毛啊,我一小博客,你至于么,查了一下:http://whatismyipaddress.com/ip/167.206.9.9还有HostName难不成是一网站,不过http方式无法访问,墙内外都无发访问,估计是肉鸡,然后被发现了,原来的拥有者也没有怎么管它了。不侃了,进入正题,降低VPS因为SSH被黑的风险可以这样做:
1.改变ssh的端口,22端口简直太招风了
2.启用RSA密钥,比密码安全
3.安装DenyHosts
一、改变端口
vi /etc/ssh/sshd_config
在Port 22 的下面一行再起一行写 Port XXXX (此处XXXX可以自己想一个,看着办吧,不过尽量选高端口避免和别的端口冲突。)
然后重启sshd服务
/etc/init.d/ssh restart
并在自己的电脑上新开一个终端测试XXXX端口能否登录
ssh -p XXXX root@hostname
如果能够登录就
vi /etc/ssh/sshd_config
然后把Port 22前面打上#注掉吧
然后
/etc/init.d/ssh restart
二、使用RSA密钥登录
首先生成密钥
ssh-keygen -t rsa
这时候在~/.ssh/ 目录下会生成id_rsa.pub和id_rsa
然后上传id_rsa.pub到VPS上面去
scp ~/.ssh/id_rsa.pub -p XXXX root@hostname:~/.ssh/id_rsa.pub
vi /etc/ssh/sshd_config
注意这些
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
然后
/etc/init.d/ssh restart
另起终端再次登录,诶,没有让输入密码直接登录了对吧
为了安全把密码登录封掉
vi /etc/ssh/sshd_config
PasswordAuthentication no
然后
/etc/init.d/ssh restart
三、DenyHosts自动屏蔽ssh暴力破解
apt-get install denyhosts
直接默认的配置已经很好了,所以就这样吧
其实1+2就可以了,加上3只是为了让那些无所事事的人(或者肉鸡)一边凉快去~
大家都是辛苦做站点的服务器安全可是头等大事,不能马虎呢