在Linux LNMP(Linux, Nginx, MySQL, PHP)环境中配置防火墙通常涉及使用 firewalld
或 iptables
。以下是在CentOS 7及以上版本中使用 firewalld
配置防火墙的步骤:
如果你想永久关闭 firewalld
,可以运行以下命令:
停止 firewalld
服务:
sudo systemctl stop firewalld.service
禁止 firewalld
开机启动:
sudo systemctl disable firewalld.service
如果你选择使用 iptables
作为防火墙,可以按照以下步骤进行配置:
备份原有的 iptables
配置:
sudo cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
编辑 iptables
配置文件:
sudo vi /etc/sysconfig/iptables
在文件的末尾添加以下内容,以允许80端口(Nginx)和3306端口(MySQL)通过防火墙:
# 允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# 允许3306端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存并退出编辑器。
重启 iptables
服务以应用更改:
sudo /etc/init.d/iptables restart
如果你想使用 firewalld
,可以按照以下步骤进行配置:
关闭 firewalld
:
sudo systemctl stop firewalld
安装 iptables
(如果尚未安装):
sudo yum install -y iptables
配置 iptables
规则:
sudo vi /etc/sysconfig/iptables
添加以下内容以允许80端口(Nginx)和3306端口(MySQL):
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-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
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
重启 firewalld
服务:
sudo systemctl restart firewalld
验证防火墙状态:
sudo firewall-cmd --state
通过以上步骤,你可以在LNMP环境中配置防火墙,确保只有指定的端口(如80和3306)对外开放,从而提高服务器的安全性。
请注意,以上信息基于CentOS 7及以上版本,其他Linux发行版可能会有所不同。在配置防火墙之前,请确保了解你的Linux发行版的具体命令和配置方法。