Postfix: Kifejezés tiltása a feladó nevében bejövő levélnél

Sziasztok

Egyre többször kap a cég kamu céges leveleket. Ezek egy részét már sikerült kiszűrni a SpamAssassin FromNameSpoof moduljával, ami spamnek jelöli, ha a cég nevében idegenek használják a mail címet felénk címezve.

Arra viszont nem találok megoldást, hogy hogyan tudnám a mail cím előtti névből is kiirtani a cég domain nevét.

Konkrétan "valami"<admin@cegnev.hu> már nem jöhet be, de "admin cegnev"<valami@nemcegnev.hu> még igen vagy az is átjön, hogy admin@cegnev.hu <valami@nemcegnev.hu> Mivel a névben használja, nem a cím mezőben..A nemcegnev.hu teljesen valid, nem köt bele az SA, de az "admin cegnev" feladó névre a Mancika még mindig veszélyforrás. Hiába az oktatás, hiába minden, azt hiszik a céges adminok adták fel a levelet. Persze..telefonon a név elmaszkolja a mail címet, külön meg nem ellenőrzi az ember minden levélnél.

Szóval ki kellene nyírni a cégnevet a teljes from mezőből, ha azt nem a cég fix ip címes smtp szerverén adták fel.

Tudtok erre valami jó megoldást?

Köszönöm!

Hozzászólások

Erre konkrétan a header_checks (és rokonai) jók, ha így akarod csinálni, de szerintem ez eléggé szélmalomharc lesz (http://www.postfix.org/header_checks.5.html)

Egy jól beállított alap postfix (szinte) mindenféle content filter nélkül is tudja szűrni ezeknek a 80-90%-át, nálam legalább is így van, a többit meg a Clapf eliminálja (nem reklám, de ennél jobb opensource spamfilter szerintem nem létezik).

Köszi a választ. Igen, header_checks jó lenne, de itt van egy plusz feltétel vizsgálat is: céges smtpről jöhet, mivel a cégnév szerepelhet a feladó nevében, ha azt a cég küldi. Kívüről jövő feladók viszont nem használhatják. Így a globális tiltás nem jó. Header_checksnél nem találtam ilyen megoldást.

A postfix és az SA úgy gondolom jól van beállítva sok év finomhangolása nyomán. MInden ami spam, a spam mappában landol, szinte 99%-ban. Talán egyedül ez a sunyi, szépen megfogalmazott, cég nevében feladott, tök valid feladó domainnel ellátott mail okoz most gondot.

A Clapfot megnézem majd, köszi a tippet.

Köszi az irányt, elindultam egy szalmaszálon: https://www.howtoforge.com/community/threads/postfix-whitelist-sender-s…

if /^From:.*\.*proci.*/
/^From:.*smtp\.proci\.hu.*/                                      WARN Worked0
/^Received: .*192\.168\.1\.15.*/                              WARN Worked1
/.*smtp\.proci\.hu.*/                                                 WARN Worked2
/^Received: +from +(smtp\.proci\.hu) +/                 WARN Worked3
/^Received: .*/                                                        WARN Worked4
/.*prociweb.*/                                                          WARN Worked
/^From:.*prociweb.*/                                               REJECT      FAKE ADDRESS
/^From:.*\<.*@.*prociweb.*\..*\>.*/                         REJECT      FAKE ADDRESS AGGRESSIVE
endif
 

Na ez azt csinálja, hogy az if feltétel teljesül, viszont utána nem tudok sehogy sem smtp-re szűrni, hogy honnan jön a levél. Még a Worked4 sorra sem ugrig, ami minden Received sorra ugrana, mindig a Wordked sor teljesül csak illetve, ha azt kikommentelem, akkor a FAKE ADDRESS sor.

Olyan, mintha a Received sor nem létezne akkor, amikor fel akarom dolgoztatni vele.
Ha viszont pl. a Worked1 sort kiemelem az if fölé, akkor minden bejövő levélnél teljesü, ha a laptopomról küldöm. Tehát csak látja a received sort.

Nem értem, pedig ez jó megoldás lenne szerintem.
Ugrasztom minden cégnév szóra és átengedem, ha céges smtpről jött, a többit visszautasítom.

Kicsit egyszerűsítettem rajta, hogy egy whitelist ip-n kívűl lefusson az ellenőrzés, de így sem akarja az igazságot.

if !/^Received: .*192\.168\.1\.15.*/
/^From:.*proci.*/                                   REJECT      FAKE ADDRESS
endif

Belép az if ágba és visszadobja a levelemet, pedig a megadott IP-ről küldöm. Ha a ! -t kihagyom, akkor nem lép be az if ágba. Szóval nem látja a feladó IP-met, pedig külön az az 1 sor működik ( /^Received: .*192\.168\.1\.15.*/                              WARN Worked12 )

Azt hiszem korlátba ütköztem.

Ha jól értem a leírásokat: amit az if-ben vizsgálok, azt kimásolja a headerből és az if ágban fel tudja dolgozni.

Ha if from, akkor az if ágban csak azokkal az adatokkal tudok mókolni, ami a from mezőben volt. Ezért lehet az, hogy az ip címmel, hostnevekkel nem tudtam mit kezdeni, de a from mezőben lévő proci szóval igen.

Próbáltam azt is, hogy 2 független sort felveszek, if nélkül.

/^Received:.*192\.168\.1\.15.*/                    OK
/^From:.*proci.*/                                   REJECT      FAKE ADDRESS

A leírás szerint az OK nem dolgozza fel tovább, ezzel szemben az OK lefut (warninggal teszteltem) és utána a FAKE sor is, ami végül eldobja.
Itt miért nem működik a szokott rend?

Igazad van, még ez is egy szívás lehet. Alapból nincs ékezet, meg angol szöveg van, cégnév + admin, webmail, operator, helpdesk.

Ha kódolják, majd arra is csavarok egyet, egyelőre ez az új. Igen, érzem én is, kicsit szélmalomharc, de amíg látok megoldást, utána megyek.

Én az smtpd_sender_restrictions-al oldottam meg.

main.cf-be:

########## saját magunktól nem fogadunk el levelet #############################
smtpd_sender_restrictions =
   permit_mynetworks,
   permit_sasl_authenticated,
   check_sender_access hash:/etc/postfix/notfromme

cat /etc/postfix/notfromme

kivetel@mydomain.hu PERMIT
mydomain.hu               REJECT

Köszi a választ.
Ha jól értem ez azt csinálja, hogyha a engedélyezett mail címekről jön a levél, jöhet, amúgy nem.

Sajnos az a baj, hogy (vélhetően) a partnerek jóvoltából a cég valamennyi mail címe közkézen forog és a cég dolgozói saját maguktól vagy egymástól :) kapnak levelet külső adathalásztól.