
本文介绍如何在LNMP (Linux, Nginx, MySQL, PHP) 环境下安全地配置防火墙,主要针对CentOS 7及以上版本。我们将讲解如何使用firewalld和iptables两种方法。
方法一:使用firewalld (推荐)
firewalld 是CentOS 7及以上版本推荐的防火墙管理工具,使用更方便。
-
开启或关闭firewalld: 默认情况下firewalld是开启的。如果您需要临时关闭,执行:
systemctl stop firewalld。要永久关闭,执行:systemctl disable firewalld。(注意: 关闭防火墙会降低服务器安全性,除非您有其他安全措施,否则不建议关闭。) -
添加端口规则: 使用以下命令允许80端口(HTTP)和3306端口(MySQL)访问:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
--permanent 参数表示永久生效,--reload 命令使配置立即生效。
- 验证规则: 执行以下命令检查防火墙状态和规则:
firewall-cmd --list-all
方法二:使用iptables
iptables 是一个功能强大的命令行工具,但配置相对复杂。
-
备份现有iptables配置: 在修改之前务必备份:
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak -
编辑iptables配置文件: 使用文本编辑器打开配置文件:
vi /etc/sysconfig/iptables -
添加规则: 在文件末尾添加以下规则,允许80和3306端口访问:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-
保存并重启iptables服务: 保存文件后,重启iptables服务使更改生效:
/etc/init.d/iptables restart
安全提示: 只开放必要的端口,避免不必要的安全风险。 配置完成后,务必验证防火墙是否按预期工作。 建议定期检查和更新防火墙规则。 选择firewalld作为防火墙管理工具,可以简化配置和管理。










