GNU/Linux >> Linux の 問題 >  >> Linux

有効なLetsEncryptSSL証明書を使用してISPConfig3管理対象メールサーバーを保護する

独自のメールサーバーを実行している場合は、SSL/TLS接続を使用してサーバーに安全に接続することをお勧めします。これらの安全な接続には、有効な証明書が必要です。このチュートリアルでは、自動的に更新されるメールサーバーのLet'sEncrypt証明書を設定します。

警告:このチュートリアルはこのチュートリアルに基づいています:https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ただし、別の証明書があるように変更されていますメールサーバーとコントロールパネル用。以前にそのチュートリアルに従ったことがあれば、このチュートリアルはセットアップを壊す可能性があります。

このチュートリアルでは、acme.shによって発行された証明書を使用します。 certbotを使用している場合は、代わりにこのチュートリアルに従ってください:https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate -certbot.86372 /

ISPConfig 3.2に関する注意: ISPConfig 3.2は、インストール中にサーバーホスト名の有効なLet's Encrypt SSL証明書を自動的に作成できます。これは、メールサーバーにも使用されます。サーバーのホスト名の横にあるSSL証明書に別のドメイン名が必要な場合を除いて、ISPConfig3.2システムでここで説明するようにLet'sEncryptSSL証明書を手動で作成する必要はありません。

前提条件
  • サーバーは、OSのPerfectServerチュートリアルに従ってインストールする必要があります。
  • rootユーザーとしてログインしていることを確認してください。
はじめに

メールサーバーには次のホスト名を使用します:mail.example.com、smtp.example.com、imap.example.com。

このチュートリアルの赤い下線付きのホスト名はすべて独自のものに置き換えてください。

ホスト名のDNSレコードを作成して、サーバーを指すようにします。これらはA(そして最終的にはAAAA)レコードである必要があります。次に、ISPConfigインターフェイスで、[サイト]タブに移動します。

証明書の発行

[サイト]で、[新しいWebサイトを追加]をクリックします。 mail.example.comをドメインとして設定します。自動サブドメインを無効にし、[Let'sEncrypt]チェックボックスをオンにします。

この後、aliasdomainリストに移動し、[Add new aliasdomain]をクリックして、他のホスト名をエイリアスドメインとして追加できます。ドメインとしてsmtp.example.comを選択し、親Webサイトとしてmail.example.comを選択します。自動サブドメインを無効にして、新しいレコードを保存します。最終的に他のホスト名に対してこれを繰り返します。

証明書が配置されていることを確認します。これは、https://www.sslshopper.com/ssl-checker.html

などのツールを使用して実行できます。

次のようになります:

ホスト名がリストされていて、他にエラーがない場合は、続行できます。それ以外の場合は、先に進む前にエラーを確認して解決してください。

証明書をLet'sEncrypt証明書に置き換える

これで、現在の証明書を信頼できる証明書に置き換えることができます。サーバーにログインして、次のコマンドを実行します。

(mail.example.comをWebサイトに使用したホスト名に置き換えます)

cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%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
>

これで、PostfixおよびDovecotサーバーで証明書を使用できるようになります。しかし、まだ終わっていません! Let's Encryptの証明書は60日ごとに更新されるため、将来的に証明書を置き換えるプロセスを自動化して、忘れられないようにする必要があります。

自動更新スクリプトを設定する

新しいスクリプトファイルを開きます:

nano /etc/init.d/le_mailserver_restart.sh

これをそのファイルに貼り付けます:

#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE MAILSERVER CERT AUTO UPDATER
# Description: Restart mail server automatically when a new Let's Encrypt certificate is issued.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot

スクリプトを実行可能にします:

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

更新時にこのスクリプトを自動的にトリガーするには、systemdを使用します。

新しいsystemdサービスを作成して開きます:

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

これをそのファイルに貼り付けます:

[Unit] 
Description="Run script to restart Postfix and Dovecot after the certificate has been renewed"

[Service]
ExecStart=/etc/init.d/le_mailserver_restart.sh

このファイルを保存して閉じます。次に、新しいsystemdパスファイルを作成して開きます。

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

これをそのファイルに貼り付け、mail.example.comを使用したホスト名に置き換えます:

[Unit]
Description="Monitor the mailserver certificate files to trigger a e-mail services restart after the certificates has been renewed"

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

[Install]
WantedBy=multi-user.target

このファイルを保存して閉じます。次に、サービスを開始して有効にし、起動時に実行されるようにします。

systemctl start le-mailserver-restart.path

起動時に実行されるように有効にします:

systemctl enable le-mailserver-restart.path

これで完了です!

機能していませんか?

Let's Encryptがエイリアスドメインの1つをメインドメインとして使用したため、私はかつてこれに問題がありました。前述のSSLツールでメインドメインを「共通名」として見つけるか、/ root / acme.sh /のコンテンツを一覧表示して、どの(エイリアス)ドメインにフォルダがあるかを確認できます。

それでも問題が発生する場合は、フォーラムでスレッドを開いて、他の人が助けてくれるようにしてください。


Linux
  1. LinuxメールサービスをSSL/TLSで保護する方法

  2. LetsEncryptSSL証明書を使用してcPanel対応のアカウントを保護する方法

  3. acme.sh入門SSLクライアントを暗号化しましょう

  1. プードルSSL攻撃からISPConfig3サーバーを保護する方法

  2. Lets Encrypt SSL/TLS証明書をcertbotで管理する方法

  3. 無料でISPConfig3.1を保護することでSSL証明書を暗号化できます

  1. Ubuntu20.04でLetsEncryptを使用してNginxを保護する

  2. Ubuntu20.04でLetsEncryptを使用してApacheを保護する

  3. CentOS7でLetsEncryptを使用してApacheを保護する