温馨提示×

Ubuntu防火墙如何配置才能安全上网

小樊
50
2025-11-09 02:39:14
栏目: 智能运维

Ubuntu防火墙(UFW)安全上网配置指南
UFW(Uncomplicated FireWall)是Ubuntu默认的防火墙管理工具,基于iptables实现,通过简化规则配置帮助用户快速建立安全屏障。以下是针对安全上网的核心配置步骤及优化建议:

1. 基础配置:启用UFW并设置默认策略

安全的第一步是关闭所有未明确允许的访问,仅放行必要的流量。执行以下命令完成基础设置:

sudo apt update && sudo apt install ufw  # 安装UFW(若未安装)
sudo ufw enable                         # 启用UFW并设置为开机自启
sudo ufw default deny                   # 设置默认策略:拒绝所有入站、出站流量(本机访问外部仍正常)

此配置会立即阻断所有未经授权的外部连接,仅允许你主动发起的对外请求(如浏览网页、下载文件)。

2. 开放必要服务端口:仅允许可信服务

根据实际需求开放必需的服务端口(避免过度开放),常见场景如下:

  • Web服务(HTTP/HTTPS):
    sudo ufw allow 80/tcp    # 允许HTTP(80端口,明文传输)
    sudo ufw allow 443/tcp   # 允许HTTPS(443端口,加密传输)
    
  • SSH远程管理(替换默认22端口更安全):
    sudo ufw allow 2222/tcp  # 将SSH端口从22改为2222(或其他冷门端口)
    
  • DNS服务(可选):
    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),避免手动输入端口号。

3. 限制访问源:仅允许可信IP访问关键服务

对于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字典攻击)。

4. 启用日志记录:监控可疑活动

开启日志功能,记录所有被拦截或允许的流量,便于后续分析异常行为:

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连接尝试)。

5. 防御DDoS/暴力破解:限制连接速率

通过限制单个IP的连接频率,防止DDoS攻击或暴力破解密码:

sudo ufw limit ssh/tcp                          # 限制SSH连接:每分钟最多6次新连接,超过则拒绝并记录
sudo ufw limit 80/tcp                           # 限制HTTP连接(可选,防止网站被刷)

此配置会在短时间内多次尝试连接时自动拒绝,并在日志中标记为[UFW LIMIT]

6. 高级配置:优化入站/出站规则

  • 拒绝无效流量:禁止无效的ICMP请求(如Ping),减少网络扫描:
    编辑/etc/ufw/before.rules,在*filter部分后添加:
    -A PREROUTING -p icmp --icmp-type echo-request -j DROP
    
    然后执行sudo ufw reload生效。
  • Docker兼容:若使用Docker,需禁用其自动修改iptables的功能,避免规则冲突:
    编辑/etc/docker/daemon.json,添加:
    { "iptables": false }
    
    重启Docker:sudo systemctl restart docker

7. 定期维护:检查与更新规则

  • 查看规则状态:确认当前生效的规则是否符合预期:
    sudo ufw status verbose  # 显示详细规则(包括端口、协议、来源)
    
  • 删除无用规则:定期清理不再需要的规则(如关闭的网站端口):
    sudo ufw delete allow 8080/tcp  # 删除8080端口的允许规则
    
  • 更新系统:保持系统和UFW版本最新,修复已知漏洞:
    sudo apt update && sudo apt upgrade -y
    

通过以上配置,UFW将为Ubuntu系统提供**“默认拒绝、最小权限”**的安全防护,既能满足日常上网需求,又能有效抵御常见的网络攻击(如端口扫描、暴力破解、DDoS)。需根据实际使用场景(如是否运行Web服务器、SSH反向隧道)调整规则,避免过度开放端口。

0