本文介绍在LNMP (Linux, Nginx, mysql, php) 环境下配置防火墙的多种方法,选择哪种方法取决于你的Linux发行版和具体需求。
方法一:使用iptables
-
查看当前规则: 使用 sudo iptables -L 命令查看当前iptables规则。
-
设置默认策略: 设置默认策略为拒绝所有入站连接,允许所有出站连接:
sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP sudo iptables -P OUTPUT ACCEPT
-
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
-
保存规则: 使用 sudo iptables-save > /etc/iptables/rules.v4 保存规则 (路径可能因系统而异)。
-
启用并启动iptables: 使用你的系统管理工具启用并启动iptables服务 (例如 sudo systemctl enable iptables 和 sudo systemctl start iptables )。 重启iptables服务使配置生效 (sudo systemctl restart iptables)。
方法二:使用firewalld
firewalld是许多现代Linux发行版中更用户友好的防火墙管理工具。
-
查看firewalld状态: 使用 sudo systemctl status firewalld 命令查看firewalld的状态。
-
关闭firewalld (可选): 如果你想完全禁用firewalld,可以使用 sudo systemctl stop firewalld 和 sudo systemctl disable firewalld 命令。 注意: 不建议完全禁用防火墙,除非你完全了解风险。
-
添加服务: 允许HTTP和HTTPS服务:
sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https
-
重新加载配置: 使用 sudo firewall-cmd –reload 命令重新加载firewalld配置。
方法三:使用ngx_lua_waf (Web应用防火墙)
ngx_lua_waf是一个基于nginx和Lua的Web应用防火墙,提供更高级的防护功能。这需要一定的Lua和Nginx配置经验。
-
安装ngx_lua_waf: 下载并安装ngx_lua_waf (安装步骤可能因版本而异,请参考ngx_lua_waf的官方文档)。
-
配置Nginx: 在你的Nginx配置文件中添加ngx_lua_waf模块的配置,包括规则路径、日志路径、白名单和黑名单等。 (请参考ngx_lua_waf的官方文档进行详细配置)。
-
重启Nginx: 使用 sudo service nginx reload 命令重启Nginx使配置生效。
选择以上方法中的任何一种,都需要根据你的实际情况进行调整。 记住在修改防火墙规则后,务必测试你的应用是否能够正常访问。 不正确的防火墙配置可能会导致你的服务器无法访问。 强烈建议在生产环境中进行操作前,先在测试环境中进行测试。