温馨提示×

ubuntu防火墙新手指南

小樊
43
2025-10-12 07:24:26
栏目: 智能运维

Ubuntu防火墙(UFW)新手指南
UFW(Uncomplicated Firewall)是Ubuntu系统默认的防火墙管理工具,基于iptables开发,通过简化的命令行接口降低配置门槛,适合新手快速上手。以下是新手必学的核心操作与注意事项:

1. 安装UFW

Ubuntu系统通常预装UFW,若未安装,可通过以下命令快速安装:

sudo apt update && sudo apt install ufw -y

安装完成后,通过sudo ufw --version确认安装成功(显示版本号即为正常)。

2. 检查UFW状态

配置前需确认UFW当前状态,使用以下命令:

sudo ufw status
  • 若显示Status: inactive,表示防火墙未启用;
  • 若显示Status: active,则表示防火墙已激活,下方会列出当前生效的规则。
    如需查看详细规则(包括端口、协议、来源IP),可添加verbose参数:
sudo ufw status verbose

3. 设置默认策略

默认策略是防火墙的“底线”,建议新手遵循“拒绝所有入站、允许所有出站”的原则(确保服务器自身能访问外部网络,同时阻止外部非法访问):

sudo ufw default deny incoming  # 拒绝所有外部入站连接
sudo ufw default allow outgoing # 允许所有本地出站连接

此设置会自动屏蔽所有未明确允许的入站流量,提升系统安全性。

4. 允许常用服务端口

根据服务器用途,需开放对应服务的端口。以下是常见服务的配置示例:

  • SSH(远程登录):默认使用22端口(TCP协议),命令:
    sudo ufw allow ssh      # 通过服务名允许(推荐,避免记错端口)
    # 或指定端口+协议
    sudo ufw allow 22/tcp
    
  • HTTP(网页服务):默认使用80端口(TCP协议),命令:
    sudo ufw allow http
    # 或
    sudo ufw allow 80/tcp
    
  • HTTPS(安全网页服务):默认使用443端口(TCP协议),命令:
    sudo ufw allow https
    # 或
    sudo ufw allow 443/tcp
    
  • 自定义端口:若服务使用非标准端口(如数据库的3306端口),需明确指定端口和协议:
    sudo ufw allow 3306/tcp  # 允许MySQL数据库端口
    

5. 允许特定IP地址访问

若需限制仅特定IP可访问服务器(如公司IP、个人电脑IP),可使用from参数:

sudo ufw allow from 192.168.1.100 to any port 22  # 仅允许192.168.1.100访问SSH端口
  • from 192.168.1.100:指定允许的源IP;
  • to any port 22:允许访问本机的22端口(任意网络接口)。
    若需允许整个子网(如公司内网192.168.1.0/24),可将IP替换为子网掩码:
sudo ufw allow from 192.168.1.0/24 to any port 80  # 允许子网内所有IP访问HTTP端口

6. 启用UFW

配置完规则后,需启用防火墙以激活规则:

sudo ufw enable

系统会提示“Command may disrupt existing ssh connections. Proceed with operation? (y/n)”,输入y并回车确认。启用后,UFW会自动保存规则并随系统启动。

7. 删除或修改规则

  • 删除规则:若需取消某条规则,可通过规则编号删除(先查看带编号的规则列表):
    sudo ufw status numbered  # 显示带编号的规则
    sudo ufw delete 2         # 删除第2条规则(根据编号调整)
    
  • 直接删除:若记得规则内容,可直接用delete+规则内容删除:
    sudo ufw delete allow 22/tcp  # 删除允许22/tcp的规则
    

8. 重置UFW

若配置混乱或需重新开始,可使用reset命令清空所有规则并禁用防火墙:

sudo ufw reset

注意:此操作会删除所有自定义规则,需谨慎使用!

9. 故障排除

  • 无法通过SSH连接:若启用防火墙后无法远程登录,需立即检查SSH端口是否允许:
    sudo ufw allow ssh  # 确保SSH端口开放
    sudo ufw status     # 确认规则已生效
    
  • 服务无法访问:若网页、数据库等服务无法访问,需确认对应端口已开放(如HTTP的80端口、MySQL的3306端口)。
  • UFW未运行:若sudo ufw status显示inactive,需重新启用:
    sudo ufw enable
    

安全最佳实践

  • 仅开放必要端口:避免开放不必要的端口(如Telnet的23端口、FTP的21端口),减少攻击面;
  • 定期检查规则:每周通过sudo ufw status查看规则,及时删除无用规则;
  • 结合其他安全措施:启用SSH密钥认证(禁用密码登录)、安装Fail2Ban(防止暴力破解)、定期更新系统(修复安全漏洞);
  • 监控日志:通过sudo tail -f /var/log/ufw.log实时查看防火墙日志,及时发现异常访问(如大量来自陌生IP的连接请求)。

通过以上步骤,新手可快速掌握Ubuntu防火墙的基本配置,为服务器或本地系统建立第一道安全防线。

0