送信ドメイン認証 運用実践 DKIM 設定・運用 IAjapan  迷惑メール対策委員会 水越賢治
SPF と DKIM <ul><li>送信ドメイン認証技術 </li></ul><ul><li>DNS で送信側ポリシーを公開するのは同じ </li></ul><ul><li>DKIM は送信メールごとに署名する </li></ul><ul><...
DKIM の特殊性 <ul><li>送信メールサーバで署名が必要 </li></ul><ul><ul><li>SPF より面倒 </li></ul></ul><ul><li>PKI インフラを使う </li></ul><ul><ul><li>ち...
OpenDKIM とは <ul><li>オープンソースの DKIM フィルタ </li></ul><ul><li>受信メールの DKIM 確認 </li></ul><ul><li>送信メールの署名 </li></ul><ul><li>複数ドメイ...
DKIM 運用システムの設計 <ul><li>インストールの前に </li></ul><ul><li>OpenDKIM は設定範囲が広い </li></ul><ul><li>構築するメールサーバの機能、規模に合わせる </li></ul><ul...
OpenDKIM の導入初級編 <ul><li>まずは単一ドメインのシンプルなメールサーバ </li></ul><ul><li>OpenDKIM のインストール </li></ul><ul><li>OpenDKIM の設定 </li></ul>...
OpenDKIM のインストール <ul><li>Linux 系ならバイナリでの提供もあり </li></ul><ul><ul><li>rpm なら </li></ul></ul><ul><ul><ul><li>http://pkgs.org/...
rpm のインストール <ul><li>rpm の入手は以下から </li></ul><ul><ul><li>http://download.fedora.redhat.com/pub/epel/6/i386/opendkim-2.4.2-5....
インストールされるファイル <ul><li>設定ファイルは /etc/opendkim/ 以下に </li></ul><ul><li>コマンド類は /usr/bin/opendkim-* </li></ul><ul><li>主な設定ファイルは ...
Opendkim.conf - simple <ul><li>最低限以下を修正 </li></ul><ul><ul><li>PidFile /var/run/opendkim/opendkim.pid </li></ul></ul><ul><u...
MTA の設定 <ul><li>OpenDKIM は milter なので MTA の設定が必要 </li></ul><ul><li>Postfix  では main.cf に以下の行を追加 </li></ul><ul><ul><li>smtp...
opendkim を起動 <ul><li>準備ができたら起動 </li></ul><ul><ul><li># service opendkim start </li></ul></ul><ul><li>あれ、鍵を作ってないけど ? </li><...
鍵を作る <ul><li>鍵は自分で作ろう </li></ul><ul><li>/etc/sysconfig/opendkim </li></ul><ul><ul><li>AUTOCREATE_DKIM_KEYS=NO  を設定 </li></...
DNS への登録 <ul><li>公開鍵を DNS に登録して DKIM 運用開始宣言 </li></ul><ul><li>公開鍵といくつかのタグを TXT レコードに記載 </li></ul><ul><li>opendkim-genkey で...
ADSP の登録 <ul><li>Author Domain Signing Practices </li></ul><ul><li>送信側での DKIM の扱いを宣言する </li></ul><ul><li>dkim=< タグ > </li>...
OpenDKIM 運用編 <ul><li>運用の基本はログ監視 </li></ul><ul><ul><li>Milter が正しく起動しているか </li></ul></ul><ul><ul><li>受信時には確認結果が記録 </li></ul...
OpenDKIM 導入中級編 <ul><li>初級編のモデルはかなり単純 </li></ul><ul><li>現実的には以下の機能が必要になることが多い </li></ul><ul><ul><li>マルチドメイン署名 </li></ul></u...
マルチドメイン対応 <ul><li>鍵とセレクタの管理を外部ファイルにして複数ドメイン対応 </li></ul><ul><li>opendkim.conf の以下の行を変更 </li></ul><ul><ul><li>KeyFile /etc/...
メールゲートウェイ <ul><li>メールゲートウェイではリレーされたメールを扱う </li></ul><ul><ul><li>転送されたメールを認証 </li></ul></ul><ul><ul><li>受信したメールを確認して転送 </li...
OpenDKIM 導入上級編 <ul><li>より大きな規模での運用では </li></ul><ul><ul><li>大量のメールの署名 </li></ul></ul><ul><ul><li>大量のメールの確認 </li></ul></ul><...
コンパイルオプション <ul><li>高度な機能を実現するにはコンパイルオプションをセット </li></ul><ul><li>DNS query cache </li></ul><ul><ul><li>--enable-query_cache...
DATA SETS <ul><li>opendkim.conf のパラメータとして以下が指定できる </li></ul><ul><li>file:  または” /”  単純ファイル </li></ul><ul><li>refile:  正規表現...
参考 <ul><li>OpenDKIM </li></ul><ul><ul><li>http://www.opendkim.org/ </li></ul></ul><ul><li>dkim.jp -  DKIM 導入リコメンド </li></u...
 
Upcoming SlideShare
Loading in...5
×

Iw2011 s3 using OpenDkim

1,305

Published on

Published in: Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,305
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Iw2011 s3 using OpenDkim

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

    Clipping is a handy way to collect important slides you want to go back to later.

×