学习Ubuntu防火墙自定义规则,能快速解决哪些具体网络连接或访问限制问题?
- 内容介绍
- 文章标签
- 相关推荐
尽快处理哪些网络连接或访问限制问题?
在日常运维中。往往会遇到以下几类痛点:
- SSH 被无差别暴露给公网,导致暴力风险。
- Web 服务器对外开放多端口,但某些内部服务必须隔离。
- 需要把某个 IP 或子网排除在所有访问之外以防止恶意流量。
- 默认策略不明确,导致不必要的入站或出站流量被接受。
主要目标
通过自定义 Ubuntu 防火墙规则,精准控制:
- 允许或拒绝特定 IP / 子网的访问。
- 针对单一端口做细粒度授权。
- 统一设置默认入站/出站策略。话说回来,
- 随时加载、删除或重置规则。保持程序安全与灵活性,
基本使用方法
检查状态与现有规则
sudo ufw status verbose
启用 UFW
sudo ufw enable
自定义规则实例
1️⃣ 允许本地 LAN 所有端口 解决“局域网内部机器无法访问服务”痛点
# 允许子网内任何主机访问所有端口
sudo ufw allow from 192.168.1.0/24 to any port any
2️⃣ 拒绝 SSH 解决“SSH 被公开暴露”痛点
# 拒绝所有来源对 TCP 22 的访问
sudo ufw deny 22/tcp
如果你只想拒绝特定 IP 的 SSH 接入:
# 拒绝 IP 为 192.168.1.100 对 TCP 22 的请求
sudo ufw deny from 192.168.1.100 to any port 22
相反,如果你想只允许该 IP 的 SSH:
# 放行该 IP 对 TCP 22 的请求。并全局拒绝其余来源
sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw deny to any port 22
3️⃣ 全局默认策略设置 解决“默认接受所有入站流量”痛点
- 默认拒绝所有入站连接:
- 默认允许所有出站连接:
- 如需完全隔离,请将出站也设为拒绝,接下来按需放行:
# 设置默认入站为拒绝
sudo ufw default deny incoming
# 设置默认出站为允许
sudo ufw default allow outgoing
# 设置默认出站为拒绝,只放通需要的服务,例如 HTTP、HTTPS、DNS 等
sudo ufw default deny outgoing
\
sudo ufw allow out proto tcp from any to any port {80,443} comment 'Web outbound'
4️⃣ 删除已存在的规则 解决“误开放端口导致攻击面扩大”痛点
# 查看带编号的规则列表
$ sudo ufw status numbered
# 删除编号为 N 的规则,例如删除第5条
$ sudo ufw delete N
# 或直接根据描述删除,例如:
$ sudo ufw delete allow 80/tcp
# 确认删除后重新加载
$ sudo ufw reload
即时应用 & 重载策略
-
a) 如何让修改立即生效?
b) 有没有更快的方法而不是重启整个服务?答案
sudo ufw reload此命令会重新读取配置文件并应用,而不会影响已建立连接。若你只做了简单增删,可以直接ufw enable/ufw disable来切换。若遇到 “command not found”,请确认已安装ufw包:apt install -y ufw`
请根据上述示例。你可以针对自己的业务场景快速拼装一套专属防火墙配置,既保障安全,又保持业务灵活性。祝你运维顺利,
。尽快处理哪些网络连接或访问限制问题?
在日常运维中。往往会遇到以下几类痛点:
- SSH 被无差别暴露给公网,导致暴力风险。
- Web 服务器对外开放多端口,但某些内部服务必须隔离。
- 需要把某个 IP 或子网排除在所有访问之外以防止恶意流量。
- 默认策略不明确,导致不必要的入站或出站流量被接受。
主要目标
通过自定义 Ubuntu 防火墙规则,精准控制:
- 允许或拒绝特定 IP / 子网的访问。
- 针对单一端口做细粒度授权。
- 统一设置默认入站/出站策略。话说回来,
- 随时加载、删除或重置规则。保持程序安全与灵活性,
基本使用方法
检查状态与现有规则
sudo ufw status verbose
启用 UFW
sudo ufw enable
自定义规则实例
1️⃣ 允许本地 LAN 所有端口 解决“局域网内部机器无法访问服务”痛点
# 允许子网内任何主机访问所有端口
sudo ufw allow from 192.168.1.0/24 to any port any
2️⃣ 拒绝 SSH 解决“SSH 被公开暴露”痛点
# 拒绝所有来源对 TCP 22 的访问
sudo ufw deny 22/tcp
如果你只想拒绝特定 IP 的 SSH 接入:
# 拒绝 IP 为 192.168.1.100 对 TCP 22 的请求
sudo ufw deny from 192.168.1.100 to any port 22
相反,如果你想只允许该 IP 的 SSH:
# 放行该 IP 对 TCP 22 的请求。并全局拒绝其余来源
sudo ufw allow from 192.168.1.100 to any port 22
sudo ufw deny to any port 22
3️⃣ 全局默认策略设置 解决“默认接受所有入站流量”痛点
- 默认拒绝所有入站连接:
- 默认允许所有出站连接:
- 如需完全隔离,请将出站也设为拒绝,接下来按需放行:
# 设置默认入站为拒绝
sudo ufw default deny incoming
# 设置默认出站为允许
sudo ufw default allow outgoing
# 设置默认出站为拒绝,只放通需要的服务,例如 HTTP、HTTPS、DNS 等
sudo ufw default deny outgoing
\
sudo ufw allow out proto tcp from any to any port {80,443} comment 'Web outbound'
4️⃣ 删除已存在的规则 解决“误开放端口导致攻击面扩大”痛点
# 查看带编号的规则列表
$ sudo ufw status numbered
# 删除编号为 N 的规则,例如删除第5条
$ sudo ufw delete N
# 或直接根据描述删除,例如:
$ sudo ufw delete allow 80/tcp
# 确认删除后重新加载
$ sudo ufw reload
即时应用 & 重载策略
-
a) 如何让修改立即生效?
b) 有没有更快的方法而不是重启整个服务?答案
sudo ufw reload此命令会重新读取配置文件并应用,而不会影响已建立连接。若你只做了简单增删,可以直接ufw enable/ufw disable来切换。若遇到 “command not found”,请确认已安装ufw包:apt install -y ufw`
请根据上述示例。你可以针对自己的业务场景快速拼装一套专属防火墙配置,既保障安全,又保持业务灵活性。祝你运维顺利,
。
