Fil-qosor: Biex tikkonfigura Apache għal PHP b'mod sigur, orbot PHP permezz ta' PHP-FPM u mod_proxy_fcgi, itfi .htaccess b'AllowOverride None u ssettja ServerTokens Prod, ServerSignature Off, TraceEnable Off u Options -Indexes. LimitRequestBody tadattah mal-limiti ta' PHP, moduli mhux meħtieġa titfihom. Il-konfigurazzjoni ma tissostitwixxix aġġornament ta' PHP, imma tnaqqas b'mod sinifikanti s-superfiċje ta' attakk.
Apache wara PHP2Shell: aktar minn restart
L-operaturi ta' Apache f'Ottubru 2026 kienu taħt pressjoni partikolari. It-tim ta' PHP jikklassifika r-riskju b'mod_php bħala l-ogħla, għax hemmhekk intwera exploit qabel ma jibda jaħdem xi kodiċi tal-applikazzjoni. Il-passi akuti, jiġifieri patch u restart sħiħ, tiddeskrivihom il-paġna Għaliex mod_php iġorr l-ogħla riskju.
Wara l-patch tibqa' l-mistoqsija kemm hi tajba l-konfigurazzjoni ta' Apache innifsha. Servers li kibru maż-żmien spiss iġorru issettjar ta' ħafna snin: listi ta' direttorji, drittijiet miftuħa ta' .htaccess, moduli li ħadd m'għadu jeħtieġ. Kull waħda minnhom tista' tagħmel żball aktar tard akbar milli kellu jkun.
Dan l-artikolu jiddeskrivi konfigurazzjoni bażika żgħira u sigura għal Apache 2.4 b'PHP-FPM. L-eżempji jużaw mogħdijiet ta' Debian u Ubuntu; fil-familja RHEL il-fajls jinsabu taħt /etc/httpd/.
Orbot PHP permezz ta' PHP-FPM minflok mod_php
B'PHP-FPM, PHP jaħdem fi proċessi proprji, separat mis-server tal-web. Apache jgħaddi t-talbiet permezz ta' mod_proxy_fcgi. Skont id-dokumentazzjoni ta' Apache, ir-rabta b'SetHandler għandha vantaġġ fuq ProxyPassMatch: Apache l-ewwel jassenja t-talba stess lil fajl fis-sistema tal-fajls u biss imbagħad jgħaddi lil PHP-FPM.
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/seite1.sock|fcgi://localhost/"
</FilesMatch>
Il-moduli taqbadhom taħt Debian u Ubuntu b'a2enmod proxy_fcgi. Min jaqleb minn mod_php jiddiżattiva l-modulu ta' PHP u wara jaqleb mill-MPM Prefork għal Event-MPM. Sfond dwar il-modalità qadima jispjegah mod_php spjegat: PHP fil-proċess ta' Apache.
Min-naħa ta' PHP-FPM security.limit_extensions = .php jappartjeni f'kull pool. Skont il-manwal ta' PHP, FPM inkella jesegwixxi wkoll fajls .phar.
Ikkonfigura Apache għal PHP b'mod sigur: l-għażliet ewlenin
Xi issettjar japplika għas-server kollu u jappartjeni f'fajl ta' konfigurazzjoni proprju, pereżempju /etc/apache2/conf-available/haertung.conf, attivat b'a2enconf haertung.
# Qassar l-indikazzjonijiet tal-verżjoni (possibbli biss fuq is-server kollu)
ServerTokens Prod
ServerSignature Off
# Itfi l-metodu TRACE
TraceEnable Off
# Bażikament iftaħ xejn, il-websajts jippermettu b'mod immirat
<Directory />
Options None
AllowOverride None
Require all denied
</Directory>
It-tabella li ġejja tikklassifika l-aktar għażliet importanti. Valuri standard u effett joriġinaw mid-dokumentazzjoni ta' Apache.
| Direttiva | Standard | Rakkomandazzjoni | Għaliex |
|---|---|---|---|
ServerTokens |
Full |
Prod |
il-Server-header isemmi biss „Apache” |
ServerSignature |
Off |
Off |
l-ebda linja tal-verżjoni taħt paġni ta' żball |
TraceEnable |
on |
Off |
TRACE jiġi rrifjutat b'405 |
Options |
FollowSymlinks |
-Indexes, symlinks biss skont is-sid |
l-ebda listi ta' direttorji |
AllowOverride |
None |
None |
.htaccess ma jiġix evalwat |
LimitRequestBody |
1 GiB (minn 2.4.54) | adattat għal post_max_size |
irrifjuta talbiet kbar kmieni |
Importanti ma' AllowOverride: ħafna distribuzzjonijiet u gwidi tas-CMS jissettjaw għall-webroot AllowOverride All. B'hekk kull fajl .htaccess jista' jibdel regoli Rewrite, handlers u ma' mod_php anke issettjar ta' PHP. Attakkant b'drittijiet tal-kitba f'folder tal-upload jista' jpoġġi hemmhekk .htaccess proprja. B'AllowOverride None din it-triq tingħalaq.
VirtualHost bħala mudell
Il-VirtualHost li ġej jgħaqqad il-punti għal websajt waħda. Mogħdijiet taċ-ċertifikati, socket u direttorji tadattahom int. mod_ssl u mod_headers iridu jkunu attivi.
<VirtualHost *:443>
ServerName www.example.de
DocumentRoot /var/www/seite1/public
SSLEngine on
SSLCertificateFile /etc/ssl/seite1/fullchain.pem
SSLCertificateKeyFile /etc/ssl/seite1/privkey.pem
<Directory /var/www/seite1/public>
Options -Indexes +SymLinksIfOwnerMatch
AllowOverride None
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/seite1.sock|fcgi://localhost/"
</FilesMatch>
# Ibblokka l-amministrazzjoni tal-verżjonijiet u l-fajls tal-ambjent
<DirectoryMatch "/\.(git|svn|hg)">
Require all denied
</DirectoryMatch>
<FilesMatch "^\.env">
Require all denied
</FilesMatch>
# 32 MiB, skont post_max_size = 32M
LimitRequestBody 33554432
Header unset X-Powered-By
Header always unset X-Powered-By
</VirtualHost>
Header unset doppju mhuwiex żball. Skont id-dokumentazzjoni ta' Apache, headers minn mod_proxy_fcgi jispiċċaw f'tabella interna differenti minn headers tas-server innifsu; b'iż-żewġ varjanti taqbad iż-żewġ każijiet. Headers oħra li jipproteġu b'mod attiv lill-viżitaturi tiddeskrivihom il-gwida Headers tas-sigurtà għal websajts.
Folders tal-upload u tal-cache jeħtieġu addizzjonalment blokk ta' eżekuzzjoni. Kif issib u tibblokka l-folders kollha li jistgħu jinkitbu jinsab taħt Ipprojbixxi l-eżekuzzjoni ta' PHP f'folders tal-upload.
Neħħi moduli żejda u ivverifika r-riżultat
Kull modulu mgħabbi huwa kodiċi li jirreaġixxi għal talbiet. Ivverifika liema moduli huma attivi, u itfi dawk li ma teħtiġx. Kandidati tipiċi huma autoindex, status mingħajr restrizzjoni tal-aċċess, cgi u userdir.
# Uri l-moduli attivi
apachectl -M | sort
# Eżempju Debian/Ubuntu: itfi l-modulu tal-listi tad-direttorji
sudo a2dismod autoindex
# Ivverifika l-konfigurazzjoni u biss imbagħad erġa' tgħabbi
sudo apachectl configtest && sudo systemctl reload apache2
# Test minn barra: TRACE għandu jagħti 405, .git 403
curl -s -o /dev/null -w "%{http_code}\n" -X TRACE https://www.example.de/
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/.git/HEAD
mod_status jixraq attenzjoni partikolari. Il-paġna tal-istatus turi talbiet li jaħdmu b'indirizzi u mogħdijiet mitluba. Jekk tkun meħtieġa, illimita l-aċċess b'Require ip għan-netwerks tal-amministrazzjoni tiegħek. L-istess japplika għal paġni tal-istatus ta' PHP-FPM li saru aċċessibbli permezz ta' Apache.
Tibdilx AllowOverride mingħajr tħejjija. L-ewwel ħu r-regoli mill-fajls .htaccess kollha fil-VirtualHost u ittestja l-websajt fuq kopja. Inkella ridirezzjonijiet u URLs sbieħ ma jaħdmux aktar wara r-reload.
Bħala saff addizzjonali quddiem l-applikazzjoni tista' tkun sensibbli Web Application Firewall proprja; il-bidu jiddeskrivih Uża ModSecurity u OWASP Core Rule Set.
Konklużjoni: l-ordni tirbaħ fuq miżura waħda
Konfigurazzjoni sigura ta' Apache għal PHP tikkonsisti f'ftit blokki li nifhmu tajjeb. PHP jaħdem permezz ta' PHP-FPM separat mis-server tal-web, .htaccess ma jiġix evalwat, indikazzjonijiet tal-verżjoni u TRACE huma mitfija, limiti tad-daqs jaqblu ma' PHP, u folders li jistgħu jinkitbu ma jesegwixxu l-ebda skript. L-ebda wieħed minn dawn il-punti mhu spettakolari waħdu. Flimkien jiżguraw li żball f'post wieħed ma jwassalx minnufih għat-teħid tas-server.
Għad-direzzjoni u għar-responsabbli tal-proġetti, karatteristika oħra hija kważi aktar importanti: konfigurazzjoni f'ordni hija traċċabbli. Jekk ir-regoli kollha jinsabu fil-VirtualHost minflok imxerrdin f'għexieren ta' fajls .htaccess, fil-vulnerabbiltà kritika li jmiss jista' jiġi vverifikat malajr liema websajt hija marbuta kif. F'sitwazzjoni bħal dik ta' Ottubru 2026 dan jiffranka eżattament iż-żmien li jgħodd.
Ippjana l-bidla xorta waħda bil-kalma u b'ambjent tat-test. Bidla bla ħsieb minn mod_php għal PHP-FPM ftit qabel tmiem il-ġimgħa toħloq aktar problemi ġodda milli tissolvi.
Kif tgħin PHP SOS b'mod konkret?
- Nivverifikaw l-istat: naqraw il-konfigurazzjoni kollha ta' Apache, il-moduli attivi kollha u l-fajls
.htaccesskollha. - Nippjanaw it-tranżizzjoni: fejn għad jaħdem mod_php, inħejju l-bidla għal PHP-FPM b'pools proprji għal kull websajt.
- Insaħħu l-konfigurazzjoni: nissettjaw l-għażliet ewlenin, nieħdu r-regoli
.htaccessfil-VirtualHosts u nibblokkaw folders li jistgħu jinkitbu. - Nittestjaw u niddokumentaw: wara kull bidla nivverifikaw il-websajts minn barra u nżommu l-istat bħala parti mit-Tisħiħ tas-server.
Mistoqsijiet frekwenti
Għadni għandi nuża mod_php?
Għal setups ġodda nirrakkomandaw PHP-FPM permezz ta' mod_proxy_fcgi. It-tim ta' PHP jikklassifika r-riskju minn PHP2Shell bħala l-ogħla għal mod_php. B'PHP-FPM, PHP jaħdem separat mis-server tal-web, b'utenti proprji għal kull websajt u limiti proprji.
Għaliex AllowOverride None jekk is-CMS tiegħi jeħtieġ .htaccess?
Kulħadd li jista' jikteb fil-webroot jista' joħloq .htaccess, anke kodiċi introdott. B'AllowOverride None Apache ma jevalwax fajls bħal dawn. Ir-regoli tas-CMS tiegħek imbagħad tieħdhom darba fil-VirtualHost. Dan huwa ftit sforz, imma jagħmel il-konfigurazzjoni traċċabbli u aktar mgħaġġla.
Nista' nissettja ServerTokens differenti għal kull websajt?
Le. Skont id-dokumentazzjoni ta' Apache, ServerTokens japplika għas-server kollu u ma jistax jinbidel għal kull VirtualHost. Jikkontrolla fl-istess ħin l-indikazzjoni tal-verżjoni taħt paġni ta' żball li ServerSignature turi.
X'inhu l-valur standard ta' LimitRequestBody?
Minn Apache 2.4.54 l-istandard huwa 1 GiB, fil-verżjoni 2.4.53 u eqdem kien bla limitu. Issettja l-valur skont post_max_size tal-konfigurazzjoni ta' PHP tiegħek, biex talbiet kbar żżejjed jiġu rrifjutati diġà fis-server tal-web.