Praegune olukord: PHP2Shell. Kaks kriitilist PHP turvaauku (CVSS 9,2) lubavad kahjulikku koodi ilma sisselogimata. Paigad alates 21.10.2026.Mida nüüd teha →

Server saadab spämmi: põhjuste leidmine

Kättetoimetamata kirjad, mustad nimekirjad, kaebused: kui oma server saadab spämmi, on selle taga enamasti skript või kaaperdatud postkast. Nii leiate allika.

Seis Lugemisaeg 4 minTuvastamine ja forensika

Lühidalt: Kui server saadab spämmi, on enamasti üks kolmest põhjusest: sissetoodud või kuritarvitatud PHP skript, varastatud parooliga postkast või valesti seadistatud meiliserver. Kindlustage mõned ootel kirjad, lugege nende päisridu ja meililogi ning leiate enamasti allika. Seejärel peatage saatmine, sulgege põhjus ja alles siis taotlege mustadest nimekirjadest eemaldamist.

Kui kliendid leiavad teie arved rämpsposti kaustast

See algab harva turvateatega. Enamasti võtavad ühendust kliendid, kes ei saa enam teie pakkumisi, või postkast täitub tagasipõrketeadetega kirjade kohta, mida keegi ei kirjutanud. Vahel blokeerib veebimajutaja saatmise ja nimetab põhjuseks silmatorkava meililiikluse.

Ettevõttele on sellel kiiresti tuntavad tagajärjed. Kui serveri aadress on mustas nimekirjas, lükkavad ka teised meiliserverid teie päris kirjad tagasi: arved, tellimuskinnitused, poe paroolilingid. Domeeni maine kannatab ja kahju kasvab iga tunniga, mil saatmine jätkub.

Spämmi saatmine kuulub kompromiteerimise tuntud tagajärgede hulka. Pärast PHP2Shelli, turvauk CVE-2026-109618 ja CVE-2026-109619 koodi käivitamisega ilma sisselogimiseta, on see veel üks põhjus täpsemalt vaadata. PHP2Shelli spetsiifiline vihje spämm aga ei ole; kinnitatud kompromiteerimistunnuseid (Indicators of Compromise) ei ole. Täiendavaid üldisi tunnuseid kirjeldab Kas olen juba kompromiteeritud?.

Kolm tüüpilist põhjust, kui server spämmi saadab

Põhjus Tüüpiline pilt Kust vaadata
Sissetoodud PHP skript kirjad ilma sisselogimiseta, kohalikult sendmail kaudu sisestatud päisread, PHP meililogi, uued PHP-failid
Kuritarvitatud vorm kirjad kontakt- või soovitusvormi kaudu võõrastele adressaatidele vormi juurdepääsulogi, päisread
Kaaperdatud postkast saatmine kehtiva sisselogimisega meiliserverisse meililogi sisselogimisnimega, sisselogimiskohad
Avatud meiliserver võõrad saatjad kasutavad teie serverit edastajana meiliserveri seadistus, väline kontroll

Kaks esimest põhjust puudutavad veebisaiti, kolmas meilikontosid, neljas serveri seadistust. Eristamine on oluline, sest vastumeetmed on täiesti erinevad.

Meilijärjekorra lugemine

Postfixiga serverites näitab järjekord, mida parajasti saata tahetakse. Järgmised käsud ainult loevad:

# Järjekorra sisu kuvamine (vastab käsule mailq)
postqueue -p | tail -30

# Üksiku kirja päisridade kuvamine (sisestage nimekirjast järjekorra ID)
sudo postcat -q -h QUEUE-ID

# Edukad sisselogimised meiliserverisse kasutajanimega
sudo grep 'sasl_username=' /var/log/mail.log | awk -F'sasl_username=' '{print $2}' | sort | uniq -c | sort -rn | head

Päisread reedavad sageli allika juba ise. Kui kiri pärineb sisselogitud postkastist, ilmub sisselogimisnimi meililogisse. Kui seal kuhjub üksik konto sisselogimistega võõrastest riikidest, on selle postkasti parool väga tõenäoliselt teatavaks saanud. Kui kiri on aga sisestatud kohalikult, pärineb see enamasti serveris olevast skriptist.

Kui teie serveris töötab mõni muu meiliserver, näiteks Exim, on käsud teised, põhimõte jääb samaks: vaadake järjekorda, lugege päisridu, lugege logis sisselogimisi. Jagatud majutuse puhul ilma shelli ligipääsuta paluge veebimajutajalt kirjalikult meililogi väljavõtet ja mõnda näidiskirja täielike päisridadega. Paljud veebimajutajad annavad need andmed soovi korral, sest neil on endil huvi saatmine lõpetada.

Kindlustage mõned täielikud kirjad enne, kui järjekorra peatate või tühjendate. Need on tõendid hilisemaks analüüsiks ja vestlusteks veebimajutaja või mustade nimekirjade haldajatega.

Vastutava PHP skripti leidmine

Kui saatmine toimub PHP kaudu, aitab PHP meiliseadistus. PHP käsiraamatu kohaselt logib mail.log iga mail()-funktsiooni väljakutse täieliku skriptitee, reanumbri, adressaadi ja päisridadega. mail.add_x_header kirjutab lisaks igasse kirja päiserea X-PHP-Originating-Script kasutajatunnuse ja failinimega.

; failis php.ini või FPM-poolis, seejärel taaskäivitage kõik tööprotsessid
mail.add_x_header = On
mail.log = /var/log/php/mail.log

Logifail peab olema PHP protsessile kirjutatav. Päisrida reedab adressaatidele failinime; lülitage see pärast analüüsi taas välja, kui te ei soovi seda püsivalt.

Kui saatjana ilmub tundmatu fail, näiteks üleslaadimis- või vahemälukaustas, on see vihje veebishellile. Kuidas selliseid faile hinnata, kirjeldab Veebishellide tuvastamine ja eemaldamine. Kui see on seevastu tuntud kontaktivorm, on seda tõenäoliselt kuritarvitatud, näiteks sellepärast, et adressaadid või päisread võetakse vormi sisestusest. See on koodiviga, mitte sissemurdmine, kuid tuleb sama kiiresti kõrvaldada.

Mitte iga spämm ei kasuta funktsiooni mail(). Kahjulik kood võib ka otse ühenduse võõraste meiliserveritega luua. Siis ei ilmu saatmine ei järjekorras ega PHP meililogis, küll aga väljaminevate ühendustena pordile 25. Kuidas neid kontrollida, seisab artiklis Serveri väljaminevate ühenduste kontroll.

Saatmise peatamine ja puhas taaskäivitus

Kui allikas on leitud, järgneb puhastamine selles järjekorras:

  1. Peatage saatmine: blokeerige mõjutatud tee ehk deaktiveerige skript, blokeerige postkast või peatage järjekord. Ootel kirjad kindlustage tõendina.
  2. Sulgege põhjus: veebishelli puhul tooge PHP parandatud seisu (8.5.12, 8.4.27, 8.3.36, 8.2.35 või kinnitatud backport), taaskäivitage kõik tööprotsessid ja puhastage veebisait. Vormi puhul parandage kood. Postkasti puhul muutke parool ja kontrollige kasutaja seadet.
  3. Otsige muid jälgi: kes saadab spämmi veebishelli kaudu, on sageli loonud muid tagauksi.
  4. Piirake väljundit: lubage väljaminevad ühendused pordile 25 ainult meiliserverile, mitte veebiserveri kasutajale.
  5. Puhastage mustad nimekirjad: alles nüüd taotlege nimekirjade haldajatelt eemaldamist ja kirjeldage lühidalt, mis parandati.
Näpunäide

Kontrollige samal korral oma domeeni SPF-i, DKIM-i ja DMARC-i. Need DNS-kirjed määravad, millised serverid tohivad teie domeeni nimel saata, ja raskendavad võõrastel teie saatjaaadressi kuritarvitamist.

Kuidas PHP SOS konkreetselt aitab?

  • Hindame järjekorda, päisridu ja meililogisid ning selgitame, kas põhjuseks on skript, vorm, postkast või seadistus.
  • Peatame saatmise kontrollitult ja kindlustame tõendid veebimajutajale ja mustadele nimekirjadele.
  • Puhastame veebisaidi kahjuliku tarkvara eemaldamise raames ja sulgeme sissetungikoha.
  • Piirame väljaminevat meililiiklust serveri tasemel ja toetame mustadest nimekirjadest eemaldamist.

Korduma kippuvad küsimused

Kuidas ma märkan, et mu server saadab spämmi?

Tüüpilised on tagasipõrketeated kirjade kohta, mida keegi pole kirjutanud, veebimajutaja märkused, täis meilijärjekord ja kliendid, kes leiavad teie kirjad ootamatult rämpsposti kaustast. Ka teie serveri aadressi kirjed avalikes mustades nimekirjades on selge märk.

Kuidas leian PHP skripti, mis spämmi saadab?

PHP saab logida iga mail()-funktsiooni väljakutse skripti teega, kui mail.log on seatud. Valikuga mail.add_x_header kirjutab PHP skripti nime lisaks iga kirja päisesse. Juba saadetud või ootel kirjade puhul aitab pilk päisereale.

Kas peaksin meilijärjekorra kohe tühjendama?

Mitte enne, kui olete mõned kirjad tõendiks kindlustanud. Päisread näitavad sageli, milline skript või postkast saatmise käivitas. Peatamine on enamasti parem kui kustutamine, kuni allikas on teada.

Kuidas pääsen mustadest nimekirjadest tagasi?

Kõrvaldage esmalt põhjus, seejärel taotlege vastavatelt nimekirjade haldajatelt eemaldamist. Enamik nõuab selgitust, mis parandati. Kes taotleb liiga vara ja saadab edasi spämmi, kantakse uuesti nimekirja.

Allikad

Kohene kontakt

Iga tund loeb. Kirjutage meile kohe.

Kirjeldage lühidalt süsteemi, PHP versiooni ja tähelepanekut. Võtame teiega ühendust, selgitame olukorra välja ja töötame kaugtööna, kuni intsident on lõpetatud ja dokumenteeritud.

Kohene abi