Sziasztok, az alábbi problémára keresek megoldást, próbálnám a helyzetet úgy megoldani, hogy ne legyen a vége reinstall.
A lényeg a következő:
Adott egy jó régen telepített Ubuntu 10.04.4 (ami tulajdonképpen 8.04-ként született, majd később frissítve lett), ami a GTS Datanetnél van elhelyezve. Maga a rendszer örökölt, rám maradt az előző gazdától, eredetileg egy ősöreg Debian alatt futott, másik vason. Aztán vettünk új vasat, amire felkerült az említett Ubuntu telepítés, a Debianos rendszer mentéseiből származó konfigurációk átmigrálása után pedig az új gépet betoltuk a host céghez.
A gép egy szűk baráti körnek lát el szerverfunkciókat, nagyjából az alábbi alkalmazásokkal (első körben igyekszem csak a szerintem releváns alkalmazásokat felsorolni):
- apache2 (hivatalos repóból telepítve): Nagyjából 30 weboldalt szolgál ki, ezek nagyrésze folyamatosan frissentartott drupal alapú.
Az mpm-prefork le lett cserélve apache2-mpm-worker-re, a PHP állományok libapache2-mod-fcgid segítségével vannak futtatva.
- squid3 (hivatalos repóból telepítve): Az apache2 előtt egy squid3 transparent proxy ül. Ezt csak egy bizonyos terhelés csökkentése miatt iktattuk be.
(Az egyik weboldalt - jobban mondva tulajdonképpen a 80-as portot - DDOS szerű támadások érték. Ezt igyekeztünk kivédeni többek között transparent cache proxy használatával.)
- bind9 (hivatalos repóból telepítve): A géppel együtt érkeztek domain nevek is, amiknek a másodlagos névszerver funkcióit szintén mi láttuk el, ezért kellett a bind.
Később, ahogy a domain neveket frissíteni kellett, ezeket folyamatosan megszüntettük, már csak egy ilyen domain név maradt.
- mysql (hivatalos repóból telepítve): Kellet, nyilvánvaló miért. Drupalok, Postfix, stb.
- postfix (hivatalos repóból telepítve): 5 virtuális domain, nagyjából 30 userrel. Semmi extra, viszont az évek során a saját domain végződésű emailek annyira hozzánk nőttek, hogy nem akarunk tőlük megválni.
A virtuális domainek és a userek is mysql-ben vannak tárolva.
- RoundCube webmail: Régebben mókusposta volt, de jobbnak láttuk erre váltani különböző okok miatt.
- phpmyadmin (hivatalos repóból telepítve): Igen van. És nem is nagyon szeretnénk tőle megválni...
Ezeken kívül van még pár olyan alkalmazás, amik mindig futnak, előfordul szoftverfejlesztés is esetenként, így a gépen van Java és GCC is, Tomcatet csak akkor indítunk, ha kell a fejlesztéshez, stb.
chrootkit és rkhunter adott időközönként lefut a gépen.
A probléma a következő:
Egy jó ideje a gépünk spameket küldözget a világba. A helyzet az, hogy a dolog ezen részéhez igazából annyira nem értünk, de próbáltunk lépéseket tenni, sajnos nem sok sikerrel. Ezért sok RBL listára felkerültünk már, gmail-re sem tudunk már levelet küldeni, stb.
Külön logoljuk a PHP mail() függvény hívásait, ebből a logból nem derült ki semmi érdekes, látszólag nem ezen az úton megy ki a spam.
Állítottunk be SPF rekordot, DKIM autentikáció is működik.
A legbossszantóbb az, hogy igazából a /var/log/mail.* logokból nem látszik (számomra legalábbis), hogy menne ki fals levél. Persze látunk ott fura dolgokat, olyat is, hogy nem enged elküldeni levelet SPAM jelöléssel (spassisian működik) olyan címekről, amiket nem is ismerünk.
Tehát a problémának vannak látható jelei, csak nem tudunk mit kezdeni vele.
Ezért fordultam végül hozzátok. Mint látható nem vagyok linux admin expert, csak egy hobbi linuxos, aki a rábízott rendszert igyekszik megfelelően működtetni. Ez nem fizetős tevékenység, a munkám mellett végzem szabadidőmben, a kis baráti társaságunk szórakozását (és a sajátomat is persze) elősegítve ezzel.
Viszont ez a spam dolog nagyon bosszantó, és természetesen távol áll tőlünk mindenféle levélszemet küldési tevékenység. Ezért is szeretnénk megszüntetni.
Így kérem, hogy akiben van egy kevés segítő szándék az segítsen nekünk, akár általános, akár konkrét tanáccsal.
Kérésre mindenféle logot, illetve konfigurációs állományt megosztok.
Előre is köszönjük.
sumo
edit (2012.04.09.):
Sziasztok, a probléma az alábbi módon lett megoldva.
A megoldásra majdhogynem véletlenül jöttünk rá, mivel idő hiányában alig volt időnk foglalkozni a dologgal.
Egyik nap úgy döntöttünk, hogy úgy ahogy van elköltöztetjük a levelezést a gépünkről, és az email accountjainkat átmigráltuk ahhoz a szolgáltatóhoz, amelyik a domaint is üzemelteti. Miután ezzel megvoltunk, és meggyőződtünk róla, hogy minden levél és account megvan, valamint az újonnan érkező levelek már az új kiszolgálón keresztül érkeznek, (és persze a spamek még mindig ugyanúgy áramlanak kifelé a gépről), gondoltunk egy nagyot és a megmaradt pár perces szabadidőnket azzal vesztegettük el, hogy próbaképpen leállítunk minden proxy szolgáltatást a szerveren. Ez ugye a transzparens squid3 proxy-t és az apache mod_proxy-ját jelentette. Majd láss csodát, szinte minden adatforgalom megszűnt, az értékek visszaálltak a normális tartományba, egy fia levél se hagyta el többet a gépet. Tehát az említett DDOS már réges-rég a múlté lehetett, helyette azonban használták a proxyt spammelésre.
Most pár nap tesztelés után igyekszünk minden blacklistről leiratkozni, van amelyikről 1 - 2 nap után automatikusan lekerültünk, van amiről ha egyszer felkerült az ember leiratkozni sem lehet, a gmail meg az istennek nem akar visszafogadni a kegyeibe, csak a Bulk Senderes autorespond levelet kapjuk folyamatosan. Pedig az weboldalak normális üzemeltetéséhez lassan jó lenne, ha mondjuk regisztrációkor és hasonló ügyekben tudnának levelet küldeni a címzettnek.
Mindenesetre minden segítséget és tippet köszönök, a mi részünkről (legalábbis egyelőre) nem megy ki több szemét a nagyvilágba. :)
- 7588 megtekintés
Hozzászólások
cat /etc/postfix/main.cf
ls -la /var/tmp
ls -la /tmp
Ezeket muti légyszi.
--
Nem az erős, aki sosem esik el, hanem az, aki mindig fel tud állni!
- A hozzászóláshoz be kell jelentkezni
Szia.
main.cf: http://pastebin.com/V0adiVPk
ls -la /var/tmp
total 12
drwxrwxrwt 3 root root 4096 2012-02-10 15:49 .
drwxr-xr-x 17 root root 4096 2010-07-08 11:01 ..
drwxr-xr-x 2 root root 4096 2009-07-23 18:44 pear-build-root
ls -la /tmp
total 4724
drwxrwxrwt 10 root root 143360 2012-02-21 19:10 .
drwxr-xr-x 24 root root 4096 2012-02-10 15:48 ..
-rw------- 1 root root 190636 2012-02-17 07:03 bm-tarball.log.18YpNd
-rw------- 1 root root 125 2012-02-17 06:50 bm-tarball.log.4Aqf6W
-rw------- 1 root root 83493 2012-02-14 06:53 bm-tarball.log.5sMge8
-rw------- 1 root root 56302 2012-02-15 06:54 bm-tarball.log.AaOzNM
-rw------- 1 root root 144934 2012-02-21 06:49 bm-tarball.log.ezYwKv
-rw------- 1 root root 291496 2012-02-18 07:05 bm-tarball.log.gt3TvS
-rw------- 1 root root 204 2012-02-11 06:30 bm-tarball.log.H2spmj
-rw------- 1 root root 399991 2012-02-11 06:53 bm-tarball.log.hb88MO
-rw------- 1 root root 125 2012-02-18 06:43 bm-tarball.log.HqP8Uv
-rw------- 1 root root 1141491 2012-02-13 08:52 bm-tarball.log.jhEQgW
-rw------- 1 root root 983800 2012-02-20 08:35 bm-tarball.log.PfC6z1
-rw------- 1 root root 807692 2012-02-12 07:00 bm-tarball.log.Sjx11B
-rw------- 1 root root 345686 2012-02-19 07:07 bm-tarball.log.UCEpBi
-rw------- 1 root root 105040 2012-02-16 06:47 bm-tarball.log.vFdMWj
-rw------- 1 root root 125 2012-02-16 06:33 bm-tarball.log.yGEDNA
drwxrwxr-x 2 sumo sumo 4096 2012-02-10 15:51 dumps
drwxr-xr-x 2 hub hub 4096 2012-02-10 15:55 hsperfdata_hub
drwxr-xr-x 2 tomcat6 tomcat6 4096 2012-02-15 20:54 hsperfdata_tomcat6
-r--r--r-- 1 www-data www-data 107 2012-02-10 20:04 .htaccess
drwxrwxrwt 2 root root 4096 2012-02-10 15:48 .ICE-unix
drwx------ 2 root root 16384 2008-11-11 13:37 lost+found
drwx------ 2 fleet fleet 4096 2012-02-12 21:37 mc-fleet
drwx------ 2 hub hub 4096 2012-02-17 16:22 mc-hub
-rw------- 1 postfix munin 0 2012-02-13 07:00 sh-thd-3511262036
-rw------- 1 postfix munin 0 2012-02-20 07:10 sh-thd-3519200771
drwxrwxrwt 2 root root 4096 2012-02-10 15:48 .X11-unix
- A hozzászóláshoz be kell jelentkezni
pm ment.
--
Nem az erős, aki sosem esik el, hanem az, aki mindig fel tud állni!
- A hozzászóláshoz be kell jelentkezni
Nézem, köszi!
::sumo.conf::
- A hozzászóláshoz be kell jelentkezni
Válasz ment. :)
- A hozzászóláshoz be kell jelentkezni
Hello,
egy ps aux kimenetet adj mar legyszives.
Lehet fut egy olyan process, ami onalloan kuld ki levelet, a postfixedtol fuggetlenul.
- A hozzászóláshoz be kell jelentkezni
Szia!
ps aux: http://pastebin.com/GP1fczw5
- A hozzászóláshoz be kell jelentkezni
elso blikkre nem latszik semmi.
tomcat, hub (hup hehe :):)) esetleg drupal, ami nem lett frissitve?
- A hozzászóláshoz be kell jelentkezni
Szia,
A tomcat a csomagkezelőben lévő legfrissebb verzió.
A hub (hubok) különböző típusú DC++ hubszoftverek, DC++ kliens fejlesztéséhez kellenek. Ezek szintén a legfrissebb cuccok.
Drupalokból van hatos és hetes is, drush segítségével mindegyik frissen van tartva. A core és a modulok is.
::sumo.conf::
- A hozzászóláshoz be kell jelentkezni
Akkor nézzük sorra a vektorokat, amiken keresztül mehet a mail, hátha így a nyomára akadsz. Teszteld végig mindet, ne ugorj át egyet sem, mert a tapasztalat azt mutatja, hogy az ember hajlamos gyors és helytelen következtetéseket levonni.
- Open relay. Úgy konfiguráltad be a mailszervert, hogy bárki küldhet rajta keresztül levelet. A tesztelése meglehetősen egyszerű, a neten is van tool, de Te is letesztelheted telnettel, ha megpróbálsz egy nem ott konfigurált címre levelet küldeni és elmegy.
- Local SMTP. 127.0.0.1-en figyel egy SMTP szerver, amin keresztül szabadon lehet levelet küldeni. Ehhez kell egy közvetítő szoftver is, például a PHP, ha engedélyezve vannak a socketek, vagy bármelyik másik alkalmazás, ha vulnos.
- MTA. Ez gyakorlatilag a levelező szerver, ami biztosít egy sendmail binárist, amin keresztül bárki, akinek execute joga van hozzá, tud levelet küldeni. Ide megint csak kell egy közvetítő közeg.
- Közvetlen küldés közvetítő közegen keresztül. Ha valamelyik szoftveredben van code exec vuln, akkor az közvetlenül is működhet SMTP szoftverként. Adott esetben akár hátra is hagyhattak egy kis szoftvert.
Namost, a közvetítő szoftverekről egy-két szót:
- Lehet egy sima PHP script, esetleg extension a Drupalhoz, amiből bárki bárkinek küldhet levelet.
- Lehet MIME/SMTP splitting is, tehát valahol nincs ellenőrizve a bemenet, ezért el tudta törni pl. a To fejlécet két sortöréssel és azt szúrt be, amit akar.
- Lehet egy code exec vuln valamelyik szoftverben.
A küldő megtalálásához a checklist:
- Mindig indulj el magától a jelenségtől, ne ugorj át lépéseket. Ennek fényében:
- Nézd meg, hogy mi megy kifele? Erre a tcpdump vagy tcpflow alkalmas.
- Nézd meg a pidjét és userét annak a szoftvernek, ami az SMTP kapcsolatokat nyitogatja kifele. Nézd meg a parent processét. Erre a netstat, illetve a ps parancs a legalkalmasabb.
- Straceld meg a processt, nézd meg, hogy kerül bele a levél. Nézd meg az alkalmazás logját is. Esetleg tekerd följebb a verbosityt.
- Ha kívülről jön be, próbáld meg kideríteni, ki nyitja a kapcsolatot? Erre használhatsz tcpdumpot, netstatot vagy akár a tűzfalban iptables-el is logolhatsz az owner modul segítségével.
- Az adott szoftvert nézd meg! Benne van-e a rossz indulatú kód, vagy kívülről kerül bele? Van-e az access logban megegyező időpontra bejegyzés? Mi a remote address?
- Ha kívülről jön, dumpold ki az adott alkalmazás összes bemeneti vektorát, nézd meg, hogy mi a forgalom, ami be megy!
- Ha nem megy, tedd át az adott alkalmazást másik IP címre vagy portra! Szükség esetén proxyzz hozzá.
Lehet, hogy nem egyszerű, de meg lehet csinálni. Nekem egyszer egy óránként 480000 requestet kiszolgáló webszerveren kellett kinyomoznom egy pár alkalmazást.
- A hozzászóláshoz be kell jelentkezni
Minden levéről készíthet egy másolatot postfix-szel is (main.cf -> always_bcc = user@domain.tld )
majd rákereshet a kimenő levelek között erre a stringre:
"X-PHP-Originating-Script: "
Szerintem így hamar meglesz, ha php. :)
- A hozzászóláshoz be kell jelentkezni
Köszi, ezt is megnézzük.
- A hozzászóláshoz be kell jelentkezni
Csak akkor, ha mail() függvénnyel küldte. Ha közvetlenül szólította meg a sendmail binárist vagy SMTP-n küldte be, akkor nem. Szóval csak pozitív indikátornak jó, negatívnak nem.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a választ, igyekszem sorban végigmenni az egészen.
Csak sajnos a munka nagy úr, úgyhogy most pihentetnem kell a dolgot péntekig, de mindenféleképpen a végére akarok járni.
- A hozzászóláshoz be kell jelentkezni
Ha nem boldogulsz vele, dobhatsz privátot is.
- A hozzászóláshoz be kell jelentkezni
Az a myadmin ugye nem latszik kivulrol? Szeretik megtorni, es utana mar a spamkuldes a legkisebb gond..
--
I have come to the conclusion, that the matrix must have some bad bullet lag.
- A hozzászóláshoz be kell jelentkezni
[sub]
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ez legalább vicces, amolyan sírva röhögős:
Gratulálunk, IP címedre letéti küldemény érkezett!
:DD
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni