Ubuntu防火墙(ufw)合理设置指南
Ubuntu系统默认未安装ufw(Uncomplicated Firewall),需先通过以下命令安装:
sudo apt update && sudo apt install ufw
安装完成后,启用ufw并设置为开机自启:
sudo ufw enable
系统会提示确认,输入y即可。启用后,ufw会默认拦截所有未明确允许的传入流量,保障初始安全。
合理的默认规则是防火墙的“第一道防线”,建议遵循“拒绝所有传入,允许所有传出”的原则:
sudo ufw default deny incoming # 拒绝所有外部对本地端口的访问
sudo ufw default allow outgoing # 允许本地所有外发流量(如浏览网页、下载文件)
此设置确保只有明确授权的流量能进入系统,降低被非法扫描或攻击的风险。
根据系统用途开放所需端口,避免过度开放。常见场景如下:
sudo ufw allow 80/tcp # 允许HTTP(网页服务)sudo ufw allow 443/tcp # 允许HTTPS(加密网页)sudo ufw allow 22/tcp # 允许SSH(远程管理,需替换为非默认端口更安全)sudo ufw allow 53/udp # 允许DNS解析ufw支持通过服务名快速开放端口(需服务已在系统中注册):
sudo ufw allow ssh # 等同于允许22/tcp
sudo ufw allow http # 等同于允许80/tcp
sudo ufw allow https # 等同于允许443/tcp
限制访问来源,仅允许可信IP访问关键服务(如SSH):
sudo ufw allow from 192.168.1.100 # 允许单个IP访问所有端口
sudo ufw allow from 192.168.1.0/24 # 允许整个网段访问所有端口
sudo ufw allow from 10.0.0.5 to any port 22 # 允许特定IP访问指定端口(如SSH)
针对SSH等易受暴力破解的服务,限制单位时间内的连接次数:
sudo ufw limit 22/tcp # 默认限制为每分钟6次连接,超过则暂时封锁IP。
sudo ufw statussudo ufw status verbosesudo ufw status numbered若需撤销某条规则,可通过编号或规则内容删除:
sudo ufw status numbered获取编号):sudo ufw delete 2 # 删除编号为2的规则sudo ufw delete allow 22/tcp # 删除允许22/tcp的规则sudo ufw disablesudo ufw reset # 慎用,会清除所有自定义规则。/etc/ssh/sshd_config文件,修改Port 22为Port 2222,然后重启SSH服务:sudo systemctl restart sshsudo ufw allow 2222/tcpsudo ufw logging on # 日志默认保存在/var/log/ufw.logtail -f /var/log/ufw.log实时查看日志。通过以上步骤设置ufw,可实现Ubuntu系统的基本安全防护。需根据实际业务需求调整规则,始终遵循“最小权限原则”——仅开放必要的端口和服务,最大程度降低安全风险。