Hlavní navigace

Stavíme mailserver (2)

Miroslav Petříček 29. 1. 2002

V minulém díle jsme provedli základní instalaci a konfiguraci programu qmail. Dnes si ukážeme, jak nad qmailem efektivně provozovat větší počet uživatelů sdružených do více virtuálních domén, aniž bychom pro ně museli explicitně zakládat unixové uživatelské účty. Řekneme si také, jak se vypořádat s problematikou SMTP relayingu.

Ještě před tím si ovšem ukážeme, jak zkonfigurovat POP3, abychom uživatelům umožnili stahovat si poštu z našeho serveru. Použijeme k tomu program qmail-pop3d, který je součástí qmailu. V principu však můžete použít i jiný kompatibilní POP3 nebo IMAP server.

Program qmail-pop3d se používá podobně jako qmail-smtpd, tedy spouští se přes tcpserver. Nejjednodušší volání může vydat nějak takto:

# tcpserver 0 110 /var/qmail/qmail-popup jmenonasehoserveru.cz \
   /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1

Program checkpassword slouží k ověřování uživatelských hesel. Na stránkách www.qmail.org naleznete několik různých implementací checkpassword, které se liší podle způsobu, jakým ověřují uživatelská hesla. Vedle jednoduchých řešení navázaných na systémovou databázi hesel najdeme skripty pro autentizaci proti SQL serveru, LDAP, SMB,
atd. Základní program /bin/checkpassword pro qmail-pop3d najdete
tady.

vpopmail

Provozovat poštovní server s virtuálními uživatelskými účty má oproti klasickému řešení, kdy každý uživatel má svůj vlastní unixový (shell) účet s přiděleným UID, své výhody. Hlavní motivací je větší bezpečnost. Ve většině případů není nutné, ba ani žádoucí, aby se nám uživatelé mohli přímo přihlašovat na server přes telnet, ssh, ftp nebo jiné služby vázané na systémové účty. Potenciální útočník nezíská odposlechnutím POP3 hesla nic víc než jen přístup k uživatelově poš­tě.

Zřejmě nejdokonalejší podporu virtuálních účtů, pokud náš výběr zúžíme na řešení pro qmail, nabízí program vpopmail. vpopmail je GPL software vyvíjený firmou Inter7. Jeho domovskou stránku stránku najdete tady.

vpopmail se, narozdíl od qmailu, instaluje klasickou kombinací příkazů „./configure ; make ; make_install“. Příkaz ./configure může mít řadu parametrů, kterými ovlivníme fungování programu. Většina správců pravděpodobně bude chtít aktivovat funkci „–enable-roaming-users=y“ pro povolení relayingu uživatelům s dynamickou IP adresou (více později). Význam dalších parametrů najdete v dokumentaci, případně v samotném skriptu configure. Ještě před kompilací je nutné vytvořit systémový účet používaný programem:

# groupadd -g 89 vchkpw
# useradd -g vchkpw -u 89 -d /var/spool/vpopmail vpopmail

Pracovní adresář vpopmailu je /var/spool/vpop­mail, to je tedy místo, kam bude doručována veškerá uživatelská pošta a kde budou vytvářeny uživatelské účty. Ujistěte se tedy, že máte na svazku /var dostatečnou rezervu volného prostoru.

Nyní, když máme vpopmail nainstalován, můžeme přikročit k vytváření vlastních uživatelských účtů a virtuálních domén. Slouží k tomu programy v adresáři vpopmail/bin, jejichž použití je velice snadné. Doména se zakládá pomocí příkazu vadddomain. Parametrem je jméno virtuální domény a případně heslo uživatele postmaster, který je základním uživatelem každé virtuální domény a jsou mu doručována chybová hlášení související s provozem pošty. Prostřednictvím www rozhraní, kterému se budeme podrobně věnovat v příštím dílu, může postmaster spravovat uživatelské poštovní schránky v dané virtuální doméně.

Nyní jsme však stále ještě na příkazové řdáce, kde se poštovní účty vytváří příkazem vadduser jmenouctu@domena.cz. V systému vpopmail je, podobně jako u emailové adresy, zvyklostí oddělovat jméno účtu od domény, do které schránka patří, zavináčem (můžete ale použít i znak „%“). Když se tedy uživatel přihlašuje ke své schránce, musí své uživatelské jméno uvést včetně domény, tedy např. „pepa@mojedome­na.cz“. V době kompilace programu můžete pomocí parametru „–enable-default-domain=mojedo­mena.cz“ stanovit, že některá z virtuálních domén bude implicitní, tj. uživatel pepa@mojedomena.cz se bude moci přihlašovat také jen jako „pepa“.

Jednotlivé schránky a celé domény je možné smazat příkazem vdeluser, resp. vdeldomain. Uživatelské heslo se mění programem vpasswd.

Pokud budeme pro správu účtů používat pouze uvedené programy, nemusíme se v souvislosti s mailboxy zabývat ničím dalším (vpopmail za nás sám vytváří a maže uživatelské maildiry, sám zajistí modifikaci souborů v /var/qmail/control apod.).

Teď musíme upravit volání pop3 serveru tak, aby se místo programu /bin/checkpassword používal vpopmail, resp. modul vchkpw, který je základním autentizačním programem ve vpopmailu:

# tcpserver -H -R 0 110 /var/qmail/bin/qmail-popup jmenopocitace.cz \
   /var/spool/vpopmail/bin/vchkpw /var/qmail-pop3d Maildir &

Jako nevýhodu vpopmailu je ovšem nutné uvést určitá omezení při výběru POP3, IMAP a dalších programů, neboť náš výběr bude omezen jen na řešení s ním spolupracující. Kromě toho uživatelé nebudou moci přistupovat ke své poště jinak než pomocí protokolů POP3 nebo IMAP, případně podporovaného webmailu.

Jak na relaying

Relaying znamená zástupné doručování zpráv, kdy SMTP server převezme od klienta mail adresovaný jinému SMTP serveru a provede doručení místo něj.

Jak již víme z minulé části článku, je qmail implicitně nakonfigurován tak, že přijímá poštu pouze pro své vlastní uživatele, resp. pro domény uvedené v konfiguračním souboru control/rcpthosts. Tím se snaží předcházet tomu, aby neautorizovaný spamer nemohl zneužít náš server k rozesílání nevyžádané pošty. Spameři si často vyhledávají SMTP servery bez tohoto omezení (open relays), aby mohli využívat cizí přenosovou kapacitu a nebo aby se mohli krýt autoritou cizí IP adresy. Proto je u qmailu toto chování žádoucí, ač nám na první pohled může připadat jako omezující. Pokud se však rozhodenete zkonfigurovat svůj mail server jako open-relay, vystavujete se riziku, že se časem ocitnete na černé listině spammerských serverů, od kterých některé servery nepřijímají vůbec žádnou poštu.

Zmíněné omezení zpočívá v tom, že když budete chtít umožnit relaying vašim autorizovaným uživatelům, musíte jejich IP adresy předat programu qmail-smtpd. Toho docílíte přidáním parametru „-x“ do volání tcpserveru, které pak může vypadat nějak takto:

# tcpserver -x ~vpopmail/etc/tcp.smtp.cdb -v -u QMDPID -g QMDGID 0 smtp \
    var/qmail/bin/qmail-smtpd &

Soubor tcp.smtp.cdb je databázová struktura ve formátu cdb, kterou vytvoříme pomocí příkazu tcprules (součást balíku ucspi-tcp). Pokud chceme kupříkladu povolit relaying pro celou lokální síť 192.168.0.0/16, vytvoříme nejprve textový soubor tcp.smtp, a z něj pak nezbytnou cdb databázi tímto způsobem:

# echo '127.:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp
# echo '192.168.:allow,RELAYCLIENT=""' >> ~vpopmail/etc/tcp.smtp
# tcprules ~vpopmail/etc/tcp.smptp.cdb ~vpopmail/etc/smtp.tmp \
    < ~vpopmail/etc.smtp

Tak tedy docílíme toho, že ze zmíněných adres bude qmail přijímat poštu bez ohledu na obsah souboru control/rcpthosts. Co si ale počnout v případě, kdy naši klienti nemají statickou (pevně stanovenou) IP adresu, například proto, že se připojují přes modem? Řešení je prosté. Pokud používáme vpopmail zkompilovaný s direktivou „–enable-roaming-users=y“, bude vpopmail automaticky zaznamenávat do cdb databáze každou IP adresu, ze které se nějaký uživatel úspěšně přihlásil k POP3. Pokud si tedy náš uživatel stáhne z pop3 serveru poštu, bude z jeho IP adresy na předem stanovenou dobu povolen relaying. Tato oblíbená a účinná technika bývá také nazývána SMTP after POP.

Aby se nám IP adresy v databázi nehromadily, zajistíme jejich pravidelné odtraňování. K tomu slouží program ~vpopmail/bin/cle­aropensmtp, který je vhodné přidat do cronu, aby se spouštěl například každou hodinu.

Pokud nepoužíváte vpopmail, a přesto chcete používat SMTP after POP, musíte použít některý z alternativních programů checkpassword, který se chová podobně, tzn. modifikuje tcp.smtp databázi při každém ověření uživatelova POP3 hesla. Několik takových programů najdete na www.qmail.org

Úplně jiným řešením relayingu může být SMTP-AUTH, což je rozšíření SMTP protokolu o autentizační část. Zjednodušeně řečeno klient se před odeslánáním zpráv přihlásí jménem a heslem a teprve potom může začít předávat zprávy. Tento způsob však vyžaduje kromě podporovaného emailového programu také záplatování serveru, protože jej qmail standardně nepodporuje. Odkazy na příslušné patche hledejte rovněž na stránkách www.qmail.org

To je pro dnešek vše. Příště si mimo jiné k našemu mailserveru přidáme www rozhraní pro správu uživatelských kont a ukážeme si také, jak zprovoznit IMAP server.

Našli jste v článku chybu?

20. 2. 2003 16:02

agentw4b (neregistrovaný)

V tomhle článku není to co potřebuju. Např. Qmail s podporou ldap je naprosto odlišný od normálního Qmailu a zřejmě je o něm i málo dokumentace. Přes usilovné hledání jsem našel jen asi 2 články v angličtině na které se všichni odvolávají. Co vám ovšem neřeknou, že ani když postupujete při konfiguraci krok po kroku, tak to stejně nestačí.

1. 3. 2002 15:53

Jiri Svab (neregistrovaný)

Bomba...podobny clanek a jeste ke vsemu v cestine, jsem potreboval.

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Baletky propagují zdravotní superpostel

Baletky propagují zdravotní superpostel

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí