LNMP架构中如何配置防火墙
导读: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通过“区域”和“服务”管理规则,适合动态调整:
- 安装与启动firewalld
若未安装,执行sudo yum install firewalld -y(CentOS)安装;启动服务并设置开机自启:sudo systemctl start firewalld sudo 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 DROP sudo iptables -P FORWARD DROP sudo 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 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
- 允许已建立的连接(避免中断现有会话):
- 保存与重启规则
CentOS 6使用service命令保存:
(注:CentOS 7及以上默认使用firewalld,iptables需额外安装sudo service iptables save sudo systemctl restart iptablesiptables-services包)。
四、基于ufw的配置(Ubuntu/Debian)
ufw语法简洁,适合快速配置:
- 安装与启用ufw
sudo apt update sudo apt install ufw sudo ufw enable # 启用ufw,首次启用会提示确认 - 配置开放端口
允许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(可选) - 查看与验证
查看当前规则:
输出应显示“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架构中的服务器免受非法访问和常见网络攻击。需根据实际业务需求调整端口开放范围,遵循“最小权限”原则。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: LNMP架构中如何配置防火墙
本文地址: https://pptw.com/jishu/735009.html
