LNMP中防火墙配置技巧
导读:LNMP防火墙配置技巧 一 核心原则与最小暴露面 只开放必需端口:Web 侧至少放行 80/443;数据库 3306 建议仅内网或跳板机访问;管理口 22 限制来源或改为非默认端口。 分层防护:操作系统防火墙(如 firewalld/ip...
LNMP防火墙配置技巧
一 核心原则与最小暴露面
- 只开放必需端口:Web 侧至少放行 80/443;数据库 3306 建议仅内网或跳板机访问;管理口 22 限制来源或改为非默认端口。
- 分层防护:操作系统防火墙(如 firewalld/iptables/ufw)+ 云厂商安全组双重校验,避免单点失效。
- 变更可回滚:修改前备份规则,变更后逐项验证,保留紧急回退方案。
- 默认拒绝:在无状态或严格策略下优先采用默认拒绝,再按需放行已验证的流量。
二 常用发行版快速配置
- CentOS 7+/RHEL 7+ 使用 firewalld(推荐)
- 启动与开机自启:
systemctl start firewalld & & systemctl enable firewalld - 放行 Web 与数据库:
firewall-cmd --permanent --zone=public --add-service=http --add-service=https --add-port=3306/tcp - 放行 SSH(如非默认端口,替换为实际端口):
firewall-cmd --permanent --zone=public --add-port=22/tcp - 使配置生效:
firewall-cmd --reload - 验证:
firewall-cmd --list-all或firewall-cmd --query-port=443/tcp
- 启动与开机自启:
- Ubuntu/Debian 使用 ufw
- 启用:
ufw enable - 放行常用端口:
ufw allow 80/tcp, 443/tcp, 3306/tcp, 22/tcp - 来源限制示例:
ufw allow from < IP_ADDRESS> to any port 22,80,443 - 查看状态:
ufw status
- 启用:
- CentOS 6/旧环境使用 iptables
- 备份:
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak - 规则示例(请先放行 SSH 再变更,避免锁死):
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT - 保存并重启:
service iptables save & & service iptables restart
- 备份:
- 云厂商安全组要点
- 入方向放行 22/80/443;数据库端口 3306 建议仅放行业务网段或跳板机 IP/CIDR,避免使用 0.0.0.0/0。
三 进阶安全与运维技巧
- 限制数据库访问来源
- firewalld 富规则:
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="< TRUSTED_SUBNET> " port port="3306" protocol="tcp" accept' - ufw 来源限制:
ufw allow from < TRUSTED_IP> /< MASK> to any port 3306
- firewalld 富规则:
- 管理口加固
- 更改默认 SSH 端口并仅允许可信网段;或临时在变更窗口外封禁:
firewall-cmd --permanent --zone=public --remove-port=22/tcp & & firewall-cmd --reload
- 更改默认 SSH 端口并仅允许可信网段;或临时在变更窗口外封禁:
- 端口与服务映射
- 使用
--add-service优先于--add-port,便于语义化管理;端口变更后记得--reload
- 使用
- 状态与连接保障
- 放行已建立连接:
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT,避免会话中断
- 放行已建立连接:
- 规则验证与回滚
- 逐项验证:
firewall-cmd --query-port=443/tcp、ss -lntp | grep ':443' - 回滚:firewalld 使用已保存的
--permanent配置或备份文件恢复;iptables 使用备份iptables-restore < /etc/sysconfig/iptables.bak
- 逐项验证:
- 应用层 WAF 辅助
- 在 Nginx 侧叠加 ngx_lua_waf 等规则,过滤常见 Web 攻击向量,作为系统防火墙的补充。
四 常见陷阱与排查清单
- 变更前未放行 22/SSH,导致远程断开;务必先放行或现场控制台可回滚。
- 云上只开了系统防火墙,忘记放行云安全组,导致端口仍不可达;两边规则需一致。
- 数据库 3306 对 0.0.0.0/0 开放;应改为内网或跳板机网段。
- 规则未
--reload或service iptables restart,变更未生效。 - 使用
DROP策略但未放行已建立连接,导致现有会话中断;务必先放行ESTABLISHED,RELATED。 - 多网卡/区域未将接口加入正确 zone,导致规则不生效;用
firewall-cmd --get-active-zones与--zone=public --add-interface=< iface>修正。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: LNMP中防火墙配置技巧
本文地址: https://pptw.com/jishu/763229.html
