Ubuntu防火墙(UFW)安全上网配置指南
UFW(Uncomplicated FireWall)是Ubuntu默认的防火墙管理工具,基于iptables实现,通过简化规则配置帮助用户快速建立安全屏障。以下是针对安全上网的核心配置步骤及优化建议:
安全的第一步是关闭所有未明确允许的访问,仅放行必要的流量。执行以下命令完成基础设置:
sudo apt update && sudo apt install ufw # 安装UFW(若未安装)
sudo ufw enable # 启用UFW并设置为开机自启
sudo ufw default deny # 设置默认策略:拒绝所有入站、出站流量(本机访问外部仍正常)
此配置会立即阻断所有未经授权的外部连接,仅允许你主动发起的对外请求(如浏览网页、下载文件)。
根据实际需求开放必需的服务端口(避免过度开放),常见场景如下:
sudo ufw allow 80/tcp # 允许HTTP(80端口,明文传输)
sudo ufw allow 443/tcp # 允许HTTPS(443端口,加密传输)
sudo ufw allow 2222/tcp # 将SSH端口从22改为2222(或其他冷门端口)
sudo ufw allow 53 # 允许DNS查询(TCP/UDP)
sudo ufw allow smtp # SMTP(25端口,发送邮件)
sudo ufw allow imap # IMAP(143端口,接收邮件)
提示:可通过
sudo ufw allow <服务名>自动匹配/etc/services中的端口(如ssh对应22/tcp),避免手动输入端口号。
对于SSH、数据库等敏感服务,禁止所有IP访问,仅放行可信IP(如家庭IP、公司IP):
sudo ufw allow from 192.168.1.100 to any port 2222 # 仅允许192.168.1.100访问SSH(2222端口)
sudo ufw deny 22/tcp # 拒绝其他所有IP访问22端口(原SSH端口)
此配置可有效防止暴力破解(如SSH字典攻击)。
开启日志功能,记录所有被拦截或允许的流量,便于后续分析异常行为:
sudo ufw logging on # 开启日志(默认记录到/var/log/ufw.log)
sudo ufw logging medium # 设置日志级别为medium(平衡详细程度与性能)
日志示例:[UFW BLOCK] IN=eth0 OUT= MAC=... SRC=192.168.1.101 DST=192.168.1.100 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=12345 DF PROTO=TCP SPT=54321 DPT=22 WINDOW=29200 RES=0x00 SYN URGP=0(表示拦截了来自192.168.1.101的SSH连接尝试)。
通过限制单个IP的连接频率,防止DDoS攻击或暴力破解密码:
sudo ufw limit ssh/tcp # 限制SSH连接:每分钟最多6次新连接,超过则拒绝并记录
sudo ufw limit 80/tcp # 限制HTTP连接(可选,防止网站被刷)
此配置会在短时间内多次尝试连接时自动拒绝,并在日志中标记为[UFW LIMIT]。
/etc/ufw/before.rules,在*filter部分后添加:-A PREROUTING -p icmp --icmp-type echo-request -j DROP
然后执行sudo ufw reload生效。/etc/docker/daemon.json,添加:{ "iptables": false }
重启Docker:sudo systemctl restart docker。sudo ufw status verbose # 显示详细规则(包括端口、协议、来源)
sudo ufw delete allow 8080/tcp # 删除8080端口的允许规则
sudo apt update && sudo apt upgrade -y
通过以上配置,UFW将为Ubuntu系统提供**“默认拒绝、最小权限”**的安全防护,既能满足日常上网需求,又能有效抵御常见的网络攻击(如端口扫描、暴力破解、DDoS)。需根据实际使用场景(如是否运行Web服务器、SSH反向隧道)调整规则,避免过度开放端口。