Portál AbcLinuxu, 13. května 2025 00:37

Dotaz: postfix check_sender_access + ldap

5.10.2014 00:44 lager
postfix check_sender_access + ldap
Přečteno: 635×
Odpovědět | Admin
Zdravim,

mam aktualne nasazeny postfix spolecne s ldapem na serveru a chtel bych obe komponenty propojit. Chtel bych omezit odesilani mailu pro kazdeho konkretniho uzivatele na prislusny atribut u uzivatelova zaznamu v ldapu.

momentalne mam nakonfigurovane zhruba toto:
smtpd_sender_restrictions = check_sender_access ldap:/konfigurace_ldapu


konfigurace_ldapu:
server_host = ldap://a.b.c:389
server_port = 389
search_base =
query_filter = pozadovanyAtribut=%s
result_attribute = pozadovanyAtribut
version = 3
start_tls = yes
tls_ca_cert_dir = ...
bind = yes
bind_dn = ...
bind_pw = pass
timeout = 30
Google mi v tomto prozatim nijak nepomohl - vse, co jsem zkousel mi sice ukazalo, ze konkretni filtr je aplikovan spravne, tak jak bych chtel (za pozadovanyAtribut je dosazena konkretni adresa, dostanu vsak hlasku typu "unknown smtpd restriction: username"), ale stale lze odeslat mail z jakekoliv from adresy.

Pokud do smtpd_sender_restrictions navic pridam reject, jak to muzu zaroven omezit pouze na odesilane maily?

diky za odpovedi
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.10.2014 10:13 Kriegel
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
Odpovědět | | Sbalit | Link | Blokovat | Admin
check_sender_access ocekava access mapu, ktera ma na jedne strane adresu a na druhe akci, co s ni. V tvem pripade ti LDAP vraci username, coz neni platna akce, proto unknown smtpd restriction

Omezeni pouziti konkretni adresy se vetsinou vaze na autentikaci (protoze to je vcelku jednoduchy zpusob, jak "zarucit", ze ten co posila, je opravdu ten, co posilat muze) v kombinaci s smtpd_sender_login_maps -- tady ti pak muze LDAP vratit set platnych adres pro konkretni autentikovany username.

Samozrejme, moznych scenaru reseni bude vic, ale k tomu by bylo potreba vic informaci, kdyztak dej nejaky konkretni pripad.

5.10.2014 14:37 lager
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
z ldapu dokazu cist username nebo celou adresu - konkretni error s username byl jeden z pokusu

ackoliv vazani na autentikaci chci take zarucit, jde mi prozatim pouze o omezeni ostatnich adres - ikdyz mam autentifikovaneho uzivatele a, aktualne mu nebranim aby poslal mail jako uzivatel b

muzes uvest priklad, jak by mel vypadat konkretni ldap filtr i s akci? pokud jsem to spravne pochopil z dokumentace, je treba nekam vecpat klicove slovo OK, nejsem si ale uplne jist kam.
5.10.2014 15:41 Kriegel
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
Filter ti zaruci, ze dotaz vybere unikatni DN, treba query_filter = (&(mail=%s)(objectclass=person))

Search vrati zpet Postfixu hodnotu atributu uvedeneho jako result_attribute, pripadne prohnanou pres result_format

Tedy, bud nastavit result_format = OK

nebo vyhradit dalsi atribut s patricnou hodnotou. Otazkou je, co od tohoto reseni ocekavas. Pokud budes vzdy vracet OK, pak vyjimky budes muset osetrovat pres komplexnejsi query_filter Samozrejme je pak potreba sestavit cely restriction set s ohledem na to, ze vysledkem je pouze OK nebo nic, tedy nejaky explicitni reject na konci...

Pro insiraci se podivej na sendmail a jejich pristup k mapam v LDAPu

5.10.2014 16:34 lager
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
result_format funguje presne tak jak jsem chtel:
postmap -q spravna_adresa@tld ldap:/konfigurace_ldapu.cf => OK, navratova hodnota 0

postmap -q spatna_adresa@tld ldap:/konfigurace_ldapu.cf => nevraci nic, navratova hodnota 1
bohuzel se mi to nejak nedari dat cele dokupy:
postfix_sender_restrictions.cf:
check_sender_access regexp:tag_as_originating.re
permit_mynetworks
permit_sasl_authenticated
permit_tls_clientcerts
check_sender_access regexp:tag_as_foreign.re
check_sender_access ldap:konfigurace_ldapu.cf
i pokud pridam na dalsi radek reject, ktery by mel byt poslednim pravidlem, pokud zadne jine nevyhovi, stale lze odeslat mail z libovolne adresy. V cem je problem? navic pri pridanem rejectu nejsem schopen prijimat maily zvenku - nemelo by to projit pravidlem permit_mynetworks?
5.10.2014 17:13 Kriegel
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
Tenhle setup pocita s tim, ze submission bude probihat v jine instanci nez bezny provoz - vetsinou na portu 587. Ono to funguje, presne jak ma. Pokud sender neudela match na zadnem pravidle, dojde na posledni reject. To je zadouci v pripade, ze se dany server pouziva pouze pro "initial submission". Naopak pro bezny provoz je zadouci, aby ti kdokoliv ten mail mohl poslat (a je pak trochu podezrele, ze mail s tvou adresou prichazi zvenci, ackoliv by mel byt routovan tak nejak vnitrne). Jak jsem rikal, bez podrobneho zadani muzem neco vymyslet, ale k idealu to bude mit daleko ;-)
5.10.2014 17:55 lager
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
o vice instancich jsem premyslel uz drive, ale pripadalo mi to az prilis prehnane vzhledem k tomu, ceho jsem chtel docilit. Pokud zhruba rozumim tomu, co jsi napsal, tak jedna instance by mela zabezpecovat autentizaci + overeni adresy a predat mail dale (lokalne), kde bude predan cilovemu serveru. Instance, ktera by tedy mela byt otevrena do internetu, by tedy nemela nijak overovat adresu odesilate nebo prijemce?

Pokud jsi ochoten poradit, tak muzu zadani vcetne vetsiny detailu poskytnout - dej ale vedet jake presne detaily te zajimaji.
5.10.2014 18:34 Kriegel
Rozbalit Rozbalit vše Re: postfix check_sender_access + ldap
Nemusi se jednat o plnohodnotne instance ve smyslu tak, jak je popsano v linku. Treba tady je vcelku pekny nahled, jak to muze vypadat. Samo, ze existujou alternativy, co do pouzitych programu, tak do zpusobu svazani s Postfixem.

Vyber si z toho, co potrebujes, popr. pohledej po netu, navodu na bezne situace/konfigurace je spousta. Co se tyce overovani adresy sendera, vetsinou jsou to pomerne trivialni kontroly, viz mozne parametry v manualu. Naopak o prijemci vis v podstate vse--je tvuj, takze tady logicky je snahou vsechno, co je nevalidni, at uz permanentne nebo docasne, odmitnout hned.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.