网络知识
如何配置LNMP服务器的防火墙
2025-07-21 16:11  点击:0

配置LNMP(Linux, Nginx, MySQL/MariaDB, PHP)服务器的防火墙是确保服务器安全的重要步骤。以下是几种常见的防火墙配置方法,具体取决于你使用的Linux发行版。

使用 firewalld 配置防火墙(推荐用于CentOS/RHEL 7+)

    安装和启用 firewalld(如果尚未安装):

    sudo systemctl start firewalldsudo systemctl enable firewalld

    开放必要端口:

    sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --permanent --add-port=22/tcp# SSHsudo firewall-cmd --permanent --add-port=3306/tcp# MySQL(建议仅内网访问)

    重新加载配置:

    sudo firewall-cmd --reload

    查看当前规则:

    sudo firewall-cmd --list-all
使用 ufw 配置防火墙(适用于Ubuntu/Debian)

    安装和启用 ufw(如果尚未安装):

    sudo apt updatesudo apt install ufw

    配置 ufw 规则:

    sudo ufw allow 80/tcp# Nginx HTTPsudo ufw allow 443/tcp # Nginx HTTPSsudo ufw allow 3306/tcp # MySQLsudo ufw allow 22/tcp# SSH(建议限制访问)

    查看 ufw 状态:

    sudo ufw status

    重新加载 ufw 配置(如果修改了规则):

    sudo ufw reload
通用步骤

设置默认策略:

对于 iptables
sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT
对于 ufw,默认策略已启用。

允许已建立的连接:

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

允许本地回环接口流量:

sudo iptables -A INPUT -i lo -j ACCEPT

保存规则:

对于 iptables
sudo iptables-save > /etc/sysconfig/iptables
对于 ufw,规则会自动保存。针对LNMP的特殊配置

限制HTTP/HTTPS请求频率(防DDoS):

sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

阻止恶意User-Agent:

sudo iptables -A INPUT -p tcp --dport 80 -m string --string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" --algo bm -j DROP

MySQL安全:

建议MySQL仅监听内网:
sudo iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
或完全阻止外网访问MySQL:
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

PHP安全:

阻止常见的PHP攻击模式:
sudo iptables -A INPUT -p tcp --dport 80 -m string --string "POST /wp-admin/admin-ajax.php" --algo bm -j DROPsudo iptables -A INPUT -p tcp --dport 80 -m string --string "eval(" --algo bm -j DROP

请根据你的具体需求和操作系统选择合适的防火墙配置方法,并在生产环境中进行充分测试。定期检查和更新防火墙规则是确保服务器安全的关键。