LNMP是指Linux環境下安裝Nginx、MySQL和PHP的Web服務器配置,它提供了快速和可靠的Web服務。然而,LNMP環境也可能面臨各種安全威脅,因此,對LNMP進行安全加固是至關重要的。以下是具體的安全加固措施:
sudo apt update
sudo apt upgrade
sudo apt-get install iptables
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允許HTTP連接
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允許HTTPS連接
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允許SSH連接
sudo iptables-save /etc/iptables/rules.v4
sudo systemctl enable iptables
sudo systemctl start iptables
~/.ssh/authorized_keys
文件中,實現無密碼登錄。/etc/ssh/sshd_config
文件,設置PermitRootLogin no
,禁止root用戶遠程登錄。/etc/ssh/sshd_config
中設置PermitEmptyPasswords no
,禁止使用空密碼登錄。sudo nano /etc/ssh/sshd_config
# 更改端口號
Port 2222
# 禁用root登錄
PermitRootLogin no
# 使用SSH密鑰對進行身份認證
mysql_secure_installation
命令,進行必要的安全配置,如更改root密碼、移除匿名用戶、禁止root遠程登錄等。sudo mysql_secure_installation
/etc/mysql/my.cnf
文件中的bind-address
配置,允許遠程訪問。# 在 /etc/mysql/my.cnf 或 /etc/my.cnf 中找到并修改
bind-address = 0.0.0.0
fastcgi_pass
指向正確的PHP-FPM套接字或端口,以防止PHP文件執行漏洞。sudo nano /etc/nginx/nginx.conf
# 禁用不必要的模塊
# ...
# 配置SSL/TLS
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
pm.max_children
、pm.start_servers
等參數。禁用不必要的PHP模塊,減少攻擊面。sudo nano /etc/php/7.4/fpm/pool.d/www.conf
# 限制資源使用
pm.max_children = 5
pm.start_servers = 5
# 禁用不必要的模塊
; extension=php_curl.dll
usermod
命令將其加入sudo
組,以獲得必要的權限。libpamcracklib
后,編輯/etc/pam.d/commonpassword
文件以實施密碼復雜度要求。fail2ban
之類的工具來防止暴力破解攻擊。通過上述措施,可以顯著提高Debian LNMP環境的安全性,保護系統免受網絡攻擊和數據泄露的威脅。