企业级内部网络防火墙模型核心是分层控制、最小权限和状态感知,需明确input/forward/output三链职责,前置默认拒绝并优先放行回环、已建立连接及管理ssh,再通过snat/dnat+白名单+速率限制实现安全可控的内外流量。

构建企业级内部网络防火墙模型,核心是分层控制、最小权限和状态感知。不追求规则数量多,而要逻辑清晰、可维护性强、不自锁、不干扰业务流量。
明确网络角色与流量路径
先理清设备在网络中的定位:内网服务器(如192.168.10.0/24)、防火墙主机(双网卡:内网卡ens33=192.168.10.1,外网卡ens37=203.0.113.10)、外部客户端。关键点在于区分INPUT(进防火墙本机)、FORWARD(穿防火墙转发)、OUTPUT(防火墙自己发出)三类流量,避免混用链导致策略失效。
- 内网访问外网 → 走FORWARD + SNAT
- 外网访问内网服务(如Web)→ 走FORWARD + DNAT
- 管理员SSH登录防火墙 → 走INPUT
- 防火墙自身更新或DNS查询 → 走OUTPUT
基础安全策略必须前置
默认拒绝是底线,但必须在设DROP前放通必要通道,否则远程管理会中断。典型顺序如下:
- 允许回环接口:
iptables -A INPUT -i lo -j ACCEPT - 允许已建立连接返回:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT - 放行管理IP的SSH(例如仅192.168.100.0/24):
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 22 -m conntrack --ctstate NEW -j ACCEPT - 最后设默认策略:
iptables -P INPUT DROP(注意:INPUT、FORWARD、OUTPUT需分别设置)
内网出向控制(SNAT + 出站白名单)
内网用户不能随意访问任意外网资源,应限制协议和目标端口。例如只允许HTTP/HTTPS/DNS/SMTP:
- 启用IP转发:
echo 1 > /proc/sys/net/ipv4/ip_forward,并写入/etc/sysctl.d/99-ipforward.conf - 配置SNAT:
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j MASQUERADE - 限制内网出站端口(FORWARD链):
iptables -A FORWARD -s 192.168.10.0/24 -p tcp -m multiport --dports 53,80,443,25,465,587 -j ACCEPT - 拒绝其余所有转发:
iptables -A FORWARD -s 192.168.10.0/24 -j DROP
服务发布与入向防护(DNAT + 连接限速)
对外发布Web服务时,不直接暴露内网IP,而是通过DNAT+状态过滤+速率控制组合实现:
- DNAT到内网Web服务器:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.10.100:80 - 放行转发请求(仅NEW状态):
iptables -A FORWARD -p tcp -d 192.168.10.100 --dport 80 -m conntrack --ctstate NEW -j ACCEPT - 防暴力扫描:每IP每分钟最多5个新连接:
iptables -A FORWARD -p tcp --dport 80 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j DROP - 防SYN洪水:启用内核syncookies,并限制单IP新建连接频次:
iptables -A INPUT -p tcp --syn -m limit --limit 1/sec --limit-burst 3 -j ACCEPT











