溫馨提示×

Linux如何保障LAMP安全

小樊
45
2025-10-09 13:21:49
欄目: 智能運維

1. 系統基礎安全強化

  • 及時更新系統與軟件包:定期執行sudo apt update && sudo apt upgrade -y(Ubuntu/Debian)或sudo yum update -y(CentOS/RHEL),修復操作系統及LAMP組件的已知漏洞,這是安全防護的基礎。
  • 禁用root直接登錄:修改SSH配置文件(/etc/ssh/sshd_config),設置PermitRootLogin no,禁止root賬戶通過SSH直接登錄;創建普通用戶并通過usermod -aG sudo username賦予sudo權限,日常操作使用普通用戶登錄后再切換至root。
  • 配置防火墻:使用ufw(Ubuntu)或firewalld(CentOS)限制訪問,僅開放必要端口(如SSH的22端口、HTTP的80端口、HTTPS的443端口)。例如,Ubuntu下執行sudo ufw allow 22/tcp && sudo ufw allow 443/tcp && sudo ufw enable,CentOS下執行sudo firewall-cmd --permanent --add-service=ssh --add-service=https && sudo firewall-cmd --reload。

2. SSH安全加固

  • 啟用密鑰認證:生成SSH密鑰對(ssh-keygen -t rsa -b 4096),將公鑰(id_rsa.pub)復制到服務器的~/.ssh/authorized_keys文件中;修改SSH配置文件(/etc/ssh/sshd_config),設置PasswordAuthentication no,禁用密碼登錄,僅允許密鑰認證,防止暴力破解。
  • 更改SSH默認端口:修改/etc/ssh/sshd_config中的Port參數(如改為2222),減少自動化掃描工具的探測概率;修改后重啟SSH服務(sudo systemctl restart sshd)。

3. Apache Web服務器安全配置

  • 禁用不必要模塊:注釋Apache配置文件(/etc/apache2/apache2.conf/etc/httpd/httpd.conf)中不必要的模塊(如mod_php、mod_autoindex),減少攻擊面;僅啟用必需模塊(如rewrite、headers)。
  • 設置專用網站目錄與權限:將網站文件存放在專用目錄(如/var/www/html/mysite),避免與系統文件混放;設置目錄所有者為普通用戶(如www-data),組為www-data,權限為750(目錄)和640(文件),防止未授權訪問。
  • 隱藏敏感信息:修改Apache配置文件,設置ServerTokens Prod(隱藏服務器版本信息)、ServerSignature Off(關閉錯誤頁面的服務器信息),避免泄露系統細節給攻擊者。

4. MySQL數據庫安全配置

  • 修改root密碼與刪除默認賬戶:運行sudo mysql_secure_installation腳本,設置root賬戶強密碼(包含大小寫字母、數字、特殊字符,長度≥10位);刪除匿名用戶(DELETE FROM mysql.user WHERE User='';)和遠程root登錄(DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');),降低數據庫被非法訪問的風險。
  • 限制數據庫用戶權限:為Web應用創建專用數據庫用戶(如CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'strongpassword';),僅授予必要權限(如GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'webuser'@'localhost';),避免使用root賬戶連接數據庫。
  • 啟用SSL連接:為MySQL配置SSL證書(生成自簽名證書或使用CA證書),修改my.cnf文件([mysqld]部分)添加ssl-ca=/path/to/ca.pem、ssl-cert=/path/to/server-cert.pem、ssl-key=/path/to/server-key.pem,強制數據庫連接使用SSL加密,防止數據傳輸被竊取。

5. PHP安全設置

  • 禁用危險函數與調整配置:修改php.ini文件,禁用危險函數(如eval、exec、system、passthru),設置disable_functions = eval,exec,system,passthru;關閉錯誤信息泄露(display_errors = Off),開啟日志記錄(log_errors = On),將錯誤日志存儲在非Web可訪問目錄(如/var/log/php_errors.log),防止敏感信息(如數據庫密碼)暴露給攻擊者。
  • 限制PHP腳本訪問范圍:設置open_basedir參數(如open_basedir = /var/www/html/:/tmp/),限制PHP腳本只能訪問指定目錄,防止腳本遍歷系統文件;禁用不必要的PHP模塊(如php_curl.dll、php_gd.dll),減少潛在攻擊入口。

6. 訪問控制與身份驗證

  • 最小權限原則:為Web應用用戶分配最小必要權限(如數據庫用戶僅能訪問特定表,Apache用戶僅能讀取網站文件),避免過度授權導致權限濫用。
  • 使用Web應用防火墻(WAF):部署ModSecurity等WAF,檢測并攔截SQL注入、XSS跨站腳本、CSRF跨站請求偽造等常見Web攻擊,增強Web應用的安全防護能力。

7. 監控、審計與備份

  • 部署監控與入侵檢測工具:使用fail2ban監控系統日志(如/var/log/auth.log、/var/log/apache2/error.log),自動封禁多次嘗試登錄失敗的IP地址(如sudo fail2ban-client set sshd banip 192.168.1.100);使用auditd記錄系統調用和文件訪問,及時發現異常行為(如未經授權的文件修改)。
  • 定期備份數據:使用rsync、duplicityBacula等工具定期備份系統配置文件(/etc/)、網站文件(/var/www/html/)和數據庫(mysqldump -u root -p mydb > mydb_backup.sql),將備份存儲在異地(如云存儲)或離線介質(如移動硬盤),確保數據丟失或損壞時能快速恢復。

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