在Ubuntu中進行PHP安全設置可以遵循以下步驟:
更新系統和軟件包: 定期更新系統和軟件包,以確保所有組件都是最新的,并且已經應用了最新的安全補丁??梢允褂靡韵旅睿?/p>
sudo apt update && sudo apt upgrade
配置PHP:
編輯PHP的配置文件 /etc/php/7.2/apache2/php.ini
(根據實際PHP版本調整路徑),進行以下設置:
display_errors=Off
,將錯誤信息記錄到日志文件中,而不是直接顯示在網頁上。expose_php=Off
,避免在錯誤頁面或響應頭中顯示PHP版本信息。register_globals=Off
,防止表單數據被自動注冊為全局變量。upload_max_filesize
和 post_max_size
來限制上傳文件的大小。open_basedir
限制PHP可以訪問的系統目錄。display_errors = Off
expose_php = Off
register_globals = Off
upload_max_filesize = 2M
post_max_size = 8M
open_basedir = /var/www:/tmp
配置Web服務器:
/etc/nginx/nginx.conf
或站點配置文件 /etc/nginx/sites-available/default
,進行以下設置:
location ~ ^/(uploads|assets)/.*\.(php|php5|jsp)$ {
deny all;
}
location /admin {
allow 192.168.1.1;
deny all;
}
/etc/apache2/apache2.conf
或站點配置文件 /etc/apache2/sites-available/000-default.conf
,進行以下設置:
ServerTokens Prod
Header unset X-Powered-By
LoadModule security2_module modules/libapache2_mod_security2.so
文件和目錄權限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
使用防火墻: 使用UFW(Uncomplicated Firewall)限制對系統的訪問,只允許必要的端口和服務:
sudo apt install ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable
監控和日志:
logwatch
或 fail2ban
。使用安全擴展:
mod_security
和 Suhosin
,以增強系統的安全性。通過以上步驟,可以顯著提高Ubuntu系統中PHP運行環境的安全性,保護系統和數據不受未經授權的訪問和攻擊。