Sendmail: pošťák pro malou síť

Petr Macek 10. 11. 2008

V tomto článku si ukážeme další praktické využití sednamilu. Rozšíříme si příklad z minulého článku a vytvoříme funkční poštovní server pro malou firmu. Antivir a antispam už máme a přidáme ještě uživatele, přesměrování a další důležité vlastnosti. Někdo má rád procmail, tak se podíváme i na něj.

V celém seriálu se zatím trochu vyhýbám teorii. Kdo chce vědět víc, může se prozatím podívat na starší seriál Pošta pro každého – díl 1, díl 2, díl 3.

Z minulého dílu máme nakonfigurovaný antivir, antispam a poštu předáváme na vnitřní poštovní server. Vše se ale může odehrávat na jednom stroji. Popsané řešení je vhodné pro malou firmu s několika uživateli, používám ho do několika desítek mailových schránek. Někdo může vidět nevýhodu v tom, že co mailbox, to jeden uživatelský účet v systému. Dost správců dnes preferuje vpopmail, uživatele v mysql databázi, … Ale pro pár účtů mi to přijde zbytečné, rozbíhat další démony.

Přesuneme se opět do adresáře /etc/mail, v něm bude většina úprav. Nejprve si založíme soubor local-host-names a do něj si vložíme jméno naší domény:

firma.cz

Tím sendmailu říkáme, že poštu pro doménu firma.cz má zpracovávat lokálně. Druhá úprava spočívá v odstranění řádku v souboru  mailertable:

firma.cz               smtp:exchange.firma.cz

Tím je zajištěno, že pošta se nebude směrovat nikam dál.

Teď si založíme uživatele, třeba pomocí příkazu adduser (někdo preferuje pw, na tom nezáleží). Uživatelům můžete zabránit se přihlašovat třeba zvolením shellu nologin. Pokud si vytvoříme uživatele mirek, bude mailová adresa mirek@firma.cz.

To se nám samozřejmě líbit nemusí, někdo má radši adresy ve formátu jmeno.prijmeni@firma.cz. V tom případě přichází na řadu soubor /etc/mail/aliases. Jeho formát je jednoduchý, na levé straně je alias, na pravé je schránka, do které bude zpráva doručena. Takže si můžeme přidat třeba:

mirek.dlouhy:       mirek
mirecek:            mirek

Když pak náš sendmail přijme poštu pro mirecek@firma.cz nebo mirek.dlouhy@firma.cz, bude doručeno do schránky mirek. Samozřejmě bude platná i adresa mirek@firma.cz.

Aliases umí mnohem víc. Můžete si tu třeba založit distribuční skupinu:

vedeni:        mirek, jana, velkysef

Co potom přijde na vedeni@firma.cz, rozešle se do schránek mirek, jana a velkysef. Pokud uživatel mirek požaduje posílat kopii zpráv na jinou adresu, opět stačí záznam v aliases:

mirek:    \mirek, mirek@jinam.cz

Pokud nechce zprávy zachovávat na server a jen je má přeposílat, stačí řádek:

mirek:    mirek@jinam.cz

Proč je v prvním případě před mirkem zpětné lomítko pěkně vysvětluje tutorial k sendmailu.

Můžeme dokonce některé e-maily předávat programům, ale to už by vydalo na další článek:

program-bugs: |/usr/local/bin/program-bug-tracker

Po úpravě aliases nezapomeňte spustit příkaz newaliases. Ten vygeneruje nový db soubor s aliasy. Stejně je možné použít sendmail -bi. U některých verzí FreeBSD stačí zadat v /etc/mail make a aliasy se také vytvoří.

Dále musíme zajistit, kdo a odkud může posílat e-maily. K tomu slouží soubor /etc/mail/access. Výchozí politika je taková, že jsou odmítány zprávy, které nejsou pro lokální stroj nebo domény vyjmenované v  local-host-names. Můžeme určit, z kterých e-mailových adres, domén nebo přímo IP adres budou e-maily přijaty, odmítnuty nebo zda je náš sendmail předá dál. U nás dovolíme všem ve vnitřní síti posílat kamkoli:

192.168.1                     RELAY

I zde jsou poměrně široké možnosti, můžeme například odmítat poštu od nekdo@nekde.cz, ale dovolíme na ni našim uživatelům psát:

From:nekdo@nekde.cz     REJECT

Možností je více, můžeme zprávy zahazovat, přijmout jen pokud jsou pro naši doménu, vrátit SMTP odpověd s chybou, … Po úpravě nezapomeňte spustit make, aby se opět vytvořila databáze.

Sendmail ve výchozím nastavení doručuje do mailboxů. V jednom souboru jsou za sebou uložené všechny emaily. Někdo má raději maildiry. Oboje má své výhody i nevýhody. Mailboxy jsou v adresáři /var/mail/. Co soubor, to jeden mailbox. Teď si ukážeme, jak udělat maildir. Nainstalujeme procmail:

cd /usr/ports/mail/procmail
make install

a upravíme konfigurační soubor /usr/local/etc/procmailrc

DEFAULT=$HOME/Maildir/

V souboru /etc/mail/mail.firma.cz.mc změníme lokálního doručovatele. Stačí změnit řádek:
MAILER(local) na  MAILER(procmail)

Restartujeme sendmail s upravenou konfigurací:

cd /etc/mail
make
make install
make restart

Pošta se potom ukládá do adresáře Maildir v domovském adresáři uživatele.

widgety

Teď trošku odbočíme od sendmailu, slíbil jsem kompletní řešení. Pošta nám přichází na server, teď ji ještě nějak musíme zprostředkovat uživatelům. Můžeme nainstalovat třeba nějaký jednoduchý pop3 server ( /usr/ports/mail/qpopper, /usr/ports/mail/akpop3d) nebo taky něco šikovnějšího, jako je třeba Dovecot. Konfiguraci nechám na Vás, někdo chce třeba IMAP, někdo SSL. Jediná věc, která je opravdu nutná je nastavit správně místo, kde jsou uložené schránky uživatelů. U maildirů to bude:

mail_location = maildir:~/Maildir

U mailboxů:

mail_location = mbox:~/mail:INBOX=/var/mail/%u
Našli jste v článku chybu?
Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Lupa.cz: Jak důležitá je u firemních počítačů spotřeba?

Jak důležitá je u firemních počítačů spotřeba?

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

DigiZone.cz: Samsung EVO-S: novinka pro Skylink

Samsung EVO-S: novinka pro Skylink

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Vitalia.cz: Tesco nabízí desítky tun jídla zdarma

Tesco nabízí desítky tun jídla zdarma

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Vitalia.cz: Test dětských svačinek: Tyhle ne!

Test dětských svačinek: Tyhle ne!

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Vitalia.cz: Fyzioterapeutka: Chůze naboso? Rozhodně ano!

Fyzioterapeutka: Chůze naboso? Rozhodně ano!

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

Podnikatel.cz: Vánoce v září? Kaufland si legraci nedělá

Vánoce v září? Kaufland si legraci nedělá