autor vybraného Zdarma a Open Source Fond obdrží dar jako součást Zápisu o Dary program.
Úvod
Postfix je agent pro přenos pošty (MTA), aplikace používaná k odesílání a přijímání e-mailů. Může být nakonfigurován tak, aby mohl být použit k odesílání e-mailů pouze místní aplikací., To je užitečné v situacích, kdy potřebujete pravidelně odesílat e-mailová oznámení z vašich aplikací nebo jednoduše mít hodně odchozího provozu, který poskytovatel e-mailových služeb třetí strany nedovolí. Je to také lehčí alternativa ke spuštění plnohodnotného serveru SMTP při zachování požadované funkce.
v tomto tutoriálu nainstalujete a nakonfigurujete Postfix jako SMTP server pouze pro odesílání. Budete také požadovat bezplatné certifikáty TLS od Let ‚ s Encrypt pro vaši doménu a šifrovat odchozí e-maily pomocí nich.
předpoklady
- jeden Ubuntu 18.,04 server nastavit s počátečním nastavením serveru s Ubuntu 18.04, včetně vytvoření sudo non-root uživatele.
- plně registrovaný název domény. Tento tutoriál bude používat
your_domain
v celém textu. Můžete si zakoupit název domény na Namecheap, získat jeden zdarma na Freenom, nebo použít registrátora domény dle vašeho výběru. - záznam DNS s
your_domain
ukazující na veřejnou IP adresu vašeho serveru. Můžete sledovat tento úvod do DigitalOcean DNS podrobnosti o tom, jak je přidat.,
Poznámka: Váš server hostname a Kapičky jméno se musí shodovat your_domain
, protože DigitalOcean automaticky nastaví PTR záznamy pro Kapička je IP adresa podle jeho názvu.
název hostitele serveru můžete ověřit zadáním hostname
na příkazovém řádku. Výstup by měl odpovídat názvu, který jste dali kapičce, když byla vytvořena.
Krok 1-Instalace Postfix
v tomto kroku nainstalujete Postfix., Nejrychlejším způsobem je instalace balíčku mailutils
, který sdružuje Postfix s několika doplňkovými programy, které použijete k testování odesílání e-mailů.
za Prvé, aktualizace databáze balíčků:
- sudo apt update
Pak, nainstalovat Postfix spuštěním následujícího příkazu:
- sudo apt install mailutils
téměř na konci procesu instalace, budete prezentovány s Postfix konfigurační okno:
výchozí nastavení je Internet Site
., To je doporučená volba pro váš případ použití, takže stiskněte TAB
ENTER
. Pokud vidíte pouze text popisu, stiskněte TAB
pro výběr OK
, pak ENTER
.,
Pokud se neobjeví automaticky, spusťte následující příkaz ke spuštění:
- sudo dpkg-reconfigure postfix
za to, že budete mít další konfigurace výzvu, pokud jde o název poštovního Systému:
Systém mail jméno musí být stejné jako jméno, které jste přidělili na váš server, když jste vytvářeli. Po dokončení stiskněte TAB
, následuje ENTER
.
Nyní jste nainstalovali Postfix a jste připraveni jej začít konfigurovat.,
Krok 2 — Konfigurace Postfix
V tomto kroku budete konfigurovat Postfix odesílat a přijímat e-maily pouze ze serveru, na kterém je spuštěn na to, od localhost
.
aby k tomu došlo, musí být Postfix nakonfigurován tak, aby poslouchal pouze Rozhraní loopback, virtuální síťové rozhraní, které server používá k interní komunikaci. Chcete-li provést změny, budete muset upravit hlavní konfigurační soubor Postfix s názvem main.cf
, uložený pod etc/postfix
.,
Otevřít pro úpravy pomocí vašeho oblíbeného textového editoru:
- sudo nano /etc/postfix/main.cf
Najděte následující řádky:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .
Nastavte hodnotu inet_interfaces
nastavení loopback-only
:
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .
Další směrnice, kterou je třeba upravit, je mydestination
, který se používá k zadání seznamu domén, které jsou dodávány prostřednictvím local_transport
doručování pošty dopravy., Ve výchozím nastavení jsou hodnoty podobné těmto:
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .
Změňte řádek vypadat takhle:
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .
Pokud vaše doména je vlastně subdomény a chcete e-mailové zprávy vypadat, jako by byly odeslány z hlavní domény, můžete přidat následující řádku na konec main.cf
:
...masquerade_domains = your_main_domain
volitelné masquerade_domains
nastavení určuje, pro které domény na subdoménu, část bude svlékl na e-mailovou adresu.
po dokončení uložte a zavřete soubor.
Poznámka: pokud hostujete více domén na jednom serveru, mohou být Ostatní domény předány také do Postfixu pomocí směrnice mydestination
.
restartujte Postfix spuštěním následujícího příkazu:
- sudo systemctl restart postfix
Jste nakonfigurovali Postfix pouze odesílat e-maily z vašeho serveru., Nyní to otestujete zasláním příkladové zprávy na e-mailovou adresu.
3. Krok — Testování SMTP Serveru
V tomto kroku, budete vyzkoušet, zda Postfix můžete posílat e-maily na externí e-mailový účet pomocí mail
příkaz, který je součástí mailutils
balíček, který jste nainstalovali v prvním kroku.
odeslat zkušební e-mail, spusťte následující příkaz:
- echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
můžete změnit tělo a předmět e-mailu podle vašich představ., Nezapomeňte nahradit your_email_address
platnou e-mailovou adresou, ke které máte přístup.
Nyní zkontrolujte e-mailovou adresu, na kterou jste tuto zprávu odeslali. Měli byste vidět zprávu ve vaší doručené poště. Pokud tam není, zkontrolujte složku spam. V tomto okamžiku jsou všechny e-maily, které odesíláte, nešifrované, což způsobuje, že poskytovatelé služeb si myslí, že je to pravděpodobně spam. Šifrování nastavíte později, v kroku 5.,
Pokud se zobrazí chybová z mail
příkaz, nebo jste neobdrželi zprávu po delší dobu, zkontrolujte, zda Postfix, konfigurace upravovat je platná, a že váš název serveru a název hostitele jsou nastaveny na vaší doméně.
Všimněte si, že s touto konfigurací, adresa v From
pole pro zkoušky e-maily obdržíte, bude ve formě your_user_name@your_domain
, kde your_user_name
je uživatelské jméno uživatele serveru jste spustili příkaz jako.,
nyní jste odeslali e-mail ze serveru a ověřili, že byl úspěšně přijat. V dalším kroku nastavíte přesměrování e-mailů pro root
.
4. Krok — Předání Systému Mail
V tomto kroku, budete nastavit přeposílání e-mailů pro uživatele root
, tak, že systém generované zprávy odeslané na váš server si předají externí e-mailovou adresu.
soubor/etc/aliases
obsahuje seznam alternativních jmen pro příjemce e-mailu., Otevřít pro úpravy:
- sudo nano /etc/aliases
Ve výchozím stavu, to vypadá takto:
# See man 5 aliases for formatpostmaster: root
pouze současné směrnice stanoví, že systém generované e-maily jsou odesílány do root
.
Přidejte následující řádek na konec souboru:
...root: your_email_address
tento řádek, můžete zadat, které e-maily poslal do root
nakonec být předány e-mailovou adresu. Nezapomeňte nahradit your_email_address
svou osobní e-mailovou adresou., Až budete hotovi, uložte a zavřete soubor.
změna se projeví, spusťte následující příkaz:
- sudo newaliases
Běh newaliases
bude vybudovat databázi aliasů, že mail
příkaz používá, které jsou převzaty z konfiguračního souboru, kterou jste právě upravili.
Otestujte si, že odesílání e-mailů na root
funguje, spuštěním:
- echo "This is the body of the email" | mail -s "This is the subject line" root
Byste měli obdržet e-mail na vaši e-mailovou adresu. Pokud tam není, zkontrolujte složku spam.,
v tomto kroku jste nastavili přeposílání zpráv generovaných systémem na vaši e-mailovou adresu. Nyní povolíte šifrování zpráv, takže všechny e-maily, které váš server odešle, jsou imunní vůči manipulaci v tranzitu a budou považovány za legitimnější.
Krok 5 — Povolení SMTP Šifrování
Budete nyní povolit SMTP šifrování požadovat zdarma TLS certifikát z let ‚ s Encrypt pro vaši doménu (pomocí Certbot) a konfigurace Postfixu, aby jej použít při odesílání zprávy.
Ubuntu obsahuje Certbot ve výchozím úložišti balíčků, ale může se stát, že je zastaralý., Místo toho přidáte oficiální úložiště spuštěním následujícího příkazu:
- sudo add-apt-repository ppa:certbot/certbot
stiskněte ENTER
po výzvě k přijetí. Pak, aktualizace serveru balíčku správce cache:
- sudo apt update
a Konečně, nainstalujte nejnovější verzi Certbot:
- sudo apt install certbot -y
Jako součást počáteční instalace serveru na požadavky, které jste nainstalovali ufw
, nekomplikované firewall. Budete jej muset nakonfigurovat tak, aby umožnil Port HTTP 80
, aby bylo možné ověření domény dokončit., Spusťte následující příkaz povolit je:
- sudo ufw allow 80
výstup bude vypadat takto:
OutputRule addedRule added (v6)
Nyní, že port je otevřený, spusťte Certbot získat osvědčení:
- sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain
Tento příkaz příkazy Certbot vydávat osvědčení s klíč RSA o velikosti 4096 bitů, spustit dočasné samostatný web server (--standalone
) pro ověření, a zkontrolujte, zda přes port 80
(--preferred-challenges http
)., Nezapomeňte před spuštěním příkazu nahradityour_domain
doménou a po zobrazení výzvy zadejte svou e-mailovou adresu.
výstup bude podobný tomuto:
OutputSaving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Jak je psáno v poznámkách, certifikát a soukromý klíč souboru byly uloženy pod /etc/letsencrypt/live/your_domain
.
Nyní, když máte váš certifikát, otevřete main.cf
pro editaci:
- sudo nano /etc/postfix/main.cf
Najdete v následující části:
Upravit, aby to vypadalo jako to, nahrazení your_domain
s vaší domény, kde je to nutné, který bude aktualizovat své TLS nastavení pro Postfix:
Jakmile budete hotovi, uložte a zavřete soubor.
Použít změny po restartu Postfixu:
- sudo systemctl restart postfix
Teď, pokuste se odeslat e-mail znovu:
- echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address
zkontrolujte e-mailovou adresu, kterou jste zadali. Je možné, že zprávu ve vaší doručené poště uvidíte okamžitě, protože poskytovatelé e-mailů mnohem častěji označují nešifrované zprávy jako spam.,
můžete zkontrolovat technické informace o e-mailové zprávy v klientovi vidět, že zpráva je opravdu šifrována.
závěr
nyní máte e-mailový server pouze pro odesílání, poháněný postfixem. Šifrování všech odchozích zpráv je dobrým prvním krokem pro poskytovatele e-mailů, kteří neoznačují vaše zprávy jako spam. Pokud to děláte ve vývojovém scénáři, mělo by toto opatření stačit.,
Nicméně, pokud je váš případ použití, je poslat e-maily na potenciální uživatele webu (např. potvrzení e-maily a message board sign-up), měli byste se podívat do nastavení SPF záznamů, tak, aby váš server e-maily jsou ještě více pravděpodobné, že být viděn jako legitimní.