今天查看了一下服务器日志,发现每时每刻都有人在爆破我的 root 账户密码……
以前用 GCP 的时候,都有平台帮助抵抗攻击,导致我疏忽了,这个 VPS 连个防火墙也没开。一大堆的端口开放,太可怕了,幸亏我的密码复杂到自己都记不住,不然就被坏蛋抓肉鸡了。
先把 ssh 的端口从默认的 22 改到自定义。
sudo nano /etc/ssh/sshd_config
按照配置文件的注释,修改一个大的端口号,用来 ssh 连接。同时,将默认的22端口也写进去,例如
Port 22
Port 23456
如果你选的端口号被占用或者其他什么奇怪的原因,导致不能连接到 VPS,就会很难受。而加入默认的 22 端口,就保证你能连接到 VPS,测试好新的端口可以 ssh 到 VPS,再删除 22 端口。
重启 sshd,应用修改。
sudo systemctl restart sshd
通过新端口号连接,本地执行
ssh username@domain -p 23456
然后就是防火墙了,复杂的 iptables 一直令人头疼,还好有前端管理应用,ufw (Uncomplicated FireWall)。
对防火墙的任何操作都应小心谨慎,在应用新配置前,确保正常的连接不被阻断,否则可能要重装系统。
ufw 安装时默认是不启动的,使用 sudo ufw status
查看防火墙的状态。
修改默认配置文件 /etc/default/ufw
,按照注释修改自己的配置。
允许特定端口:
sudo ufw allow https
或者
sudo ufw allow 443/tcp
开启防火墙:
sudo ufw enable
其余用法,查看文档或者他人博客,写的很详细,我就不复制粘贴了,这个工具真是强大实用又简单。
ufw 在配置完成并开启后,默认了开机运行,还原上次配置,很方便。
查看日志,很多试探都被 ufw block 。你还可以用 telnet, wget 或者 nmap 等工具,测试自己的防火墙。