Uvedení systému do provozu a základní konfigurace.
8.6.2005 06:00 | Radim Kolář | přečteno 8203×
S DBMailem jsem začal u verze 1.2. Tato řada měla dva zásadní nedostatky. V první řadě neuměla LMTP, což činilo konfiguraci MTA zbytečně složitou, a za druhé uměla vyrábět velmi kvalitní memory leaky. Pod pojmem kvalitní memory leak si představte zhruba 0,5 MB na zprávu. Jelikož kernel čas od času zlikvidoval příliš nenasytný proces, bylo použití utilit jako např. supervise nutností.
Na memory leakách se pracovalo a toto téma bylo diskutováno na mailing listu zhruba takto:
Máme tam memory leaky, použijeme Boehm GC http://www.hpl.hp.com/personal/Hans_Boehm/gc/
To je ale o 30 procent pomalejší.
Neprogramujeme pro benchmarky, ale pro praxi.
Možná je to pomalejší, ale zato je to bez práce.
[o tyden pozdeji]
Tak jdem na to, vrazíme tam BGC.
To si snad děláte srandu, včera jsem do tří v noci našel 8 memory leaků.
No jo, ale kolik jich tam ještě zbylo.
Jestli to nezakomitujete, tak už nic nepošlu.
Tým uznal pádný argument, ocenil hodnotnou práci tvrďáka kodéra a úvahy o BGC poslal k zemi. Já jsem vyměkl a pro jistotu si přeložil DBMail řady 1.2 s BGC. Pracoval skvěle.
Jelikož se k mému uchu doneslo, že nový DBMail se nejenom snáze integruje do MTA, ale je i rychlejší, odhodlal jsem se k aktualizaci systému na verzi 2.0. Čekaly mne dvě překvapení:
1. tárová koule nešla díky typové chybě přeložit
2. DBMail vyráběl houfy zombií.
Poněkud mně překvapil přístup release managera: Nebudeme dělat novou verzi, tu chybu si přece dovede každý opravit sám. Zombie však vývojáři odstranit neuměli (nevolal se wait) a tak jsem poslal patch. Opatchovaný 2.0.4 se prokázal býti stabilním softwarem a tak jsem jej po pár testech nasadil do produkce. Tentokrát již bez BGC. Ostatním bych pro produkční nasezení doporučoval počkat na 2.0.5, která bude k dispozici začátkem června 2005.
DBMail vychází, podobně jako Linux, ve dvou řadách. Verze s lichým číslem jsou vývojové. Tyto verze v žádném případě neinstalujte do provozu, jelikož se během vývoje mění SQL schéma a přišli by jste tak o data. Tedy v případě, že by jste si nenapsali konverzní program.
Překlad DBMailu je bezproblémový. Je potřeba stáhnout tárovou kouli z DBMail download page a mít nainstalovanou databázi MySQL nebo PostgreSQL včetně hlavičkových souborů, které bývají v devel balíčku. Pak zavelet ./configure --with-naše-databáze;make install a dílo je hotovo.
Dalším krokem je nakonfigurování databáze. DBMail potřebuje od SQL backendu tři věci: databázi, tabulky a uživatele se zápisovým právem do těchto tabulek. Instalace se mírně liší podle použité databáze:
PostgreSQL | MySQL |
su - postgres | mysqladmin create dbmail -u root -p |
createuser -P dbmail | mysql -u root -p |
createdb -O dbmail dbmail | GRANT ALL ON dbmail.* to dbmail@localhost identified by '<pass>' |
psql -U dbmail dbmail \ | mysql -u dbmail dbmail -p \ |
< sql/postgresql/create_tables.pgsql | < sql/mysql/create_tables_innoDB.mysql |
Popis těchto kroků najdete v souboru INSTALL. V každém případě budete ale potřebovat superuživatelský přístup do databáze. Konfigurace databáze je jednoduchá a neměla by činit problémy, pokud máte alespoň minimální znalost problematiky databázové administrace.
Vlastní daemoni (t.j. pop3, imap, lmtp) nepotřebují kromě údajů potřebných k přístupu do databáze žádnou speciální konfiguraci. To, že musíte zajistit jejich spuštění po startu systému považuji za samozřejmost. Daemoni používají, podobně jako apache, prefork model a tak oproti klasické inetd variantě odpovídají svižně na příchozí požadavky.
V systému DBMail se uživatelé konfigurují pomocí programu dbmail-users. Použití tohoto programu není nezbytné, uživatele lze vkládat do tabulek přímo. Hesla uživatelů v lze ukládat v několika formátech: plaintext, crypt, md5-hash, md5-digest, crypt-raw, md5-hash-raw, md5-digest-raw. Tuto rozmanitost oceníte v případě konverze stávajícího mailového systému, jelikož si uživatelé nebudou muset měnit hesla.
DBMail řady 2.1 umí autorizovat uživatele přes LDAP, což umožní snadnou itegraci se sambou. Pokud chcete používat APOP POP3 autorizaci, je nutné mít heslo uložené ve formátu plaintext. DBMail nedpodporuje u POP3 a IMAP4 STARTTLS a ani DIGEST autorizaci, takže hesla běhají přes síť otevřená. S využitím externích utilit jako je například stunnel je možné udělat alespoň pop3s nebo imaps.
U každého uživatele, lze kromě jména, hesla a velikosti mailboxu nastavit číslo skupiny a pak s pomocí externích utilit nebo SQL scriptů provádět administraci uživatelů po skupinách. Další konfigurační vymožeností jsou aliasy. Každý uživatel může mít libovolné množství libovolných aliasů. Aliasy jsou také jedinou možností, jak založit rozdílné uživatele se stejnou email adresou v jiné doméně.
Poslední vymožeností je možnost vytváření distribučních listů. Distribuční list je seznam adres na které je rozeslán každý z příchozích mailů. Nejedná se o klasický mailing list alá mailman, ale o funkční ekvivalent souboru /etc/mail/aliases. Maily lze rozesílat i na adresy neobhospodařované DBMailem.