Debian防火墙策略怎么制定
导读:Debian防火墙策略制定与落地 一、策略设计原则 明确安全目标:仅开放必需服务,遵循最小暴露面原则。 默认拒绝、按需放行:入站默认DROP,出站默认ACCEPT;对管理口(如SSH 22/TCP)建议限制来源网段或IP。 状态化放行:对...
Debian防火墙策略制定与落地
一、策略设计原则
- 明确安全目标:仅开放必需服务,遵循最小暴露面原则。
- 默认拒绝、按需放行:入站默认DROP,出站默认ACCEPT;对管理口(如SSH 22/TCP)建议限制来源网段或IP。
- 状态化放行:对已有连接放行(如状态为ESTABLISHED),减少规则复杂度与误封风险。
- 纵深防御:与云安全组/物理防火墙协同,配合fail2ban等工具抵御暴力破解。
- 可观测与可回滚:开启日志,变更前备份,变更后验证与留痕。
二、工具选择与适用场景
| 工具 | 适用场景 | 主要优点 | 持久化与要点 |
|---|---|---|---|
| UFW | 快速上手、单机/小团队 | 语法简洁、默认策略清晰 | Debian需安装;ufw enable 前务必先放行 SSH;规则在 /etc/ufw/ |
| iptables | 精细控制、复杂策略 | 灵活强大、可编排复杂规则 | 规则需持久化:iptables-save >
/etc/iptables/rules.v4 并配置开机恢复 |
| firewalld | 需要“区域/富规则”模型 | 动态管理、区域隔离 | firewall-cmd --runtime-to-permanent 保存;适合多接口/多环境 |
| 说明:UFW在Debian上并非默认安装;iptables为内核包过滤基础;firewalld提供更高层抽象。 |
三、落地步骤与示例
-
通用准备
- 备份当前规则:
sudo iptables -L -n -v、sudo iptables-save > ~/iptables-$(date +%F).bak - 规划变更窗口与回滚方案,优先在测试环境验证。
- 备份当前规则:
-
方案A UFW快速落地(适合大多数场景)
- 安装与初始化
sudo apt update & & sudo apt install ufwsudo ufw default deny incomingsudo ufw default allow outgoing
- 放行管理口与业务口
sudo ufw allow 22/tcp(或更安全:sudo ufw allow from < 可信IP> /32 to any port 22)sudo ufw allow 80,443/tcp
- 启用与验证
sudo ufw enablesudo ufw status verbose;如需编号查看:sudo ufw status numbered
- 云环境
- 同时在云厂商控制台配置安全组(仅放通必要来源与端口),与UFW形成双重防线。
- 安装与初始化
-
方案B iptables精细落地(适合需要复杂策略)
- 默认策略与回环口
sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPTsudo iptables -A INPUT -i lo -j ACCEPT
- 状态化放行已建立连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- 放行业务与管理
- SSH(限制来源):
sudo iptables -A INPUT -p tcp --dport 22 -s < 可信IP> /32 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT - HTTP/HTTPS:
sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
- SSH(限制来源):
- 基本加固
- 限制每个IP的新建SYN连接数:
sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j DROP - 启用SYN Cookies:
echo 1 | sudo tee /proc/sys/net/ipv4/tcp_syncookies - 记录被拒绝包:
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
- 限制每个IP的新建SYN连接数:
- 持久化
- 保存:
sudo iptables-save | sudo tee /etc/iptables/rules.v4 - 开机恢复:安装
iptables-persistent并执行sudo netfilter-persistent save & & sudo netfilter-persistent start,或配置iptables-restore < /etc/iptables/rules.v4。
- 保存:
- 默认策略与回环口
-
方案C firewalld落地(适合区域化与富规则)
- 安装与启动
sudo apt update & & sudo apt install firewalldsudo systemctl start firewalld & & sudo systemctl enable firewalld
- 基础放行
sudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
- 富规则示例(仅可信IP访问SSH)
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100/32" service name="ssh" accept'
- 生效与持久化
sudo firewall-cmd --reload- 变更后执行:
sudo firewall-cmd --runtime-to-permanent
- 安装与启动
四、验证与运维
- 连通性与策略验证
- 本机:
sudo iptables -L -n -v -x、sudo ufw status verbose、sudo firewall-cmd --list-all - 远端:对开放端口进行连通性测试(如
curl -Iv https://your-domain)
- 本机:
- 日志与告警
- 查看拒绝日志:
sudo tail -f /var/log/kern.log | grep IPTables-Dropped - 可结合
logwatch做日报摘要
- 查看拒绝日志:
- 备份与回滚
- iptables:
iptables-save > /etc/iptables/rules.v4.bak-$(date +%F) - UFW:备份
/etc/ufw/配置或导出规则
- iptables:
- 云环境协同
- 同时收紧安全组与系统防火墙,避免“只开一边”造成误判。
五、常见场景模板
- 公网Web服务器
- 入站:仅放通 TCP 22/80/443;SSH建议限制来源IP;开启日志与速率限制
- 出站:默认允许;如需收敛,可按业务白名单放行
- 加固:启用 SYN Cookies、连接数限制、与 fail2ban 联动
- 内网应用服务器
- 入站:仅放通来自内网的必要端口;SSH仅限跳板/管理网段
- 出站:按应用需求最小化放行(数据库、API等)
- 网关/NAT出口
- 开启转发:
net.ipv4.ip_forward=1 - SNAT/MASQUERADE:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - 端口映射(DNAT):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80 - 注意:云上应使用VPC路由/NAT网关为主,主机侧iptables做补充
- 开启转发:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian防火墙策略怎么制定
本文地址: https://pptw.com/jishu/759814.html
