在Linux LNMP(Linux, Nginx, MySQL, PHP)环境中配置防火墙通常涉及使用 firewalld
或 iptables
。以下是在CentOS 7及以上版本中使用 firewalld
配置防火墙的步骤:
关闭firewalld
如果你想永久关闭 firewalld
,可以运行以下命令:
-
停止
firewalld
服务:sudo systemctl stop firewalld.service
-
禁止
firewalld
开机启动:sudo systemctl disable firewalld.service
安装iptables
如果你选择使用 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
,可以按照以下步骤进行配置:
-
关闭
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发行版的具体命令和配置方法。