goo blog サービス終了のお知らせ 

Like The Wind

「メモ程度に。」な趣味ブログです

Rspamd v1.7.9 - ReceivedヘッダのIPv6の抽出に失敗する

2018年08月30日 | Rspamd
MS outlookや、googleを経由して送られてきたメールの一部で、Recieveヘッダに IPv6アドレスが記録されることがありますが
Rspamd v1.7.9では、アドレスを正しく抽出できないようです

実際のヘッダは
Received: from OSBPR01MB3029.jpnprd01.prod.outlook.com
([fe80::5535:9d89:d267:afc4]) by OSBPR01MB3029.jpnprd01.prod.outlook.com
([fe80::5535:9d89:d267:afc4%3]) with mapi id 00.00.0000.000; Wed, 00 Aug 2018
00:00:00 +0000

となっていますが、これを処理すると Rspamdのログに
rspamd[7204]: <>; ; lua_ip_from_string: cannot parse ip: fe80::5535:9d89:d267:afc4]) by OSBPR01MB3029.jpnprd01.prod.outlook.com ([fe80::5535:9d89:d267:afc4%3]

というエラーが出て、処理に失敗しています
IPアドレスの抽出に失敗しているので、lua APIのtask:get_received_headers() を使っても何も抽出できません

本来は "fe80::5535:9d89:d267:afc4" 入ってくるのでしょうけど、今後 IPv6も増えてくると思うので
GitHUBにチケット立てておきました

2018/09/01 追記:
vstakhov氏のコメントがあり、fixしてくれるそうです

2018/09/26 追記:
ver1.8.0が公開されました
・・が、このバージョンではまだ同じバグが残っているようです

2018/10/18 追記:
ver1.8.1 が公開されました
このバージョンで確認したところ、ログにエラーが出なくなり IPv6アドレスも抽出ができるようになりました
ただ、get_received_headers()で抽出したアドレスは "[fe80::5535:9d89:d267:afc4]" という前後にカッコがついた状態になります
v4とv6との区別のためなのかもしれませんが・・・
とりあえず今のところは問題はないのでクローズしました

multimapを使った差出人のフィルタリング

2018年04月25日 | Rspamd
multimapを使って差出人のフィルタリングを行う場合、通常 type = "from" を使います

例えばブラックリストなら
blacklist_from_email {
    type = "from";
    filter = "email";
    map = "/var/lib/rspamd/multimaps/blacklist_from_email.map";
    symbol = "BLACKLIST_FROM_EMAIL";
    score = 100.0;
}

と設定しておけば、あとは MAPファイルに追記していくだけで、メールアドレスで落とすことができます
メールアドレスのドメイン部分に絞ってフィルタリングしたい場合は
filter = "email:domain";

メールアドレスのTLD部分に絞る場合は
filter = "email:domain:tld"

という具合に、対象を絞り込んでフィルタリングすることができます

この type = "from" 指定は、まずメールのエンベローブヘッダを参照し、無ければメールヘッダーの "From" が参照されます
メール配信サービス等を利用して送られてくるメールは たいてい別のドメイン名が入っていることが多く
そういう場合は、リストに "From" に指定されている差出人を追加しても引っかかりません

エンベローブヘッダを参照せず、メールヘッダの "From" のみ参照させたい場合は、以下のように設定します
blacklist_from_email {
    type = "header";
    header = "From";
    filter = "email";
    map = "/var/lib/rspamd/multimaps/blacklist_from_email.map";
    symbol = "BLACKLIST_FROM_EMAIL";
    score = 100.0;
}

type = "header" は、メールヘッダ全体の指定で、header = "From" で差出人に絞り込んでいます

新しいSPAMフィルタ

2016年12月06日 | Rspamd
メールサーバーの入れ替えを検討をしています

SPAMフィルタとしての機能も持たせているので
これまで、qmail+Simscan+spamassagin という構成で運用していましたが
そろそろ Postfixに移行しようと思います

SPAMフィルタは、Spamassaginを使い続けようと思っていたのですが
postfixと組み合わせると、milterプロトコルという仲介する受け口が必要なので
どうするかが悩みどころだったのですが
もしかしたら使えるかもしれない SPAMフィルタが出てきました

「オープンソースのスパムフィルタリングシステム「Rspamd 1.4」が公開」
https://mag.osdn.jp/16/11/24/163000

公式サイトはこちら

まったく新しいSPAMフィルタですね
作者はドイツのセキュリティ会社に努めるのVsevolod Stakhovさん
開発は GitHUB上で行われているようです

postfixとの相性もよさそうだし、これからこのツールを使って
新しいメールサーバーの再構築を行ってみようと思います