修改ssh端口
其实之前也看过相关文章,说要修改ssh默认端口22以提高安全性,但也有文章指出,如果对方有意爆破的话,他也可以扫描你所有端口。
我个人比较认同后面的说法,觉得高强度的长密码才是王道。当然也有懒的原因。
但是还是决定要修改端口号了。
原因是看了这篇文章《虚拟主机和VPS的几个区别》http://www.auiou.com/relevant/00001444.jsp
提到“尤其是Linux主机下的/var/log/btmp文件的增长速度特别快”。
笛声大佬评论说:
你怎么总是纠结 /var/log/btmp 这个文件,这个文件你用 lastb -f /var/log/btmp
看看,里面全是记录了失败的登录,就是说有人一直在爆破你的密码,你把sshd的端口改一下,一般就没人来爆破了,我登录了好几台机器去看了,这个文件大小一直是0。
所以虽然目前我的vps没有被破,但是为了节约磁盘空间,还是说干就干。
第一、修改 /etc/ssh/sshd_config
找到#Port 22,再插入一行设置成你想要的端口号,注意不要跟现有端口号重复。建议一万以上的,当然要小于65535。
第二、重启ssh: systemctl restart sshd
第三、用你刚才的端口登录进去,如果成功了,就注释掉port 22,继续重启ssh。
第四、用端口22登录,发现登不了了,再用新端口,能用,那么就恭喜啦!
另附:清空文件的方法
: > filename
> filename #最简单,推荐
echo "" > filename
echo > filename
1和2两种方式是0字节,3和4两种方式是1字节。
清空多个文件,比如清空多个log:
ls *.log | awk 'NR>1 {print "echo > " $NF }' |sh
为什么要清空文件,而不是删除文件呢?其实还可以写一篇文章,但我还是一并写在这里了。有一次按照网上的文章,删除了许多log文件,但是nginx等却启动不了了,要手动启动。我感觉linux下的软件简直是白莲花,就不能像windows下面的软件一样,自己再生成文件吗?比如Windows下某某软件,我删了他的缓存,启动该软件后,它又重新生成了一堆缓存。感觉自己是习惯了这些流氓行为,而对linux下的白莲花行为不习惯呢!(晕……)
附上勇哥的脚本:
port='3635'; a=''; a2='/etc/ssh/sshd_config'; a1=`cat $a2`; if [[ $a1=~ '#Port 22' ]]; then sed -i "s/#Port 22/Port $port/g" $a2; fi; if [[ $a1 =~ 'Port 22' ]]; then sed -i "s/Port 22/Port $port/g" $a2; fi; if [[ $a1 =~ 'Port ' ]]; then a=''; else sed -i '$a\'"\nPort $port" $a2; fi; reboot;
请修改上述的 port='3635'; 的值.