首页主机资讯LNMP中防火墙配置技巧

LNMP中防火墙配置技巧

时间2025-12-04 09:17:04发布访客分类主机资讯浏览578
导读: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-allfirewall-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
  • 管理口加固
    • 更改默认 SSH 端口并仅允许可信网段;或临时在变更窗口外封禁:firewall-cmd --permanent --zone=public --remove-port=22/tcp & & firewall-cmd --reload
  • 端口与服务映射
    • 使用 --add-service 优先于 --add-port,便于语义化管理;端口变更后记得 --reload
  • 状态与连接保障
    • 放行已建立连接:iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT,避免会话中断
  • 规则验证与回滚
    • 逐项验证:firewall-cmd --query-port=443/tcpss -lntp | grep ':443'
    • 回滚:firewalld 使用已保存的 --permanent 配置或备份文件恢复;iptables 使用备份 iptables-restore < /etc/sysconfig/iptables.bak
  • 应用层 WAF 辅助
    • Nginx 侧叠加 ngx_lua_waf 等规则,过滤常见 Web 攻击向量,作为系统防火墙的补充。

四 常见陷阱与排查清单

  • 变更前未放行 22/SSH,导致远程断开;务必先放行或现场控制台可回滚。
  • 云上只开了系统防火墙,忘记放行云安全组,导致端口仍不可达;两边规则需一致。
  • 数据库 33060.0.0.0/0 开放;应改为内网或跳板机网段。
  • 规则未 --reloadservice 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
LNMP服务器监控工具推荐 LNMP环境下缓存技术应用

游客 回复需填写必要信息