Ghid de conectare
cPanel / WHM (Exim)
Exim, serverul de mail din cPanel, știe nativ să trimită mesajele la analiză. Nu se instalează nimic: adaugi câteva linii în editorul avansat din WHM. Durează ~10 minute.
1 Pregătire
- Trimite-ne IP-ul public al serverului cPanel (cel de pe care pleacă conexiunile Exim).
Îl afli cu:
curl -4 -s https://ifconfig.me - Așteaptă confirmarea că serverul a fost activat (pornește în modul observe).
- Verifică că serverul ajunge la serviciu:
Trebuie să vezinc -zv antispam.cbsoft.ro 11333succeeded/open. Dacă nu, permite în firewall traficul de ieșire TCP către antispam.cbsoft.ro (176.124.106.17), portul 11333. - Fă o copie a configurației actuale:
cp -a /etc/exim.conf /root/exim.conf.bak-$(date +%F) cp -a /etc/exim.conf.local /root/exim.conf.local.bak-$(date +%F) 2>/dev/null; true
2 Verifică dacă SpamAssassin e activ
grep -n 'spamd_address' /etc/exim.conf
- Nu afișează nimic → SpamAssassin e oprit. Folosește varianta A mai jos.
- Afișează o linie (de obicei
spamd_address = 127.0.0.1 783) → SpamAssassin e activ. Folosește varianta B: păstrează SpamAssassin și trimite la noi doar verificarea noastră. Notează valoarea afișată.
3 Setarea globală
În WHM: Service Configuration → Exim Configuration Manager → Advanced Editor.
În prima căsuță de text (opțiunile globale, înainte de begin acl) adaugă:
Varianta A — fără SpamAssassin
spamd_address = antispam.cbsoft.ro 11333 variant=rspamd retry=0s tmo=20s
Varianta B — cu SpamAssassin activ
Înlocuiește linia spamd_address existentă cu cea de mai jos. Dacă valoarea
notată la pasul 2 nu era 127.0.0.1 783, pune valoarea ta în locul ei, la final:
spamd_address = ${if eq{$acl_m_antispam}{1}{antispam.cbsoft.ro 11333 variant=rspamd retry=0s tmo=20s}{127.0.0.1 783}}
Linia alege serverul de analiză în funcție de o variabilă pe care o setează doar regula noastră, așa că SpamAssassin continuă să funcționeze exact ca înainte.
4 Regula de analiză
Tot în Advanced Editor, coboară la secțiunea ACL. Alege una dintre cele două opțiuni.
Opțiunea 1 — pentru tot serverul
În prima căsuță personalizabilă a ACL-ului de DATA (blocul check_message,
căsuța de la începutul lui, de obicei custom_begin_check_message), adaugă:
warn set acl_m_antispam = 1
warn spam = antispam:true/defer_ok
add_header = ${sg{${sg{$spam_report}{\N^Action: [^\n]*\n \N}{}}}{\N\n \N}{\n}}
warn set acl_m_antispam = 0
deny condition = ${if eq{$spam_action}{reject}}
message = 5.7.1 Message rejected as spam
Opțiunea 2 — doar pentru anumite conturi / domenii
Potrivită când vrei să oferi filtrarea ca opțiune clienților sau s-o testezi întâi pe câteva conturi. Doar mesajele către domeniile din listă sunt trimise la analiză.
a) Creează lista de domenii, câte unul pe linie:
cat > /etc/antispam_domains <<'EOF'
domeniul-clientului.ro
alt-domeniu.ro
EOF
chmod 644 /etc/antispam_domains
Ca să vezi domeniile unui cont cPanel: grep ': utilizator$' /etc/userdomains.
Fișierul se citește la fiecare mesaj: adăugarea sau ștergerea unui domeniu are efect
imediat, fără restart.
b) În ACL-ul de RCPT (blocul check_recipient, căsuța de la început,
de obicei custom_begin_recipient), adaugă:
warn domains = lsearch;/etc/antispam_domains
set acl_m_antispam_on = 1
c) În ACL-ul de DATA (ca la opțiunea 1), adaugă:
warn condition = ${if eq{$acl_m_antispam_on}{1}}
set acl_m_antispam = 1
warn condition = ${if eq{$acl_m_antispam_on}{1}}
spam = antispam:true/defer_ok
add_header = ${sg{${sg{$spam_report}{\N^Action: [^\n]*\n \N}{}}}{\N\n \N}{\n}}
warn set acl_m_antispam = 0
deny condition = ${if and{{eq{$acl_m_antispam_on}{1}}{eq{$spam_action}{reject}}}}
message = 5.7.1 Message rejected as spam
Un mesaj cu mai mulți destinatari e analizat dacă cel puțin unul are domeniul în listă.
Ce face fiecare linie
spam = antispam:true/defer_oktrimite mesajul la analiză.:trueface ca headerele să fie adăugate indiferent de scor;/defer_okface ca, dacă serviciul nu răspunde, mesajul să treacă normal (fără respingere temporară).add_headeradaugă headereleX-Antispam-*primite de la noi.deny … rejectrespinge mesajul doar când serviciul răspundereject, adică doar pentru servere sau domenii în modul enforce. În modul observe nu se declanșează niciodată.acl_m_antispamcomutăspamd_addressspre noi doar pe durata verificării noastre (varianta B); în varianta A nu strică.
5 Salvează și testează
- Apasă Save. WHM validează configurația, refuză salvarea dacă are erori și repornește Exim.
- Verifică manual:
exim -bV | head -1 - Trimite din exterior (ex. Gmail) un mesaj către o căsuță de pe server. În sursa
mesajului primit (în Roundcube: Mai multe → Arată sursa) trebuie să apară:
X-Antispam-Status: ham; mode=observe X-Antispam-Score: 0.40 / 15.00 - Pentru un test de spam, trimite un mesaj care conține în corp:
În modul observe ajunge cuXJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34XX-Antispam-Action: reject; în enforce e respins. - În log-ul Exim nu trebuie să apară erori de tipul
spam acl condition:grep 'spam acl condition' /var/log/exim_mainlog | tailall spamd servers failedînseamnă că serverul nu ajunge la antispam.cbsoft.ro:11333 (firewall sau IP neînregistrat la noi). Mesajele trec oricum.
6 Pentru fiecare cont: mutarea spam-ului în folderul Spam
După trecerea pe enforce, mesajele de spam care nu sunt respinse primesc header-ul
X-Spam: Yes. Fiecare titular de cont decide ce face cu ele, direct din cPanel,
fără acces la server:
- cPanel → Email → Global Email Filters (pentru toate căsuțele contului) sau Email Filters (pentru o singură căsuță) → Create a New Filter.
- Nume:
Antispam. - Regulă: Any Header · contains ·
X-Spam: Yes. - Acțiune: Deliver to Folder →
INBOX.spam(sau Discard Message, dacă vrei ca spam-ul să fie șters). - Salvează. Poți verifica regula cu butonul Test Filter, lipind headerul de mai sus.
Pentru reguli diferite pe domeniu — praguri proprii, expeditori care trebuie să treacă mereu sau să fie blocați mereu — scrie-ne domeniul și regulile dorite; se aplică imediat, fără nicio modificare pe server.
7 Dezactivare
Șterge din Advanced Editor liniile adăugate (și, la varianta B, readu
spamd_address la valoarea inițială), apoi Save. Pentru opțiunea 2,
poți dezactiva un singur domeniu ștergându-l din /etc/antispam_domains.
Mail-ul funcționează normal pe toată durata modificărilor.