【AlmaLinux9】Rspamdに許可・拒否リスト(ホワイトリスト・ブラックリスト)の設定を追加する方法

記事内に広告が含まれています。

「Almalinux9」にインストールされた「Rspamd」にメールの許可・拒否リスト(ホワイトリスト・ブラックリスト)の設定を追加する方法です。

Rspamd構築手順

  1. 【AlmaLinux9】Rspamdをインストールする方法
  2. 【AlmaLinux9】RspamdにDKIM、ARC、DMARC機能を追加する方法‎
  3. 【AlmaLinux9】Rspamdに許可・不許可リスト(ホワイトリスト・ブラックリスト)の設定を追加する方法<

メールの許可・拒否リスト(ホワイトリスト・ブラックリスト)を設定

「/etc/rspamd/local.d/multimap.conf」にルールを設定することで、メールの許可・拒否の設定することが出来ます。

# cd /etc/rspamd/local.d
# cp -p multimap.conf multimap.conf_$(date +%Y%m%d-%H%M%S)
# vi multimap.conf

設定内容

ルールの設定は以下のような書式で行います。

設定名 {
  type = "マップタイプ";
  filter = "フィルター";
  map = "マップファイル";
  action = "ルールにマッチした場合の動作";
  regexp = true;
  description = "マップ説明";
}

設定名 {
  type = "マップタイプ";
  map = "マップファイル";
  filter = "フィルター";
  score = 数値; 
  regexp = true;
  description = "マップ説明";
}

それぞれの設定項目を説明ます。

設定名

設定内容が分りやすい名前をつけることを推奨します。

type

マッチング対象となる情報の種類を設定します。

私は以下の種類を使用してルールを作成することが多いです。

  • from: From ヘッダーのメールアドレス
  • ip: 送信元のIPアドレス

他にも多くの「type」がありますので、下記のページでより詳しい情報を確認してみてください。

https://rspamd.com/doc/modules/multimap.html#map-types

filter

どのような形式でフィルタリングを行うかを設定します。

「type」が「from」や「ip」の場合は、以下の形式を使用することが多いです。

「filter」が設定されていない場合は、「real_ip」が初期設定として有効となります。

  • email:addr メールアドレスでのマッチング ※設定例 user@example.com
  • email:domain ドメインでマッチング ※設定例 example.com
  • real_ip IPアドレスでのマッチング ※設定例 192.168.0.1 192.168.0.0/24

その他の「filter」形式については、下記のページを参照願います。

https://rspamd.com/doc/modules/multimap.html#from-rcpt-and-header-filters

map

「filter」で設定した形式にマッチした、メールアドレスやIPアドレスを記載するファイルを指定します。

このファイルは「_rspamd」ユーザで読み書き出来る必要があります。

action

設定したルールにマッチした際の動作を設定します。

  • accept: 許可
  • reject: 拒否

「Action」か「score」のどちらかを選択して設定します。

score

ルールにマッチした際の「score」を設定します。

  • 正の数: スパムスコアを増加させスパム判定されやすくする
  • 負の数: スパムスコアを現象させてスパム判定されにくくする
  • 0: スコアを変更しない

regexp

正規表現を使用したい場合に「true」と設定します。

description

このリストの目的や内容を説明するテキストで、ログや管理画面などでも表示されます。

設定例

私が使用している以下のルールを設定例として紹介します。

  • ALLOW_MAIL_ADDRESS: 受信を許可するメールアドレス
  • ALLOW_MAIL_DOMAIN: 受信を許可するメールドメイン
  • DENY_MAIL_ADDRESS: 受信を拒否するメールアドレス
  • DENY_MAIL_DOMAIN: 受信を拒否するメールドメイン
  • DENY_IP: 受信を拒否するIPアドレス
ALLOW_MAIL_ADDRESS {
  type = "from";
  filter = "email:addr";
  map = "/var/lib/rspamd/allow_mail_address.map";
  action = "accept";
  regexp = true;
  description = "Allow Mail Address";
}

ALLOW_MAIL_DOMAIN {
  type = "from";
  filter = "email:domain";
  map = "/var/lib/rspamd/allow_mail_domain.map";
  action = "accept";
  regexp = true;
  description = "Allow Mail Domain";
}

DENY_MAIL_ADDRESS {
  type = "from";
  filter = "email:addr";
  map = "/var/lib/rspamd/deny_mail_address.map";
  action = "reject";
  regexp = true;
  description = "Deny Mail Address";
}

DENY_MAIL_DOMAIN {
  type = "from";
  filter = "email:domain";
  map = "/var/lib/rspamd/deny_mail_domain.map";
  action = "reject";
  regexp = true;
  description = "Deny Mail Domain";
}

DENY_IP {
  type = "ip";
  map = "/var/lib/rspamd/deny_ip_list.map";
  prefilter = true;
  action = "reject";
  description = "Deny IP addresses";
}

mapファイル作成

mapファイルの作成場所に決まりは無いのですが、「/var/lib/rspamd」は所有者とグループが「_rspamd」で、パーミッションの設定も都合が良いので作成場所としています。

# ls -l /var/lib/ | grep rspamd
drwxr-xr-x  3 _rspamd _rspamd 24576 Mar 15 14:55 rspamd

「touch」コマンドで空のmapファイルを作成します。

# touch /var/lib/rspamd/allow_mail_address.map
# touch /var/lib/rspamd/allow_mail_domain.map
# touch /var/lib/rspamd/deny_mail_address.map
# touch /var/lib/rspamd/deny_mail_domain.map
# touch /var/lib/rspamd/deny_ip_list.map

作成したmapファイルの所有者とグループを「_rspamd」に設定します。

# chown _rspamd:_rspamd /var/lib/rspamd/allow_mail_address.map
# chown _rspamd:_rspamd /var/lib/rspamd/allow_mail_domain.map
# chown _rspamd:_rspamd /var/lib/rspamd/deny_mail_address.map
# chown _rspamd:_rspamd /var/lib/rspamd/deny_mail_domain.map
# chown _rspamd:_rspamd /var/lib/rspamd/deny_ip_list.map

設定反映

すべての設定が完了しましたら、設定ファイルの構文チェックを行います。

# rspamadm configtest
syntax OK

問題がなければ「Rspamd」を再起動して設定を反映させます。

# systemctl restart rspamd

動作確認

「Rspamd」のWebUIに管理者としてログインしたあとに、メニューの「Configuration」を選択し、設定したルールが表示されていることを確認してください。

mapファイルの設定方法

作成したmapファイルに設定をする方法として、直接編集する方法とWebUIから編集する方法があります。

直接編集

マップファイルを直接編集して、許可・拒否をしたいメールアドレスやIPアドレスを記述します。

# vi /var/lib/rspamd/deny_mail_address.map 

複数設定する場合は以下のように、1つずつ改行して記述していきあます。

user_01@example.com
user_02@example.com
user_03@example.net

編集完了後に設定内容はすぐに反映されます。

WebUIから編集

RspamdのWebUIに管理者としてログインしたあとに、メニューの「Configuration」を選択し、編集を行いたいmapファイルクリックします。

編集用の画面が表示されるので、メールアドレスやIPアドレスを入力後に「Save changes」をクリックして保存します。

動作確認

WebUIにログインし、メニューの「history」から設定したルールの動作状況を確認することが出来ます。

「multimap.conf」に設定したルールに合致した場合、「Pass-through module」部分に「multimap」と表示されますので、指定した「Action」が実行されているか、「score」を設定した場合は設定した数値が反映されているかを確認してください。

メールをrejectした場合

メールを「reject」した場合は、メール送信元に以下のようなエラーメッセージを返します。

<tamohiko@server-memo.net>: host mail.server-memo.net[xxx.xxx.xxx.xxx] said: 554
    5.7.1 Matched map: DENY_MAIL_ADDRESS (in reply to end of DATA command)

コメント

タイトルとURLをコピーしました