# A szerver spamet küld: az okok megkeresése

> A szervere spamet küld? Így találja meg a forrást a levélsorban, a PHP-szkriptekben és a postafiókokban, állítja le a küldést, és kerül le a tiltólistákról.

Forrás: https://phpsos.de/hu/blog/server-verschickt-spam/  
Állapot: 2026. 10. 25.  
Szolgáltató: PHP SOS, PHP-vészhelyzeti segítség és szerverbiztonság. Azonnali segítség WhatsAppon: https://wa.me/491736494914?text=%C3%9Cdv%C3%B6zl%C3%B6m%2C%20PHP%20SOS%21%20Seg%C3%ADts%C3%A9gre%20van%20sz%C3%BCks%C3%A9g%C3%BCnk%20a%20PHP-szerver%C3%BCnkkel.%20C%C3%A9g%3A%20%E2%80%A6%20Weboldal%3A%20%E2%80%A6

**Röviden:** Ha a szerver spamet küld, többnyire három ok egyike áll mögötte: egy beszúrt vagy visszaélésre használt PHP-szkript, egy ellopott jelszavú postafiók vagy egy rosszul beállított levelezőszerver. Mentsen el néhányat a várakozó levelek közül, olvassa el a fejléceiket és a levelezési naplót, és a legtöbb esetben megtalálja a forrást. Ezután állítsa le a küldést, zárja le az okot, és csak azután kérje a tiltólistákról való törlést.

## Ha az ügyfelek a számláit a spam mappában találják

Ritkán kezdődik biztonsági jelzéssel. Többnyire olyan ügyfelek jelentkeznek, akik már nem kapják meg az ajánlatait, vagy a postafiók megtelik visszapattanó üzenetekkel olyan levelekről, amelyeket soha senki sem írt. Néha a tárhelyszolgáltató zárolja a küldést, és okként feltűnő levélforgalmat nevez meg.

A vállalat számára ennek gyorsan érezhető következményei vannak. Ha a szerver címe egy tiltólistán szerepel, más levelezőszerverek az Ön valódi leveleit is elutasítják: számlákat, megrendelés-visszaigazolásokat, a webshop jelszó-linkjeit. A domain hírneve megsínyli, és a kár minden órával nő, amelyben a küldés tovább fut.

A spamküldés a kompromittálás ismert következményei közé tartozik. A PHP2Shell után, a bejelentkezés nélküli kódvégrehajtást lehetővé tevő CVE-2026-109618 és CVE-2026-109619 résekkel ez még egy ok arra, hogy alaposabban megnézze. A spam azonban nem sajátos PHP2Shell-jelzés; megerősített Indicators of Compromise nincsenek. További általános jeleket ír le a [Megfertőzték már a rendszeremet?](https://phpsos.de/hu/php2shell/bin-ich-gehackt-anzeichen/) oldal.

## Három tipikus ok, ha a szerver spamet küld

| Ok | Tipikus kép | Hol nézzen utána |
|---|---|---|
| Beszúrt PHP-szkript | bejelentkezés nélküli levelek, helyben a `sendmail`-en át beadva | fejlécek, PHP-levélnapló, új PHP-fájlok |
| Visszaélésre használt űrlap | levelek egy kapcsolatfelvételi vagy ajánlóűrlapon át idegen címzetteknek | az űrlap hozzáférési naplója, fejlécek |
| Eltérített postafiók | küldés érvényes bejelentkezéssel a levelezőszerveren | levelezési napló a bejelentkezési névvel, bejelentkezési helyek |
| Nyitott levelezőszerver | idegen feladók a szerverét használják továbbítóként | a levelezőszerver konfigurációja, külső ellenőrzés |

Az első két ok a weboldalt, a harmadik a levelezési fiókokat, a negyedik a szerverkonfigurációt érinti. A megkülönböztetés azért fontos, mert az ellenintézkedések teljesen különbözők.

## A levélsor olvasása

A Postfixet használó szervereken a levélsor megmutatja, mit kell éppen elküldeni. A következő parancsok csak olvasnak:

```bash
# A levélsor tartalmának megjelenítése (megfelel a mailq-nak)
postqueue -p | tail -30

# Egy egyedi levél fejléceinek megjelenítése (a sor-azonosító a listából behelyettesítendő)
sudo postcat -q -h QUEUE-ID

# Sikeres bejelentkezések a levelezőszerveren felhasználónévvel
sudo grep 'sasl_username=' /var/log/mail.log | awk -F'sasl_username=' '{print $2}' | sort | uniq -c | sort -rn | head
```

A fejlécek gyakran már elárulják a forrást. Ha a levél egy bejelentkezett postafiókból származik, a bejelentkezési név megjelenik a levelezési naplóban. Ha ott egyetlen fiók halmozódik idegen országokból érkező bejelentkezésekkel, ennek a postafiókjának a jelszava nagy valószínűséggel kiszivárgott. Ha a levelet ezzel szemben helyben adták be, többnyire a szerveren lévő szkriptből származik.

Ha a szerverén más levelezőszerver fut, például Exim, a parancsok másképp hívják, az elv azonban ugyanaz marad: levélsor megtekintése, fejlécek olvasása, bejelentkezések számolása a naplóban. Shell-hozzáférés nélküli megosztott tárhelynél kérjen írásban a tárhelyszolgáltatótól egy kivonatot a levelezési naplóból és néhány példalevelet teljes fejlécekkel. Sok szolgáltató kérésre megadja ezeket az adatokat, mert saját érdeke a küldés megszüntetése.

Mentsen el néhány teljes levelet, mielőtt megállítja vagy kiüríti a levélsort. Bizonyítékok a későbbi elemzéshez és a tárhelyszolgáltatóval vagy a tiltólisták üzemeltetőivel folytatott beszélgetésekhez.

## A felelős PHP-szkript megtalálása

Ha a küldés PHP-n keresztül fut, a PHP levelezési konfigurációja segít. A PHP-kézikönyv szerint a `mail.log` a `mail()` függvény minden hívását naplózza a teljes szkript-útvonallal, a sorszámmal, a címzettel és a fejlécekkel. A `mail.add_x_header` emellett egy `X-PHP-Originating-Script` fejlécet ír minden levélbe a felhasználói azonosítóval és a fájlnévvel.

```ini
; A php.ini-ben vagy az FPM-poolban, utána az összes workert újra kell indítani
mail.add_x_header = On
mail.log = /var/log/php/mail.log
```

A naplófájlnak írhatónak kell lennie a PHP-folyamat számára. A fejléc fájlnevet árul el a címzetteknek; az elemzés után kapcsolja ki újra, ha nem szeretné tartósan.

Ha feladóként egy ismeretlen fájl szerepel, például a feltöltési vagy a gyorsítótár-mappában, az webshellre utal. Hogyan sorolja be az ilyen fájlokat, azt a [Webshellek felismerése és eltávolítása](https://phpsos.de/hu/ratgeber/webshell-erkennen/) írja le. Ha viszont egy ismert kapcsolatfelvételi űrlap, valószínűleg visszaéltek vele, például mert a címzetteket vagy a fejléceket az űrlapbevitelekből veszik át. Ez a kód hibája, nem behatolás, de ugyanolyan gyorsan ki kell javítani.

Nem minden spam használja a `mail()` függvényt. A kártékony kód közvetlenül is felépíthet kapcsolatot idegen levelezőszerverekkel. Ilyenkor a küldés sem a levélsorban, sem a PHP-levélnaplóban nem jelenik meg, viszont megjelenik kimenő kapcsolatként a 25-ös porton. Hogyan ellenőrzi ezeket, azt az [Egy szerver kimenő kapcsolatainak ellenőrzése](https://phpsos.de/hu/blog/ausgehende-verbindungen-pruefen/) írja le.

## A küldés leállítása és tiszta újraindítás

Ha a forrást megtalálta, a tisztítás ebben a sorrendben következik:

1. **A küldés megállítása:** Zárolja az érintett utat, vagyis kapcsolja ki a szkriptet, zárolja a postafiókot, vagy állítsa meg a levélsort. A várakozó leveleket mentse bizonyítékként.
2. **Az ok lezárása:** Webshellnél hozza a PHP-t kijavított állapotba (8.5.12, 8.4.27, 8.3.36, 8.2.35 vagy megerősített backport), indítsa újra az összes workert, és tisztítsa meg a weboldalt. Űrlapnál javítsa ki a kódot. Postafióknál cserélje a jelszót, és ellenőrizze a felhasználó eszközét.
3. **További nyomok keresése:** Aki webshellen át spamet küld, gyakran további hátsó kapukat is létrehozott.
4. **A kimenő forgalom korlátozása:** A 25-ös porton a kimenő kapcsolatokat csak a levelezőszervernek engedélyezze, ne a webszerver-felhasználónak.
5. **A tiltólisták megtisztítása:** Csak most kérje a tiltólisták üzemeltetőitől a törlést, és röviden írja le, mit javítottak ki.

> **Tipp:**
> Ez alkalommal ellenőrizze a domainje SPF-, DKIM- és DMARC-bejegyzéseit. Ezek a DNS-bejegyzések határozzák meg, mely szerverek küldhetnek a domainje nevében, és megnehezítik az idegenek számára a feladói címe visszaélésszerű használatát.

## Hogyan segít konkrétan a PHP SOS?

- Kiértékeljük a levélsort, a fejléceket és a levelezési naplókat, és megállapítjuk, hogy szkript, űrlap, postafiók vagy konfiguráció az ok.
- Ellenőrzötten leállítjuk a küldést, és bizonyítékokat mentünk a tárhelyszolgáltatónak és a tiltólistáknak.
- A [kártevő-eltávolítás](https://phpsos.de/hu/leistungen/malware-entfernung/) keretében megtisztítjuk a weboldalt, és lezárjuk a bejutási pontot.
- Szerverszinten korlátozzuk a kimenő levélforgalmat, és kísérjük a tiltólistákról való törlést.


## Gyakori kérdések

**Honnan veszem észre, hogy a szerverem spamet küld?**  
Tipikusak a visszapattanó üzenetek olyan levelekről, amelyeket senki sem írt, a tárhelyszolgáltató figyelmeztetései, a tele levélsor és az ügyfelek, akik a leveleit hirtelen a spam mappában találják. A szervere címének szerepe nyilvános tiltólistákon is egyértelmű jel.

**Hogyan találom meg a spamet küldő PHP-szkriptet?**  
A PHP a mail() függvény minden hívását naplózhatja a szkript útvonalával, ha a mail.log be van állítva. A mail.add_x_header opcióval a PHP a szkript nevét minden levél fejlécébe is beírja. A már elküldött vagy várakozó levelekben segít egy pillantás a fejlécekbe.

**Azonnal ki kell ürítenem a levélsort?**  
Nem, amíg néhány levelet nem mentett bizonyítékként. A fejlécek gyakran megmutatják, melyik szkript vagy melyik postafiók váltotta ki a küldést. A megállítás többnyire jobb a törlésnél, amíg a forrás nem ismert.

**Hogyan kerülök le újra a tiltólistákról?**  
Először szüntesse meg az okot, azután kérje a törlést a tiltólisták üzemeltetőitől. A legtöbben magyarázatot kérnek arról, mit javítottak ki. Aki túl korán kéri, és tovább küld spamet, újra felkerül a listára.

## Források

- [PHP-kézikönyv: levelezési konfiguráció](https://www.php.net/manual/en/mail.configuration.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
- [BSI: tudnivalók informatikai biztonsági incidensekről](https://www.bsi.bund.de/)
