本文介紹在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使配置生效。
選擇以上方法中的任何一種,都需要根據你的實際情況進行調整。 記住在修改防火墻規則后,務必測試你的應用是否能夠正常訪問。 不正確的防火墻配置可能會導致你的服務器無法訪問。 強烈建議在生產環境中進行操作前,先在測試環境中進行測試。