一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

LNMP架构中怎样配置防火墙

时间:2026-06-16 08:34:49 编辑:袖梨 来源:一聚教程网

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

LNMP架构中如何配置防火墙

一、常用防火墙工具选择

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 firewalldsudo 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 DROPsudo iptables -P FORWARD DROPsudo 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 ACCEPTsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTsudo 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 savesudo systemctl restart iptables
    (注:CentOS 7及以上默认使用firewalld,iptables需额外安装iptables-services包)。

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

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

  1. 安装与启用ufw
    sudo apt updatesudo apt install ufwsudo ufw enable# 启用ufw,首次启用会提示确认
  2. 配置开放端口允许SSH、Nginx、MySQL、PHP-FPM端口:
    sudo ufw allow ssh # 允许SSH(默认22端口)sudo ufw allow 80/tcp# 允许HTTPsudo ufw allow 443/tcp # 允许HTTPSsudo ufw allow 3306/tcp# 允许MySQLsudo 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架构中的服务器免受非法访问和常见网络攻击。需根据实际业务需求调整端口开放范围,遵循“最小权限”原则。

热门栏目