在LNMP(Linux, Nginx, MySQL, PHP)環境中配置防火墻規則可以通過多種方式實現,具體取決于你的需求和使用的Linux發行版。以下是幾種常見的方法:
檢查防火墻狀態:
sudo iptables -L
設置默認策略:
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 service iptables save
啟用防火墻:
sudo systemctl enable iptables
sudo systemctl start iptables
重啟防火墻使配置生效:
sudo service iptables restart
檢查防火墻狀態:
sudo systemctl status firewalld
臨時關閉防火墻:
sudo systemctl stop firewalld
永久關閉防火墻:
sudo systemctl disable firewalld
配置防火墻區域:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
重新加載防火墻配置:
sudo firewall-cmd --reload
安裝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配置文件:
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;
config.waf.RulePath = "/usr/local/nginx/conf/waf/wafconf/"
config.waf.attacklog = "off"
config.waf.logdir = "/usr/local/nginx/logs/hack/"
config.waf.UrlDeny = "on"
config.waf.Redirect = "on"
config.waf.CookieMatch = "on"
config.waf.postMatch = "on"
config.waf.whiteModule = "on"
config.waf.black_fileExt = {"php", "jsp"}
config.waf.ipWhitelist = {"127.0.0.1"}
config.waf.ipBlocklist = {"1.0.0.1"}
config.waf.CCDeny = "on"
config.waf.CCrate = "100/60"
}
重啟nginx:
sudo service nginx reload
以上是幾種在LNMP環境中配置防火墻規則的方法,你可以根據自己的需求選擇合適的方法進行配置。