Hlavní navigace

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.

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?

10. 11. 2008 13:56

CIJOML (neregistrovaný)
na veci co tu popisujete je nejlepsi exim. Sendmail se hodi na silenosti typu prepisovani adres etc., coz ale umi postfix take. Sendmail, bind a podobni demoni sou proste prezitek vetsinou neskutecne deravy.

10. 11. 2008 13:35

Nikomu sendmail nenutim, jen ukazuju, jak je snadne ho zkonfigurovat. Ale 100 lidi, kteri o tom jen slyseli budou tvrdit opak. Pouzivam i postfix, s qmailem jsem si hral jen asi 2x. A zrovna instalace qmailu mi prisla docela otresna. Pod freebsd dle navodu na qmailrocks.com (nebo tam nekde).
Sendmail pro malou sit jen nastaveny za par minut, slouzi dobre a o tom ten clanek mel byt. Ja bych treba ocenil rozumne popsany navod na qmail, nechcete o tom napsat?
Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

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

Přehledná titulka, průvodci, responzivita

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph

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č?

DigiZone.cz: Sat novinky: Fransat UHD Demo

Sat novinky: Fransat UHD Demo

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

120na80.cz: Vitaminová abeceda

Vitaminová abeceda

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

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

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

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

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

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

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

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

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