abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 13:00 | Komunita

Při prvním spuštění Ubuntu 18.04 LTS (Bionic Beaver) je spuštěn nástroj Ubuntu Report. Pokud uživatel souhlasí, jsou pomocí tohoto nástroje odeslány do Canonicalu informace o daném počítači (doba instalace, počet procesorů, rozlišení displeje, velikost paměti, časová zóna, ...). V červnu byly zveřejněny první statistiky. Podrobnější statistiky jsou nově k dispozici na samostatné stránce.

Ladislav Hagara | Komentářů: 11
včera 01:00 | Pozvánky

O víkendu probíhá v Košicích pravidelné setkání příznivců otevřených technologií OSS Víkend. Na programu je řada zajímavých přednášek a workshopů.

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

Byla vydána nová verze 1.3 otevřeného, licenčními poplatky nezatíženého, univerzálního ztrátového formátu komprese zvuku Opus (Wikipedie) a jeho referenční implementace libopus. Vylepšena byla například detekce, zda se jedná o řeč nebo o hudbu. Přidána byla podpora prostorového zvuku (immersive audio) dle plánovaného RFC 8486. Podrobnosti a zvukové ukázky na demo stránce.

Ladislav Hagara | Komentářů: 0
18.10. 22:33 | Nová verze

Bylo vydáno Ubuntu 18.10 s kódovým názvem Cosmic Cuttlefish (Kosmická sépie). Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 3
18.10. 18:33 | Nová verze

Byl vydán PostgreSQL ve verzi 11.0. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
18.10. 17:33 | IT novinky

Nadace Raspberry Pi představila na svém blogu Raspberry Pi TV HAT, tj. rozšíření jednodeskového počítače Raspberry Pi umožňující příjem televizního vysílání DVB-T a DVB-T2. Cena rozšíření je 21,50 $.

Ladislav Hagara | Komentářů: 6
18.10. 17:07 | Nová verze

Vychází OpenBSD 6.4. Z řady novinek namátkou: podpora dalších architektur (arm64 např. dostal z Linuxu vypůjčený ovladač radeondrm), hypervizor vmm podporuje i qcow2 disky a šablony, jádro dokáže automaticky přepínat mezi dostupnými bezdrátovými sítěmi, sítě pracují o něco efektivněji, z bezpečnosti „přísaha byla doplněna odhalením“ (pledge(2) lze vhodně doplnit pomocí unveil(2)), SMT je ve výchozím stavu vypnutý, ale lze jej zapnout. Syntaxe nastaveni OpenSMTPD se změnila. S vydáním vychází také nová verze LibreSSL - 2.8.2.

Daniel Čižinský | Komentářů: 5
17.10. 23:15 | IT novinky

Firma Raptor Computing Systems, která stojí také za pracovní stanicí Talos II, představila levnější desku Blackbird s podporou jednoho 4-/8jádrového CPU POWER9 Sforza a formátem microATX; bližší specifikace jsou ve wiki výrobce.

Fluttershy, yay! | Komentářů: 28
17.10. 22:11 | Zajímavý projekt

Byla vydána verze 1.0 svobodné federalizované platformy pro sledování a sdílení videí, alternativy YouTube s podporou P2P, PeerTube (Wikipedie). Za vývojem PeerTube stojí nezisková organizace Framasoft snažící se mimo jiné nahradit svými svobodnými Frama službami služby společnosti Google (De-google-ify Internet).

Ladislav Hagara | Komentářů: 1
17.10. 19:44 | Zajímavý projekt

Společnost System76 prodávající počítače s Pop!_OS nebo Ubuntu plánuje prodej vlastního open source počítače s názvem Thelio. Informací je poskrovnu. Na Twitteru byla představena open source rozšířující deska (daughterboard), která by měla převzít funkce proprietárního softwaru na základní desce (motherboard).

Ladislav Hagara | Komentářů: 2
Přispíváte osobně k vývoji svobodného softwaru?
 (40%)
 (43%)
 (24%)
 (23%)
 (11%)
 (37%)
Celkem 253 hlasů
 Komentářů: 12, poslední 17.10. 21:18
Rozcestník

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

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

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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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.
LinuxMarket - linuxový e-shop | LinuxEXPRES - linuxový magazín | OpenOffice.cz - portál uživatelů OpenOffice/LibreOffice
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: 46 | 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-Výuka.cz, Nekuřák.net

Založit nové vláknoNahoru

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