温馨提示×

Ubuntu环境怎样设置防火墙规则

小樊
47
2025-11-02 09:12:45
栏目: 智能运维

Ubuntu环境下设置防火墙规则(使用UFW)
UFW(Uncomplicated Firewall)是Ubuntu默认的防火墙管理工具,基于iptables/nftables,提供了简单易用的命令行接口,适合普通用户和服务器管理员快速配置防火墙规则。

1. 安装UFW

大多数Ubuntu系统已预装UFW,若未安装,可通过以下命令安装:

sudo apt update
sudo apt install ufw

2. 启用UFW

安装完成后,启用UFW并设置为开机自启:

sudo ufw enable

系统会提示“Command may disrupt existing ssh connections. Proceed with operation (y|n)?”,输入y并回车确认。启用后,UFW会默认拒绝所有外部对本机的入站流量,允许所有本机发起的出站流量(可通过sudo ufw default deny incomingsudo ufw default allow outgoing手动设置,默认策略已内置)。

3. 查看防火墙状态

使用以下命令查看UFW的当前状态及规则:

sudo ufw status
  • 若显示“Status: active”,则表示防火墙已启用;
  • 若显示“Status: inactive”,则表示防火墙未启用;
  • 添加verbose参数(sudo ufw status verbose)可查看更详细的规则信息(如规则的优先级、动作等)。

4. 配置默认规则

设置默认策略是防火墙配置的核心,建议遵循“默认拒绝所有入站,允许所有出站”的原则:

sudo ufw default deny incoming  # 拒绝所有外部入站流量
sudo ufw default allow outgoing # 允许所有本机出站流量

此设置可有效阻断未明确允许的外部攻击,同时不影响本机正常访问网络。

5. 允许特定流量

根据需求开放必要的端口或服务,常用命令如下:

  • 允许特定端口(指定协议)
    sudo ufw allow 22/tcp    # 允许TCP端口22(SSH远程登录)
    sudo ufw allow 80/tcp    # 允许TCP端口80(HTTP网页服务)
    sudo ufw allow 443/tcp   # 允许TCP端口443(HTTPS加密网页服务)
    sudo ufw allow 53        # 允许UDP/TCP端口53(DNS域名解析)
    
  • 允许特定服务(通过服务名)
    UFW内置了常见服务(如ssh、http、https)的端口映射,可直接使用服务名开放:
    sudo ufw allow ssh       # 等同于允许22/tcp
    sudo ufw allow http      # 等同于允许80/tcp
    sudo ufw allow https     # 等同于允许443/tcp
    
  • 允许特定IP地址
    若需允许某台设备(如公司内网电脑)访问本机所有端口,可使用以下命令:
    sudo ufw allow from 192.168.1.100  # 允许单个IP
    sudo ufw allow from 192.168.1.0/24 # 允许整个网段(192.168.1.1-192.168.1.254)
    
  • 允许特定协议的端口
    若需指定协议(如UDP),可使用proto参数:
    sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53  # 允许从192.168.0.1的53端口到192.168.0.2的53端口的UDP流量
    

6. 删除防火墙规则

若需撤销某条规则,可使用以下方法:

  • 通过规则内容删除
    sudo ufw delete allow 22/tcp  # 删除允许22/tcp的规则
    sudo ufw delete deny 80/tcp   # 删除拒绝80/tcp的规则
    
  • 通过规则编号删除
    先查看带编号的规则列表(sudo ufw status numbered),再根据编号删除:
    sudo ufw status numbered  # 查看规则编号(如1: Allow 22/tcp)
    sudo ufw delete 1         # 删除编号为1的规则
    

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

针对SSH等易受暴力破解的服务,可限制单位时间内的连接次数,降低被攻击的风险:

sudo ufw limit 22/tcp  # 限制SSH端口(22/tcp)的连接速率:每分钟最多6次新连接,超过的连接将被拒绝

此命令会自动添加一条limit规则,格式为“允许最多6次/分钟的新连接,超过的连接将被延迟或拒绝”。

8. 配置日志记录

开启日志功能可记录防火墙的拦截和允许操作,便于排查网络问题或分析攻击行为:

sudo ufw logging on  # 开启日志记录(日志文件默认路径:/var/log/ufw.log)
sudo ufw logging off # 关闭日志记录

日志级别可通过sudo ufw logging low|medium|high|full调整(low仅记录被拒绝的连接,full记录所有操作)。

9. 重置UFW

若需清除所有规则并恢复初始状态(禁用防火墙),可使用以下命令:

sudo ufw reset

执行后,UFW会停止运行,所有规则被清空,需重新配置。

注意事项

  • 配置规则前,需确保已备份重要数据,避免误操作导致服务中断;
  • 开放端口时,应遵循“最小权限原则”,仅开放必要的端口(如Web服务器只需开放80/443端口);
  • 修改规则后,可使用sudo ufw reload重新加载配置,使更改生效;
  • 服务器部署完成后,建议测试防火墙规则是否生效(如使用telnetnmap扫描端口)。

0