溫馨提示×

Linux中lnmp安全設置指南

小樊
37
2025-09-20 15:31:21
欄目: 智能運維

Linux中LNMP安全設置指南
LNMP(Linux+Nginx+MySQL+PHP)是常見的Web服務架構,需從系統基礎、組件配置、權限管理、監控審計等多維度強化安全。以下是具體安全設置步驟:

1. Linux系統基礎安全加固

  • 系統更新與補丁管理:定期更新系統及軟件包,修復已知漏洞。Debian/Ubuntu系統執行sudo apt update && sudo apt upgrade -y;CentOS/RHEL系統執行sudo yum update -y。
  • 用戶與權限管理:創建專用web服務用戶(如webuser),避免Nginx/PHP-FPM以root運行;禁用root SSH登錄,修改/etc/ssh/sshd_config中的PermitRootLogin no并重啟SSH服務(sudo systemctl restart sshd)。
  • 防火墻配置:啟用UFW或iptables,僅開放必要端口(SSH:22、HTTP:80、HTTPS:443、MySQL:3306(可選內部訪問))。例如UFW命令:sudo ufw allow 22; sudo ufw allow 80; sudo ufw allow 443; sudo ufw enable。

2. Nginx Web服務器安全配置

  • 隱藏敏感信息:關閉Nginx版本號顯示(server_tokens off;),移除Server、X-Powered-By等HTTP頭(more_clear_headers 'Server'; more_clear_headers 'X-Powered-By';)。
  • 限制HTTP方法與訪問:僅允許GET、HEAD、POST等必要方法(if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 405; });使用limit_req_zone限制請求頻率(如每秒10個請求),抵御暴力破解。
  • 增強傳輸安全:配置SSL/TLS(優先使用TLSv1.2/1.3),優化加密套件(如ECDHE-ECDSA-AES256-GCM-SHA384),啟用OCSP Stapling提升驗證效率。
  • 防范常見Web攻擊:添加安全響應頭(X-Frame-Options "SAMEORIGIN"防點擊劫持、X-XSS-Protection "1; mode=block"啟XSS保護、Content-Security-Policy "default-src 'self'"控資源加載、X-Content-Type-Options "nosniff"防MIME混淆)。

3. MySQL數據庫安全設置

  • 初始安全配置:運行sudo mysql_secure_installation,設置root強密碼,移除匿名用戶、測試數據庫及遠程root登錄。
  • 訪問控制與權限管理:創建專用數據庫用戶(如webuser),限制其僅能從localhost訪問,并授予最小必要權限(如SELECT, INSERT, UPDATE);修改/etc/mysql/my.cnf,設置bind-address = 127.0.0.1禁止遠程訪問。
  • 配置文件與功能優化:禁用skip-name-resolve(避免DNS反向解析延遲)、local-infile=0(防止文件讀取漏洞)、secure-file-priv=/var/lib/mysql-files(限制文件導入導出路徑)。

4. PHP運行環境安全加固

  • php.ini核心配置:禁用高危函數(如exec, passthru, shell_exec),關閉錯誤顯示(display_errors = Off),記錄錯誤到日志(log_errors = On; error_log = /var/log/php_errors.log);禁止URL包含/打開(allow_url_fopen = Off; allow_url_include = Off),啟用cgi.fix_pathinfo=0防止路徑遍歷。
  • PHP-FPM進程配置:以專用用戶(如webuser)運行,設置listen.ownerlisten.groupwebuser;調整進程池參數(pm.max_children = 50,根據服務器內存調整),避免資源耗盡。
  • open_basedir限制:在PHP-FPM配置或虛擬主機中設置open_basedir,限制PHP僅能訪問網站目錄(如/var/www/html:/tmp/),防止目錄穿越攻擊。

5. 文件與目錄權限管理

  • 網站目錄權限:將網站目錄所有者設為web用戶(如sudo chown -R webuser:webuser /var/www/html),目錄權限設為750(find /var/www/html -type d -exec chmod 750 {} \;),文件權限設為640(find /var/www/html -type f -exec chmod 640 {} \;),避免PHP直接操作靜態文件。
  • 配置文件保護:限制敏感配置文件(如/etc/mysql/my.cnf、/etc/php/7.4/fpm/php.ini、Nginx虛擬主機配置)的訪問權限為600(chmod 600 /path/to/config)。

6. 日志監控與入侵防御

  • 日志輪轉配置:設置Nginx日志輪轉(/etc/logrotate.d/nginx),每日歸檔、保留14天、壓縮舊日志,避免日志文件過大。
  • 入侵防御工具:安裝Fail2ban(sudo apt install fail2ban),配置針對SSH、Nginx的防護規則(如禁止多次失敗登錄的IP),實時阻斷惡意訪問。
  • 定期安全審計:使用rkhunter、chkrootkit檢測rootkit(sudo rkhunter --check);定期檢查Nginx、MySQL、PHP日志,分析異常請求(如大量404、POST請求)。

7. 數據備份與恢復策略

  • 定期備份:備份數據庫(mysqldump -u root -p --all-databases | gzip > /backup/mysql_$(date +%Y%m%d).sql.gz)、網站文件(tar -czvf /backup/website_$(date +%Y%m%d).tar.gz /var/www/html)、配置文件(tar -czvf /backup/config_$(date +%Y%m%d).tar.gz /etc/nginx /etc/mysql /etc/php)。
  • 備份存儲與測試:將備份文件存儲到異地(如云存儲)或離線介質(如移動硬盤),定期測試備份恢復流程,確保數據可還原。

8. 持續維護與安全更新

  • 自動安全更新:安裝unattended-upgrades(sudo apt install unattended-upgrades),配置自動安裝安全更新(sudo dpkg-reconfigure --priority=low unattended-upgrades),減少手動維護成本。
  • 漏洞掃描與補丁管理:定期使用OpenVAS、Nessus等工具掃描服務器漏洞,及時修復Nginx、MySQL、PHP等組件的安全補丁。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女