LNMP架构防火墙配置指南
在LNMP(Linux+Nginx+MySQL+PHP)架构中,防火墙是保障服务器安全的关键组件,需通过合理配置开放必要端口、限制非法访问。以下是针对不同防火墙工具的具体配置步骤及安全建议:
Linux系统中常见的防火墙工具包括:
firewalld通过“区域”和“服务”管理规则,适合动态调整:
sudo yum install firewalld -y(CentOS)安装;启动服务并设置开机自启:sudo systemctl start firewalld
sudo systemctl enable firewalld
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需手动添加规则,适合需要精细控制的场景:
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
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
sudo iptables -A INPUT -i lo -j ACCEPT
service命令保存:sudo service iptables save
sudo systemctl restart iptables
(注:CentOS 7及以上默认使用firewalld,iptables需额外安装iptables-services包)。ufw语法简洁,适合快速配置:
sudo apt update
sudo apt install ufw
sudo ufw enable # 启用ufw,首次启用会提示确认
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(可选)
sudo ufw status verbose
输出应显示“ALLOW”状态的对应端口。sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept';sudo ufw allow from 192.168.1.100 to any port 22。setenforce 0)或永久关闭(修改/etc/selinux/config中的SELINUX=disabled),但需注意这会降低系统安全性。/var/log/ufw.log或/var/log/messages),及时发现异常访问(如大量失败的SSH登录尝试)。通过以上配置,可有效保护LNMP架构中的服务器免受非法访问和常见网络攻击。需根据实际业务需求调整端口开放范围,遵循“最小权限”原则。