Ubuntu From Scratch如何设置防火墙
导读:Ubuntu From Scratch 防火墙设置指南 前置说明与准备 这里的“Ubuntu From Scratch”通常指基于 Ubuntu 的最小化/服务器环境(并非从零编译内核的“from scratch”)。以下以 UFW(Un...
Ubuntu From Scratch 防火墙设置指南
前置说明与准备
- 这里的“Ubuntu From Scratch”通常指基于 Ubuntu 的最小化/服务器环境(并非从零编译内核的“from scratch”)。以下以 UFW(Uncomplicated Firewall) 为核心工具进行配置,底层仍是 iptables。
- 建议先确保系统已安装 UFW,并具备 sudo 权限;如未安装可执行:
sudo apt update & & sudo apt install ufw -y。 - 为避免被锁在系统外,务必在启用防火墙前先放行 SSH 端口(默认 22/TCP),或确保有控制台/带外访问方式。
快速上手
- 设置默认策略为拒绝入站、放行出站:
sudo ufw default deny incoming与sudo ufw default allow outgoing(按需调整)。 - 放行常用服务端口(示例):
sudo ufw allow 22/tcp(SSH)、sudo ufw allow 80/tcp(HTTP)、sudo ufw allow 443/tcp(HTTPS);也可使用服务名:sudo ufw allow ssh、sudo ufw allow 'Apache Full'(若已安装相关服务元信息)。 - 启用防火墙:
sudo ufw enable(提示是否继续时输入 y;启用后随系统启动自动加载)。 - 查看状态与规则:
sudo ufw status verbose;如需精简输出可用sudo ufw status。 - 关闭或重置:
sudo ufw disable;删除单条规则可用sudo ufw delete allow < 端口/服务>。
常用规则示例
- 仅允许某 IP 访问 SSH:
sudo ufw allow proto tcp from 203.0.113.10 to any port 22。 - 放行特定来源的某端口:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 3306(示例为数据库)。 - 放行 DNS 查询(UDP/TCP):
sudo ufw allow 53。 - 删除规则:
sudo ufw delete allow 80/tcp或sudo ufw delete allow from 203.0.113.10 to any port 22。 - 开启/关闭日志:
sudo ufw logging on|off(便于审计与排错)。
进阶配置与注意事项
- 与 Docker 共存:Docker 默认会操作 iptables,可能导致端口绕过 UFW。若需由 UFW 统一管理,可在 /etc/docker/daemon.json 中设置
"iptables": false并重启 Docker;注意这会影响容器网络与端口发布策略,需另行规划(如改用 host 网络或显式在 UFW 放行对应端口)。 - 禁止 ICMP Ping:编辑 /etc/ufw/before.rules,将
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT改为 DROP;IPv6 对应 /etc/ufw/before6.rules 的ufw6-before-input行,修改后执行sudo ufw reload。 - 规则持久化与文件位置:UFW 规则与配置位于 /etc/ufw/(如 before.rules、after.rules、user.rules、ufw.conf 等);直接编辑规则文件后需
sudo ufw reload使生效。 - 故障排查:使用
sudo ufw status verbose查看生效规则与日志;若启用了日志,可结合系统日志定位被拒连接;必要时临时sudo ufw disable恢复访问,再修正规则。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu From Scratch如何设置防火墙
本文地址: https://pptw.com/jishu/773318.html
