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.targetUlož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.pathA povolte jej, aby běžel při spuštění:
systemctl povolit le-mailserver-restart.pathA 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.
Jak nainstalovat a nakonfigurovat Fail2ban na Alma Linux 8 Jak auditovat vzdálený systém Linux pomocí bezpečnostního nástroje LynisLinux