アンドロイド

rspamdをインストールして統合する

不要嘲笑我們的性

不要嘲笑我們的性

目次:

Anonim

これは、メールサーバーのセットアップと構成の3番目の部分です。 このチュートリアルでは、Rspamdスパムフィルターシステムのインストールと構成、およびメールサーバーへの統合を行い、DKIMおよびDMARC DNSレコードを作成します。

Spamassassinではなく、Rspamdを選択する理由をお尋ねください。 Rspamdはより積極的に維持され、Cで記述されており、Perlで記述されたSpamassassinよりもはるかに高速です。 もう1つの理由は、RspamdにDKIM署名モジュールが付属しているため、送信メールに署名するために別のソフトウェアを使用する必要がないことです。

前提条件

このチュートリアルを続ける前に、sudo特権を持つユーザーとしてログインしていることを確認してください。

Redisをインストールする

Redisは、Rspamdによってストレージおよびキャッシュシステムとして使用され、インストールするだけで実行されます。

sudo apt install redis-server

アンバウンドをインストールする

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の通常のワーカーを構成します。

/etc/rspamd/local.d/worker-normal.inc

bind_socket = "127.0.0.1:11333";

proxy worker はポート11332でリッスンし、milterプロトコルをサポートします。 PostfixがRspamdと通信するには、milterモードを有効にする必要があります。

/etc/rspamd/local.d/worker-proxy.inc

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統計のバックエンドとして設定します。

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

milter_headers.conf ファイルを開き、milterヘッダーを設定します。

/etc/rspamd/local.d/milter_headers.conf

use =;

milterヘッダーの詳細については、こちらをご覧ください。

最後に、Rspamdサービスを再起動して、変更を有効にします。

sudo systemctl restart 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 ディレクトリに移動します。

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

次の2つのSieveスクリプトは、 Spam ディレクトリにメールを出し入れするたびにトリガーされます。

/var/mail/vmail/sieve/global/report-spam.sieve

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サービスを再起動して、変更を有効にします。

sudo systemctl restart 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をインストールおよび構成