Postfix email tiltás

Fórumok

Sziasztok,

az alábbi dolgot kellene megoldanom:
van egy email cím, ezt csak egy felhasználó kapja meg a többi címzett utasítsa vissza.
Ha globálisan kellene tiltani, nem volna probléma, de így nem tudok mit kezdeni vele. Ezt Ti, hogy csinálnátok?

köszi:
Balázs

Hozzászólások

Talán a header_checks -el lehetne próbálkozni.

header_checks = pcre:/etc/postfix/header_checks

és reguláris kifejezésekkel leellenörzöd azt amit szeretnél.

Nem használható erre, mert a header ellenőrzés fejléc-soronként külön-külön történik.

Restriction class-al meg lehet oldani, pl:

smtpd_restriction_classes = foo

foo = check_recipient_access hash:/etc/postfix/recipient, reject

smtpd_recipient_restrictions =
...
check_sender_access hash:/etc/postfix/sender

és a /etc/postfix/recipient-ben megadod, ki kaphatja meg csak a levelet, míg a /etc/postfix/sender-ben, hogy az adott feladóra a postfix alklamazza a foo megszorítást:


akit@akarsz foo

Szerintem meg lehet csinálni header_check -el is, de pontosítsuk miről is van szó:

Gondolom az eredeti feladat az, hogyha X a feladó akkor csak Y címzett kapja meg a levelet, minden más feladó esetén viszont bárki kaphat levelet.

Ez esetben az első szabály az, hogyha nem X a feladó, akkor mehet a levél, és nincs további ellenörzés. Ha X a feladó, akkor nem csinálunk még semmit, jöhet a következő header sor.

A második szabály az, hogy ha Y a címzett , akkor a levél mehet tovább, ellenkező esetben discard.

A fejlécek sorrendjét nem tudod garantálni. A levélben szerepelhetnek úgy is, hogy

To: y@ide
From: x@innen

Márpedig ebben az esetben a header_check szabályaid sorrendje "megfordul", függetlenül attól, hogy a fájlodban így szerepelnek:

!/^From:\s*x@innen$/ OK
/^To:\s*y@ide$/ OK
/./ REJECT

Ennek pedig elég tragikus lenne a hatása.

A header és body check-nél minden ellenőrzendő sort függetlennek kell tekinteni.

Nem, a restriction class-nak nem kell nagybetűsnek lenni, kisbetűs "foo"-ként is működnie kell.

Légyszíves add meg a "postconf" kimenetéből az smtpd_*_restrictions és az smtpd_restriction_classes értékeit, valamint a hivatkozott konfigurációs fájlok tartalmát (/etc/postfix/sender, /etc/postfix/recipient, stb).

smtpd_client_restrictions =
smtpd_data_restrictions =
smtpd_end_of_data_restrictions =
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = check_client_access hash:/etc/postfix/access, check_recipient_access hash:/etc/postfix/restricted_receivers, permit_mynetworks, reject_unauth_destination
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit_sasl_authenticated, permit_mynetworks, reject_non_fqdn_sender, permit

smtpd_restriction_classes = restrictedtoreceive, foo

/etc/postfix/recipient
teszt@domain.hu OK

/etc/postfix/sender_access
énemailcimem@domain.hu FOO

köszi
B

Első pillantásra a hibák:

  • Miért van smtpd_sender_restrictions is? A leveleknek mindkét access listán át kell jutniuk.
  • Nem adtad meg a hivatkozott /etc/postfix/access és /etc/postfix/restricted_receivers tartalmát, a /etc/postfix/recipient alapján egyáltalán nem vagyok benne biztos, hogy helyes formátumúak.
  • A /etc/postfix/sender_access-ben a nemlétező "FOO"-ra hivatkozol a létező "foo" helyett.
  • Ha "foo = check_recipient_access hash:/etc/postfix/recipient, reject", akkor a /etc/postfix/recipient tartalma hibás. Mit kérdeztél kicsivel feljebb?

    A recipient fájlnak így kel kinéznie?

    ki@kaphatja.meg OK

    Erre válaszoltam, hogy igen. Akkor miért maradt le az E-mail cím a fájlban?

- ez egy átvett szerver, korábbi beállítás
- /etc/postfix/access tartalma sok ip cím, és REJECT
/etc/postfix/restricted_receivers tartalma "mail csoport@" restrictedtoreceive

- ok, a FOO-t javítom
- a bemásolásnál, az OK-ot külön sorba rakta, egy sorban van, vagyis teszt@domain.hu OK

köszi

Akkor egy teszt gépet állíts be/nevezz ki egyet annak, a nevét/IP címét add meg a /etc/postfix/main.cf-ben:

debug_peer_list = hostnév|IP cím

add ki a "postfix reload"-ot és a kérdéses, nem működő feladóval és címzettel küldjél levelet a teszt gépről.
Utána a postfix által generált debug logot végig lehet nézni, hol, mi nem kerek.