在LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境中配置防火墙通常涉及以下几个步骤。以下是一个基本的指南,适用于大多数Linux发行版,如CentOS或Ubuntu。
使用iptables配置防火墙
-
检查防火墙状态:
sudo iptables -L -
设置默认策略:
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT -
配置允许的入站规则:
-
允许HTTP(端口80)和HTTPS(端口443)流量:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT -
允许已建立的连接和相关连接:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -
允许ICMP(如ping请求):
sudo iptables -A INPUT -p icmp -j ACCEPT -
允许本地回环接口(lo)的流量:
sudo iptables -A INPUT -i lo -j ACCEPT
-
-
允许特定端口的流量(例如,Nginx的80和443端口,MySQL的3306端口):
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -
保存规则:
sudo service iptables save -
重启防火墙使配置生效:
sudo systemctl restart iptables
使用firewalld配置防火墙(适用于CentOS 7及以上版本)
-
停止并禁用firewalld:
sudo systemctl stop firewalld sudo systemctl disable firewalld -
安装iptables(如果需要):
sudo yum install iptables -
配置iptables规则:
编辑
/etc/sysconfig/iptables文件,添加允许HTTP、HTTPS和MySQL端口的规则:vi /etc/sysconfig/iptables添加以下内容:
*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 443 -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 -
重启防火墙:
sudo systemctl restart iptables
使用ngx_lua_waf配置应用防火墙
-
安装ngx_lua_waf:
wget https://github.com/loveshell/ngx_lua_waf/archive/master.zip unzip ngx_lua_waf.zip mv ngx_lua_waf-master /usr/local/nginx/conf/waf -
配置nginx:
编辑
nginx.conf文件,添加以下内容:http { lua_package_path "/usr/local/nginx/conf/waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /usr/local/nginx/conf/waf/init.lua; access_by_lua_file /usr/local/nginx/conf/waf/waf.lua; server { listen 80; server_name your_domain_or_ip; location / { # 配置你的规则 } } } -
重启nginx:
sudo service nginx reload
以上就是关于“LNMP中如何配置防火墙”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm