Portál AbcLinuxu, 13. května 2025 00:37
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 = 30Google 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
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.
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
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 1bohuzel 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.cfi 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?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.