Meta description: Ghid tehnic complet pentru administratorii de sistem: curățarea cozii Exim, eliminarea malware-ului PHP, gestionarea reputației pe Yahoo și blocarea atacurilor botnet.
Introducere
Gestionarea unui server de email este o sarcină critică, iar momentul în care adresele legitime ale companiei sunt respinse de marii furnizori precum Yahoo sau Gmail reprezintă o criză operațională majoră. Impactul este imediat: facturi neîntrebuințate, comunicări comerciale blocate și o scădere drastică a încrederii în infrastructura proprie.
Această problemă nu apare de obicei de la sine. Este rezultatul unei breșe de securitate — fie un cont de email cu o parolă slabă, fie un script malware infiltrat într-un site găzduit pe server. În acest articol, explorăm pașii exacți pentru a identifica sursa infecției, a curăța serverul și a restabili livrabilitatea mailurilor către Yahoo.
Problema
Simptomele includ o creștere bruscă a numărului de mesaje în coada de așteptare (Exim mail queue) și primirea unor erori specifice în log-uri de tipul:
554 Message not allowed - [PH01] Email not accepted for policy reasons.450 User is receiving mail too quickly tnmpmscsSMTP error from remote mail server after end of data: 554 Message not allowed
În acest stadiu, Yahoo a marcat deja IP-ul sau domeniul expeditor ca fiind nesigur, blocând orice comunicare, indiferent dacă mesajul este o factură legitimă sau un spam.
Cauza
Problema are, de regulă, două origini simultane:
- Compromiterea conturilor de utilizator: Atacatori din locații geografice diverse (Vietnam, India, Ucraina) folosesc atacuri de tip Password Spraying pentru a accesa conturi de email cu parole slabe.
- Malware la nivel de fișier (Webshell): Infiltrarea unor scripturi PHP (backdoors) în directoarele unor CMS-uri (precum WordPress). Aceste scripturi folosesc funcția
mail()a PHP pentru a injecta mii de mesaje direct în sistemul de transport al serverului, adesea mascându-se sub procese legitime de tipwp-admin.
Soluția
Rezultatul final a fost obținut printr-o strategie de „curățare și izolare” pe trei niveluri:
- Nivelul de transport (Exim): Golirea cozii de spam și resetarea parolelor compromise.
- Nivelul de aplicație (PHP/WordPress): Identificarea și ștergerea fișierelor de tip backdoor și limitarea capacității de trimitere a utilizatorilor infectați.
- Nivelul de reputație (DNS/Yahoo): Implementarea unei perioade de „liniște” pentru a permite filtrelor Yahoo să reseteze scorul de spam.
Pașii exacți pentru rezolvare
1. Prerequisites (Condiții necesare)
- Acces de tip
rootla serverul Linux. - Acces la utilitarele Exim (
exim,exiqgrep).
2. Identificarea și curățarea cozii de mail
Primul pas este oprirea sângerării. Trebuie să identificăm cine trimite și să ștergem acele mesaje.
Bash
# Verifică volumul total al cozii
exim -bpc
# Identifică utilizatorii care au trimis cele mai multe mail-uri în ultima oră
grep "A=" /var/log/exim/mainlog | grep "$(date +'%Y-%m-%d %H')" | sed -n 's/.*A=\([^ ]*\):.*/\1/p' | sort | uniq -c | sort -nr
# Șterge toate mesajele "Frozen" (înghețate)
exiqgrep -z -i | xargs exim -Mrm
# Șterge mesajele trimise de un utilizator specific compromis
exiqgrep -f "<EMAIL_COMPROMIS>" -i | xargs exim -Mrm
3. Izolarea conturilor și site-urilor compromise
Dacă un site trimite spam prin scripturi PHP, trebuie să îi tăiem accesul la funcția de mail fără a opri site-ul complet.
Bash
# Setează limita de trimitere la zero în DirectAdmin pentru userul suspect
echo "0" > /etc/virtual/limit_<USER_SUSPECT>
# Adaugă un blocaj în fișierul .htaccess al site-ului infectat pentru a anula trimiterea PHP
echo "php_admin_value sendmail_path /bin/false" >> /home/<USER>/domains/<DOMAIN>/public_html/.htaccess
4. Eliminarea Malware-ului (Webshells)
Folosiți LMD (Linux Malware Detect) pentru a găsi fișierele ascunse. În cazul nostru, s-a descoperit un backdoor camuflat în headere HTTP.
Bash
# Instalare Maldet
cd /usr/local/src
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xvzf maldetect-current.tar.gz
cd maldetect-*
./install.sh
# Scanarea folderului suspect
maldet -a /home/<USER>/domains/<DOMAIN>/public_html/
Exemplu de cod malițios identificat (Backdoor):
PHP
<?php
if(count($_POST)===0){echo"\x4f\x4b";exit;}
$a="\x62\x61\x73\x65\x36\x34\x5f\x64\x65\x63\x6f\x64\x65";$b="\x74\x72\x69\x6d";$c="\x66\x75\x6e\x63\x74\x69\x6f\x6e\x5f\x65\x78\x69\x73\x74\x73";
Acest fișier trebuie șters imediat (rm -f <PATH_TO_FILE>).
5. Securizarea accesului extern
Dacă log-urile arată conexiuni SMTP din țări suspecte, blocați IP-urile respective folosind firewall-ul (CSF).
Bash
# Blochează IP-ul atacatorului
csf -d <IP_ATACATOR> "Spam Botnet identificat"
Cum verifici că e rezolvat
- Monitorizarea cozii: Comanda
exim -bpctrebuie să returneze un număr mic (ideal sub 50 pentru un server mediu). - Testul Yahoo: Trimiteți un email către o adresă de Yahoo și urmăriți log-ul:Bash
tail -f /var/log/exim/mainlog | grep "yahoo"Dacă vedeți statusulC="250 ok dirdel", livrarea este din nou funcțională. - Monitorizarea livrărilor externe:Bash
tail -f /var/log/exim/mainlog | grep "=>" | grep -v "dovecot_lmtp"Această comandă arată doar mail-urile care părăsesc serverul către internet.
Rezultatul
În urma implementării acestor pași, serverul a trecut de la o stare de blocaj total (eroare PH01) la o livrare instantanee. Coada de mail a fost redusă de la sute de mii de mesaje la 1-2 mesaje legitime în așteptare. Reputația domeniului a fost restabilită, iar tentativele botnet-ului de a folosi conturi precum statia1 sau noreply au fost neutralizate prin resetarea parolelor și monitorizarea activă a logărilor.
Greșeli frecvente de evitat
- Ignorarea forwarder-elor: Multe servere primesc spam și îl retrimit automat (forward) către Gmail/Yahoo. Acest lucru distruge reputația IP-ului tău. Ștergeți toate redirecționările automate către furnizori externi în timpul unui atac.
- Parole slabe pe conturi generice: Conturi precum
noreply,officesaustatia1sunt primele ținte. Nu folosiți niciodată parole derivate din numele domeniului. - Nepurjarea mesajelor vechi: Dacă nu ștergeți mail-urile de spam din coadă (
exim -Mrm), serverul va continua să încerce să le trimită, prelungind penalizarea de la Yahoo.
Concluzie
Securitatea serverului de mail este un proces continuu. Identificarea rapidă a sursei (utilizator compromis vs script infectat) și acțiunea decisivă prin limitarea cotelor de trimitere și curățarea malware-ului sunt singurele metode eficiente de a păstra serverul în afara listelor negre.
Ai un server care se comportă ciudat? Începe prin a verifica volumul cozii de mail și log-urile de autentificare (A=login). O intervenție rapidă de 10 minute poate salva zile întregi de comunicare blocată.
