debian防火墙如何与其他服务联动
导读:Debian 防火墙与其他服务联动实践 一、工具选型与总体思路 常用防火墙栈:UFW(入门友好)、iptables(经典灵活)、nftables(新一代语法与性能)、firewalld(动态区域管理)。 联动目标:与SSH、Nginx等服...
Debian 防火墙与其他服务联动实践
一、工具选型与总体思路
- 常用防火墙栈:UFW(入门友好)、iptables(经典灵活)、nftables(新一代语法与性能)、firewalld(动态区域管理)。
- 联动目标:与SSH、Nginx等服务联动开放端口;与Fail2ban联动自动封禁;与日志系统联动审计;按需做NAT/端口转发与端口范围控制。
二、与常见服务的联动配置
-
SSH
- UFW:启用前先放行端口,避免断连
- 默认端口:sudo ufw allow OpenSSH 或 sudo ufw allow 22/tcp
- 自定义端口(如2222):sudo ufw allow 2222/tcp
- firewalld:sudo firewall-cmd --permanent --add-service=ssh & & sudo firewall-cmd --reload
- 提示:修改 SSH 端口后,务必同步更新防火墙规则。
- UFW:启用前先放行端口,避免断连
-
Nginx/HTTP(S)
- UFW:直接放行服务或端口
- 服务名:sudo ufw allow ‘Nginx Full’
- 端口:sudo ufw allow 80/tcp,sudo ufw allow 443/tcp
- 按来源 IP 限制访问(示例仅允许192.168.1.100访问 80/443)
- sudo ufw allow from 192.168.1.100 to any port 80
- sudo ufw allow from 192.168.1.100 to any port 443
- 验证:sudo ufw status 查看规则是否生效。
- UFW:直接放行服务或端口
三、与安全工具的联动
-
Fail2ban(自动封禁暴力破解)
- 安装与启用:sudo apt update & & sudo apt install fail2ban & & sudo systemctl enable --now fail2ban
- 保护 SSH(/etc/fail2ban/jail.local 或 jail.d/sshd.local)
- 示例:
- [sshd]
- enabled = true
- port = ssh
- filter = sshd
- logpath = /var/log/auth.log
- maxretry = 5
- findtime = 600
- bantime = 3600
- 示例:
- 说明:UFW 环境下可使用ufw-ban等动作脚本;iptables/nftables 环境由 fail2ban 直接插入 DROP 规则。
-
日志与审计
- UFW 日志:sudo ufw logging on,查看 /var/log/ufw.log;或在 /var/log/syslog 中检索 iptables denied。
- iptables 日志:在 DROP 前记录
- sudo iptables -A INPUT -j LOG --log-prefix "iptables denied: "
- 持久化:保存至 /etc/iptables/rules.v4 并在启动时恢复。
-
系统审计与恶意软件检测(配合防火墙策略验证)
- Lynis:sudo apt install lynis & & sudo lynis system-audit
- rkhunter:sudo apt install rkhunter & & sudo rkhunter --check。
四、网络与运维场景联动
-
NAT 与端口转发
- firewalld
- 启用伪装(出口 NAT):sudo firewall-cmd --add-masquerade --permanent & & sudo firewall-cmd --reload
- 端口转发示例:
- 本机端口转发:sudo firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=2022
- 转发到内网主机:sudo firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10
- 转发并重映射端口:sudo firewall-cmd --permanent --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37
- iptables
- SNAT(出网源地址转换):sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 203.0.113.5
- DNAT(入站端口映射):sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
- 提示:启用转发需打开内核 IP 转发(见下文)。
- firewalld
-
端口范围与接口/来源限制
- UFW 端口范围:sudo ufw allow 8090:9090/tcp
- UFW 按接口限制:sudo ufw allow in on eth2 to any port 3306
- UFW 按来源限制:sudo ufw allow from 192.168.1.0/24 to any port 3306
- firewalld 富规则(仅允许指定来源访问 SSH):
- sudo firewall-cmd --add-rich-rule=‘rule family=“ipv4” service name=“ssh” source address=“192.168.0.12/32” accept’ --permanent
- sudo firewall-cmd --reload。
五、规则持久化与开机自启
- UFW:规则即时生效;持久化随 UFW 启用自动处理(建议变更后用 sudo ufw status 复核)。
- iptables
- Debian 11+/通用做法:安装 iptables-persistent
- sudo apt install iptables-persistent
- 安装时选择保存当前规则;后续可用 iptables-save > /etc/iptables/rules.v4 更新
- 旧版/通用脚本:在 /etc/network/if-pre-up.d/iptables 中恢复规则并赋权,确保开机加载
- 示例:/sbin/iptables-restore < /etc/iptables/rules.v4,chmod +x /etc/network/if-pre-up.d/iptables
- Debian 11+/通用做法:安装 iptables-persistent
- nftables
- 保存与加载:sudo nft list ruleset > /etc/nftables.conf
- 开机启用:sudo systemctl enable --now nftables
- firewalld
- 动态生效,变更后用 sudo firewall-cmd --reload;服务自启:sudo systemctl enable --now firewalld
- 通用系统设置
- 启用 IP 转发(NAT/转发场景必需):编辑 /etc/sysctl.conf
- net.ipv4.ip_forward=1
- 使生效:sudo sysctl -p。
- 启用 IP 转发(NAT/转发场景必需):编辑 /etc/sysctl.conf
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: debian防火墙如何与其他服务联动
本文地址: https://pptw.com/jishu/749398.html
