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

Ubuntu防火墙端口管理指南

这是一份详细且实用的 Ubuntu 防火墙端口管理指南。Ubuntu 自 18.04 LTS 以后,默认使用的防火墙是 UFW,即“不复杂的防火墙”,它极大地简化了 iptables 的管理。


第一部分:UFW 基础与安装

1. 检查 UFW 状态

首先,检查 UFW 是否已安装和运行。

bash

sudo ufw status
  • 如果防火墙是** inactive **状态,你会看到:Status: inactive

  • 如果防火墙是** active **状态,你会看到已允许的规则列表。

2. 安装 UFW

通常 UFW 已预装。如果没有,请使用以下命令安装:

bash

sudo apt update
sudo apt install ufw

第二部分:基本端口管理操作

1. 启用 UFW

警告:在启用 UFW 前,务必确保允许 SSH 连接,否则你可能会被锁在服务器外。

bash

# 首先允许 SSH(端口 22)
sudo ufw allow ssh
# 或者直接指定端口
sudo ufw allow 22/tcp# 然后启用 UFW
sudo ufw enable

系统会提示操作可能中断现有的 SSH 连接,确认你已允许 SSH 后,输入 y 继续。

2. 禁用 UFW

如果需要临时关闭防火墙:

bash

sudo ufw disable
3. 重置 UFW

这将禁用 UFW,并删除所有规则,恢复到初始状态。

bash

sudo ufw reset

第三部分:允许和拒绝端口/服务

1. 按服务名(推荐)

UFW 在 /etc/services 中查找一些常见服务的端口。

bash

# 允许 SSH
sudo ufw allow ssh# 允许 HTTP (端口 80)
sudo ufw allow http# 允许 HTTPS (端口 443)
sudo ufw allow https# 允许 FTP (端口 21)
sudo ufw allow ftp
2. 按端口号

bash

# 允许特定 TCP 端口 (例如:8080)
sudo ufw allow 8080/tcp# 允许特定 UDP 端口 (例如:53,用于 DNS)
sudo ufw allow 53/udp# 同时允许 TCP 和 UDP 的某个端口 (例如:NTP 123)
sudo ufw allow 123
3. 按特定范围端口

bash

# 允许一个端口范围,必须指定协议 (例如:60000-60100 for TCP)
sudo ufw allow 60000:60100/tcp
4. 按 IP 地址

bash

# 允许来自特定 IP 的所有连接
sudo ufw allow from 192.168.1.100# 允许来自特定 IP 到特定端口的连接
sudo ufw allow from 192.168.1.100 to any port 22# 允许一个子网
sudo ufw allow from 192.168.1.0/24 to any port 3306
5. 拒绝连接

语法与 allow 完全相同,只是将命令替换为 deny

bash

# 拒绝 HTTP 连接
sudo ufw deny http# 拒绝来自特定 IP 的连接
sudo ufw deny from 203.0.113.10
6. 删除规则

有两种方法可以删除规则:

方法 A:使用规则编号(最直接)

  1. 首先,查看带编号的规则列表:

    bash

    sudo ufw status numbered
  2. 找到你想删除的规则前面的编号(例如 [3]),然后执行:

    bash

    sudo ufw delete 3

方法 B:通过规则描述
通过指定你最初创建的规则来删除它。

bash

# 例如,你之前运行了 `sudo ufw allow 80/tcp`
sudo ufw delete allow 80/tcp

第四部分:高级配置与技巧

1. 限制连接

limit 规则可以自动阻止某个 IP 在短时间内发起过多连接请求,常用于 SSH 防暴力破解。

bash

sudo ufw limit ssh
2. 查看详细规则

显示 UFW 当前运行的完整规则集。

bash

sudo ufw show added

或者查看 iptables 的原始格式(供高级用户诊断):

bash

sudo ufw show raw
3. 配置默认策略

UFW 的默认行为是拒绝所有传入连接,允许所有传出连接。这是最安全的配置,通常不需要更改。但你可以明确设置:

bash

# 拒绝所有传入(默认)
sudo ufw default deny incoming# 允许所有传出(默认)
sudo ufw default allow outgoing

如果你想设置一个非常严格的策略(例如在个人桌面上),可以拒绝所有传出,然后只允许你需要的:

bash

sudo ufw default deny outgoing
sudo ufw allow out 53/udp  # 允许 DNS 解析
sudo ufw allow out on eth0 to any port 80,443 proto tcp  # 允许 HTTP/HTTPS 上网

第五部分:应用配置与管理

1. 重新加载规则

在修改规则后,UFW 会自动生效。如果需要手动重载:

bash

sudo ufw reload
2. 备份和恢复规则

你可以将规则导出到一个文件进行备份。

bash

# 备份
sudo sh -c "ufw status numbered > ufw-backup.txt"# 恢复(需要手动或通过脚本重新应用每条规则)
# 没有直接的“恢复”命令,但你可以通过脚本来解析备份文件并执行相应的 `ufw allow` 命令。

实用示例场景

场景:配置一个基本的 Web 服务器

  1. 设置默认策略并允许 SSH。

    bash

    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    sudo ufw allow ssh
    sudo ufw limit ssh  # 可选,但推荐用于 SSH
  2. 允许 Web 服务。

    bash

    sudo ufw allow http
    sudo ufw allow https
  3. 启用防火墙。

    bash

    sudo ufw enable
  4. 验证规则。

    bash

    sudo ufw status verbose

    输出应类似:

    text

    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), disabled (routed)
    New profiles: skipTo                         Action      From
    --                         ------      ----
    22/tcp (SSH)               ALLOW IN    Anywhere
    80/tcp (HTTP)              ALLOW IN    Anywhere
    443/tcp (HTTPS)            ALLOW IN    Anywhere
    22/tcp (SSH (v6))          ALLOW IN    Anywhere (v6)
    80/tcp (HTTP (v6))         ALLOW IN    Anywhere (v6)
    443/tcp (HTTPS (v6))       ALLOW IN    Anywhere (v6)

重要提醒

  • 云服务器用户注意:如果你使用的是 AWS、Google Cloud、Azure 等云服务,它们有自己的安全组。安全组规则在 UFW 之前生效。如果你的端口在 UFW 中允许了但仍然无法访问,请检查云服务商的安全组设置。

  • 谨慎操作:在对远程服务器进行任何防火墙更改之前,请确保你有一条不会被中断的连接(例如通过控制台),或者已经允许了你的 SSH 连接。

这份指南涵盖了 UFW 端口管理的绝大多数日常操作。通过熟练使用这些命令,你可以有效地保护你的 Ubuntu 系统。

http://www.dtcms.com/a/434320.html

相关文章:

  • Ubuntu离线安装软件包
  • 山东电力建设网站泉州专业建站品牌
  • 微服务项目部署配置文件示例:从开发到生产的完整指南
  • 声卡驱动解决方案(电脑没有声音,麦克风没有声音)win11
  • 哈尔滨快速建站模板如意影院
  • 机器人、具身智能的起步——线性系统理论|【二】状态空间方程的解
  • 【数据结构】字典树
  • Rust Slint 实现控件拖动详细教程
  • 4. Pandas 数据选择、查询与修改
  • React新闻发布系统 角色列表篇
  • 网站常用插件wordpress自定义应用
  • 衡水手机网站建设淮安市盱眙县建设局网站
  • iPhone美区账号登录指南:轻松下载ChatGPT应用
  • AI大模型:(三)1.6 Dify工作流快速搭建数据可视化助手
  • 软件/网站安全需要以及解决方法
  • 做设备推广的网站学做网站用谁的书
  • python 做网站速度网站建设及托管合同
  • Coze源码分析-资源库-编辑工作流-后端源码-数据存储/安全/错误
  • 什么是Java反射机制?
  • 使用Docker安装Neo4j
  • 建立网站的步骤筝晃湖南岚鸿官网深圳专业建设网站哪个公司好
  • 20软件测试需求分析评审
  • SQL 多表查询实用技巧:ON 和 WHERE 的区别速览
  • 网站备案 内容央企八大设计院
  • 从汇编角度看C++优化:编译器真正做了什么
  • 分布式专题——25 深入理解网络通信和TCP、IP协议
  • UV python多版本管理
  • Schema是什么?
  • 许昌做网站优化wordpress 控制每页显示文章数
  • MAX31865模块和PT100实现温度测量使用配置笔记教程