温馨提示×

Ubuntu防火墙规则怎么设置才合理

小樊
55
2025-10-01 22:31:52
栏目: 智能运维

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 # 允许本地所有外发流量(如浏览网页、下载文件)
此设置确保只有明确授权的流量能进入系统,降低被非法扫描或攻击的风险。

三、精准配置:允许必要服务与流量

根据系统用途开放所需端口,避免过度开放。常见场景如下:

1. 允许特定端口(TCP/UDP)

  • TCP端口(如HTTP/HTTPS、SSH)
    sudo ufw allow 80/tcp # 允许HTTP(网页服务)
    sudo ufw allow 443/tcp # 允许HTTPS(加密网页)
    sudo ufw allow 22/tcp # 允许SSH(远程管理,需替换为非默认端口更安全)
  • UDP端口(如DNS)
    sudo ufw allow 53/udp # 允许DNS解析

2. 允许服务(通过服务名简化)

ufw支持通过服务名快速开放端口(需服务已在系统中注册):
sudo ufw allow ssh # 等同于允许22/tcp
sudo ufw allow http # 等同于允许80/tcp
sudo ufw allow https # 等同于允许443/tcp

3. 允许特定IP地址

限制访问来源,仅允许可信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)

4. 限制连接速率(防暴力破解)

针对SSH等易受暴力破解的服务,限制单位时间内的连接次数:
sudo ufw limit 22/tcp # 默认限制为每分钟6次连接,超过则暂时封锁IP。

四、验证与维护:确保规则有效

1. 查看规则状态

  • 查看简要状态(是否启用及默认策略):
    sudo ufw status
  • 查看详细规则(包括端口、协议、来源):
    sudo ufw status verbose
  • 查看带编号的规则(便于删除):
    sudo ufw status numbered

2. 删除规则

若需撤销某条规则,可通过编号或规则内容删除:

  • 通过编号删除(先运行sudo ufw status numbered获取编号):
    sudo ufw delete 2 # 删除编号为2的规则
  • 通过规则内容删除:
    sudo ufw delete allow 22/tcp # 删除允许22/tcp的规则

3. 禁用/重置防火墙

  • 临时禁用ufw(不推荐生产环境使用):
    sudo ufw disable
  • 重置ufw(清除所有规则,恢复默认):
    sudo ufw reset # 慎用,会清除所有自定义规则。

五、进阶建议:提升安全性

  • 更改SSH默认端口:将SSH端口从22改为其他端口(如2222),减少被扫描到的概率:
    编辑/etc/ssh/sshd_config文件,修改Port 22Port 2222,然后重启SSH服务:
    sudo systemctl restart ssh
    再开放新端口:sudo ufw allow 2222/tcp
  • 定期审查规则:每周检查一次防火墙规则,删除不再需要的端口或IP授权,避免规则冗余。
  • 结合日志监控:启用ufw日志记录,便于排查异常流量:
    sudo ufw logging on # 日志默认保存在/var/log/ufw.log
    通过tail -f /var/log/ufw.log实时查看日志。

通过以上步骤设置ufw,可实现Ubuntu系统的基本安全防护。需根据实际业务需求调整规则,始终遵循“最小权限原则”——仅开放必要的端口和服务,最大程度降低安全风险。

0