1. 系統基礎安全加固
sudo apt update && sudo apt upgrade
命令安裝所有可用安全更新,確保操作系統及LNMP組件(Nginx、MySQL/MariaDB、PHP)處于最新版本,修補已知漏洞。libpam-pwquality
工具,編輯/etc/security/pwquality.conf
文件,設置密碼復雜度要求(如最小長度、包含大小寫字母/數字/特殊字符),強制用戶使用強密碼。systemctl list-units --type service --state=running
命令列出運行中的服務,禁用未使用的服務(如FTP、Telnet),減少攻擊面。2. 網絡與訪問控制
ufw
(Uncomplicated Firewall)工具,僅允許必要端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口)對外開放,命令示例:sudo ufw allow OpenSSH
、sudo ufw allow 80/tcp
、sudo ufw allow 443/tcp
,然后啟用防火墻sudo ufw enable
。/etc/ssh/sshd_config
文件,進行以下設置:更改默認SSH端口(如Port 2222
)、禁用root遠程登錄(PermitRootLogin no
)、啟用SSH密鑰認證(PasswordAuthentication no
),重啟SSH服務使配置生效。3. LNMP組件安全加固
http_autoindex_module
、http_gzip_module
,若無需目錄列表或壓縮功能),減少潛在攻擊點;ssl_certificate
(證書路徑)和ssl_certificate_key
(私鑰路徑)指令,啟用HTTPS;location
塊中添加client_max_body_size 10M;
,防止大文件上傳導致的DDoS攻擊;allow
/deny
指令限制特定IP訪問敏感目錄(如location /admin { allow 192.168.1.100; deny all; }
)。mysql_secure_installation
腳本,完成root密碼設置、移除匿名用戶、禁止root遠程登錄、刪除測試數據庫等操作;/etc/mysql/mysql.conf.d/mysqld.cnf
),將bind-address
設置為127.0.0.1
,限制MySQL僅監聽本地接口,防止遠程非法訪問;log_bin = /var/log/mysql/mysql-bin.log
)和慢查詢日志(slow_query_log = 1
),便于審計和排查性能問題。php.ini
文件(如/etc/php/8.1/fpm/php.ini
),修改disable_functions
參數,禁用exec
、system
、shell_exec
等函數,防止惡意代碼執行;/etc/php/8.1/fpm/pool.d/www.conf
)中,調整pm.max_children
(最大子進程數,如5)、pm.start_servers
(啟動時的子進程數,如5)等參數,防止資源耗盡攻擊;display_errors = Off
,log_errors = On
,避免在生產環境中泄露敏感信息(如數據庫結構、路徑),錯誤日志記錄到/var/log/php_errors.log
。4. 安全工具與監控
sudo apt install fail2ban
命令安裝,配置/etc/fail2ban/jail.local
文件,針對SSH、Nginx等服務的暴力破解行為進行自動封禁(如maxretry = 3
,嘗試3次失敗后封禁IP),減少非法登錄風險。Logwatch
工具(sudo apt install logwatch
)生成每日系統日志報告,分析異?;顒?;或使用Prometheus
+Grafana
搭建實時監控系統,監控服務器CPU、內存、磁盤使用情況,以及Nginx、MySQL的運行狀態,及時發現并響應安全事件。5. 數據備份與權限管理
rsync
、tar
等工具備份網站文件(如/var/www/html
)、數據庫(通過mysqldump
導出),并將備份文件存儲到異地(如云存儲),防止數據丟失。chown -R www-data:www-data /var/www/html
,chmod -R 750 /var/www/html
),確保Nginx用戶(通常為www-data
)僅能訪問必要的文件;避免使用root用戶運行Nginx、PHP-FPM等服務,降低權限濫用風險。