opendkim環境構築
環境
RHEL7
やりたいこと
メール送信時にDKIM署名するサーバの構築
手順
①OpenDKIMパッケージインストール
# rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # yum -y --enablerepo=rhui-REGION-rhel-server-optional install sendmail-milter # yum install -y opendkim --enablerepo=epel
②OpenDKIM設定ファイル編集
- /etc/opendkim.conf
PidFile /var/run/opendkim/opendkim.pid Mode s Syslog yes SyslogSuccess yes LogWhy yes UserID opendkim:opendkim Socket inet:8891@localhost Umask 002 SendReports no SoftwareHeader yes Canonicalization relaxed/relaxed MinimumKeyBits 1024 KeyTable /etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable OversignHeaders From
- /etc/opendkim/KeyTable
s1._domainkey.sa.example.com sa.example.com:s1:/etc/opendkim/keys/s1.private
- /etc/opendkim/SigningTable
*@sa.example.com s1._domainkey.sa.example.com
★ポイント★
・受信検証しないのでModeはs
・受信検証しないけど、SendReports noで明示的に認証失敗レポート機能無効化
・KeyTableはDNSレコードと鍵ファイルの紐づけ
・SigningTableはFromアドレスとDNSレコードの紐づけ
・利用するドメイン/署名が1個だけの場合は、KeyTable・SigningTableは利用せず、domain・KeyFileに定義すればOK。
・今回は1個だけだが、拡張性を考慮しKeyTable・SigningTableを利用
③鍵ファイル生成
# opendkim-genkey -b 2048 --directory=/etc/opendkim/keys --selector=s1 --domain=sa.example.com # chown opendkim. /etc/opendkim/keys/*
④Postfix設定ファイル編集
参考にしたサイトの通り以下追加
milter_default_action = accept
non_smtpd_milters = $smtpd_milters
smtpd_milters = inet:127.0.0.1:8891
⑤動作確認
OpenDKIMでDKIM-Signatureヘッダ付与時、エンベロープFrom/Fromヘッダどちらをdタグに付与するの?
Fromヘッダのみがマッチする場合
$ echo test | mutt -e 'set use_envelope_from=yes' -e 'set envelope_from_address="hoge@hoge.com"' -e 'my_hdr From: hoge@sa.example.com' 宛先アドレス
→DKIMヘッダ付いた!
ENV Fromのみがマッチする場合
$ echo test | mutt -e 'set use_envelope_from=yes' -e 'set envelope_from_address="hoge@sa.example.com"' -e 'my_hdr From: hoge@hoge.com' 宛先アドレス
→DKIMヘッダ付かず!
結論はFromヘッダを見てる!
どんなヘッダがつくの?
Sysprepについて
【Windows10】sysprepとは何か? | SEブログ
PC 特有の情報を消去します。実際には SID(エスアイディー)という OS 特有な情報を削除します。また、他にも以下の設定も消去されます。
イベントログ
ネットワークの設定
OS のライセンス
SID は、平たく言うと、ユーザーやグループを識別するものです。
Windows 10 での Sysprep を用いたマスターイメージの作成に関する注意点・推奨事項 | Microsoft Docs
2. マスター イメージの前提条件
条件 A. Sysprep を実施していること
条件 B. ボリュームライセンス契約より入手したイメージを用いて構築すること
実際のイメージの展開にあたって、Windows の再イメージング権はボリューム ライセンスのメディアにのみ付与しています。OEM ベンダー以外のお客様はボリューム ライセンスをご契約の上、イメージ入手してください。ボリュームライセンスのイメージをつかって、実際のマシンに展開する際に個々のマシンに対するドライバーは、提供元より個別に入手しイメージにインストールしてください。なお、OEM のマシンには、上記の再イメージング権が付与されておらず、OEM ベンダー以外のお客様は権利上、OEM のマシンを利用した Sysprep 実施、マスタイメージの作成は許可されていません。また、イメージ自体にも OEM ベンダー様によるカスタマイズが行われていることで想定されないエラーなども発生する可能性があります。
3. マスターイメージとして設定可能な範囲
Sysprep のツール自体は現行 OS でサポートされていますが、設定可能な範囲は実際に Sysprep を実行して得られた結果の範囲までです。OS やアプリケーションの設定によってはマスターイメージに含めることができない場合があります。また、OS の設定箇所は非常に多数にわたり、それらすべての設定できる箇所と設定できない箇所を網羅するリストはありませんので、あらかじめ検証環境にて設定可能か検証してください。
6. 複数ユーザープロファイルが存在する環境
複数のユーザー プロファイルが存在するシナリオにおいて Sysprep の使用は想定されておらず、既存のユーザー プロファイルが破損する等の影響を弊社に寄せられています。マスターイメージの作成において、複数のユーザーでログオンし作業するメリットは通常ありませんので、複数ユーザー アカウントがある状態での作業はお控えください。
https://milestone-of-se.nesuke.com/sv-basic/windows-basic/sysprep-general/
簡単な実行方法説明あり。
Windows 10のOSイメージ展開の新常識(その2)――Sysprepを成功させるポイント:企業ユーザーに贈るWindows 10への乗り換え案内(35) - @IT
具体的な手順あり。
APPEND UTF8について
Courier-imapをVer5にすると、Outlookとかでメール移動時にappendコマンドが実行され、以下警告が出るようになる。
[ALERT] Your IMAP client does not appear to correctly implement Unicode messages, see https://tools.ietf.org/html/rfc6855.html
原因は、以下に説明あり。
Courier Mail Server / Re: [Courier-imap] Outlook 2016 with Courier-IMAP 5.0.8 append alert
RFC 6855 - IMAP Support for UTF-8
Issue 34138: imaplib RFC 6855 issue - Python tracker
RFC6855に準じたアクセスをすれば、Courier-IMAPが警告を出さないだろうと考え、思考錯誤アクセスしたが、失敗する。。。
通常
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a APPEND INBOX {33} + OK From: "a" <a@hoge.go.jp> a a OK [APPENDUID 578246162 50] APPEND Ok.
失敗1
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a ENABLE UTF8=ACCEPT * ENABLED UTF8=ACCEPT a OK Options enabled a APPEND INBOX UTF8 ~{36} + OK From: "あ" <a@hoge.go.jp> Test a NO Error in IMAP command received by server.
失敗2
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a ENABLE UTF8=ACCEPT * ENABLED UTF8=ACCEPT a OK Options enabled a APPEND INBOX UTF8 {36} + OK From: "あ" <a@hoge.go.jp> Test * OK [ALERT] Your IMAP client does not appear to correctly implement Unicode messages, see https://tools.ietf.org/html/rfc6855.html a OK [APPENDUID 578246162 52] APPEND Ok.
失敗3
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a ENABLE UTF8=ACCEPT * ENABLED UTF8=ACCEPT a OK Options enabled a APPEND INBOX UTF8 (~{36} From: "あ" <a@hoge.go.jp> Test ) a NO Error in IMAP command received by server. From: NO Error in IMAP command received by server. * NO Error in IMAP command received by server. Test NO Error in IMAP command received by server. * NO Error in IMAP command received by server.
失敗4
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a ENABLE UTF8=ACCEPT * ENABLED UTF8=ACCEPT a OK Options enabled a APPEND INBOX UTF8 ~{36+} a NO Error in IMAP command received by server. From: "あ" <a@hoge.go.jp> Test From: NO Error in IMAP command received by server. * NO Error in IMAP command received by server. Test NO Error in IMAP command received by server. * NO Error in IMAP command received by server.
失敗5
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS ENABLE UTF8=ACCEPT] Courier-IMAP ready. Copyright 1998-2018 Double Precision, Inc. See COPYING for distribution information. a LOGIN "hoge" "hoge" a OK LOGIN Ok. a ENABLE UTF8=ACCEPT * ENABLED UTF8=ACCEPT a OK Options enabled a APPEND INBOX UTF8 ~{36+} a NO Error in IMAP command received by server. From: "あ" <a@hoge.go.jp> Test From: NO Error in IMAP command received by server. * NO Error in IMAP command received by server. Test NO Error in IMAP command received by server. * NO Error in IMAP command received by server.
courier-imap(4.15.1)検証環境構築
参考URL
courier-imapインストール方法調査
Ver 5.0.8と基本的に同じ。(courtier-unicode不要に見えたが、結局必要だった)
環境構築
OSセットアップ
RHEL7のセットアップを楽にする - pikesaku’s blog
$ curl -o ./epel-release-latest-7.noarch.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh ./epel-release-latest-7.noarch.rpm $ sudo yum install -y ansible git $ git clone https://github.com/pikesaku/setup_rhel7.git $ sudo ansible-playbook ./setup_rhel7/setup.yml $ sudo yum install -y bzip2
必要パッケージインストール
$ sudo yum -y install gcc gcc-c++ gamin libtool libtool-ltdl libtool-ltdl-devel expect gdbm-devel libidn-devel openssl-devel
※openssl-develはcourier-imapインストールでmakeコマンド実行し判明。
courier-unicodeインストール
$ mkdir ~/src && cd ~/src $ wget https://sourceforge.net/projects/courier/files/courier-unicode/1.1/courier-unicode-1.1.tar.bz2/download $ tar xjfv ./download && rm -f ./download $ cd courier-unicode-1.1 $ ./configure $ make $ sudo su # make install # echo "/usr/local/lib" > /etc/ld.so.conf.d/courier.conf # ldconfig # exit
※ldconfigはcourier-imapインストールでmake checkコマンド実行し判明。
courier-authlibインストール
$ cd ~/src $ wget https://sourceforge.net/projects/courier/files/authlib/0.66.1/courier-authlib-0.66.1.tar.bz2/download $ tar xjfv ./download && rm -f ./download $ cd courier-authlib-0.66.1 $ ./configure $ make # sudo su # make install # make install-configure # echo "/usr/local/lib/courier-authlib" >> /etc/ld.so.conf.d/courier.conf # ldconfig # exit
※ldconfigはcourier-imapインストールでmake checkコマンド実行し判明。
courier-imapインストール
$ cd ~/src $ wget https://sourceforge.net/projects/courier/files/imap/4.15.1/courier-imap-4.15.1.tar.bz2/download $ tar xjfv ./download && rm -f ./download $ cd courier-imap-4.15.1 $ ./configure $ make $ make check # sudo su # make install # make install-configure # exit
サービス起動
$ sudo su # /usr/local/sbin/authdaemond start # /usr/lib/courier-imap/libexec/imapd.rc start