最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
LNMP架构中怎样配置防火墙
时间:2026-06-16 08:34:49 编辑:袖梨 来源:一聚教程网
LNMP架构防火墙配置指南在LNMP(Linux+Nginx+MySQL+PHP)架构中,防火墙是保障服务器安全的关键组件,需通过合理配置开放必要端口、限制非法访问。以下是针对不同防火墙工具的具体配置步骤及安全建议:

一、常用防火墙工具选择
Linux系统中常见的防火墙工具包括:
- firewalld(CentOS/RHEL 7及以上默认工具,支持动态管理规则);
- iptables(传统工具,需手动管理规则,适用于CentOS 6等旧系统);
- ufw(Ubuntu/Debian默认工具,语法简单,适合新手)。选择时需结合系统版本和个人熟悉程度。
二、基于firewalld的配置(CentOS 7/8及以上)
firewalld通过“区域”和“服务”管理规则,适合动态调整:
- 安装与启动firewalld若未安装,执行
sudo yum install firewalld -y(CentOS)安装;启动服务并设置开机自启:sudo systemctl start firewalldsudo systemctl enable firewalld - 配置开放端口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 - 验证配置查看当前开放的端口和服务:
输出应包含上述端口/服务。sudo firewall-cmd --list-all
三、基于iptables的配置(CentOS 6等旧系统)
iptables需手动添加规则,适合需要精细控制的场景:
- 设置默认策略拒绝所有入站、转发流量,允许所有出站流量(默认安全策略):
sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT - 允许必要流量
- 允许已建立的连接(避免中断现有会话):
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
- 允许已建立的连接(避免中断现有会话):
- 保存与重启规则CentOS 6使用
service命令保存:
(注:CentOS 7及以上默认使用firewalld,iptables需额外安装sudo service iptables savesudo systemctl restart iptablesiptables-services包)。
四、基于ufw的配置(Ubuntu/Debian)
ufw语法简洁,适合快速配置:
- 安装与启用ufw
sudo apt updatesudo apt install ufwsudo ufw enable# 启用ufw,首次启用会提示确认 - 配置开放端口允许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(可选) - 查看与验证查看当前规则:
输出应显示“ALLOW”状态的对应端口。sudo ufw status verbose
五、安全增强建议
- 限制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。
- firewalld:
- 关闭SELinux(可选)若不需要SELinux的强制访问控制,可临时关闭(
setenforce 0)或永久关闭(修改/etc/selinux/config中的SELINUX=disabled),但需注意这会降低系统安全性。 - 定期更新规则随着业务变化(如新增服务端口),及时调整防火墙规则,删除不必要的端口开放。
- 监控日志查看防火墙日志(如
/var/log/ufw.log或/var/log/messages),及时发现异常访问(如大量失败的SSH登录尝试)。
通过以上配置,可有效保护LNMP架构中的服务器免受非法访问和常见网络攻击。需根据实际业务需求调整端口开放范围,遵循“最小权限”原则。
相关文章
- 悠星大陆深渊乱斗怎么玩 深渊乱斗玩法介绍 07-31
- 《遥遥西土》峡谷唱片全收集攻略分享 07-31
- 王者荣耀英雄技能攻略(掌握技能,成就传奇王者) 07-31
- DDR4-3600 vs DDR5-5600游戏实测:低延迟与高带宽谁更适合游戏 07-31
- PS6光追性能暴涨10倍 AI与高刷新率或成主打 07-31
- 灌篮军团满级的零怎么培养 满级的零培养一览 07-31