Debian 上使用 ufw 管理防火墙

今天查看了一下服务器日志,发现每时每刻都有人在爆破我的 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 等工具,测试自己的防火墙。