Stavíme mailserver (3)

19. 3. 2002
Doba čtení: 4 minuty

Sdílet

Po delší době, která byla zapříčiněna mou vpravdě extremní zaneprázdněností, pokračuje seriál o stavbě mailového serveru. Dnes si zprovozníme qmailadmin, webové rozhraní pro správu uživatelských kont a IMAP server.

Nejprve ovšem musím dát do pořádku několik restů, protože do předchozích dílů článku se mi vloudilo pár chybek.

  • Předně je třeba doplnit, že ve skriptu, ve kterém spouštíte qmail, by měla být nastavena proměnná PATH, aby obsahovala cestu k programovým souborům qmailu. Tedy např:
    PATH="/var/qmail/bin:$PATH"; export PATH
  • Nějakým nedopatřením také není možné stáhnout ukázkový skript v prvním díle článku. Tento soubor tedy najdete také tady
  • Dále je chyba v cestě k programu qmail-pop3d ve volání článku:
    /var/qmail-pop3d ... místo správného /var/qmail/bin/qmail-pop3d...

A teď se již pojďme věnovat slíbeným novinkám.

Ovládání kombinace qmail-vpopmail přes příkazovou řádku je sice jednoduché, ale v praxi často potřebujeme některým uživatelům, ale i správcům, poskytnout přístup přes pro ledaskoho pohodlnější grafické uživatelské rozhraní. Uživatelé si také mohou měnit heslo, přesměrovávat své maily a správci jednotlivých virtuálních domén mohou vytvářet nové uživatele v rámci své domény, aniž by k tomu potřebovali shell konto na našem serveru.

Proto je vhodné na server nainstalovat program qmailadmin. Stejně jako vpopmail, i on je vyvíjen firmou Inter7. Nijak tedy nepřekvapí, že je pro spolupráci s vpopmailem dokonale odladěn.

Funkční demo programu qmailadmin si můžete vyzkoušet tady (účet: postmaster, doména: test.com, heslo: test).

qmailadmin je tvořen cgi program a podpůrnou grafikou. Instalace je klasicky jednoduchá ( configure ; make ; make install ). K jeho provozu je dobré mít nainstalovány ještě programy autoresponder a ezmlm, které qmailadmin používá pro některé své funkce. Odkazy na zmíněné programy naleznete na stránkách qmailadminu. Pokud vám qmailadmin nebude ověřovat hesla, přesvědčte se, že je binární soubor qmailadmin.cgi vlastněn uživatelem vpopmail.vchkpw a že má nastavené bity SUID.

Courier-IMAP

Protokol IMAP se v praxi používá méně často než POP3. Má ovšem několik fajn vlastností, které stojí za to, abychom ho nainstalovali i na náš mailserver. Použijeme k tomu balík Courier IMAP firmy Double Precision, který přísně vzato není jen pouhým IMAP serverem, ale dokáže fungovat také jako POP3 server a kromě toho zajišťuje SSL zabezpečení jak pro IMAP (imaps), tak i pro pop3 (pop3s).

Skvělou vlastností Courier IMAPu je modularita, neboť obsahuje několik autentizačních modulů, pomocí kterých může ověřovat uživatelská hesla na různých místech a různými způsoby. Vedle modulu pro systémovou databázi /etc/passwd v něm najdeme ještě rozšíření pro MySQL, LDAP, PostgreSQL, PAM a samozřejmě vpopmail.

Instalace je jednoduchá. Program stáhneme například odsud a nakonfigurujeme jej pomocí standardního skriptu configure. Důležitý konfigurační parametr může být „–enable-unicode“, který přikompiluje podporu rozšířených znakových sad. Kromě toho je dobré vědět, že konfiguraci i kompilaci (ale nikoliv již instalaci) je nutné provádět jako běžný uživatel (tedy nikoliv pod rootem). Nezapomeňte se také přesvědčit, že uživatel, pod kterým kompilujete, má práva na čtení souborů z adresáře /var/spool/vpop­mail/lib. Nyní již tedy můžeme program zkompilovat (make) a naistalovat (umask 022 ; make install-strip ; make install_configure).

Program se implicitně instaluje do /usr/lib/courier-imap, konfigurační soubory jsou umístěny v podadresáři etc. Konfigurační soubor IMAP serveru se jmenuje překvapivě imapd. Je hojně okomentován, takže se zde nebudu podrobněji rozepisovat o jeho paramatrech. Defaultní konfigurace je vcelku bez úprav použitelná, všiměte si jen, zda v seznamu autentizačních modulů nechybí „AUTHVCHKPW“ (autentizační modul pro vpopmail).

Vlastní server spustíme tak, že do startovacích skriptů přidáme příkaz

/usr/lib/courier-imap/libexec/imapd.rc start

Pokud vás trápí, že při čtení vaší pošty přes Internet, ať už skrze protokol POP-3, nebo IMAP, putují vaše přihlašovací informace, stejně jako všechny přenášené zpávy, po síti nešifrovaně, bude vás asi zajímat možnost zabezpečení pošty pomocí SSL (Secure Socket Layer).

Spuštění IMAP over SSL je velmi podobné spouštění „obyčejného“ IMAPu – konfigurační soubor se ovšem jmenuje imapd-ssl. K provozu SSL služeb potřebujete digitální certifikát. Certifikát je v podstatě veřejný klíč, tak jak jej známe s asymetrické kryptografie, který je doplněn digitálním podpisem certifikační autority, jež tak zaručuje jeho autenticitu. V praxi je ale mnohem častější případ, kdy si svůj klíč generujeme i podepisujeme sami. Nevýhodou takového řešení je ovšem skutečnost, že někteří SSL klienti, zejména na klikacích platformách, vás budou při každém použití takového certifikátu informovat hláškou, že daný certifikát nebyl vystaven žádnou jemu známou certifikační autoritou.

SSL certifikát se vytváří pomocí programů z balíku openssl (neplést s OpenSSH), který by měl být přítomen ve většině moderních distribucí. Pokud jej nemáte, můžete si ho stáhnout odsud. Courier IMAP obsahuje skripty, které vám generování certifikátu maximálně usnadní. Potřebujete jen poeditovat soubor /usr/lib/courier-imap/etc a opravit pooložky v sekci [ req_dn ] tak, aby odpovídaly vašim potřebám (stát, město, jméno a adresa počítače atd.). Většina správců pravděpodobně bude také chtít upravit dobu platnosti certifikátu (standardně 30 dní), pročež je třeba změnit proměnnou default_crl_days v souboru /usr/share/ssl/o­penssl.cnf. Poté spustíme zmíněný skript /usr/lib/courier-imap/sbin/mki­mapdcert a certifikát je hotov.

Teď už musíme jenom spustit startovací skript, který na portu 993 spustí imaps server:

bitcoin_skoleni

/usr/lib/courier-imap/libexec/imapd-ssl.rc start

Kromě toho umí Courier-IMAP i protokoly pop3 a pop3-ssl, jejichž konfigurace je natolik podobná popisovaným řešením, že její další vysvětlování bych považoval za zpochybňování inteligence čtenáře tohoto článku.

Proto se tedy pro dnešek loučím a těším se na setkání u dalšího dílu, kde bych se chtěl vrátit k fungování qmailu a jeho rozšíření o některé užitečné patche.