Google Cloud Platform からのメールを Rspamd でフィルタリングする

Enterprise Linux 9
このサイトはアフィリエイト広告(Amazonアソシエイト含む)を掲載しています。
スポンサーリンク

最近 Google Cloud Platform が発信源になっているフィッシングメールが多く届き、お行儀は良い(DMARC などがきちんと設定されている)ため Rspamd を通り抜けてくる状態でした。

私の環境では GCP からメールを受け取る必要性が無かったので、まとめてフィルタリングすることにしました。

ASN で判定する

Rspamd には自律システム番号(ASN:Autonomous System Number)で判定する ASN モジュールがデフォルトで有効なため、これを使って設定していきます。

Google Cloud Platform に割り当てられている ASN は 396982 で、Googleの主幹ネットワーク(Gmail、検索、YouTubeなど)に割り当てられている ASN(15169)とは別の番号が割り当てられています。

そのため、GCP をフィルタリングしても Gmail や Google 本体からのメールなどには影響しないので、安心してください。

ASN のリストを作成

まずは、ASN のリストを作成します。

/etc/rspamd/local.d/blacklist_asn.map を作成して、GCP の ASN である「396982」を入力します。

Web GUI から操作できるように、所有者を変更しておきます。

フィルタールールの追加

multimap.conf にフィルタールールを追加します。

設定の反映

コンフィグテストで問題無ければ、Rspamd を再起動して設定を反映させます。

以上で、ASN を使ってフィルタリングする設定は完了です。

結果

設定後しばらく様子をみたところ、ASN 情報が取得できている場合にはうまく動作していますが、稀に ASN が引けずに判定をすり抜けてくるものがあります。

ASN モジュールだけでも効果は大きかったのですが、なんか悔しいので徹底的にやることにしました。

IP アドレスで判定する

GCP の IP アドレスの範囲は Google から公開されており、JSON(JavaScript Object Notation)形式で取得できます。

Google の IP アドレスの範囲を取得する - Google Workspace 管理者 ヘルプ
管理者は、Google API とサービスのデフォルト ドメインの IP アドレスの範囲が必要な場合に、次のリストを使用できます。 Google がインターネット上でユーザーに提供している IP 範囲

GCP の IPv4 アドレスをリスト化する

GCP の IPv4 アドレスをリスト化し、Rspamd のマップファイルとして書き出します。

スクリプトは /etc/cron.weekly/ に配置し、毎週自動的に更新してくれるようにします。

JSON データの操作に jq コマンドを使うので、先にインストールしておく必要があります。

パーミッションを変更しておきます。

フィルタールールの追加

/etc/rspamd/local.d/multimap.conf に下記の設定を追加します。

設定の反映

コンフィグテストで問題無ければ、Rspamd を再起動して設定を反映させます。

結果

IP アドレスで判定する方法では確実に弾いてくれるようになりました。

前半の設定が残っていると、ASN 情報が取得できた場合に二重加点されてしまうため、どちらかの方法で設定すれば十分です。

コメント

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