An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Least Privilege: cearta úsáideoir an fhreastalaí gréasáin

Ritheann cód a chuirtear isteach le cearta úsáideoir an fhreastalaí gréasáin. An rud a cheadaítear don chuntas seo, cinneann sé cé chomh fada is féidir le hionsaitheoir dul. Seo conas sliogán, sudo, cron, bunachar sonraí agus córas comhad a theorannú don rud is gá.

Staid Am léitheoireachta: 7 nóim.Cruatú agus cumraíocht

Go achomair: Ba cheart d'úsáideoir an fhreastalaí gréasáin, faoina ritheann PHP, de réir phrionsabal na gceart is lú (Least Privilege), gan ach an méid a theastaíonn ón suíomh a léamh agus gan scríobh ach san áit a stórálann sé sonraí. Níl sliogán logála isteach, cearta sudo, cronjobs dá chuid féin ná eochracha SSH aige, agus ní cheadaítear dá chuntas bunachair sonraí ach sonraí a léamh agus a athrú. Teorannaíonn roghanna systemd ar nós ProtectSystem agus PrivateTmp PHP-FPM tuilleadh.

An cheist tar éis briseadh isteach: cad a cheadaítear don phróiseas seo?

Maidir le PHP2Shell, is é atá i gceist cód mailíseach a rith ón gcianrochtain gan logáil isteach. Má éiríonn leis, ní ritheann an cód i bhfolús, ach mar úsáideoir ar leith: úsáideoir an phróisis PHP. An rud ar fad a cheadaítear don úsáideoir sin, ceadaítear don ionsaitheoir é ón nóiméad sin ar aghaidh.

Ar a lán freastalaithe, is neamhghnách de mhéid é sin. Is leis an úsáideoir an cód cláir ar fad, tá sliogán aige, is féidir leis cronjobs dá chuid féin a chruthú, agus tá na cearta go léir ar na bunachair sonraí go léir ag cuntas bunachair sonraí an fheidhmchláir. Don ionsaitheoir is é sin an bunphointe idéalach chun é féin a bhunú go buan.

Conas comhaid agus fillteáin a leithdháileadh i gceart, déanann an treoir Cearta comhad ar an bhfreastalaí gréasáin cur síos air. Díríonn an t-alt seo ar an gcuntas féin: logáil isteach, cearta speisialta, tascanna sceidealta, bunachar sonraí agus na teorainneacha a leagann systemd síos.

Fardal: cé hé úsáideoir an fhreastalaí gréasáin?

Ar dtús, socraigh cé na húsáideoirí atá páirteach ar chor ar bith. Le PHP-FPM socraíonn gach linn le user agus group faoi cé a ritheann a hoibrithe. Le mod_php ritheann PHP mar úsáideoir Apache. Míníonn PHP-FPM mínithe: bainisteoir próiseas, linnte agus oibrithe conas a oibríonn an príomhphróiseas agus na hoibrithe le chéile in PHP-FPM. Ní léann na horduithe seo a leanas ach:

# Faoi cé na húsáideoirí a ritheann an freastalaí gréasáin agus PHP?
ps -eo user,group,cmd | grep -E "[p]hp-fpm|[n]ginx|[a]pache2|[h]ttpd" | sort | uniq -c
# Sonraí an chuntais: eolaire baile agus sliogán (athraigh an t-úsáideoir)
getent passwd www-data
# An bhfuil cearta sudo ag an úsáideoir?
sudo -l -U www-data
# Cronjobs dá chuid féin?
sudo crontab -l -u www-data
# Eochracha SSH san eolaire baile (ar Debian/Ubuntu is é sin /var/www)
sudo ls -la /var/www/.ssh 2>/dev/null

Breac síos na torthaí do gach úsáideoir linne. Má ritheann na suíomhanna go léir faoin úsáideoir céanna, is é sin an chéad phointe ar an liosta; conas é sin a scaradh, déanann Linnte PHP-FPM a scaradh do gach suíomh gréasáin cur síos air.

Cearta úsáideoir an fhreastalaí gréasáin: cad nach bhfuil de dhíth ar an gcuntas

Léiríonn an forbhreathnú seo a leanas cad nach mbíonn de dhíth de ghnáth ar úsáideoir an fhreastalaí gréasáin agus conas é a bhaint.

Ceart Cén fáth a bhfuil sé contúirteach Moladh
Sliogán logála isteach Is féidir logáil isteach agus úsáid idirghníomhach Sliogán /usr/sbin/nologin
Iontrálacha sudo Bealach chuig cearta root gan iontrálacha, fiú ní d'orduithe aonair
Crontab dá chuid féin cúldoras buan a mhaireann gach atosú gan ceann, teorainn le /etc/cron.allow
Eochracha SSH Logáil isteach ón taobh amuigh gan authorized_keys
Úinéireacht ar an gcód cláir Is féidir an cód a athrú Is úsáideoir imscartha an t-úinéir
Cearta scríbhneoireachta lasmuigh d'fhillteáin sonraí Cód mailíseach a chur i dtaisce uaslódálacha, taisce, temp amháin
Cearta iomlána bunachair sonraí Bunachair sonraí d'fheidhmchláir eile, rochtain ar chomhaid tríd an mbunachar sonraí an bunachar sonraí féin amháin, cearta sonraí amháin

Socraíonn tú an sliogán le usermod -s /usr/sbin/nologin www-data. I gcás cron: má tá /etc/cron.allow ann, ní fhéadfaidh ach na húsáideoirí atá luaite ann cronjobs dá gcuid féin a chruthú. Is comhartha tipiciúil iad cronjobs nua nó eochracha SSH anaithnide gur bhunaigh duine é féin go buan. Déanann an t-alt Comhartha rabhaidh: tosaíonn an freastalaí gréasáin sliogán cur síos ar chomhartha rabhaidh an-soiléir.

An bunachar sonraí: cearta a theorannú don rud is gá

Is dara húsáideoir freastalaí gréasáin go fírinneach é cuntas bunachair sonraí suímh. Tá a shonraí logála isteach i gcomhad cumraíochta an fheidhmchláir agus is féidir le cód a chuirtear isteach iad a léamh. Dá bhrí sin ní ceart dó ach an méid a cheadú a bhfuil gá leis ag an bhfeidhmchlár le linn oibriúcháin.

-- Sampla MySQL/MariaDB: cuntas ar leith do gach suíomh, cearta sonraí amháin
CREATE USER 'seite1'@'localhost' IDENTIFIED BY 'hier-ein-langes-Zufallspasswort';
GRANT SELECT, INSERT, UPDATE, DELETE ON seite1.* TO 'seite1'@'localhost';
-- Cearta a sheiceáil
SHOW GRANTS FOR 'seite1'@'localhost';

Ní bhíonn cearta ar nós FILE, SUPER ná GRANT OPTION, ná rochtain ar *.*, de dhíth ar chuntas feidhmchláir. Teastaíonn CREATE, ALTER, INDEX agus DROP freisin ó a lán CMS le haghaidh nuashonruithe. Is glaine cuntas ar leith do nuashonruithe agus d'imirce nach n-úsáidtear ach le linn cothabhála. Seiceáil na riachtanais i ndoiciméadú an mhonaróra.

PHP-FPM a theorannú tuilleadh le systemd

Is féidir le systemd radharc seirbhíse ar an gcóras a theorannú. Do PHP-FPM tá roinnt roghanna ó dhoiciméadú systemd go háirithe oiriúnach. Bíonn tionchar acu ar an bpríomhphróiseas freisin, a thosaíonn mar root.

# sudo systemctl edit php8.3-fpm
[Service]
# /usr, /boot agus /etc faoi chosaint scríofa
ProtectSystem=full
# /home, /root agus /run/user dofheicthe
ProtectHome=true
# /tmp agus /var/tmp dá chuid féin don tseirbhís seo amháin
PrivateTmp=true
# gan ardú cearta trí setuid ná trí chumas comhaid
NoNewPrivileges=true

Déan na roghanna seo a thástáil sula n-úsáideann tú iad i dtáirgeadh. Má tá suíomhanna faoi /home, cuireann ProtectHome=true cosc ar rochtain. Is féidir le NoNewPrivileges=true cur isteach ar chláir a nglaonn PHP orthu agus a athraíonn a gcearta grúpa agus iad ag tosú, mar shampla roinnt clár ríomhphoist áitiúil don fheidhm PHP mail(). Dá bhrí sin téigh ar aghaidh i gcéimeanna:

  1. Rogha amháin a chur leis, an tseirbhís a atosú, systemctl status php8.3-fpm a sheiceáil.
  2. Croífheidhmeanna an tsuímh a thástáil: logáil isteach, foirmeacha, seoladh ríomhphoist, uaslódálacha, cronjobs an fheidhmchláir.
  3. Loga earráide PHP-FPM agus an fheidhmchláir a mheas.
  4. Ansin amháin an chéad rogha eile a chur leis.

Ar deireadh, an soicéad: de réir lámhleabhar PHP faigheann sé cearta 0660 mar réamhshocrú don úsáideoir agus don ghrúpa sa linn. Socraigh listen.owner agus listen.group ionas nach bhféadfaidh ach an freastalaí gréasáin nascadh, ní gach úsáideoir áitiúil.

Leid

Is dearcadh bunúsach iad cearta íosta, ní tionscadal aonuaire. Seiceáil an fardal ón alt seo arís tar éis gach athdhéanta agus gach suíomh nua, mar is minic a thagann cearta réamhshocraithe flaithiúla le seirbhísí nua.

Conclúid: faigheann an t-ionsaitheoir na cearta a thugann tú

Tá cuma theoiriciúil ar Least Privilege, ach is ceist an-phraiticiúil í: cad is féidir le duine a dhéanamh a ritheann cód mar úsáideoir an fhreastalaí gréasáin? Ar fhreastalaí le sliogán, iontráil sudo, crontab dá chuid féin agus cuntas bunachair sonraí a bhfuil na cearta go léir aige, is é an freagra: beagnach gach rud. Ar fhreastalaí teoranta, is dóichí go bhfanfaidh sé ina theagmhas i suíomh amháin, ar féidir é a aithint agus a ghlanadh.

Ní theastaíonn bogearraí nua chun an t-athrú a dhéanamh, ach stocaireacht chúramach agus tástálacha céim ar chéim. Tosaigh leis na pointí is lú is dócha a bhrisfidh rud ar bith, is é sin sliogán, sudo agus eochracha SSH, agus oibrigh ansin go dtí cearta bunachair sonraí agus roghanna systemd.

Conas a chabhraíonn PHP SOS go nithiúil?

  • Cuntais a sheiceáil: Taifeadaimid d'úsáideoir gach linne agus gach freastalaí gréasáin an sliogán, na hiontrálacha sudo, na cronjobs, na heochracha SSH agus cearta an bhunachair sonraí.
  • Cearta a laghdú: Bainimid an rud nach bhfuil de dhíth, agus scarann muid cuntais imscartha, ritheachta agus chothabhála.
  • Seirbhísí a theorannú: Leagaimid roghanna cosanta systemd síos céim ar chéim agus déanaimid an suíomh a thástáil tar éis gach céime.
  • Iad a choinneáil go buan: Mar chuid den chruatú freastalaí déanaimid an coincheap cearta a dhoiciméadú le haghaidh athruithe amach anseo.

Ceisteanna coitianta

Faoi cén úsáideoir a ritheann PHP ar mo fhreastalaí?

Braitheann sé sin ar an mód oibriúcháin. Le mod_php ritheann PHP mar úsáideoir Apache, mar shampla www-data nó apache. Le PHP-FPM socraíonn gach linn a úsáideoir féin le user agus group; de ghnáth ritheann an príomhphróiseas mar root agus na hoibrithe mar úsáideoir na linne. Taispeánann an t-ordú ps sin go tapa.

An bhfuil sliogán logála isteach de dhíth ar úsáideoir an fhreastalaí gréasáin?

Níl. Níl logáil isteach idirghníomhach de dhíth ar Nginx, ar Apache ná ar PHP-FPM don úsáideoir seo. Cuireann sliogán ar nós /usr/sbin/nologin cosc ar éinne logáil isteach leis an gcuntas seo. Ritheann imscaradh trí úsáideoir ar leith.

Cén fáth nach bhfuil cearta sudo ag www-data, fiú le haghaidh ordaithe amháin?

Mar go bhfaigheann cód a chuirtear isteach go beacht na cearta sin. D'fhéadfadh fiú ordú a bhfuil cuma neamhdhíobhálach air, má cheadaítear go mícheart é, a bheith ina chúis le cearta root. Ba cheart tascanna a bhfuil cearta ardaithe de dhíth orthu a chur i seirbhísí scartha nó i bpróisis lasmuigh den fhreastalaí gréasáin.

An gcabhraíonn sé seo i gcoinne PHP2Shell?

Ní dhúnann sé an leochaileacht; chuige sin teastaíonn nuashonrú PHP agus atosú gach oibrí. Ach teorannaíonn cearta íosta cad is féidir le hionsaitheoir a dhéanamh tar éis leas a bhaint go rathúil: comhaid a athrú, é féin a bhunú go buan, teacht ar shuíomhanna gréasáin eile.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach