当前位置: 首页 > news >正文

Ubuntu 防火墙ufw详解

ufw(Uncomplicated Firewall)是 Ubuntu 中一个简单易用的防火墙管理工具,基于 iptables,旨在简化防火墙配置。以下是 ufw 的详细说明和使用方法:


1. 安装 ufw

在大多数 Ubuntu 系统中,ufw 已经预装。如果没有安装,可以通过以下命令安装:

sudo apt update
sudo apt install ufw

2. 启用和禁用 ufw

  • 启用 ufw

    sudo ufw enable
    

    启用后,ufw 会随系统启动自动加载。

  • 禁用 ufw

    sudo ufw disable
    

3. 查看 ufw 状态

  • 查看当前状态和规则:

    sudo ufw status
    

    如果显示 Status: inactive,表示 ufw 未启用。

  • 查看详细状态(包括默认规则):

    sudo ufw status verbose
    

4. 设置默认规则

ufw 的默认规则决定了未明确允许或拒绝的流量的处理方式。

  • 默认拒绝所有传入流量,允许所有传出流量:

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
  • 默认允许所有传入流量,拒绝所有传出流量:

    sudo ufw default allow incoming
    sudo ufw default deny outgoing
    

5. 允许和拒绝规则

  • 允许特定端口

    sudo ufw allow 22/tcp  # 允许 SSH(TCP 端口 22)
    sudo ufw allow 80/tcp  # 允许 HTTP(TCP 端口 80)
    sudo ufw allow 443/tcp # 允许 HTTPS(TCP 端口 443)
    
  • 允许特定服务

    sudo ufw allow ssh    # 允许 SSH
    sudo ufw allow http   # 允许 HTTP
    sudo ufw allow https  # 允许 HTTPS
    
  • 允许特定 IP 地址

    sudo ufw allow from 192.168.1.100  # 允许来自 192.168.1.100 的所有流量
    sudo ufw allow from 192.168.1.0/24 # 允许来自 192.168.1.0/24 网段的所有流量
    
  • 允许特定端口范围

    sudo ufw allow 6000:6010/tcp # 允许 TCP 端口 6000 到 6010
    
  • 拒绝规则

    sudo ufw deny 22/tcp  # 拒绝 SSH(TCP 端口 22)
    sudo ufw deny from 192.168.1.100 # 拒绝来自 192.168.1.100 的所有流量
    

6. 删除规则

  • 删除允许或拒绝规则:

    sudo ufw delete allow 22/tcp  # 删除允许 SSH 的规则
    sudo ufw delete deny 22/tcp   # 删除拒绝 SSH 的规则
    
  • 通过规则编号删除:

    1. 查看规则编号:
      sudo ufw status numbered
      
    2. 根据编号删除规则:
      sudo ufw delete 2  # 删除编号为 2 的规则
      

7. 限制连接速率

ufw 支持限制特定端口的连接速率,防止暴力破解。

  • 限制 SSH 连接速率(每分钟最多 6 次连接):
    sudo ufw limit 22/tcp
    

8. 日志管理

  • 启用日志记录:

    sudo ufw logging on
    
  • 禁用日志记录:

    sudo ufw logging off
    
  • 查看日志:

    sudo tail -f /var/log/ufw.log
    

9. 重置 ufw

如果需要清除所有规则并重置 ufw,可以执行以下命令:

sudo ufw reset

10. 常用命令总结

命令说明
sudo ufw enable启用 ufw
sudo ufw disable禁用 ufw
sudo ufw status查看 ufw 状态
sudo ufw allow <port>允许特定端口
sudo ufw deny <port>拒绝特定端口
sudo ufw delete <rule>删除规则
sudo ufw logging on启用日志记录
sudo ufw reset重置 ufw

11. 示例配置

以下是一个常见的 ufw 配置示例:

# 设置默认规则
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 允许 SSH、HTTP 和 HTTPS
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# 限制 SSH 连接速率
sudo ufw limit ssh

# 启用日志记录
sudo ufw logging on

# 启用 ufw
sudo ufw enable

12. 注意事项

  • 在远程服务器上配置 ufw 时,务必先允许 SSH 端口,否则可能导致无法远程连接。
  • ufw 规则会立即生效,请谨慎操作。
  • 如果需要更复杂的防火墙配置,可以直接使用 iptables

通过 ufw,你可以轻松管理 Ubuntu 系统的防火墙规则,保障系统安全。

相关文章:

  • DeepSeek 冲击(含本地化部署实践)
  • MySQL 视图入门
  • 合规数助力律师专业工作,开启法律科技新篇
  • Linux(Centos 7.6)命令详解:less
  • 我国首条大型无人机城际低空物流航线成功首航
  • 英文字体:极简现代浓缩未来派科技海报标题排版无衬线字体 PODIUM Sharp Font
  • 第1章大型互联网公司的基础架构——1.11 消息中间件技术
  • 基于Java爬虫获取1688商品分类信息(cat_get接口)的实现指南
  • JAVA学习-练习试用Java实现“使用Apache Flink对实时数据流进行复杂事件处理和筛查”
  • 重订货点和安全库存
  • 计算机毕业设计Python农产品推荐系统 农产品爬虫 农产品可视化 农产品大数据(源码+LW文档+PPT+讲解)
  • 【队列】循环队列(Circular Queue)详解
  • webpack和grunt以及gulp有什么不同?
  • 学习threejs,THREE.Material材质基类详解
  • linux shell 当命令执行出现错误立即退出的方法
  • Docker容器化 | 超简单部署 FireCrawl
  • Elasticsearch 自动补全搜索 - autocomplete
  • C#中表达式树实现动态拼接lamda表达式查询条件
  • STL之string类的模拟实现
  • Eclipse插件开发六:使用Web前端技术开发AI助手页面
  • 央行4月开展12000亿元买断式逆回购操作
  • 烟花秀、新航线、购物节......上海邮轮文化旅游节今日开幕
  • 十四届全国人大常委会第十五次会议继续审议民营经济促进法草案
  • 扎克伯格怕“错过风口”?Meta AI数字伴侣被允许与未成年人讨论不当话题
  • 李勇已任内蒙古乌兰察布市委副书记,曾在中央编办任职
  • 湖南小伙“朱雀玄武敕令”提交申请改名为“朱咸宁”