GNU/Linux >> Znalost Linux >  >> Linux

Zabezpečení vašeho poštovního serveru spravovaného ISPConfig 3 pomocí platného certifikátu Lets Encrypt SSL

Pokud provozujete svůj vlastní poštovní server, je nejlepší se k němu bezpečně připojit pomocí připojení SSL/TLS. Pro tato zabezpečená připojení budete potřebovat platný certifikát. V tomto tutoriálu nastavíme certifikát Let's Encrypt pro náš poštovní server, který se automaticky obnovuje.

Upozornění:Tento tutoriál je založen na tomto tutoriálu:https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/, ale upraven tak, abyste měli samostatný certifikát pro váš poštovní server a ovládací panel. Pokud jste se podle tohoto návodu již dříve řídili, může tento návod narušit vaše nastavení.

Tento tutoriál používá certifikáty vydané acme.sh. Pokud používáte certbot, postupujte podle tohoto návodu:https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate -certbot.86372/

Poznámka pro ISPConfig 3.2: ISPConfig 3.2 dokáže automaticky při instalaci vytvořit platný Let's Encrypt SSL certifikát pro název hostitele serveru, který se používá i pro poštovní server. Není třeba ručně vytvářet certifikát Let's Encrypt SSL, jak je popsáno zde v systémech ISPConfig 3.2, pokud nepotřebujete v certifikátu SSL vedle názvu hostitele serveru jiná doménová jména.

Předpoklady

  • Váš server by měl být nainstalován podle výukového programu Perfect Server pro váš operační systém.
  • Ujistěte se, že jste přihlášeni jako uživatel root.

Začínáme

Pro svůj poštovní server budu používat následující názvy hostitelů:mail.example.com, smtp.example.com, imap.example.com.

Nahraďte všechny červeně podtržené názvy hostitelů v tomto tutoriálu svými vlastními.

Vytvořte záznamy DNS pro název hostitele, aby odkazovaly na váš server. Měly by to být záznamy A (a případně AAAA). Poté v rozhraní ISPConfig přejděte na kartu Sites.

Vydání certifikátu

V části Weby klikněte na „Přidat nový web“. Nastavte mail.example.com jako doménu. Vypněte automatickou subdoménu a zaškrtněte políčko Let's Encrypt.

Poté můžete přidat své další názvy hostitelů jako aliasové domény tak, že přejdete do seznamu aliasdomén a kliknete na „Přidat novou aliasdoménu“. Vyberte smtp.example.com jako doménu a mail.example.com jako nadřazený web. Vypněte automatickou subdoménu a uložte nový záznam. Opakujte tento postup pro případné další názvy hostitelů.

Ověřte, zda je certifikát na místě. Můžete to udělat pomocí nástroje, jako je https://www.sslshopper.com/ssl-checker.html

Mělo by to vypadat nějak takto:

Pokud jsou uvedeny názvy hostitele a neexistují žádné další chyby, můžete pokračovat. V opačném případě zkontrolujte chyby a vyřešte je, než budete pokračovat.

Nahrazení certifikátu certifikátem Let's Encrypt

Nyní můžeme nahradit aktuální certifikát vaším důvěryhodným certifikátem. Přihlaste se na svůj server a spusťte tyto příkazy:

(nahraďte mail.example.com názvem hostitele, který jste použili pro web)

cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(datum +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(datum +"%y%m%d%H%M%S").bak
ln -s /root/.acme.sh/mail.example.com/fullchain.cer smtpd .cert
ln -s /root/.acme.sh/mail.example.com/mail.example.com.key smtpd.key
systemctl restart postfix
systemctl restart dovecot

Certifikát by nyní měl být použit pro váš server Postfix a Dovecot. Ale ještě nekončíme! Certifikát Let's Encrypt se obnovuje každých 60 dní, takže bychom měli proces výměny certifikátu v budoucnu automatizovat, abyste na něj nemohli zapomenout.

Nastavit skript automatického obnovení

Otevřete nový soubor skriptu:

nano /etc/init.d/le_mailserver_restart.sh

Vložte toto do tohoto souboru:

#!/bin/sh
### BEGIN INIT INIT
# Poskytuje:LE MAILSERVER CERT AUTO UPDATER
# Požadováno-Start:$local_fs $network
# Povinné -Stop:$local_fs
# Výchozí-Start:2 3 4 5
# Výchozí-Stop:0 1 6
# Krátký popis:LE MAILSERVER CERT AUTO UPDATER
# Popis :Po vydání nového certifikátu Let's Encrypt automaticky restartujte poštovní server.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot

Udělejte skript spustitelným:

chmod +x /etc/init.d/le_mailserver_restart.sh

K automatickému spuštění tohoto skriptu při obnově použijeme systemd.

Vytvořte a otevřete novou službu systemd:

nano /etc/systemd/system/le-mailserver-restart.service

Vložte toto do tohoto souboru:

[Unit] 
Description="Spustit skript pro restartování Postfixu a Dovecotu po obnovení certifikátu"

[Služba]
ExecStart=/etc/init.d /le_mailserver_restart.sh

Uložte a zavřete tento soubor. Poté vytvořte a otevřete nový soubor cesty systemd:

nano /etc/systemd/system/le-mailserver-restart.path

Vložte to do tohoto souboru a nahraďte mail.example.com vámi použitým názvem hostitele:

[Jednotka]
Description="Monitorujte soubory certifikátů poštovního serveru pro spuštění restartu e-mailových služeb po obnovení certifikátů"

[Cesta]
PathModified=/root/.acme.sh/mail.example.com/
Unit=le-mailserver-restart.service

[Install]
WantedBy=multi-user.target

Uložte a zavřete tento soubor. Poté spusťte službu a povolte ji, aby běžela při spuštění:

systemctl start le-mailserver-restart.path

A povolte jej, aby běžel při spuštění:

systemctl povolit le-mailserver-restart.path

A máme hotovo!

Nefunguje?

Kdysi jsem s tím měl problém, protože Let's Encrypt použil jako hlavní doménu jednu z alias domén. Hlavní doménu můžete najít v dříve zmíněném nástroji SSL jako "Common name" nebo vypsáním obsahu /root/acme.sh/, abyste viděli, která z (alias) domén tam má složku.

Pokud problém přetrvává, otevřete vlákno na fóru, aby vám ostatní mohli pomoci.


Linux
  1. Jak zabezpečit své e-mailové služby Linux pomocí SSL/TLS

  2. Jak spravovat certifikáty Lets Encrypt SSL/TLS pomocí certbota

  3. Zabezpečení ISPConfig 3.1 pomocí bezplatného šifrovacího certifikátu SSL

  1. Jak zabezpečit účet s podporou cPanel pomocí certifikátu Lets Encrypt SSL

  2. Jak zabezpečit váš server ISPConfig 3 proti útoku pudle SSL

  3. Začínáme s acme.sh Umožňuje šifrovat klienta SSL

  1. Zabezpečte Nginx pomocí Lets Encrypt na Ubuntu 20.04

  2. Zabezpečte Apache pomocí Lets Encrypt na Ubuntu 20.04

  3. Zabezpečte Apache pomocí Lets Encrypt na CentOS 7