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 14:22 | Komunita

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

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 749 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Stavíme poštovní server – 2 (Dovecot)

    19. 10. 2009 | Lukáš Jelínek | Sítě | 26932×

    Seriál o budování poštovního serveru pokračuje představením druhého základního „člena týmu“ – programu Dovecot. Ten se na serveru stará o přístup k poště pomocí protokolů POP3 a IMAP, může zajišťovat i lokální doručování a poskytovat autentizační služby jiným programům.

    Obsah

    Dovecot a jeho historie

    link

    Dovecot (název znamená anglicky „holubník“, zřejmě v asociaci na poštovní holuby) je program, který vhodně doplňuje Postfix nebo jiné MTA (např. Sendmail, Exim nebo qmail) zejména o přístup k poště, ale případně i o další funkce. Jeho hlavním úkolem je role IMAP serveru (protokol IMAP 4, revize 1) a POP3 serveru – uvedené protokoly podporuje v plné šíři a ještě různá rozšíření navíc. Obsahuje samozřejmě podporu pro komunikaci přes TLS, a to jak formou explicitního zapnutí TLS pro konkrétní relaci, tak i v implicitní formě na samostatných portech.

    Součástí programu Dovecot je také lokální doručovací agent, který může přebírat zprávy od MTA a zajišťovat finální doručení. Je to výhodné zejména v kombinaci s filtrací doručované pošty (technologie Sieve, viz dále) nebo s nastavováním kvót. Dovecot může fungovat také jako autentizační agent (technologie SASL) pro jiné programy, např. pro Postfix. Lze tak snadno centralizovat autentizaci na jedno místo.

    Historie programu Dovecot

    link

    Podobně jako Postfix, je i Dovecot v zásadě „jednomužným“ projektem, přestože se na něm do určité míry podílí mnoho lidí a řada firem. Začal ho vyvíjet finský programátor Timo Sirainen z Tampere (kromě programu Dovecot vyvinul též například IRC klienty irssiirrsi2, komunikační protokol Icecap a pracuje i na dalších projektech). První verze alfa verze (0.93) byla k dispozici v červenci 2002, první ostrá verze (1.0.0) se dočkala vydání až v dubnu 2007, po 5 letech vývoje (jen pro zajímavost, např. jen RC verzí 1.0.0 bylo 32). Nicméně už dlouho před tímto okamžikem byl Dovecot velmi dobře použitelný, byl součástí řady linuxových distribucí a byl nasazován i na produkční servery.

    Již verze 1.0 obsahovala velmi dobrou podporu specifikací protokolů a různých rozšíření, verze 1.1 (vydaná v červnu 2008) dosáhla prakticky stoprocentní podpory a přinesla i nová rozšíření a různá další vylepšení. Aktuálně je nejnovější verze 1.2 (v tento okamžik konkrétně 1.2.6) z července 2009. Nových věcí v této verzi není až tolik, jde hlavně o nová rozšíření protokolu IMAP a o plnou podporu sdílených schránek a IMAP ACL. 12. října 2009 byla vydána první alfa verze 2.0, obsahující poměrně zásadní změny v implementaci a přinášející například podporu protokolu LMTP nebo univerzální administraci pomocí doveadm.

    Cílem vzniku programu bylo vytvoření bezpečného, nenáročného, stabilního a snadno spravovatelného serveru s maximální podporou standardů. Timo Sirainen svůj důraz na bezpečnost ukázal i tím, že vyhlásil odměnu 1000 eur za nalezení zneužitelné bezpečnostní díry. Na vývoji se podílí řada autorů, vývoj podporují některé firmy, část kódu byla (samozřejmě v souladu s licencí) převzata z hotových produktů. Timo Sirainen je nyní zaměstnán v hostingové firmě Rackspace (dříve Mailtrust), kde se plně věnuje právě vývoji programu Dovecot.

    Dovecot je poskytován pod směsí licencí, různé části kódu mají různé licence. Největší část je pod GNU LGPL 2.1 (což je také nejrestriktivnější z použitých licencí), další část pod licencí MIT, něco je public domain a pár komponent má vlastní licence (podobné licenci MIT).

    Proč používat Dovecot

    link

    Seznam důvodů bude velmi podobný tomu, který si můžete přečíst u.minulého dílu o Postfixu Je to logické, právě proto se tyto dva programy k sobě hodí.

    • výborná podpora standardů
    • robustnost, stabilita, bezpečnost
    • flexibilita
    • škálovatelnost
    • funkční bohatost
    • snadná konfigurace a správa
    • nízké systémové nároky

    Dovecot výborně podporuje standardy. Na rozdíl od řady jiných IMAP serverů (u čistých POP3 serverů je situace jiná, vzhledem k primitivnosti protokolu v porovnání s protokolem IMAP), které trpí většími či menšími odchylkami od specifikace protokolu IMAP4rev1, je na tom Dovecot (počínaje verzí 1.1) výborně. Prokazuje to i fakt, že úspěšně prošel všemi ze 403 skriptovaných testů zaměřených na základní IMAP a dalšími 100 testy na rozšíření protokolu (což se v rámci porovnávání podařilo už jen programu Panda IMAP – všechny ostatní trpěly různým počtem chyb). Dovecot navíc podporuje různé workaroundy, kterými se vyrovnává s chybami v implementaci protokolu na straně klientů.

    Dovecot je stabilní, robustní a bezpečný. Kromě již zmíněného důrazu při vývoji a vyhlášené odměny na nalezení chyby je bezpečnost řešena podobně jako u programu Postfix – tedy velkou modularitou, minimalizací a separací práv atd. Moduly jsou opět velmi nezávislé a problémy jednoho nemají dopady na fungování těch ostatních.

    Dovecot je flexibilní. Lze si ho v širokém rozmezí přizpůsobit, a to například jak z hlediska úložiště zpráv, tak i datových zdrojů, autentizačních metod, podporovaných funkcí atd. Velkou výhodou je možnost velmi snadné migrace z většiny jiných POP3/IMAP řešení, často bez nutnosti jakkoli zasahovat do úložiště a beze změny unikátních identifikátorů zpráv.

    Dovecot je škálovatelný. Vzhledem k architektuře programu tento může dobře využít jak stroj s omezenými prostředky (aniž by mu to činilo potíže), tak i rychlý server s dostatkem zdrojů.

    Dovecot je funkčně bohatý. Podporuje velkou škálu rozšíření komunikačních protokolů a autentizačních metod, ale má také zásuvné moduly (pluginy) pro další funkce – samozřejmě s tím, že další pluginy lze vytvářet a využívat podle potřeby.

    Dovecot je snadno spravovatelný a konfigurovatelný. Konfigurační soubor se do určité míry podobá konfiguraci programu Postfix (parametr=hodnota), je ale hierarchicky členěný (např. sekce autentizace, v ní sekce LDAP apod.). Základní konfigurace sestává z jediného souboru. Pokud se využívá jako zdroj informace SQL databáze nebo LDAP, potřebné údaje se dávají do samostatných souborů. Informace o případných potížích program dává najevo srozumitelnými zprávami.

    Dovecot má nízké systémové nároky. Jsou spuštěny jen skutečně využívané komponenty, některé moduly lze sdílet napříč celým serverem, kód není náročný na paměť ani čas procesoru.

    Architektura programu Dovecot

    link

    Architektura je do značné míry podobná té, kterou má i Postfix. Tedy existuje jeden hlavní program (master), který řídí běh výkonných modulů. Zásadní rozdíl je ale v tom, jak se tato hierarchie spravuje. Zatímco u Postfixu řídí nakládání s moduly správce serveru, u Dovecotu je to program samotný – správce si určí, co všechno (a jak přesně) bude Dovecot dělat, a jeho hlavní program už se postará o to, aby běžely ty správné moduly.

    Architektura systému Dovecot

    Do určité míry však správce do spouštění modulů zasahuje. Může například určit, jaký počet procesů určitého druhu se bude spouštět nebo jaký počet relací bude obsluhovat – v závislosti na tom, jaké prostředky jsou k dispozici a jak se s nimi má nakládat. I tak ale primární úlohou administrátora zůstává, aby zvolil podporované služby a jejich chování.

    Dovecot je schopen fungovat i jako spouštěný na vyžádání (inetd, resp. xinetd), místo hlavního programu se však spouštějí přímo moduly pro daný protokol, které si pak samy spustí další potřebné moduly. Lze to využít pro servery s minimem prostředků, kde se k poště přistupuje jen zřídka.

    Na rozdíl od programu Postfix má Dovecot podporu pro pluginy. Dělí se do různých kategorií (konkrétně obecné a specifické pro jednotlivé služby – pro autentizaci, IMAP, POP3 a LDA), základní sada je k dispozici společně s programem, další pluginy lze získat od jiných autorů nebo si je případně i vytvořit podle potřeby.

    Dovecot nemá žádné ovládací utility. Nové načtení konfigurace se vynucuje přímo signálem (SIGHUP), konfiguraci lze předem zkontrolovat spuštěním programu se specifickým přepínačem, totéž se týká vypsání nastavených (nevýchozích) hodnot. Jedinou utilitou je program dovecotpw, určený ke generování hesel – lze ho využít v případech, kdy se přihlašovací údaje ukládají do souborů.

    Jak Dovecot nakládá se zprávami

    link

    Dovecot se ke zprávám může dostat v zásadě dvojím způsobem – buď mu je do úložiště vkládá jiný program (např. Postfix nebo procmail), nebo si je tam vkládá sám prostřednictvím doručovacího agenta (LDA). Záleží samozřejmě na tom, o jaké konkrétní úložiště se jedná, nicméně vždy platí, že pokud Dovecot běží, aktualizuje si ihned indexy, které si pro přístup ke zprávám vytváří (buď to udělá přímo LDA, nebo – v případě doručení jiným programem – to Dovecot udělá na základě notifikace pomocí technologie inotify nebo dnotify). Poškodí-li se nebo odstraní indexy (např. smazáním příslušných souborů), Dovecot si je automaticky opraví.

    Při přístupu uživatele ke zprávám začíná relace samozřejmě vždy autentizací. Na připojení uživatelů čekají přihlašovací moduly (imap-loginpop3-login). Po připojení začne autentizace, kterou provede modul dovecot-auth; ten si může spustit ještě další pracovní instance, potřebuje-li provést blokující operace, např. dotazy do databáze. Po úspěšné autentizaci uživatelskou relaci přebírá modul imap, resp. pop3, který se stará o vlastní práci se zprávami.

    Pokud se využívá i lokální doručování přes Dovecot LDA, vstupuje do hry ještě další modul – deliver. Ten ale neběží jako démon, nýbrž ho spouští MTA jako svůj cílový transport. LDA se často využívá v kombinaci s pluginy (protože pro pouhé ukládání zpráv by byl skoro zbytečný, to zvládne i samotný MTA), zejména pro sledování kvót nebo pro filtraci zpráv.

    Uživatelské databáze

    link

    Klíčovými informacemi, se kterými program pro přístup k poště pracuje, jsou údaje o uživatelích – tedy jméno, heslo, uživatelský adresář, příp. umístění schránky, UID, GID, kvóty a další parametry. Tyto údaje lze získávat z různých zdrojů, Dovecot jich podporuje celou řadu – konkrétně tyto:

    • passwd – databáze systémových uživatelů, typicky využívaná přes NSS (základem jsou soubory /etc/passwd, /etc/shadow atd., ale může využívat i jiné zdroje)
    • soubory typu passwd – jde o obecné soubory se syntaxí /etc/passwd
    • NSS – využití konkrétní služby NSS (oproti passwd umí rozlišit dočasné a trvalé chyby)
    • LDAP – využití adresářových služeb LDAP, včetně Microsoft Active Directory
    • SQL – databáze založené na jazyce SQL; aktuálně jsou k dispozici ovladače pro MySQL, PostgreSQL a SQLite
    • statické hodnoty – pevně definované nebo generované pomocí šablon
    • VPopMail – využití externích programů VPopMail nebo VMailMgr
    • prefetch – využití informací načtených dříve (viz dále)

    Metoda „prefetch“ znamená, že se při zjišťování údajů o uživateli použije to, co bylo zjištěno při zjišťování hesel. Uvedený seznam se totiž týká uživatelů jako takových – s hesly je to mírně jinak. Podporovány jsou výše uvedené metody, navíc ještě PAM a externí program CheckPassword. Co je ale důležité, ne všechny metody lze používat společně se všemi autentizačními schématy – problém je totiž v tom, že některá schémata vyžadují heslo v otevřeném tvaru (nikoli šifrované/hešované). Podle toho lze rozlišit dvě skupiny zdrojů – v jedné jsou zdroje umožňující pouhé porovnání hesla s uloženým heslem (omezená množina schémat), ve druhé zdroje umožňující získání hesla a další práci s ním (plná množina schémat). Ještě o tom bude řeč v dalších dílech seriálu.

    Uvedené údaje může Dovecot (formou implementace SASL) poskytovat i jiným programům. Ty pak mají k dispozici stejné a stejným způsobem využitelné (ve smyslu škály použitelných schémat) údaje jako samotný Dovecot. Lze toho s výhodou využít například při spolupráci s programem Postfix.

    Některé zásuvné moduly

    link

    Přestože základní program poskytuje většinu potřebné funkcionality, zásuvné moduly (pluginy) přidávají některé velmi užitečné funkce. Tady je přehled některých takových pluginů, které jsou z tohoto pohledu zajímavé:

    • acl – poskytuje podporu pro přístupové seznamy (access control lists, ACL); do verze 1.1 se jedná o ACL řízené správcem, od 1.2 jde již o plnou implementaci rozšíření IMAP ACL
    • expire – automaticky maže zprávy po určité době; vhodné např. pro automatické čištění složky se spamem
    • fts – indexace pro fulltextové vyhledávání (podporuje vlastní engine Squat a také externí LuceneSolr)
    • quota – podpora kvót; doplňkovým pluginem je imap_quota pro hlášení stavu zaplnění klientům
    • trash – automaticky odstraňuje smazané zprávy, pokud je překročena kvóta

    Kromě pluginů přibalených přímo k programu existují další, od jiných autorů. Nejzajímavějším externím pluginem je zřejmě CMU Sieve (implementace filtrační technologie Sieve) z projektu Cyrus; od Dovecotu verze 1.2 lze však použít plugin poskytovaný přímo s programem. Jednotlivé pluginy lze konfigurovat, a to nejen globálně, ale i na úrovni uživatelů nebo schránek/složek (tzn. například definovat kvóty globálně, potom jednotlivým uživatelům a nakonec ještě konkrétním složkám).

    Od teorie k praxi

    link

    Teoretický úvod (tedy spíše stručná přehlídka možností) je u konce a přichází čas na něco praktičtějšího. Příští díl bude věnován tomu, kde oba popisované programy získat, jaké verze zvolit, a hlavně, jak už také něco doopravdy zprovoznit.

           

    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ář

    19.10.2009 05:52 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 2 (Dovecot)
    Pokud si pamatuju dobře, tak Dovecot neumí (rozumně) sdílení mailboxů a ACL.
    In Ada the typical infinite loop would normally be terminated by detonation.
    Luk avatar 19.10.2009 06:43 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 2 (Dovecot)
    Od verze 1.2 umí. Možná jsem to nenapsal dostatečně srozumitelně, ale zmiňuji to na dvou místech.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    19.10.2009 10:14 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 2 (Dovecot)
    OK, a funguje to do té míry, že když uživatel poštovního klienta (kmail, thunderbird, …) klikne na „sdílení/acl“, tak se mu povede vše nastavit? Nebo se musej editovat ACL ručně někde na serveru?
    In Ada the typical infinite loop would normally be terminated by detonation.
    Luk avatar 19.10.2009 13:12 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 2 (Dovecot)
    OK, a funguje to do té míry, že když uživatel poštovního klienta (kmail, thunderbird, …) klikne na „sdílení/acl“, tak se mu povede vše nastavit?
    Ano, od verze 1.2. Lze to ovládat pomocí libovolného klienta, který umí IMAP ACL (příkazy MYRIGHTS, GETACL, SETACL a DELETEACL).
    Nebo se musej editovat ACL ručně někde na serveru?
    To bylo dřív.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    19.10.2009 09:11 Zemis | skóre: 11
    Rozbalit Rozbalit vše Re: Stavíme poštovní server – 2 (Dovecot)
    Díky za hezké články. Sám Postfix(2.6) a Dovecot(1.2) používám a musím říct, že provozování tohoto serveru je naprosto bezproblémové. Velice si cením dovecot-saslu, který snížil zátěž na LDAP server. Těším se na další díly a doufám že se budete věnovat i nějakým těm pluginům (třeba expire a quota :)
    xkucf03 avatar 19.10.2009 22:57 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše ACL a Sieve
    Už se těším na praktickou část seriálu :-) Poštovní server s postfixem a dovecotem už provozuji, ale k ACL a Sieve jsem se zatím nedostal, to se bude hodit.
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    Založit nové vláknoNahoru

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