Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Iżola pools PHP-FPM għal kull websajt

Pool proprju għal kull websajt huwa l-bidu, mhux it-tmiem. Hekk tivverifika pools eżistenti u tisħiħ sockets, estensjonijiet, paġni tal-istatus, riżorsi u logs.

Stat 6 min. qariTisħiħ u konfigurazzjoni

Fil-qosor: Kull websajt fuq server għandu jkollha pool proprju ta' PHP-FPM b'utent proprju tas-sistema u socket proprju. Is-separazzjoni ssir effettiva biss bid-dettalji: drittijiet tas-socket biss għas-server tal-web, security.limit_extensions fuq .php, l-ebda paġni tal-istatus aċċessibbli pubblikament, limiti proprji għall-proċessi u ż-żmien tat-tħaddim u logs separati. Minn PHP2Shell innifsu jipproteġi biss l-aġġornament; il-pools jillimitaw kemm jilħaq attakk.

Server wieħed, ħafna websajts, riskju komuni

Fuq ħafna servers matul is-snin kiber dak li ħadd ma ppjana hekk. Il-websajt tal-kumpanija, il-ħanut, paġna ta' kampanja tal-2019 u sistema ta' test jaħdmu ħdejn xulxin, spiss taħt l-istess utent u fl-istess pool. Jekk il-paġna tal-kampanja minsija tiġi kompromessa, tkun esposta wkoll id-data tal-klijenti tal-ħanut.

PHP-FPM, il-FastCGI Process Manager ta' PHP, isolvi dan b'pools: gruppi ta' proċessi worker b'issettjar proprju. Kif jaħdem il-prinċipju bażiku jispjega PHP-FPM spjegat: process manager, pools u workers. L-istruttura ta' pools separati b'utent proprju, folder temporanju proprju u open_basedir tiddeskrivih il-gwida open_basedir u iżolament għal kull websajt. Dan l-artikolu jmur pass aktar 'il quddiem: kif tivverifika pools eżistenti, u liema issettjar jagħmel is-separazzjoni affidabbli?

Importanti għall-klassifikazzjoni: f'PHP2Shell il-vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 jinsabu fl-interpretatur ta' PHP, li l-pools kollha ta' verżjoni waħda ta' PHP jaqsmu. Pool proprju ma jipprevjenix l-isfruttament. Imma jiddeċiedi jekk attakkant wara jilħaqx websajt waħda jew kollha.

Pools PHP-FPM b'utent proprju: ivverifika l-istat eżistenti

Qabel ma tibdel xi ħaġa, ikseb stampa ġenerali. Il-kmandi li ġejjin jaqraw biss. Mogħdijiet u numri ta' verżjoni jvarjaw skont id-distribuzzjoni:

# Il-pools kollha b'utent u socket
grep -HE '^\s*(\[|user|group|listen)\s*' /etc/php/*/fpm/pool.d/*.conf

# Pools li jaħdmu u l-utenti tagħhom
ps -eo user,pid,cmd | grep '[p]hp-fpm: pool'

# Sockets u d-drittijiet tagħhom
ls -l /run/php/

# Ivverifika l-konfigurazzjoni għal żbalji (ma tibdel xejn)
sudo php-fpm8.3 -t

Oqgħod attent għal tliet mudelli: diversi websajts fl-istess pool, pools li jaħdmu bħala www-data jew anke bħala root, u sockets li jistgħu jinkitbu minn utenti kollha. Kull wieħed minnhom ineħħi s-separazzjoni.

Jekk fuq is-server jaħdmu diversi verżjonijiet ta' PHP, kull waħda għandha servizz FPM proprju b'direttorji tal-pools proprji. Ivverifika kollha, mhux biss il-verżjoni li kkonfigurajt l-aħħar. Eżattament verżjonijiet qodma b'pools minsija huma riskju, għax spiss la jinżammu u lanqas jerġgħu jinbdew wara aġġornamenti. Tagħrif dwar dan jinsab taħt Diversi verżjonijiet ta' PHP fuq server wieħed. Żomm ir-riżultat f'tabella żgħira: websajt, pool, utent, socket, verżjoni ta' PHP. Din l-ħarsa ġenerali hija fl-istess ħin il-bażi għal kull bidla aktar tard.

L-aktar issettjar importanti għal kull pool

Il-ħarsa ġenerali li ġejja tistrieħ fuq il-konfigurazzjoni ta' FPM fil-manwal ta' PHP. Valuri għal proċessi u ħinijiet jiddependu mit-tagħbija u mill-applikazzjoni tiegħek:

Issettjar Skop Rakkomandazzjoni
user, group utent tal-workers utent proprju għal kull websajt, qatt root
listen.owner, listen.group, listen.mode drittijiet fuq is-socket biss il-grupp tas-server tal-web, modalità 0660
listen.acl_users aċċess permezz ta' ACL minflok sid daħħal biss l-utent tas-server tal-web
security.limit_extensions estensjonijiet eżegwibbli illimita għal .php (standard .php .phar)
clear_env ineħħi l-varjabbli tal-ambjent ħallih fuq l-istandard yes
pm.max_children l-għadd massimu ta' workers illimita b'mod li websajt waħda ma tisfrattax is-server
request_terminate_timeout twaqqif ta' talbiet imwaqqfin issettja skont it-talba leġittima l-itwal
pm.status_path, ping.path paġna tal-istatus u tal-ping issettja biss jekk meħtieġ, u ipproteġi internament
slowlog, request_slowlog_timeout protokoll ta' talbiet bil-mod għal kull pool f'fajl proprju

Silta għal pool issaħħaħ tidher hekk:

; /etc/php/8.3/fpm/pool.d/shop.conf (silta)
[shop]
user = shop
group = shop
listen = /run/php/shop.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
request_terminate_timeout = 60s

security.limit_extensions = .php
clear_env = yes

slowlog = /var/log/php/shop.slow.log
request_slowlog_timeout = 10s
php_admin_value[error_log] = /var/log/php/shop.error.log

Issettjar bħal memory_limit jew session.upload_progress.enabled tissettjahom għal kull pool b'php_admin_value u php_admin_flag. Skont il-manwal, dawn il-valuri ma jistgħux jiġu megħlubin b'ini_set(). Aktar dwar dan taħt php_admin_value: ibblokka l-issettjar kontra sostituzzjoni.

Iklassifika sew il-paġni tal-istatus u l-bidla tal-workers

pm.status_path u ping.path huma attivi biss jekk jiġu issettjati. Il-paġna tal-istatus turi talbiet, proċessi u tagħbija li għaddejjin. Għall-monitoraġġ dan huwa utli, imma aċċessibbli pubblikament hija sors ta' informazzjoni bla bżonn għall-attakkanti. Ibgħat dawn il-mogħdijiet fis-server tal-web biss għal indirizzi interni. Kif Nginx u PHP-FPM jaħdmu flimkien b'mod sigur tiddeskrivih Issaħħaħ Nginx ma' PHP-FPM.

pm.max_requests jiddetermina wara kemm talbiet worker jerġa' jibda; l-istandard huwa 0, jiġifieri qatt. Valur akbar minn żero jgħin kontra konsum tal-memorja li jikber bil-mod. Bħala protezzjoni kontra PHP2Shell mhuwiex maħsub: php.net ma semmihx fost il-miżuri tranżitorji u jenfasizza li biss l-aġġornament jipproteġi bis-sħiħ. Wara l-aġġornament japplika wkoll: il-workers kollha tal-pools kollha jridu jerġgħu jinbdew, għax inkella proċessi qodma jkomplu jaħdmu bil-kodiċi vulnerabbli.

Suġġeriment

Żomm mudell għal pools ġodda u oħloq kull websajt ġdida biha. Hekk is-separazzjoni sseħħ awtomatikament, minflok ma tiżdied snin wara.

Żbalji tipiċi fil-bidla

L-iktar żball komuni huwa pool ġdid li jaħdem taħt utent proprju, imma li l-fajls tiegħu għadhom jappartjenu lil www-data. Allura l-pool ma jistax jikteb fejn għandu, u xi ħadd jissettja d-drittijiet b'mod ġeneruż żżejjed. Iċċara minn qabel liema folders iridu jkunu miktubin. It-tieni żball huma kompiti skedati li jkomplu jaħdmu taħt l-utent il-qadim u joħolqu fajls bis-sid żbaljat. It-tielet huwa folder tas-sessions komuni għall-pools kollha, li terġa' tneħħi s-separazzjoni.

Wara kull bidla ittestja l-login, l-uploads, il-caches u l-kompiti skedati tal-websajt u segwi l-log tal-iżbalji tal-pool.

Kif tgħin PHP SOS b'mod konkret?

  • Niġbru l-pools, l-utenti, is-sockets u l-issettjar kollha u nuru fejn illum websajts jaqsmu proċessi jew drittijiet.
  • Nistabbilixxu għal kull websajt pool issaħħaħ, b'drittijiet tas-socket, limitu tal-estensjonijiet, limiti tar-riżorsi u logs proprji.
  • Nipproteġu l-paġni tal-istatus, nerġgħu nibdew il-workers kollha b'mod ikkontrollat u nittestjaw kull websajt.
  • Bħala parti mit-Tisħiħ tas-server niddokumentaw is-separazzjoni bħala mudell għal proġetti futuri.

Mistoqsijiet frekwenti

Għaliex kull websajt għandu jkollha pool proprju ta' PHP-FPM?

Pool proprju b'utent tas-sistema proprju jifred il-websajts fil-livell tal-proċessi u tad-drittijiet tal-fajls. Jekk websajt tiġi kompromessa, il-kodiċi ma jistax faċilment jaqra l-fajls tal-oħrajn. Barra minn hekk il-limiti u l-issettjar jistgħu jiġu ffissati separatament għal kull websajt.

Pool proprju jipproteġi minn PHP2Shell?

Le. Il-vulnerabbiltajiet jinsabu fl-interpretatur ta' PHP innifsu, li l-pools kollha jaqsmu. Protezzjoni toffri biss l-aġġornament għal verżjoni rranġata b'restart tal-workers kollha. Pools separati, madankollu, jillimitaw kemm jilħaq attakk b'suċċess.

X'jagħmel security.limit_extensions?

Skont il-manwal ta' PHP, l-issettjar jillimita liema estensjonijiet ta' fajls PHP-FPM jesegwixxi bħala skript prinċipali. L-istandard huwa .php u .phar. Min jillimitah għal .php jipprevjeni, pereżempju, li fajls ta' immaġini mgħobbija jiġu eżegwiti bħala PHP, jekk is-server tal-web ikun ikkonfigurat ħażin.

Il-paġna tal-istatus ta' PHP-FPM hija perikoluża?

Tiżvela dettalji dwar proċessi u talbiet li jaħdmu. Jekk tkun aċċessibbli pubblikament mingħajr protezzjoni, tiffaċilita l-orjentazzjoni tal-attakkanti. Skont il-manwal hija attiva biss meta pm.status_path ikun issettjat. Allura s-server tal-web għandu jillimita l-mogħdija għal indirizzi interni.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata