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 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 0
    dnes 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

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

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

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

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

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

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    včera 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

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

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

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

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

    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.