送信ドメイン認証 運用実践 DKIM 設定・運用 IAjapan  迷惑メール対策委員会 水越賢治
SPF と DKIM 送信ドメイン認証技術 DNS で送信側ポリシーを公開するのは同じ DKIM は送信メールごとに署名する 送信メールサーバでの処理が必要
DKIM の特殊性 送信メールサーバで署名が必要 SPF より面倒 PKI インフラを使う ちょっと難しい ? 負荷が増える 複数ドメインを扱うサーバでは複雑 複数の鍵管理 メール送信毎に処理が必要 DKIM 普及が遅れている理由
OpenDKIM とは オープンソースの DKIM フィルタ 受信メールの DKIM 確認 送信メールの署名 複数ドメインのサポート 大規模化への対応 DNS Query のキャッシュ 鍵管理 DB の活用 LDAP などに接続 小規模サイトから ISP グレードまで対応
DKIM 運用システムの設計 インストールの前に OpenDKIM は設定範囲が広い 構築するメールサーバの機能、規模に合わせる 例 1 単一ドメインのメールサーバ 例 2 企業の Dual Home Mail Gateway 例 3 xSP のメールサーバ
OpenDKIM の導入初級編 まずは単一ドメインのシンプルなメールサーバ OpenDKIM のインストール OpenDKIM の設定 DNS 登録 テスト
OpenDKIM のインストール Linux 系ならバイナリでの提供もあり rpm なら http://pkgs.org/download/opendkim Debian, Ubuntu もあり ただしバイナリパッケージは後述するオプションはなし FreeBSD なら Ports で その他はコンパイルして configure で構成、コンパイル Sha256 サポートのため OpenSSL 0.9.8 以降が必要 milter サポートのため sendmail の libmilter が必要
rpm のインストール rpm の入手は以下から http://download.fedora.redhat.com/pub/epel/6/i386/opendkim-2.4.2-5.el6.i686.rpm 依存パッケージは EPEL から以下のファイル libopendkim-2.4.2-5.el6.i686.rpm libopendkim-devel-2.4.2-5.el6.i686.rpm 標準リポジトリから sendmail-milter
インストールされるファイル 設定ファイルは /etc/opendkim/ 以下に コマンド類は /usr/bin/opendkim-* 主な設定ファイルは /etc/opendkim.conf 鍵は /etc/opendkim/keys/ 以下に 起動スクリプトは /etc/init.d/opendkim
Opendkim.conf - simple 最低限以下を修正 PidFile /var/run/opendkim/opendkim.pid Mode sv   <- s は送信時の署名、 v は受信時の確認 Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 002 Canonicalization relaxed/simple Domain example.com   <-  自分のドメイン名 Selector default KeyFile /etc/opendkim/keys/default.private
MTA の設定 OpenDKIM は milter なので MTA の設定が必要 Postfix  では main.cf に以下の行を追加 smtpd_milters = inet:127.0.0.1:8891 <- opendkim.conf と合わせる non_smtpd_milters = $smtpd_milters milter_default_action = accept Sendmail では m4 に以下の行を追加 INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost') 複数の milter があるときは順番に注意 受信は enma を使った方がいい 設定ができたら MTA をリスタート
opendkim を起動 準備ができたら起動 # service opendkim start あれ、鍵を作ってないけど ? rpm に付属している起動スクリプトは自動で鍵を作る 作成するドメイン名は fqdn から hostname を除いたもの 作成するセレクタは default 勝手に作って欲しくないかも /etc/sysconfig/opendkim を編集 #AUTOCREATE_DKIM_KEYS=NO <-  コメントアウトすれば作らない #DKIM_SELECTOR=default  #DKIM_KEYDIR=/etc/opendkim/keys
鍵を作る 鍵は自分で作ろう /etc/sysconfig/opendkim AUTOCREATE_DKIM_KEYS=NO  を設定 /etc/opendkim.conf Domain example.com Selector default KeyFile /etc/opendkim/keys/ example.com/default .private 鍵を生成 mkdir /etc/opendkim/keys/ example.com /usr/bin/opendkim-genkey -D /etc/opendkim/keys/ example.com / -d  example.com  -s  default chown -R opendkim:opendkim /etc/opendkim/keys/ example.com chmod 600  /etc/opendkim/keys/ example.com/default .private c hmod 644 /etc/opendkim/keys/ example.com/default .txt
DNS への登録 公開鍵を DNS に登録して DKIM 運用開始宣言 公開鍵といくつかのタグを TXT レコードに記載 opendkim-genkey で鍵を生成すると作ってくれる セレクタ名 .txt というファイル /etc/opendkim/keys/example.com/default.txt このファイルの内容をそのまま zone ファイルに登録 タグの例 v=DKIM1  DKIM version1 r=postmaster  replay mail address k=rsa  鍵アルゴリズム p=…..  公開鍵
ADSP の登録 Author Domain Signing Practices 送信側での DKIM の扱いを宣言する dkim=< タグ > unknown  このドメインでは扱いを規定しない  - > dkim するかもしれないししないかも all  このドメインではかならず dkim をつける discardable  このドメインではかならず dkim をつける。ない場合は破棄していい。 ない場合は unknown と見なされるがつけた方がいい 現状では discardable は推奨されない 例 _adsp._domainkey.example.com.  IN  TXT  “dkim=unknown”
OpenDKIM 運用編 運用の基本はログ監視 Milter が正しく起動しているか 受信時には確認結果が記録 送信時には署名結果が残る DNS の運用重要性が増える これまでより DNS query が増える DNS query 失敗は dkim fail の原因になる
OpenDKIM 導入中級編 初級編のモデルはかなり単純 現実的には以下の機能が必要になることが多い マルチドメイン署名 マルチホーム xSP はもちろん、企業でも複数ドメインのメール運用 DKIM では送信時の署名が問題に OpenDKIM ではマルチドメインと複数鍵の管理が可能 マルチホームしたメールゲートウェイ プライベートアドレスでの運用 例外ポリシー メール転送
マルチドメイン対応 鍵とセレクタの管理を外部ファイルにして複数ドメイン対応 opendkim.conf の以下の行を変更 KeyFile /etc/opendkim/keys/default.private ->  削除 KeyTable refile:/etc/opendkim/KeyTable  ->  追加 SigningTable refile:/etc/opendkim/SigningTable  ->  追加 KeyTable ファイルにはセレクタと鍵のファイルパスを記述 sel1._domainkey.dom1.com  dom1.com:sel1:/etc/opendkim/keys/dom1.com/sel1.private sel2._domainkey.dom2.com  dom2.com:sel2:/etc/opendkim/keys/dom2.com/sel2.private SignTable ファイルには認証するメールアドレスとセレクタを記述する @dom1.com  sel1._domainkey.dom1.com @dom2.com  sel2._domainkey.dom2.com
メールゲートウェイ メールゲートウェイではリレーされたメールを扱う 転送されたメールを認証 受信したメールを確認して転送 プライベートアドレスを使う内部ネットワーク ドメイン名管理が公開系と異なる 内部ドメイン名を隠したい DKIM チェックは必要ない 例外ファイル 受信時にチェックしない ExternalIgnoreList refile:/etc/opendkim/IgnoreHosts 内部ホスト 送信時にかならず認証する InternalHosts  refile:/etc/opendkim/InternalHosts FQDN, IP アドレスで記述。 127.0.0.1 も
OpenDKIM 導入上級編 より大きな規模での運用では 大量のメールの署名 大量のメールの確認 多数の鍵の管理 OpenDKIM では大規模化対応のオプションがある DNS query cache LDAP サーバでの鍵管理 DBMS による鍵管理
コンパイルオプション 高度な機能を実現するにはコンパイルオプションをセット DNS query cache --enable-query_cache --with-libmemcached --with-db LDAP 対応 --with-openldap --with-sasl --enable-ldap_caching SQL 対応 --with-odbx 標準は MySQL ODBC や Sqlite  にも対応
DATA SETS opendkim.conf のパラメータとして以下が指定できる file:  または” /”  単純ファイル refile:  正規表現を含むデータのファイル db:  BDB データ形式 dsn:  OpenDBX の DSN mysql://user:pass@3306+host/db/table=macros?keycol=host?datacol=v1,v2 ldap:  LDAP データ メールドメインが DN にマップ。鍵などは option 属性として登録。
参考 OpenDKIM http://www.opendkim.org/ dkim.jp -  DKIM 導入リコメンド http://www.dkim.jp/dkim-jp/recommend/ Iajapan – DKIM  技術解説 http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/
 

More Related Content

PDF
[秋田ハンズオン]網元起動隊資料
PPTX
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
PPTX
Active Directoryドメインを作ってみよう ~ドメインコントローラー追加後の設定~
PDF
#mailerstudy 01 LT POP/IMAP入門
PDF
Reading NATS
PPTX
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
PDF
DockerからKubernetesへのシフト
PDF
[AWSマイスターシリーズ] Amazon Simple Email Service
[秋田ハンズオン]網元起動隊資料
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
Active Directoryドメインを作ってみよう ~ドメインコントローラー追加後の設定~
#mailerstudy 01 LT POP/IMAP入門
Reading NATS
Active DirectoryでDHCPを使う ~DHCPサーバーとクライアントの設定~
DockerからKubernetesへのシフト
[AWSマイスターシリーズ] Amazon Simple Email Service

Similar to Iw2011 s3 using OpenDkim (11)

PDF
送信ドメイン認証 導入指南 2018
PDF
Eメールはまだまだ面白い
PDF
20111207 11 aws-meister-ses-public
PDF
AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-
PPTX
メール入門
PDF
送信ドメイン認証最新動向と ENMA の導入・活用・展望
PDF
メールセキュリティとDNSの蜜月関係 (Mail Security and DNS)
PDF
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
PDF
迷惑メール対策カンファレンスの DMARC
PPTX
2013.03.18 JIPDEC S/MIME普及シンポジウム
PDF
O365勉強会 オンプレexchangeの共存とadfs導入の注意点 20121202
送信ドメイン認証 導入指南 2018
Eメールはまだまだ面白い
20111207 11 aws-meister-ses-public
AWS Simple Email Service詳細 -ほぼ週刊AWSマイスターシリーズ第11回-
メール入門
送信ドメイン認証最新動向と ENMA の導入・活用・展望
メールセキュリティとDNSの蜜月関係 (Mail Security and DNS)
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
迷惑メール対策カンファレンスの DMARC
2013.03.18 JIPDEC S/MIME普及シンポジウム
O365勉強会 オンプレexchangeの共存とadfs導入の注意点 20121202
Ad

Recently uploaded (12)

PPTX
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
PPTX
Setting KPI of Estimation Department Division
PDF
RailsエンジニアのためのActive Recordの基礎から学ぶ実践的DB連携
PDF
202508株式会社なぞるマーケティング組織開発・学習支援サービス_概要資料
PDF
[スクフェス大阪2024]組織は人でできている~組織をマルチレイヤーアジャイルでコネクトしよう~
PDF
東京商工会議所荒川支部で中小企業講演「今日から使える!省力化・効率化に向けた生成AI活用入門」
PDF
[アジャイルジャパン2024]組織をアジャイルにしていくのに プロジェクトファシリテーションが必要ないわけがない
PDF
2508slide_townobuse_nagano_chohoobuse.pdf
PDF
神奈川県の伊勢原市商工会で中小企業講演「人手不足を解消するためのAI活用セミナー」
PDF
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pdf
PDF
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
PDF
【VISIONARY JAPAN】エンジニアチーム 採用ピッチ資料(ver2.1)
だれでもサクッと使える!採用ピッチ資料テンプレート(解説付き)_20230529_ver1.pptx
Setting KPI of Estimation Department Division
RailsエンジニアのためのActive Recordの基礎から学ぶ実践的DB連携
202508株式会社なぞるマーケティング組織開発・学習支援サービス_概要資料
[スクフェス大阪2024]組織は人でできている~組織をマルチレイヤーアジャイルでコネクトしよう~
東京商工会議所荒川支部で中小企業講演「今日から使える!省力化・効率化に向けた生成AI活用入門」
[アジャイルジャパン2024]組織をアジャイルにしていくのに プロジェクトファシリテーションが必要ないわけがない
2508slide_townobuse_nagano_chohoobuse.pdf
神奈川県の伊勢原市商工会で中小企業講演「人手不足を解消するためのAI活用セミナー」
GN Business Consulting会社概要 (FREE CASH MAKER)_saleshub.pdf
AIゲートウェイ、グローバルトップ12企業のランキングと市場シェア2025.pdf
【VISIONARY JAPAN】エンジニアチーム 採用ピッチ資料(ver2.1)
Ad

Iw2011 s3 using OpenDkim

  • 1. 送信ドメイン認証 運用実践 DKIM 設定・運用 IAjapan 迷惑メール対策委員会 水越賢治
  • 2. SPF と DKIM 送信ドメイン認証技術 DNS で送信側ポリシーを公開するのは同じ DKIM は送信メールごとに署名する 送信メールサーバでの処理が必要
  • 3. DKIM の特殊性 送信メールサーバで署名が必要 SPF より面倒 PKI インフラを使う ちょっと難しい ? 負荷が増える 複数ドメインを扱うサーバでは複雑 複数の鍵管理 メール送信毎に処理が必要 DKIM 普及が遅れている理由
  • 4. OpenDKIM とは オープンソースの DKIM フィルタ 受信メールの DKIM 確認 送信メールの署名 複数ドメインのサポート 大規模化への対応 DNS Query のキャッシュ 鍵管理 DB の活用 LDAP などに接続 小規模サイトから ISP グレードまで対応
  • 5. DKIM 運用システムの設計 インストールの前に OpenDKIM は設定範囲が広い 構築するメールサーバの機能、規模に合わせる 例 1 単一ドメインのメールサーバ 例 2 企業の Dual Home Mail Gateway 例 3 xSP のメールサーバ
  • 6. OpenDKIM の導入初級編 まずは単一ドメインのシンプルなメールサーバ OpenDKIM のインストール OpenDKIM の設定 DNS 登録 テスト
  • 7. OpenDKIM のインストール Linux 系ならバイナリでの提供もあり rpm なら http://pkgs.org/download/opendkim Debian, Ubuntu もあり ただしバイナリパッケージは後述するオプションはなし FreeBSD なら Ports で その他はコンパイルして configure で構成、コンパイル Sha256 サポートのため OpenSSL 0.9.8 以降が必要 milter サポートのため sendmail の libmilter が必要
  • 8. rpm のインストール rpm の入手は以下から http://download.fedora.redhat.com/pub/epel/6/i386/opendkim-2.4.2-5.el6.i686.rpm 依存パッケージは EPEL から以下のファイル libopendkim-2.4.2-5.el6.i686.rpm libopendkim-devel-2.4.2-5.el6.i686.rpm 標準リポジトリから sendmail-milter
  • 9. インストールされるファイル 設定ファイルは /etc/opendkim/ 以下に コマンド類は /usr/bin/opendkim-* 主な設定ファイルは /etc/opendkim.conf 鍵は /etc/opendkim/keys/ 以下に 起動スクリプトは /etc/init.d/opendkim
  • 10. Opendkim.conf - simple 最低限以下を修正 PidFile /var/run/opendkim/opendkim.pid Mode sv   <- s は送信時の署名、 v は受信時の確認 Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 002 Canonicalization relaxed/simple Domain example.com   <- 自分のドメイン名 Selector default KeyFile /etc/opendkim/keys/default.private
  • 11. MTA の設定 OpenDKIM は milter なので MTA の設定が必要 Postfix では main.cf に以下の行を追加 smtpd_milters = inet:127.0.0.1:8891 <- opendkim.conf と合わせる non_smtpd_milters = $smtpd_milters milter_default_action = accept Sendmail では m4 に以下の行を追加 INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@localhost') 複数の milter があるときは順番に注意 受信は enma を使った方がいい 設定ができたら MTA をリスタート
  • 12. opendkim を起動 準備ができたら起動 # service opendkim start あれ、鍵を作ってないけど ? rpm に付属している起動スクリプトは自動で鍵を作る 作成するドメイン名は fqdn から hostname を除いたもの 作成するセレクタは default 勝手に作って欲しくないかも /etc/sysconfig/opendkim を編集 #AUTOCREATE_DKIM_KEYS=NO <- コメントアウトすれば作らない #DKIM_SELECTOR=default #DKIM_KEYDIR=/etc/opendkim/keys
  • 13. 鍵を作る 鍵は自分で作ろう /etc/sysconfig/opendkim AUTOCREATE_DKIM_KEYS=NO  を設定 /etc/opendkim.conf Domain example.com Selector default KeyFile /etc/opendkim/keys/ example.com/default .private 鍵を生成 mkdir /etc/opendkim/keys/ example.com /usr/bin/opendkim-genkey -D /etc/opendkim/keys/ example.com / -d example.com -s default chown -R opendkim:opendkim /etc/opendkim/keys/ example.com chmod 600 /etc/opendkim/keys/ example.com/default .private c hmod 644 /etc/opendkim/keys/ example.com/default .txt
  • 14. DNS への登録 公開鍵を DNS に登録して DKIM 運用開始宣言 公開鍵といくつかのタグを TXT レコードに記載 opendkim-genkey で鍵を生成すると作ってくれる セレクタ名 .txt というファイル /etc/opendkim/keys/example.com/default.txt このファイルの内容をそのまま zone ファイルに登録 タグの例 v=DKIM1 DKIM version1 r=postmaster replay mail address k=rsa 鍵アルゴリズム p=….. 公開鍵
  • 15. ADSP の登録 Author Domain Signing Practices 送信側での DKIM の扱いを宣言する dkim=< タグ > unknown このドメインでは扱いを規定しない - > dkim するかもしれないししないかも all このドメインではかならず dkim をつける discardable このドメインではかならず dkim をつける。ない場合は破棄していい。 ない場合は unknown と見なされるがつけた方がいい 現状では discardable は推奨されない 例 _adsp._domainkey.example.com. IN TXT “dkim=unknown”
  • 16. OpenDKIM 運用編 運用の基本はログ監視 Milter が正しく起動しているか 受信時には確認結果が記録 送信時には署名結果が残る DNS の運用重要性が増える これまでより DNS query が増える DNS query 失敗は dkim fail の原因になる
  • 17. OpenDKIM 導入中級編 初級編のモデルはかなり単純 現実的には以下の機能が必要になることが多い マルチドメイン署名 マルチホーム xSP はもちろん、企業でも複数ドメインのメール運用 DKIM では送信時の署名が問題に OpenDKIM ではマルチドメインと複数鍵の管理が可能 マルチホームしたメールゲートウェイ プライベートアドレスでの運用 例外ポリシー メール転送
  • 18. マルチドメイン対応 鍵とセレクタの管理を外部ファイルにして複数ドメイン対応 opendkim.conf の以下の行を変更 KeyFile /etc/opendkim/keys/default.private -> 削除 KeyTable refile:/etc/opendkim/KeyTable -> 追加 SigningTable refile:/etc/opendkim/SigningTable -> 追加 KeyTable ファイルにはセレクタと鍵のファイルパスを記述 sel1._domainkey.dom1.com dom1.com:sel1:/etc/opendkim/keys/dom1.com/sel1.private sel2._domainkey.dom2.com dom2.com:sel2:/etc/opendkim/keys/dom2.com/sel2.private SignTable ファイルには認証するメールアドレスとセレクタを記述する @dom1.com sel1._domainkey.dom1.com @dom2.com sel2._domainkey.dom2.com
  • 19. メールゲートウェイ メールゲートウェイではリレーされたメールを扱う 転送されたメールを認証 受信したメールを確認して転送 プライベートアドレスを使う内部ネットワーク ドメイン名管理が公開系と異なる 内部ドメイン名を隠したい DKIM チェックは必要ない 例外ファイル 受信時にチェックしない ExternalIgnoreList refile:/etc/opendkim/IgnoreHosts 内部ホスト 送信時にかならず認証する InternalHosts refile:/etc/opendkim/InternalHosts FQDN, IP アドレスで記述。 127.0.0.1 も
  • 20. OpenDKIM 導入上級編 より大きな規模での運用では 大量のメールの署名 大量のメールの確認 多数の鍵の管理 OpenDKIM では大規模化対応のオプションがある DNS query cache LDAP サーバでの鍵管理 DBMS による鍵管理
  • 21. コンパイルオプション 高度な機能を実現するにはコンパイルオプションをセット DNS query cache --enable-query_cache --with-libmemcached --with-db LDAP 対応 --with-openldap --with-sasl --enable-ldap_caching SQL 対応 --with-odbx 標準は MySQL ODBC や Sqlite にも対応
  • 22. DATA SETS opendkim.conf のパラメータとして以下が指定できる file: または” /” 単純ファイル refile: 正規表現を含むデータのファイル db: BDB データ形式 dsn: OpenDBX の DSN mysql://user:pass@3306+host/db/table=macros?keycol=host?datacol=v1,v2 ldap: LDAP データ メールドメインが DN にマップ。鍵などは option 属性として登録。
  • 23. 参考 OpenDKIM http://www.opendkim.org/ dkim.jp - DKIM 導入リコメンド http://www.dkim.jp/dkim-jp/recommend/ Iajapan – DKIM 技術解説 http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/dkim/
  • 24.