本文介紹如何在LNMP (linux, nginx, mysql, php) 環境下安全地配置防火墻,主要針對centos 7及以上版本。我們將講解如何使用firewalld和iptables兩種方法。
方法一:使用firewalld (推薦)
firewalld 是CentOS 7及以上版本推薦的防火墻管理工具,使用更方便。
-
開啟或關閉firewalld: 默認情況下firewalld是開啟的。如果您需要臨時關閉,執行:systemctl stop firewalld。要永久關閉,執行:systemctl disable firewalld。(注意: 關閉防火墻會降低服務器安全性,除非您有其他安全措施,否則不建議關閉。)
-
添加端口規則: 使用以下命令允許80端口(http)和3306端口(MySQL)訪問:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload
–permanent 參數表示永久生效,–reload 命令使配置立即生效。
- 驗證規則: 執行以下命令檢查防火墻狀態和規則:
firewall-cmd --list-all
方法二:使用iptables
iptables 是一個功能強大的命令行工具,但配置相對復雜。
-
備份現有iptables配置: 在修改之前務必備份:cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
-
編輯iptables配置文件: 使用文本編輯器打開配置文件:vi /etc/sysconfig/iptables
-
添加規則: 在文件末尾添加以下規則,允許80和3306端口訪問:
-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
- 保存并重啟iptables服務: 保存文件后,重啟iptables服務使更改生效:/etc/init.d/iptables restart
安全提示: 只開放必要的端口,避免不必要的安全風險。 配置完成后,務必驗證防火墻是否按預期工作。 建議定期檢查和更新防火墻規則。 選擇firewalld作為防火墻管理工具,可以簡化配置和管理。