2.6K Views
November 13, 25
スライド概要
TDNOG12.0 Meetingでの発表資料
オーケストラのメーリングリストを26年ぶりに作り直した話
DKIM/DMARC対応のツラミ等を吐き出してみた
SlideShareが使いにくくなってしまったのでこちらに全部移してみた。 - 勉強会で使った資料 - イベントでの登壇資料 等を中心に上げてあります。
今さら DKIM/DMARC対応の メーリングリストを作った話 2025-11-13 TDNOG 12.0 Meeing (秋田) 資料 佐々木 健
今日のアジェンダ ● 会場への質問 ● 自己紹介 ● なぜいまさらDKIM/DMARC対応のMLを作ることに なったのか ● 作り方 ● 作った感想 ● もっと他の方法はないの?
会場への質問(アイスブレイク) ● 秋田の温泉に行ったことある人 ● メーリングリスト使ってる人 – とても沢山使ってる人 ● メーリングリストを管理している人 ● メールサーバを自前で立ててる人 – DKIM/DMARC対応してる人 ● ChatGPT等のLLMを活用してる人 – 課金してる人
私とTDNOG ● 福島県郡山市出身、いちおう東北人 ● 今住んでるのは東京 ● 地方はご飯がおいしい、良い温泉も沢山 ● TDNOGとQUNOGに良く参加してる ● TDNOGは6(帯広)から毎回参加している
私と秋田県 ● 高校の吹奏楽コンクール東北大会は秋田で開催 – ● 秋田で開催されたJANOG11でプログラム委員 – ● ● 秋田は美人が多い!!、秋田大学に一瞬行きたくなったけど理系の学 部は鉱山学部しかなかった、当時は理学部志望だった 2003年1月 数年前に関わっていた南の国のプロジェクトでの機器キッティ ング場所がなぜか秋田だった 秋田の温泉にはプライベートで頻繁に通っている – 乳頭温泉とかとても好き – 昨日は玉川温泉に宿泊
私とオーケストラ ● I can play the Violin. – またまたご冗談を、と良く言われるけど、ホントだって ● ● ● 主にオーケストラで弾いている ショスタコーヴィチばかり演奏する治安悪めの団体 の後ろのほうでこっそり弾いている 団体内の連絡用にメーリングリストを使っている – 1999年に自宅サーバで立ちあげて、惰性で管理中 – 全体用、パート用、団内業務用、趣味用
ここ数年の悩み ● メーリングリストへのメールが届かないという声が 増えた – スパム判定されたり ● GMailやMicrosoft等の大手のスパム判定が厳しく なった – SPF/DKIM/DMARCに対応したメールじゃないとちゃん と受けとってくれない – 神奈川の高校入試で問題になったりしたよね
noteにも書いた ● https://note.com/sasakipochi/n/n29f7d1090e f0
SPF/DKIM/DMARCとは 技術名 目的 検証対象 SPF(Sender Policy Framework) 送信元サーバが正 Envelope From しいか確認する (エンベロープ From) 設定場所 結果の意味 ドメインのDNS 指定以外のサーバ TXTレコード(例: から送られたメー example.jp) ルは「SPF=fail」 DKIM(DomainKe メールが改ざんさ メール本文+一部 ドメインのDNS 署名が正しければ ys Identified れていないか確認 ヘッダ(From, TXTレコード(例: 「DKIM=pass」、 Mail) する Subjectなど) mail._domainkey. 改ざんされていれ example.jp) ば「DKIM=fail」 DMARC(Domain SPFとDKIMの結果 SPF・DKIMの検証 ドメインのDNS 認証失敗時に「拒 -based Message をまとめて受信側 結果とFromヘッダ TXTレコード(例: 否」「隔離」「許 Authentication, の対応を指定する のドメイン(整合 _dmarc.example.j 可」などの方針を Reporting & 性) p) 伝える Conformance) (p=reject/ quarantine/ none)
古典的なメーリングリストの問題 ● 古典なメーリングリストではDKIMチェックに失敗 する
どうすれば良いのか? ● メーリングリストサーバでちゃんと対応させる
他の方法 ● メーリングリストなんてオワコンな仕組みを使うのはやめ て、Slackとか使おうよ!! – 一般の人にとってはハードルがとても高い – メールやExcelを捨ててちゃんとしたツールを使おうよ、という話 を10年ぐらい前にしたなあ ● – ● ● 2014年のJANOG34だった でも世の中はわりとゆっくりしているよ メーリングリストのメールをSlackに流したりしてみたけ ど、いまいち効果はなかった LINEとかFacebookじゃダメなの? – そもそもアカウント持ってない人もいる
仕方がないので頑張った ● ● ● ● 老若男女全員使えるツールは今だにメール やらなきゃなあ、とは10年以上ずっと思ってたんだ けどわりと面倒 SMTP、メーリングリストとかそのうち死ぬじゃ ろ、と思ってたけど、全然死なない 仕方ないので対応してみたよ
今までのシステム ● OS: FreeBSD – ● MTA: qmail – ● 運用は楽、バージョンを上げても設定ファイルの互換性は高い とってもシンプル メーリングリストサーバ: fml – Perlで書かれた日本製 – 運用はコマンドメール とても軽くて良いんだけど、ちょっと古めかしいよねえ
新環境選定 ● もはやFreeBSDを触れるのは老人しかいない ● まあOSはUbuntuでいいよなあ – 生活環境は2008年頃からずっとUbuntu ● Dockerで見通し良くしとく? – 1つの設定ファイルを見ればだいたい把握できるのは楽 – 作ったときにはどういうシステムかわかっていても、1ヶ 月後には良くわからなくなる
新Tool選定 ● Postfix と Mailman3 とかでやれば良いんだろう けど、さすがに今はもっとナウいソフトウェアがあ るよね??? ● ChatGPTと会話しつつ調査 ● なかった!!! – 実績があって今後もちゃんとメンテされそうという視点 – Postfixは複雑化しているメール処理も、Milter等でそ こそこ上手く対応できる
WebUIも欲しい ● Mailman3はちゃんとしたWebUIもあるので、それ も使えたほうが良いよなあ ● NginxをDockerで立てて、、、 ● CertbotでTLS証明書を取得して、、、
ChatGPTとひたすら会話 ● これこれこういうふうにしたいんだけど、dockercomose.yml書いて、と頼んだり – 微妙に惜しいのが出てくるので、ひたすら修正 ● サービス間の通信や、ファイル共有がうまくいかな いことが多発 – エラーを貼ると、こうすれば良いよ、と教えてくれるけ ど、それも微妙に惜しかったり ● わからない単語が出てきてそれについて聞いてると 時間が溶けていく
MTA/Milter (配送・署名) ● Postfix(受信/送信MTA) – 役割: 受信・再配送、milter接続、Submission運用 ● OpenDKIM(署名) – 役割: 送信直前にDKIM署名(d=ml.example.jp)
メーリングリスト (配信制御) ● Mailman Core(キューランナー) – ● ● 役割: 投稿受付・購読者判定(Header From が購読者DB にあるか)、配信キュー処理、From-munging 等 Postfix ⇄ Mailman 受け渡し – IN: Postfix → Mailman Core(LMTP) – OUT: Mailman Core → Postfix(ローカルSMTP) 方針: DMARC強化ドメイン対策として From-mungingを有効 化 → その後 OpenDKIM で再署名
WebUI (運用・管理・アーカイブ) ● ● ● Mailman Web(Django) – Postorius: リスト管理UI(作成/購読者/ポリシー設定、 DMARC対策設定のGUI) – HyperKitty: アーカイブ/スレッド閲覧UI データベース/キャッシュ – PostgreSQL – Redis
リバースプロキシ/TLS ● nginx(リバースプロキシ) – ● 役割: mailman-web へのプロキシ、/static 配 信、HSTS/HTTP→HTTPSリダイレクト、管理UIの公開 Certbot(Let’s Encrypt) – 役割: TLS証明書の取得/自動更新(cronやsystemd timerで定期更新)
メーリングリスト配送フロー全体像
とても大変、、、 ● 前は2つのソフトウェアだけで良かったのに、、、 ● ツラミは共有できたかしら??? ● 前のスライドの配送フローはメール部分だけ – Web部分も同じように連携の難しさがある ● Dockerを使うとそれなりに大変 – 通信やファイル共有で考えることも増える – うまくいかないことも増える
これでも手抜きしている ● メーリングリストサーバでメール受信時のチェック はしていない – ほんとは、チェックしたほうが良い必要 – 受信時にSPAM対策とか、Virus対策とかもしとくほうが 良い – ARC(Authenticated Received Chain)でチェックした情 報を付与したほうが良い ● Dockerを使うと面倒だったものは、素のdeaemon として動かしている
ユーザからの反響 ● 新しいメーリングリストを作ったよ – そこそこお疲れ様の声 ● 全員連絡用のメーリングリストは移行したよ – そこそこ喜びの声 – 流量がちょっと増える ● パート毎とか団内業務用のメーリングリストも移行 する? – あ、それは今は別の方法で連絡してるから大丈夫!!
心の声(怒りの叫び) ● SMTPとか早く滅びれば良い!!! – ● メールに変わるちゃんとしたコミュニケーションツールない のー?? – ● もっと信頼性が高いプロトコルないの? チャットツールに相互接続性があれば良いんじゃない? そもそもDKIM、DMARCってスジが悪くない? – DNSに無茶させすぎでしょ – S/MIMEとか、メールの中身が検証可能にするのが本当は良いん じゃないの? – 信頼性の担保にVC/DIDとか新しい技術使えないの?
ChatGPTに怒りをぶつけた ● まだまだ決定版になりそうな技術はない – ● DKIM/DMARCはわりと現実的な妥協点 – ● S/MIMEとかは一般人にはむずかしいよ 信頼性を担保するのはそんなに簡単じゃない – ● 実験的な実装はわりといろいろあるが、、、 ショートメールとかLINEとかSNSとかを使ってもSPAMはなくならない つらいこと(Pain Point)があれば、それを解決する方法は出てくるはずなんだ けどなあ、、、、 ● アプリとして実装すれば良いと思うんだけど、、、 ● だれか頑張ってーーー
(余談)メールはなくならない? ● ● ● ● ● 最初の電子メールが送受信されたのは1965年 ARPANET(インターネットの原型)の運用開始は 1969年 UNIXの誕生は1970年 name@host というような形式はSMTPが滅んで も、DNSが滅んでも残るんじゃないかなあ?? 郵便みたいな感じ??
DMARC Reportについて ● DMARCを登録すると、そのドメインのメールの状況が大 手のメール事業者から送られてくる – ほとんどがGmailとMicrosoft ● ● ユーザが多いんだろうなあ XMLファイルのデータを圧縮してメールに添付して送られ てくる – 確認がとても面倒 – 一生懸命見てもそんなに面白くない ● DMARC Reportって必要なの?、楽に見る方法ない の?、とかChatGPTに聞きはじめると、沼に落ちる – GMailの最近の動き(POP3の廃止)とかの意図とかが透けてきた り
謝辞 ● ChatGPTありがとー ● おかげで移行もできた ● 怒りもぶつけることができた – AIの逆襲とかあったらほんとやだ ● スライドもだいぶ作ってくれた – シーケンス図とか表とか箇条書きとかはChatGPTが書 いてくれた – Mermaid形式で図を書きだしてもらうとわりと便利
おしまい 続きは懇親会で