Nejčastěji používané implementace SMTP ve většině distribucí Linuxu jsou Sendmail a Postfix. Postfix je open source agent pro přenos pošty, který byl původně vyvinut jako alternativa k Sendmailu a je obvykle nastaven jako výchozí poštovní server.
Instalace Postfixu
Než začnete s instalací, první věci. Dobrým zvykem je zkontrolovat a zjistit, zda je software již na serveru nainstalován. Vždy je užitečné zkontrolovat, zda tam něco není, než se pustíte do práce.
Chcete-li zkontrolovat distribuce založené na RPM, použijte tento příkaz:
$ rpm -qa | grep postfix
Pokud předchozí příkaz ukazuje, že RPM není nainstalováno, můžete Postfix RPM nainstalovat pomocí následujícího (na yum
– založené distribuce):
$ yum install -y postfix
Po instalaci Postfixu můžete službu spustit a povolit, abyste se ujistili, že se spustí po restartu:
$ systemctl start postfix
$ systemctl enable postfix
Konfigurace Postfixu
Po instalaci Postfixu můžete začít konfigurovat službu podle svých představ. Všechny možnosti, které pro službu potřebujete, jsou umístěny v /etc/postfix
. Hlavní konfigurační soubor pro službu Postfix se nachází na adrese /etc/postfix/main.cf
. V konfiguračním souboru je mnoho možností, které můžete přidat, některé z nich jsou běžnější než jiné. Pojďme si projít několik, které můžete vidět nejčastěji při nastavování služby a když potřebujete vyřešit problém:
myhostname
deklaruje název hostitele poštovního serveru. Názvy hostitelů obvykle obsahují předpony, jako je tato:
myhostname = mail.sinisterriot.com
mydomain
deklaruje doménu, která skutečně zpracovává poštu, takto:
mydomain = sinisterriot.com
mail_spool_directory
deklaruje adresář, kde jsou umístěny soubory poštovních schránek, např.:
mail_spool_directory = /var/mail
mynetworks
deklaruje seznam důvěryhodných vzdálených serverů SMTP, které mohou přenášet prostřednictvím serveru, takto:
mynetworks = 127.0.0.0/8, 168.100.189.0/28
Seznam poskytnutý s mynetworks
by měl obsahovat pouze adresy IP místní sítě nebo vzory sítě/masky sítě, které jsou odděleny čárkami nebo mezerami. Je důležité používat pouze místní síťové adresy, abyste zabránili neoprávněným uživatelům používat váš poštovní server ke škodlivé činnosti, což by mělo za následek, že váš server a adresy budou na černé listině.
Testování Postfixu
Před uvedením něčeho do výroby je vždy dobré to otestovat ve vývojářském prostředí. Tento proces má stejný koncept:Jakmile nakonfigurujete poštovní server, otestujte jej, abyste se ujistili, že funguje.
Nejprve doporučuji vyzkoušet, zda umíte poslat email lokálnímu příjemci. V případě úspěchu můžete přejít ke vzdálenému příjemci. K testování svého poštovního serveru raději používám příkaz telnet:
$ telnet mail.sinisterriot.com 25
Přidejte HELO
příkaz sdělit serveru, ze které domény přicházíte:
HELO sinisterriot.com
Další je odesílatel. Toto ID lze přidat pomocí MAIL FROM
příkaz:
MAIL FROM: [email protected]
Za tímto záznamem následuje příjemce a můžete přidat více než jeden pomocí RCPT TO
příkaz vícekrát:
RCPT TO: [email protected]
Nakonec můžeme přidat obsah zprávy. Pro dosažení režimu obsahu přidáme předponu DATA
na samostatném řádku, za nímž následuje Subject
řádek a tělo zprávy. Níže je uveden příklad:
DATA
Subject: This is a test message
Hello,
This is a test message
.
Chcete-li dokončit tělo zprávy a zavřít ji, musíte na řádek přidat jednu tečku (.) nebo tečku. Po dokončení tohoto procesu se server pokusí odeslat e-mail s vámi zadanými informacemi. Odpověď s kódem vás upozorní, zda byl e-mail úspěšný nebo ne. Po dokončení použijte quit
příkaz k zavření poštovního okna.
V každém ohledu zkontrolujte, zda protokoly pošty neobsahují chyby. Jsou umístěny v /var/log/maillog
ve výchozím nastavení, ale toto umístění lze změnit na jiné místo. Jako správce systému je kontrola chybových protokolů dobrým zvykem. Tento postup je skvělý při odstraňování problémů a umožňuje nám rychleji identifikovat a opravit problém. Dešifrování protokolů pošty je také důležitou součástí práce správce, protože každá část protokolu nám dává vědět, co je důležité. V minulých letech mi znalost těchto částí pomohla napsat skripty pro konkrétní požadavky, přičemž jsem potřeboval pouze redigovat nebo vynechat části protokolů pošty.
Zabezpečení Postfixu
Zabezpečení vašich služeb je stejně důležité jako jejich nastavení. Je bezpečnější přenášet data přes zabezpečené připojení než přes nechráněné. Dále probereme, jak zabezpečit náš nově nakonfigurovaný poštovní server. Můžete to udělat vygenerováním relace SSL přes Transport Layer Security (TLS) pro SMTP server.
Nejprve musíte vygenerovat soukromý klíč a žádost o podpis certifikátu (CSR). Můžete to udělat pomocí openssl
příkaz:
$ openssl req -nodes -newkey rsa:2048 -keyout privatekey.key -out mail.csr
Poté vygenerujte žádost o podpis a zkopírujte ji do /etc/postfix
adresář:
$ openssl x509 -req -days 365 -in mail.csr -signkey privatekey.key -out secure.crt
$ cp {privatekey.key,secure.crt} /etc/postfix
Tato sekvence vydá poštovnímu serveru podepsaný certifikát, známý také jako certifikát certifikačního úřadu (CA). Tato praxe znamená, že certifikační úřad musí důvěřovat podepisovateli certifikátu, aby zabezpečil soukromý klíč a přenesl data přes internet. U jiného druhu certifikátu, který je podepsaný sám sebou, CA nedůvěřuje podepisujícímu certifikátu, takže informace jsou zranitelné vůči krádeži a mohou být ohroženy. Vždy je lepší jít s podepsaným certifikátem.
Jakmile je tento proces dokončen, můžete přidat možnosti TLS do konfiguračního souboru Postfixu:
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/secure.crt
smtpd_tls_key_file = /etc/postfix/privatekey.key
smtp_tls_security_level = may
Poté restartujte službu, aby se nové možnosti projevily:
$ systemctl restart postfix
Nyní máte funkční a zabezpečený e-mailový server.