首页主机资讯LNMP架构中如何配置防火墙

LNMP架构中如何配置防火墙

时间2025-10-24 21:54:04发布访客分类主机资讯浏览441
导读:LNMP架构防火墙配置指南 在LNMP(Linux+Nginx+MySQL+PHP)架构中,防火墙是保障服务器安全的关键组件,需通过合理配置开放必要端口、限制非法访问。以下是针对不同防火墙工具的具体配置步骤及安全建议: 一、常用防火墙工具选...

LNMP架构防火墙配置指南
在LNMP(Linux+Nginx+MySQL+PHP)架构中,防火墙是保障服务器安全的关键组件,需通过合理配置开放必要端口、限制非法访问。以下是针对不同防火墙工具的具体配置步骤及安全建议:

一、常用防火墙工具选择

Linux系统中常见的防火墙工具包括:

  • firewalld(CentOS/RHEL 7及以上默认工具,支持动态管理规则);
  • iptables(传统工具,需手动管理规则,适用于CentOS 6等旧系统);
  • ufw(Ubuntu/Debian默认工具,语法简单,适合新手)。
    选择时需结合系统版本和个人熟悉程度。

二、基于firewalld的配置(CentOS 7/8及以上)

firewalld通过“区域”和“服务”管理规则,适合动态调整:

  1. 安装与启动firewalld
    若未安装,执行sudo yum install firewalld -y(CentOS)安装;启动服务并设置开机自启:
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  2. 配置开放端口
    LNMP核心服务需开放以下端口:
    • Nginx:HTTP(80/tcp)、HTTPS(443/tcp);
    • MySQL:3306/tcp(数据库访问);
    • PHP-FPM:9000/tcp(默认端口,若使用socket则无需开放)。
      使用以下命令开放:
    sudo firewall-cmd --permanent --add-service=http  # 开放HTTP服务(含80端口)
    sudo firewall-cmd --permanent --add-service=https # 开放HTTPS服务(含443端口)
    sudo firewall-cmd --permanent --add-port=3306/tcp # 开放MySQL端口
    sudo firewall-cmd --permanent --add-port=9000/tcp # 开放PHP-FPM端口(可选)
    
    --permanent表示永久生效,需重新加载配置:
    sudo firewall-cmd --reload
    
  3. 验证配置
    查看当前开放的端口和服务:
    sudo firewall-cmd --list-all
    
    输出应包含上述端口/服务。

三、基于iptables的配置(CentOS 6等旧系统)

iptables需手动添加规则,适合需要精细控制的场景:

  1. 设置默认策略
    拒绝所有入站、转发流量,允许所有出站流量(默认安全策略):
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
    
  2. 允许必要流量
    • 允许已建立的连接(避免中断现有会话):
      sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      
    • 允许SSH(22/tcp,远程管理)、HTTP(80/tcp)、HTTPS(443/tcp)、MySQL(3306/tcp):
      sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
      
    • 允许本地回环接口(lo,本地服务通信):
      sudo iptables -A INPUT -i lo -j ACCEPT
      
  3. 保存与重启规则
    CentOS 6使用service命令保存:
    sudo service iptables save
    sudo systemctl restart iptables
    
    (注:CentOS 7及以上默认使用firewalld,iptables需额外安装iptables-services包)。

四、基于ufw的配置(Ubuntu/Debian)

ufw语法简洁,适合快速配置:

  1. 安装与启用ufw
    sudo apt update
    sudo apt install ufw
    sudo ufw enable  # 启用ufw,首次启用会提示确认
    
  2. 配置开放端口
    允许SSH、Nginx、MySQL、PHP-FPM端口:
    sudo ufw allow ssh           # 允许SSH(默认22端口)
    sudo ufw allow 80/tcp        # 允许HTTP
    sudo ufw allow 443/tcp       # 允许HTTPS
    sudo ufw allow 3306/tcp      # 允许MySQL
    sudo ufw allow 9000/tcp      # 允许PHP-FPM(可选)
    
  3. 查看与验证
    查看当前规则:
    sudo ufw status verbose
    
    输出应显示“ALLOW”状态的对应端口。

五、安全增强建议

  1. 限制SSH访问
    避免开放所有IP的SSH端口,仅允许可信IP访问(如公司IP):
    • firewalld:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
    • ufw:sudo ufw allow from 192.168.1.100 to any port 22
  2. 关闭SELinux(可选)
    若不需要SELinux的强制访问控制,可临时关闭(setenforce 0)或永久关闭(修改/etc/selinux/config中的SELINUX=disabled),但需注意这会降低系统安全性。
  3. 定期更新规则
    随着业务变化(如新增服务端口),及时调整防火墙规则,删除不必要的端口开放。
  4. 监控日志
    查看防火墙日志(如/var/log/ufw.log/var/log/messages),及时发现异常访问(如大量失败的SSH登录尝试)。

通过以上配置,可有效保护LNMP架构中的服务器免受非法访问和常见网络攻击。需根据实际业务需求调整端口开放范围,遵循“最小权限”原则。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: LNMP架构中如何配置防火墙
本文地址: https://pptw.com/jishu/735009.html
如何在LNMP中设置邮件服务 Linux下如何更新LNMP组件

游客 回复需填写必要信息