abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze

    Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 03:22 | Zajímavý článek

    V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …

    Ladislav Hagara | Komentářů: 0
    včera 00:11 | Nová verze

    Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.

    Ladislav Hagara | Komentářů: 6
    27.4. 17:44 | Nová verze

    Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    26.4. 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 12
    26.4. 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 9
    26.4. 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 45
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 14
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    KDE Plasma 6
     (75%)
     (8%)
     (2%)
     (15%)
    Celkem 878 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Oddělení MSA a MTA

    15. 1. 2010 | Lukáš Jelínek | Sítě | 19849×

    Message Submission Agent

    link

    Pod tímto tajemným názvem (zkracovaným jako MSA) se skrývá věc, která formálně existuje už hodně dlouho, nicméně v praxi na ni člověk moc nenarazí. Jde o klasický problém „slepice-vejce“. Protože to nikdo nepoužívá, nikdo to nezavádí. A protože to nikdo nezavádí, nikdo to nepoužívá.

    Snad i malé dítě už dnes ví, že SMTP služba běží standardně na portu 25. Na tento port se připojují serverové i klientské programy a jeho prostřednictvím probíhá veškerá e-mailová komunikace. Jenže to má některé nepříjemné důsledky, proto vznikl nápad, že se to rozdělí. Port 25 bude sloužit jen pro doručování pošty (tedy komunikace mezi servery, vystupování jako Mail Transfer Agent), kdežto pro odesílání z klientů se použije port jiný, konkrétně 587. Zabývá se tím RFC 2476, nově také draft RFC 4409.

    Právě v čísle portu spočívá onen problém s „nepoužíváním“. V poštovních klientech je jako výchozí port nastaven téměř vždy 25 a změna na 587 mnohdy znamená, že se uživatel musí zanořit do hloubi nastavení poštovního účtu a číslo portu tam změnit. Na druhou stranu, pokud by tam bylo 587, u většiny poskytovatelů by to nyní nefungovalo a uživatel by byl opět nucen trápit se s nastavováním. Je otázkou, do jaké míry je vhodným řešením „automatická konfigurace“ použitá například v programu Mozilla Thunderbird 3.

    Výhody separace MSA a MTA

    link

    Za „normálních“ okolností, tedy tak, jak je většina poštovních serverů nastavena, se tentýž server chová nejen jako Mail Transfer Agent, ale de facto také jako Mail Submission Agent, byť ne se všemi specifiky. To přináší různé problémy, související s ochranou proti spamu a s konfigurací serveru.

    Pokud se však role oddělí, situace se zjednoduší. MTA běžící na portu 25 se bude starat jen o vlastní doručování – nebude tedy přijímat jinou poštu, než kterou přímo doručí do místních schránek. Odpadá tím potřeba řešit předávání dál (relaying), protože nic takového se prostě nekoná.

    Naopak samostatný MSA nebude obsluhovat žádné schránky, bude se starat jen a pouze o příjem pošty od klientů a její předávání cílovým MTA. Proto bude také vždy vyžadovat autentizaci klientů, čímž se eliminuje nelegitimní přístup (jak od spammerů jako takových, tak i od primitivnějších spambotů na ovládnutých počítačích; chytřejší spamboty samozřejmě mohou v některých případech získat a používat autentizační údaje).

    S tím souvisí možnost bezproblémového přístupu na MSA i ze sítí, kde je blokován port 25, jakkoli jde taková blokace proti podstatě Internetu. Dále může MSA řešit některé drobné problémy klientů (například absenci některých hlaviček). Principiální výhodou separace je pak samostatná konfigurace MSA a MTA, bez nutnosti dělat kompromisy a hledat styčné body mezi požadavky jednotlivých rolí. Každá ze služeb se konfiguruje zcela samostatně, změna v MTA většinou nemá žádné dopady na MSA a naopak.

    Konfigurace programu Postfix – společný stroj

    link

    Postfix může být nakonfigurován tak, aby plnil kteroukoli z oddělených rolí (MSA a MTA). Může to fungovat tak, že bude Postfix figurovat v obou rolích, ať již na stejném, nebo na různých strojích. Jiným řešením je použít Postfix jen pro jednu z rolí a na druhou nasadit jiný software. Záleží čistě na volbě správce, jakou cestou se vydá.

    Pokud obě role sdílí stejný stroj, nastává problém, jak nakonfigurovat dvě služby odlišně, přestože jsou poskytovány stejným modulem Postfixu. Řešení je dvojí. Buď se použije služba postmulti, která je přímo určena ke spouštění více instancí s různou konfigurací. Služba je ovšem obsažena až ve verzi 2.6, která není k dispozici v repozitářích řady distribucí. Navíc je konfigurace poměrně složitá, takže přesahuje rámec tohoto článku (využití postmulti bude náplní jednoho z pozdějších dílů seriálu).

    Druhou možností je předání potřebných parametrů přes příkazovou řádku služby. Toto řešení je velmi jednoduché na konfiguraci a lze ho používat i se staršími verzemi Postfixu, byť není až tak úplně čisté a systematické.

    Toto řešení spočívá v tom, že bude základní konfigurace v main.cf připravena pro MTA a v master.cf se přímo u služby submission použijí takové parametry příkazové řádky, aby byla konfigurace přizpůsobena funkci MSA. Soubor main.cf může mít například následující obsah:

    myhostname = postak.moje.domena
    myorigin = $mydomain
    
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    
    virtual_mailbox_base = /var/mail/virtual
    virtual_mailbox_domains = ldap:/etc/postfix/ldap/vdomains.cf
    virtual_mailbox_maps = ldap:/etc/postfix/ldap/vmailbox.cf
    virtual_alias_maps = ldap:/etc/postfix/ldap/virtual.cf
    
    virtual_minimum_uid = 100
    virtual_uid_maps = static:100
    virtual_gid_maps = static:100
    
    smtpd_client_restrictions = permit
    
    smtpd_sender_restrictions =
        permit_mynetworks,
        reject_non_fqdn_sender,
        reject_unknown_sender_domain,
        check_sender_access hash:/etc/postfix/access,
        permit
    
    smtpd_recipient_restrictions =
        reject_non_fqdn_recipient,
        permit_sasl_authenticated,
        reject_unauth_destination,
        permit
    
    smtpd_helo_required = yes
    disable_vrfy_command = yes
    
    smtpd_sasl_type = dovecot
    smtpd_sasl_path = private/auth
    smtpd_sasl_auth_enable = no
    broken_sasl_auth_clients = yes
    
    content_filter = smtp-amavis:[127.0.0.1]:10024
    

    Všimněte si, že se definují parametry SASL, přestože je autentizace vypnutá (smtpd_sasl_auth_enable = no). To je proto, aby se co nejméně parametrů muselo definovat přes příkazovou řádku služby submission. Takto nakonfigurovaný MTA bude přijímat poštu pouze pro místní schránky, což je zajištěno pravidlem reject_unauth_destination v sadě smtpd_recipient_restrictions. Pravidlo permit_sasl_authenticated se neuplatní, protože je autentizace vyřazena z činnosti (nicméně se uplatní po jejím zapnutí – viz dále).

    Teď je potřeba nakonfigurovat MSA. Příslušný řádek master.cf, který je potřeba přidat, bude vypadat takto:

    submission      inet  n       –       –       –       –       smtpd
      -o smtpd_sasl_auth_enable=yes
      -o virtual_mailbox_domains=
      -o content_filter=
    

    První řádek je úplně stejný jako u situace, kdy MSA a MTA běží na samostatných strojích. Aktivuje se jím služba submission pro MSA. Na dalších řádcích jsou již zmiňované parametry příkazové řádky. První říká, že se zapne autentizace SASL (u MTA je zcela logicky vypnutá, nepoužívá se). Další řádek vypíná domény pro virtuální doručování (tím je zajištěno, že se nebude nikam doručovat) a konečně poslední parametr vypne filtr obsahu (zde je zbytečný).

    Toto vše je samozřejmě jen velmi jednoduché využití rozdělení rolí MTA a MSA. Lze pokročit ještě dále a například definovat rozdílné politiky šifrování TLS (pokud se používá), rozdílnou přísnost na syntaktickou validitu (u MTA se bude pouze hodnotit filtrem obsahu, kdežto u MSA lze dát striktní pravidla, která zajistí odmítnutí zprávy ještě před převzetím). Lze také pomocí MSA kontrolovat shodu obálkového odesílatele (příkaz MAIL FROM) s povolenými adresami autentizovaného uživatele a/nebo nastavovat identifikaci odesílatele (Sender-ID).

    Konfigurace programu Postfix – dva stroje

    link

    Pokud běží každá ze služeb na vlastním stroji, ať už fyzickém či virtuálním, stačí na daném stroji brát v úvahu jen jeho vlastní roli a na tu druhou se neohlížet. Jako první přijde na řadu MTA, tedy server doručující do schránek.

    Soubor master.cf lze ponechat v té podobě, v jaké byl v minulém dílu, čili žádná služba submission, která přibyla v případě společného stroje, zde není. Soubor main.cf lze naopak použít v podobě uvedené výše, byť parametry okolo autentizace (smtpd_sasl_type apod.) jsou zde zbytečné a lze je vynechat.

    Dalším krokem je připravit konfigurační soubory pro MSA. V souboru master.cf se smaže/zakomentuje internetová služba smtp, místo ní bude služba submisssion:

    #smtp           inet  n       –       –       –       –       smtpd
    submission      inet  n       –       –       –       –       smtpd
    

    Tím se aktivuje služba běžící na portu 587 (submission) namísto původní služby na portu 25 (smtp). Port 25 zůstane uzavřený, nic na něm nepoběží.

    Dále se musí zajistit přístup k autentizaci, protože Dovecot běží jinde (tam, kde jsou umístěny schránky, tj. například na MTA). Možnosti jsou v zásadě dvě – buď se spustí samostatná instance programu Dovecot, která bude pracovat se stejnou databází jako instance poskytující přístup k poště (použitelné u databáze MySQL apod. nebo LDAP), anebo se umožní vzdálený přístup pro autentizaci na jediné instanci.

    První možnost je jednodušší, spočívá pouze v tom, že se Dovecot nainstaluje na stroj určený pro MSA a nadefinuje se mu speciální konfigurace. Tato konfigurace nebude obsahovat komunikaci pomocí protokolů pro přístup k poště (čili Dovecot nebude naslouchat na příslušných portech ani nepoběží služby, které komunikaci zajišťují), Dovecot bude poskytovat pouze autentizační služby. Konfigurační soubor dovecot.conf bude vypadat například takto:

    protocols = none
    
    disable_plaintext_auth = no
    
    auth default {
      mechanisms = plain login cram-md5 digest-md5 ntlm
    
      passdb ldap {
        args = /etc/dovecot/ldap.conf
      }
    
      userdb ldap {
        args = /etc/dovecot/ldap.conf
      }
    
      user = dovecot-auth
    
      socket listen {
        client {
          path = /var/spool/postfix/private/auth
          mode = 0660
          user = postfix
          group = postfix
        }
      }
    }
    
    

    Příklad je samozřejmě určen pro řešení s uživateli v adresáři LDAP. Parametr protocols je nastaven na none (žádné protokoly) a ze sekcí zůstala pouze auth default, která konfiguruje autentizaci.

    Kdo nechce instalovat Dovecot na MSA, může zvolit metodu druhou, tedy vzdálenou autentizaci. Problém je však v tom, že Dovecot poskytuje autentizační služby pouze přes lokální (unixový) socket, nikoli přes internetový. Jedinou možností je tedy využít programy typu socat, které dokáží tento nedostatek obejít vytvořením internetového spoje mj. mezi lokálními sockety. Netřeba snad dodávat, že komunikace by měla být vždy nastavena jako šifrovaná a náležitě ověřovaná (server i klient), aby nebylo možné se neoprávněně dostat k uživatelským heslům.

    SSL/TLS a problematika šifrování

    link

    Zejména v posledních letech se šifrování komunikace stává vysloveně nutností, protože zvědavé uši mohou číhat kdekoliv. A když už se nešifrují jednotlivé zprávy, je žádoucí šifrovat alespoň komunikace mezi klientem a serverem i mezi jednotlivými servery. Celý příští díl seriálu proto bude zaměřen na záležitosti související se šifrováním poštovní komunikace, a to jak SMTP, tak POP3 a IMAP.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

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

    Komentáře

    Vložit další komentář

    15.1.2010 08:36 bigBRAMBOR | skóre: 37
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    nevyhody greylistingu kompenzuji autowhitelisintgem. Pokud server uspesne poslechne, a zareaguje na greylisting tak jak ma, je na predem urcenou dobu zarazen do whitelistu. Treba na 14 dni.

    geoip - zjistuji automaticky lokaci IP adresy. Nektere staty mam cele na whitelistu. To sice trochu snizuje ucinost, ale vetsina spamu jde z pár lokací.
    15.1.2010 09:21 w3432
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    vetsina spamu jde z pár lokací.

    vazne? jak moc je to spolehlive? ja mel za to, ze vetsina spamu jde z botnetu takze jsou ty zdrojove ip tak nejak "normalne" rozdeleny :)
    15.1.2010 10:29 bigBRAMBOR | skóre: 37
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    pomery v % treba zde

    tudis maily z CR a SK nezdrzuju, samozrejme to o neco poslehlivost snizi, ale nijak dramaticky
    Luk avatar 15.1.2010 14:19 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    nevyhody greylistingu kompenzuji autowhitelisintgem. Pokud server uspesne poslechne, a zareaguje na greylisting tak jak ma, je na predem urcenou dobu zarazen do whitelistu. Treba na 14 dni.
    To je například u Postgreye standardní chování a zmiňuji ho, i když ne přesně takhle. Nicméně to nekompenzuje nevýhody greylistingu. Hlavní nevýhodou je to, že první zpráva dojde vždycky pozdě, není-li greylisting přímo vyřazen (například pro konkrétní doménu odesílatele).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    17.1.2010 23:23 J
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    A nechce to spis trochu osvety ? Odkdy je mail garantovana sluzba ? Od kdy maji maily chodit v radu vterin ? Aktualne mam na firemnim mailserveru vcelku brutalni nastaveni (chodilo cca 4-5k spamu/den) + cca 20 - 30 vyjimek (bridilove co si neumej nastavit svy DNS/servery). Jasne ze tam koncej i "nespamovy" maily, ale pokud chce nekdo jezdit po silnici, tak si taky musi nejdriv udelat ridicak. Pokud je nekdo dobytek a neumi si to nastavit nebo neni schopen o konfiguraci nekoho pozadat ... ma proste smulu.
    17.1.2010 23:55 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    A nechce to spis trochu osvety ? Odkdy je mail garantovana sluzba ? Od kdy maji maily chodit v radu vterin ?

    Osveta by mela byt v tom, ze by uzivatele meli vedet, ze e-mail muze fungovat v radu sekund a pokud tomu tak neni, tak se s tim nemusi smirit a muzou prejit k jinemu poskytovateli, u ktereho to tak fungovat bude.
    18.1.2010 10:10 bigBRAMBOR | skóre: 37
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    a kde jim maily budou chodit nejenom rychle, ale taky jim jich prijde daleko vic - treba o tech 5k :-D
    15.1.2010 08:52 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    Někdy také zpráva nemusí být doručena vůbec, protože je odesílající server špatně nastaven
    Jo, například si plete chybu 4xx s 5xx (a tvrdí, že to nejde doručit), posílá odesílateli zprávu o tom, že se to doručí později (a odesílatel si následně myslí, že vůbec),...
    Quando omni flunkus moritati
    Prokop Mikule avatar 15.1.2010 09:31 Prokop Mikule | skóre: 9
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    Celkem zajimave je nakombinovat postgrey s postfwd (http://postfwd.org/). Selektivni greylisting pro dynamicke rozasahy apod.
    15.1.2010 12:53 honza
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    Byla nebyla jedna implementace greylistingu

    Firma A s greylistem se snažila doručit do firmy B, která u každého emailu kontrolovala existenci odesilatele. Email přišel z A do B, kde došlo k ověřování. Firma B byla při ověřování odmítnuta, protože nebyla v databázi greylistu. Email byl firmou B odmítnut, protže neexistoval uživatel ve firmě A ...

    15.1.2010 13:53 Father Hurley
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    To je ponekud zmatena pohadka.
    15.1.2010 14:47 Radovan Garabík
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    Email byl firmou B odmítnut, protže neexistoval uživatel ve firmě A

    ... a tu administrátor (nevieme ktorý) urobil chybu. Správne nastavený greylisting vráti 4xx kód, a správne nastavené overovanie existencie odosielateľa 4xx nepovažuje za neexistenciu, ale vráti tiež 4xx, takže A sa pokúsi za pár minút, kedy už B bude v databáze a A vráti úspech a B mail prijme.

    Používam obidve, aj greylisting aj overovanie, a mail medzi dvojicou takýchto serverov bez problémov prejde na tretí pokus.
    20.1.2010 15:11 st. Grumpa | skóre: 12
    Rozbalit Rozbalit vše Jde to i bez greylistingu
    Několik let jsem byl nadšeným instalátorem greylistingu, ale už nejsem. Konfigurace serveru je tak jednodušší a množství neodfiltrovaného spamu prakticky nestouplo. Spamassassin je prostě bůh. Spouštím ho v MailScanneru - další boží věcička a doplní-li se o MailWatch jsem šťastný a spokojený správce. Dobré maily ve spamu nekončí a doručeného spamu je minimálně. Co víc si uživatel může přát? Snad jen šíleného admina, který mu kvůli purifikaci netu hází obchodní maily do karantény, nebo je radší vůbec odmítá. Nemyslím si, že koncový uživatel by měl pykat. Tohle si mají admini vyřizovat mezi sebou, ne? :o)
    6.9.2013 11:53 Denny
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 11 (greylisting, MSA)
    Vím že tohle je starý článek, ale líbila se mi myšlenka per user zapínání/vypínání postgrey. Ale vůbec jsem z článku nepochopil jak to má autor vymyšlený. Ani google mi na prvních pár dotazů nepomohl. Tak snad jen pro někoho kdo by sem zabloudil,...

    nadefinoval jsem si vlastni tridu restrictions
    smtpd_restriction_classes = postgrey_r_class
    postgrey_r_class = check_policy_service inet:127.0.0.1:10023
    
    restrikce příjemců
    smtpd_recipient_restrictions = reject_unauth_pipelining,
                    reject_non_fqdn_sender,
                    reject_unknown_recipient_domain,
                    permit_sasl_authenticated,
                    reject_unauth_destination,
                    check_recipient_access proxy:mysql:/etc/postfix/sql/mysql_virtual_postgrey_maps.cf,
                    permit
    
    takhle to pravděpodobně bude hlásit že proxy není nastavená na tu tabulku, tak si jen vyjeďte postconf -d default a pridejte si ji
    proxy_read_maps = $local_recipient_maps ... proxy:mysql:/etc/postfix/sql/mysql_virtual_postgrey_maps.cf
    a pak jeste query pro mysql takhle
    SELECT IF(`postgrey` = 1,'postgrey_r_class','OK') FROM `mailbox` WHERE `username` = '%s' AND `active` = '1'
    
    takle pokud je postgrey z dtb 1 tak se zavola nově nadefinovaná třída, pokud ne tak OK a postfix skočí na další pravidlo. Mělo jit nadefinovat vypinaní/zapinání jednotlivých restriction (třeba různé externí blacklisty)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.