Poštovní server na OS Linux: Zabezpečení

26. 12. 2013

Sdílet

 Autor: © fotogestoeber - Fotolia.com
Návod, jak zabezpečit poštovního server nejen na straně příjmu zpráv, ale i na straně jejich odesílání pomocí protokolu SMTP. Nebude ani chybět boj proti nevyžádané poště.

Jestliže poštovní klienti (Windows Mail, Thunderbird, Outlook) pracují pouze ve vnitřní firemní struktuře, není obecně nutné zabezpečovat komunikaci s poštovním serverem. Jako dostatečná ochrana dobře poslouží soubor /etc/mail/access, ve kterém definujeme sítě nebo stanice s možností odesílání pošty přes daného pošťáka.

Ve vnitřní síti totiž vždy víme, jaká bude zdrojová IP adresa klienta. Jiná situace však nastane, pokud jsme mimo firemní síť a budeme chtít použít pro odeslání pošty právě firemní poštovní server. Zde už si s prostou definicí IP rozsahů nevystačíme, protože ji prostě neznáme. Proto je nutné zabezpečit odesílání pošty jiným způsobem.

Standardně používanou ochranou je autentizace SMTP, kdy se klient musí při každém pokusu o spojení s poštovním serverem autorizovat pomocí nastaveného jména a hesla. Následně od něj server bez problémů přijme zprávy k doručení. Nastavení autentizace se děje na straně serveru i klienta.

SMTP AUTH na serveru

V případě distribuce Fedora je potřeba pro aktivaci autentizace instalace balíčku cyrus-sasl včetně jeho dalších komponent. Ideálně to uděláte příkazem

yum install cyrus-sasl

který automaticky doinstaluje i případné další balíčky potřebné pro běh v této distribuci. Úspěšnou instalaci snadno ověříte příkazem

rpm -qa |grep cyrus-sasl

kdy vám systém vypíše všechny instalované balíčky s tímto jménem.

Dalším nutným krokem je editace konfiguračního souboru /etc/sasl2/Sendmail.conf, do kterého vepište řádek

pwcheck_method:saslauthd

Nyní je nutné nastartovat vlastního démona SASL2, který se jmenuje příznačně saslauthd, a spustíte jej např. příkazem

service saslauthd start

Po startu služby je možné vyzkoušet, zda nám autentizace SASL2 pracuje tak, jak má. K tomu slouží testovací rutina přítomná přímo v balíčku. Podmínkou je samozřejmě existující linuxový uživatel s poštovní schránkou, tak jak jsme si jej vytvářeli v minulých dílech seriálu. Příkazem

testsaslauthd -u povolny -p spravneheslo

zjistíte, zda je vše funkční. Pokud jste napsali uživatelské jméno a heslo správně, měla by vám rutina odpovědět OK "Success.", pokud špatně, měla by zahlásit chybu. Je samozřejmě vhodné vyzkoušet i chybné heslo, abychom ověřili, že nám server nepustí kohokoliv.

Posledním krokem je konfigurace sendmailu, kterému je nutné sdělit, že má odesílatele autorizovat námi uvedeným způsobem výše. Nastavení učiníme v souboru /etc/mail/sendmail.mc, kde odkomentujeme (resp. doplníme, pokud zde nejsou) řádky

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')

Po nezbytném restartu (aby byl soubor MC interpretován do souboru CONF) sendmailu vyzkoušíme po sobě jdoucími příkazy (prvním se připojíme na server, druhým server pozdravíme)

telnet localhost 25
ehlo localhost

zda je autentizace připravena k použití. Pokud ano, měl by se ve výpisu protokolů objevit řádek

250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

Komunikaci s poštovním serverem pomocí programu telnet ukončíte příkazem QUIT.

Výsledkem je tedy spuštěná služba SASL2, na kterou odkazuje konfigurační soubor sendmailu. Pokud se nyní jakýkoliv klient pokusí odeslat zprávu přes náš poštovní SMTP server a zároveň nebude uvedena jeho IP adresa v souboru /etc/mail/access, bude se muset prokázat jménem a heslem.

SMTP AUTH na klientovi

Konfigurace klienta je přímo závislá na programu, který pro tyto účely používáte. Obecně je však nutné zapnout autorizaci odesílacího SMTP serveru, kde např. Outlook nabízí možnost „Použít stejné přihlašovací údaje jako u serveru POP3“. Po zaškrtnutí této volby se každý z uživatelů autentizuje jak pro výběr poštovní schránky protokolem POP3 nebo IMAP, tak i pro odeslání zpráv odkudkoliv z internetu.

Antispamová kontrola

Služba poštovního serveru patří obecně k  nejméně vděčným. Proto jsou i poskytovatelé internetu někdy skoupí ohledně možností zasílání zpráv přes jejich SMTP. Důvodem je ohromné množství balastu, které vám bude dříve nebo později přes pošťáka procházet.

Příčinou jsou bohužel často přímo firemní uživatelé, kteří své adresy dávají velmi snadno všanc rozličným internetovým službám, jež vám server následně zahltí nevyžádanou poštou.

Naštěstí jsou v Linuxu volně dostupné nástroje, kterými lze proti spamu účinně bojovat. Skromné možnosti má v sobě i samotný sendmail, lepší je však použít specializované programy, které se sendmailem propojíme modulem procmail.

Access

Prvním nástrojem obrany proti útokům na poštovní server je už několikrát zmíněný soubor /etc/mail/access. Kromě povolování IP a síťových rozsahů v něm je totiž můžete i zakázat. A to hned několika způsoby. Syntax je stejný jako u povolení přístupu. Např.

192.168.1.1                        DISCARD
vadnadomena.cz            ERROR:550 – od vás mail nechceme
nekdo@fuj.cz                   REJECT

Tyto tři řádky ukazují hned několik způsobů, jak řídit přístup k poštovnímu serveru. První řádek vyloučí všechny zprávy z dané IP adresy, druhý potom zahodí všechny zprávy z uvedené domény s příslušným volně definovatelným chybovým hlášením. Třetí odmítne poštu od konkrétního odesílatele.

Vše lze kombinovat podle potřeb. Možností regulace je ještě více, doporučujeme tak studium příslušné manuálové stránky sendmailu.

Aktivace blacklistů

Další možností boje proti spamu obsaženému v sendmailu je aktivace na internetu dostupných blacklistů přímo v konfiguračním souboru sendmail.mc. Sendmail následně kontroluje zdrojové adresy v těchto databázích a vadné zprávy odmítá s příslušným hlášením. Řádky

FEATURE(`dnsbl')dnl
FEATURE(`enhdnsbl', `bl.spamcop.net')dnl

zajistí využití blacklistu RBL (Realtime Blackhole List database) a libovolného námi definovaného dalšího blacklistu, např. databáze SPAMCOP. V případě potřeby je možné nastavit i chybové hlášení, se kterým bude nedoručená vadná zpráva vrácena odesílateli.

bitcoin_skoleni

Autor je vedoucím Informačního centra Univerzity J. E. Purkyně