了解防火墙(UFW/firewalld)
学习防火墙的基本概念,以及如何使用 UFW(Ubuntu)或 firewalld(CentOS)等常用工具控制网络流量
了解防火墙(UFW/firewalld) 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
服务器的数字卫士
请把您的服务器想象成一栋房子。防火墙就像门口的保安,决定谁可以进出。它是服务器安全的重要组成部分。
防火墙通过控制网络流量,阻止未经授权的访问,并保护服务器免受恶意攻击。
防火墙如何过滤流量
防火墙使用一组规则检查传入和传出的网络流量。这些规则基于以下信息:
- 源/目标 IP 地址:流量来自哪里或流向哪里。
- 端口号:服务使用的特定“门”(例如,SSH 使用 22 端口,HTTP 使用 80 端口)。
- 协议:例如 TCP 或 UDP。
对于符合这些规则的流量,防火墙会允许或拒绝其通过。
认识 UFW:简单防火墙
在 Ubuntu 等基于 Debian 的系统上,最常用的防火墙工具是 UFW,它代表“简单防火墙”。
UFW 的设计理念是易于使用,让初学者能够轻松管理防火墙规则,而不必直接处理复杂的 `iptables` 命令。
UFW 的安全默认行为
默认情况下,UFW 的配置侧重于安全性:
- 拒绝传入连接:除非明确允许,否则会阻止所有传入连接。
- 允许传出连接:您的服务器可以向外部网络发起连接。
这意味着,您需要为希望从互联网访问的服务明确开放端口,例如 Web 服务器或 SSH。
启用 UFW(Ubuntu/Debian)
启用 UFW 之前,务必先允许 SSH 访问,否则您可能会把自己锁在服务器之外!允许 SSH 后,您就可以启用 UFW。
请尝试运行以下命令:
sudo ufw allow ssh
sudo ufw enable
sudo ufw status verbose使用 UFW 允许必要的服务
如果 /etc/services 中定义了常见服务,UFW 可以按服务名称允许其流量,也可以按端口号进行设置。现在让我们允许 HTTP(Web 流量)和 SSH:
sudo ufw allow http
sudo ufw allow https
sudo ufw status使用 UFW 自定义端口访问
有时您需要开放一个没有标准服务名称的特定端口,例如自定义应用使用的 8080 端口。您还可以指定协议(TCP 或 UDP)。
下面是允许 8080 端口上的 TCP 流量的方法:
sudo ufw allow 8080/tcp
sudo ufw status认识 firewalld:动态防火墙
在 CentOS 和 Fedora 等基于 Red Hat 的系统上,防火墙管理工具是 firewalld。它是一个动态防火墙守护进程,这意味着您可以更改规则,而无需重启整个防火墙服务。
firewalld 使用“区域”这一概念管理规则,从而提供更灵活的安全管理方式。
了解 firewalld 区域
firewalld 会将防火墙规则组织到不同的区域中。每个区域都有一组默认规则,并且可以分配给网络接口。
常见区域包括:
- public:用于不受信任的网络(外部接口的默认区域)。
- home/internal:用于受信任的网络。
- trusted:接受所有网络连接。
这样,您就可以根据网络的信任级别应用不同的安全级别。
使用 firewalld 允许服务
要使用 firewalld 允许服务,您需要指定服务和区域,并使用 --permanent 标志,使规则在重启后仍然有效。然后,您还需要重新加载 firewalld。
现在让我们在 public 区域中开放 SSH 和 HTTP:
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all --zone=public防火墙快速检查
您已经了解了 UFW 和 firewalld。以下关于这些防火墙工具的说法哪些是 TRUE?
防火墙:服务器的盾牌
做得很好!您已经了解了防火墙在服务器安全中的重要作用。现在您已经掌握了以下内容:
- 防火墙是什么,以及它为什么必不可少。
- UFW 如何在 Ubuntu/Debian 上工作,包括如何启用它以及允许服务。
- firewalld 如何在 CentOS/RHEL 上工作、区域的概念,以及如何添加服务。
熟练掌握这些工具对于控制网络访问和保护服务器安全至关重要。接下来,我们将深入了解如何管理特定端口及其安全影响!
用 AI 导师学习 Linux Server Deployment & SSH Mastery — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 12
- 课程
- 48
常见问题解答
「了解防火墙(UFW/firewalld)」课时是免费的吗?
是的 — 「了解防火墙(UFW/firewalld)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
「了解防火墙(UFW/firewalld)」这节课中我会学到什么?
学习防火墙的基本概念,以及如何使用 UFW(Ubuntu)或 firewalld(CentOS)等常用工具控制网络流量 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Server Deployment & SSH Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「了解防火墙(UFW/firewalld)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?
能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 基本网络配置
- 了解防火墙(UFW/firewalld)
- 端口管理与安全
- DNS 配置与故障排查