ä¸è¦å²ç¬æåçæ§
目次:
- 前提条件
- Redisをインストールする
- アンバウンドをインストールする
- Rspamdをインストールする
- Rspamdを構成する
- Nginxを構成する
- Postfixを構成する
- Dovecotを構成する
- DKIMキーを作成する
- DNS設定
- 結論
これは、メールサーバーのセットアップと構成の3番目の部分です。 このチュートリアルでは、Rspamdスパムフィルターシステムのインストールと構成、およびメールサーバーへの統合を行い、DKIMおよびDMARC DNSレコードを作成します。
Spamassassinではなく、Rspamdを選択する理由をお尋ねください。 Rspamdはより積極的に維持され、Cで記述されており、Perlで記述されたSpamassassinよりもはるかに高速です。 もう1つの理由は、RspamdにDKIM署名モジュールが付属しているため、送信メールに署名するために別のソフトウェアを使用する必要がないことです。
前提条件
このチュートリアルを続ける前に、sudo特権を持つユーザーとしてログインしていることを確認してください。
Redisをインストールする
Redisは、Rspamdによってストレージおよびキャッシュシステムとして使用され、インストールするだけで実行されます。
アンバウンドをインストールする
Unboundは、非常に安全な検証、再帰、およびキャッシュDNSリゾルバーです。
このサービスをインストールする主な目的は、外部DNS要求の数を減らすことです。 このステップはオプションであり、スキップできます。
sudo apt update
sudo apt install unbound
ほとんどのサーバーでは、デフォルトの非バインド設定で十分です。
サーバーのプライマリDNSリゾルバーとして非バインドを設定するには、次のコマンドを実行します。
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u
resolvconf
を使用していない場合は、
resolvconf
ファイルを手動で編集する必要があります。
Rspamdをインストールする
Rspamdの最新の安定バージョンを公式リポジトリからインストールします。
必要なパッケージをインストールすることから始めます。
sudo apt install software-properties-common lsb-release
sudo apt install lsb-release wget
次のwgetコマンドを使用して、リポジトリGPGキーをaptソースキーリングに追加します。
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
次を実行して、Rspamdリポジトリを有効にします。
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
リポジトリが有効になったら、次のコマンドを使用してパッケージインデックスを更新し、Rspamdをインストールします。
sudo apt update
sudo apt install rspamd
Rspamdを構成する
ストック設定ファイルを変更する代わりに、デフォルト設定を上書きする新しいファイルを
/etc/rspamd/local.d/local.d/
ディレクトリに作成します。
デフォルトでは、Rspamdの
normal worker
は、電子メールメッセージをスキャンするワーカーがポート11333のすべてのインターフェイスでリッスンします。次のファイルを作成して、localhostインターフェイスのみをリッスンするようにRspamdの通常のワーカーを構成します。
bind_socket = "127.0.0.1:11333";
proxy worker
はポート11332でリッスンし、milterプロトコルをサポートします。 PostfixがRspamdと通信するには、milterモードを有効にする必要があります。
bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }
次に、Rspamd Webインターフェースへのアクセスを提供する
controller worker
サーバーのパスワードを設定する必要があります。 暗号化されたパスワードを生成するには:
rspamadm pw --encrypt -p P4ssvv0rD
出力は次のようになります。
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
パスワード(
P4ssvv0rD
)をより安全なものに変更することを忘れないでください。
端末からパスワードをコピーして、構成ファイルに貼り付けます。
/etc/rspamd/local.d/worker-controller.inc
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
後ほど、NginxをコントローラーワーカーWebサーバーへのリバースプロキシとして構成し、Rspamd Webインターフェイスにアクセスできるようにします。
classifier-bayes.conf
ファイルに次の行を追加して、RedisをRspamd統計のバックエンドとして設定します。
servers = "127.0.0.1"; backend = "redis";
milter_headers.conf
ファイルを開き、milterヘッダーを設定します。
use =;
milterヘッダーの詳細については、こちらをご覧ください。
最後に、Rspamdサービスを再起動して、変更を有効にします。
Nginxを構成する
このシリーズの最初の部分では、PostfixAdminインスタンス用のNginxサーバーブロックを作成しました。
Nginx構成ファイルを開いて、黄色で強調表示されている次の場所ディレクティブを追加します。
/etc/nginx/sites-enabled/mail.linuxize.com.conf
… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…
変更を有効にするには、Nginxサービスをリロードします。
sudo systemctl reload nginx
https://mail.linuxize.com/rspamd/
に
rspamadm pw
し、
rspamadm pw
コマンドを使用して以前に生成したパスワードを入力すると、Rspamd Webインターフェースが表示されます。
Postfixを構成する
Rspamd milterを使用するようにPostfixを設定する必要があります。
次のコマンドを実行して、Postfixメイン構成ファイルを更新します。
sudo postconf -e "milter_protocol = 6"
sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
sudo postconf -e "milter_default_action = accept"
sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332"
sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Postfixサービスを再起動して、変更を有効にします。
sudo systemctl restart postfix
Dovecotを構成する
このシリーズの第2部ではすでにDovecotをインストールおよび構成しました。次に、Sieveフィルターモジュールをインストールし、DovecotとRspamdを統合します。
Dovecotフィルタリングモジュールをインストールすることから始めます。
sudo apt install dovecot-sieve dovecot-managesieved
パッケージがインストールされたら、次のファイルを開き、黄色で強調表示されている行を編集します。
/etc/dovecot/conf.d/20-lmtp.conf
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }…
/etc/dovecot/conf.d/20-imap.conf
… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }…
/etc/dovecot/conf.d/20-managesieve.conf
… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }…
/etc/dovecot/conf.d/90-sieve.conf
plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }
ファイルを保存して閉じます。
Sieveスクリプト用のディレクトリを作成します。
mkdir -p /var/mail/vmail/sieve/global
グローバルシーブフィルターを作成して、
Spam
としてマークされた電子メールを
Spam
ディレクトリに移動します。
require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }
次の2つのSieveスクリプトは、
Spam
ディレクトリにメールを出し入れするたびにトリガーされます。
require; pipe:copy "rspamc";
/var/mail/vmail/sieve/global/report-ham.sieve
require; pipe:copy "rspamc";
Dovecotサービスを再起動して、変更を有効にします。
sudo systemctl restart dovecot
Sieveスクリプトをコンパイルし、正しい許可を設定します。
sievec /var/mail/vmail/sieve/global/spam-global.sieve
sievec /var/mail/vmail/sieve/global/report-spam.sieve
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
DKIMキーを作成する
DomainKeys Identified Mail(DKIM)は、送信メッセージヘッダーに暗号化署名を追加する電子メール認証方法です。 これにより、受信者は、特定のドメインから発信されたと主張する電子メールがそのドメインの所有者によって実際に承認されたことを確認できます。 これの主な目的は、偽造された電子メールメッセージを防ぐことです。
すべてのドメインに異なるDKIMキーを使用でき、単一のドメインに複数のキーを使用することもできますが、この記事を簡単にするために、後ですべての新しいドメインに使用できる単一のDKIMキーを使用します。
rspamadm
ユーティリティを使用して、DKIMキーを保存する新しいディレクトリを作成し、新しいDKIMキーペアを生成します。
sudo mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
上記の例では、DKIMセレクターとして
mail
を使用しています。
/var/lib/rspamd/dkim/
ディレクトリに2つの新しいファイルがあるはずです
mail.key
はプライベートキーファイルで、
mail.pub
はDKIM公開キーを含むファイルです。 DNSゾーンレコードは後で更新します。
正しい所有権と許可を設定します。
sudo chown -R _rspamd: /var/lib/rspamd/dkim
sudo chmod 440 /var/lib/rspamd/dkim/*
ここで、RspamdにDKIMキーを探す場所、セレクターの名前、および最後の行でエイリアス送信者アドレスのDKIM署名を有効にする必要があります。 これを行うには、次の内容の新しいファイルを作成します。
/etc/rspamd/local.d/dkim_signing.conf
selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;
Rspamdは、認証済み受信チェーン(ARC)署名の署名もサポートしています。 ARC仕様の詳細については、こちらをご覧ください。
Rspamdは、ARC署名を処理するためにDKIMモジュールを使用しているため、以前の構成を簡単にコピーできます。
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
Rspamdサービスを再起動して、変更を有効にします。
DNS設定
DKIMキーペアは既に作成されているため、DNSゾーンを更新する必要があります。 DKIM公開鍵は
mail.pub
ファイルに保存されます。 ファイルの内容は次のようになります。
cat /var/lib/rspamd/dkim/mail.pub
mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
また、特定の送信者からの電子メールを受け入れるかどうかを受信サーバーに伝えるように設計されたドメインベースのメッセージ認証(
DMARC
)も作成します。 基本的に、ドメインを直接のドメインスプーフィングから保護し、ドメインの評判を改善します。
次のDMARCポリシーを実装します。
_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"
上記のDMARCレコードを分解しましょう。
-
v=DMARC1
これはDMARC識別子ですp=none
none-これは、レシーバにDMARCに失敗したメッセージの処理方法を指示します。 この例では、noneに設定されています。これは、メッセージがDMARCに失敗した場合、アクションを実行しないことを意味しています。 また、「拒否」またはquarantine
adkim=r
およびaspf=r
-DKIM
およびSPF
アライメント、Relaxedにs
、Strictにs
を使用できます。この場合、DKIMおよびSPFの両方にRelaxed Alignmentを使用しています。
独自のバインドDNSサーバーを実行している場合は以前と同じで、レコードをコピーしてドメインゾーンファイルに貼り付けるだけです。別のDNSプロバイダーを使用している場合は、
_dmarc
を名前、
v=DMARC1; p=none; adkim=r; aspf=r;
としてTXTレコードを作成する必要があります
v=DMARC1; p=none; adkim=r; aspf=r;
v=DMARC1; p=none; adkim=r; aspf=r;
値/コンテンツとして。
DNSの変更が反映されるまでに時間がかかる場合があります。 digコマンドを使用して、レコードが伝播したかどうかを確認できます。
dig mail._domainkey.linuxize.com TXT +short
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
dig _dmarc.linuxize.com TXT +short
"v=DMARC1; p=none; adkim=r; aspf=r;"
ドメインの現在のDMARCポリシーを調べることも、ここで独自のDMARCポリシーを作成することもできます。
結論
チュートリアルのこの部分はこれで終わりです。 このシリーズの次のパートでは、RoundCubeのインストールと構成を続けます。
メールサーバーポストフィックスdovecot dns rspamdこの投稿は、メールサーバーのセットアップと構成シリーズの一部です。
このシリーズの他の投稿:
•PostfixAdminでメールサーバーをセットアップ•PostfixおよびDovecotをインストールおよび構成•Rspamdをインストールおよび統合•Roundcube Webmailをインストールおよび構成