DMARCレポートをAIに解析させる
自宅鯖でSPF/DKIMを設定しているので、DMARCレポートが色々なところから飛んでくる。で、tar.gzだったりzipだったりを伸張してxmlを取り出して、AIエージェントに「どう思う?」と手動で聞いていたわけだけど、正直面倒。
DMARCレポートを読み下してくれるウェブサービスもあるけれど、そのぐらいなら書いちゃった方が早いなと。
DMARCレポートを日次で分析し、修正の要否を判断するサービス、dmarc-reportを作成する。
1. DMARCレポートは、192.168.1.4の/home/rio/Maildir/new/及びcur/に着信する
2. 送信元は様々なので、OpenAI API(gpt-5.4-mini)を利用して、そのメールがDMARCレポートであるかを判断する
3. DMARCレポートにはシングルパートあるいはマルチパートの添付ファイルが含まれる
4. 添付ファイルの圧縮形式に応じて展開しXMLファイルを取り出し、同じOpenAI APIを利用して解析する
5. 192.168.1.4で稼働する権威DNSサーバであるknot、localnet向きのDNSサーバであるunbound、並びにpostfixの設定の修正の要否を解析する
6. 修正を要する場合は、その修正内容を含む
7. 解析結果は、root@rio.st宛のHTMLメールとして送信する
8. HTMLメールは一見して対応の要否が分かるデザインとする
9. デバッグモードでは、DMARCレポートは/home/rio/Maildir/new/に残したままとするが、デバッグモードの指定が無い場合、当該メールは削除する
10. このサービスはPython 3.12で実装され、プロジェクト管理はuvを用い、192.168.1.4のsystemd timerによって午前6時に起動するプロンプトは以上だけど、既にAnsibleで構築するフローが出来ている。GitHub CopilotをZedのエージェントに指定し、gpt-5.5:highで20分ぐらいで自宅鯖上で動くようになりましたとさ。

