As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

タグ「sendmail」が付けられているもの


メールがspamassasin (sa-spamd) を通っていない。

spamassasinは怪しいメールには、メール本文の冒頭に警告メッセージをつけてくれるので、スマートフォンなどのメール通知で怪しいメールが来たかどうかをすぐに見分けることができる。本当はすぐに隔離して mailboxに入らないようにすればいいんでしょうが。。。
ところが最近、別のサーバ(MX secondary)に届くメールにそれが入らなくなってしまった。どうも milterでsa-spamd を通らなくなってしまったようだ。
milter-manager ? spamd ? socketのowner,permission ? 何が悪いのかよくわからないまま、perlのライブラリ、ruby、openssl,gpgなどいろいろアップデートしてみたが、なかなか解決と行かなかった。


/var/log/spamd.log をつぶさに追っかけて、spamdがちゃんと起動していないのが原因のよう。
どうも sendmail をバージョンアップしたときからおかしくなってしまったよう。

error: Can't locate Net/SSLeay.pm in @INC
spamd: error: Bad arg length for Socket::unpack_sockaddr_in, length is 28, should be 16
あたりが問題だったようで、以下の記事を参照に、Socket6 を再インストールしたら解決した。
https://freebsd.sing.ne.jp/daily/09/09/05.html

let's encrypt のサーバ証明書を使っていて、iphoneのメールアプリでエラーが表示される件

let's encryptの無料サーバ証明書を、httpsサーバ(このサイト)や他サイトでも利用していて、webだけではなくて、smtp(s)でも流用できるので使っていた。
メールも受信(server)・送信(client) がデフォルトで smtps/starttls を利用するようになってきているようで、
グローバルにauthorized された証明書を使っているほうが、いろいろ良さそう。
imapsは相変わらずプライベートCA+証明書を利用しているけど。

先日、2021/09でlets encrypt の証明書のCA問題の影響を受けて、iOSの標準のメールアプリからメールサーバ(smtps)の接続がうまくいかない(メールが送れなく)なった。imapsでの接続でメールの取得・閲覧はうまくいっているに。
ということでいろいろ調べてみると、openssl 1.0.2 ではCA証明書への辿りの解釈に難があるよう。
で、問題を起こしているのは sendmail が共有ライブラリとして libssl.so をリンクしていてその中身が 1.0.2(またはそれ以前)のホストばっかり!ということに気づいた。opensslは 1.1系を /usr/local/bin/openssl にインストール,libssl.so は /usr/local/lib/ あたりにいたが、sendmailのを作成したときには /usr/lib/libssl.so あたり(/usr/bin/openssl は version 1.0.2!) の共有ライブラリをリンクしていた!
なので対応としては、

  1. openssl 1.1系列(今の最新は1.1.1l)をコンパイルして、共有ライブラリのバージョン(1.1.1)を用意する。
  2. sendmailを作成し直して、openssl(libssl.so or libssl.a) をリンクし直す。
ことに。
sendmailも8.15.2と思ったら、8.17.1が最新なのでこれも sourceから持ってきて recompileした。
$src/devtools/Site/site.config.m4 の設定をよくみて、、、。
EOLになってしまっている、FreeBSD-11.4だと、

APPENDDEF(`conf_smrsh_ENVDEF', `-DCMDDIR="\"/usr/local/libexec/sm.bin\""')
APPENDDEF(`conf_smrsh_ENVDEF', `-DPATH="\"/bin:/usr/bin\""')
define(`confEBINDIR',`/usr/local/libexec')
define(`confMANROOT',`/usr/local/man/cat')
define(`confMANROOTMAN',`/usr/local/man/man')
define(`confMBINDIR',`/usr/local/sbin')
define(`confSBINDIR',`/usr/local/sbin')
define(`confUBINDIR',`/usr/local/bin')
define(`confNO_STATISTICS_INSTALL',`True')
define(`confHFDIR', `/usr/local/share/sendmail')
APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_libsm_ENVDEF', `-DNETINET6')
APPENDDEF(`conf_sendmail_ENVDEF', `-DDANE')
APPENDDEF(`conf_sendmail_ENVDEF', `-I/usr/local/include')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
APPENDDEF(`conf_sendmail_ENVDEF', `-DUSE_BLACKLIST')
APPENDDEF(`conf_sendmail_LIBS', `-lblacklist')
APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
APPENDDEF(`conf_sendmail_ENVDEF', `-DHASSRANDOMDEV')
APPENDDEF(`confINCDIRS', `-I/usr/local/include')
APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
APPENDDEF(`confLDOPTS', ``-Wl,-rpath=/usr/local/lib'')
APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -DTLS_EC')
APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
APPENDDEF(`conf_sendmail_ENVDEF', `-DPICKY_HELO_CHECK')
sendmail-8.15のときとの違いは、、、'_FFR_TLS_EC' だったものが 'TLS_EC'と正規?なパラメータ名になったこと、くらいか。いつものように、milter,sasl2,あたりをlinkすることも忘れないように。

sendmailを展開した $srcトップ にて、'sh ./Build;sh ./Build install'
実はこの作業の前に FreeBSD 11.2 -> 11.4, perlの入れ直し、gccの入れ直しなど大工事あり・・・
それにしても、、、古い OSを使い続けるとどんどん大変になる。

sendmail-8.15.2 .on FreeBSD-9

重力波関連の速報が知りたくて、GCN Circularsのメールを受信しているけど、NASAの シスアドからメールが。

Subject: TLSv1.1-related mail bounces with NASA/GSFC

Hello,

I am a system administrator with the Astrophysics Science Division at NASA/Goddard Space Flight Center.

Due to a directive from the US Department of Homeland Security, I have made a change today to our mail server "capella2.gsfc.nasa.gov" (the mail server for the Gamma-ray Coordinates Network, https://gcn.gsfc.nasa.gov/ ) such that it now blocks TLSv1 and TLSv1.1.

Our logs show entries of the form:
May 10 xx:xx:xx capella2 sendmail[yyyyy]: STARTTLS=client: 11833:error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol:s23_clnt.c:714:
May 10 xx:xx:xx capella2 sendmail[yyyyy]: ruleset=tls_server, arg1=SOFTWARE, relay=, reject=403 4.7.0 TLS handshake failed.

I am not sure what changes might be needed on your side, but I at least wanted to alert you (because otherwise you or your users might have a "why is this suddenly failing" feeling!). I hope this is helpful.

Regards,

David

P.S. In terms of changes needed, you might need to upgrade your mail server software (sendmail, postfix, Exim, etc) to one that can "speak" TLSv1.2 or newer. Your site doesn't need to require TLSv1.2 as a minimum, as we have had to do, but it needs to be an option. Alternatively, you can let us know of a different mail address on your end to use.

と。sendmail のやりとりで TLS1.2じゃないから上げてね、というリクエスト。システムの自動応答かと思ったらどうもそうでもないような。

"US Department of Homeland Security"ってなんだ?と思ったら国土安全保障省 ?ひぇひぇ。こういうところが勧告するですね、アメリカは。
DNSのMXは primary 10,secondary 20にしていたので、通常は primary のメールサーバに来ていたが、このNASAのメールが急に secondary にメールが届くようになったので何事だろうと思っていたらこういうことだったのか。 実はprimary は TLS1.0,1.1は喋るが TLS1.2は対応していないlibssl.soをリンクしてるsendmail で動いていた。secondary はちゃんと TLS1.2を喋る libssl.soだったのでこちらに流れてきていたもののようだ。 openssl はちゃんと入れていたつもりが、sendmail はOS附属の古い libssl.so をリンクしていた。 ということで、古いOSに最新のsendmail + TLS1.2対応の ものを再インストールする必要が。 postfix,eximとかに変えることも一瞬考えるけど、milter系のものやMLソフトの整備を考えると手が出ない。 FreeBSDは、patchなどについては portsのファイルを見るとヒントになることが多いのでそれらを考慮して次のようにおこなった。
  1. まず既存の bin,configのバックアップ
  2. 必要なpatch をあてる。
  3. sendmail の configの作成
  4. compile
  5. install
と言うことで作業。
  1. まず既存のbin,configのバックアップ
  2. sendmail だけではなくて、いくつかのバイナリ・設定ファイルが作られるので、それを調べて見る。 sendmail-8.15.2.tar.gz を展開して srcのトップディレクトリで 'sh ./Build' を実行すると、 "$src/obj.`uname`.`uname -r`.`uname -p'にバイナリ別のディレクトリができる。 具体的には、
    obj.FreeBSD.9.3-RELEASE-p49.amd64
    の下に、
    editmap libsmdb mail.local makemap rmap smrsh
    libsm lbismuitl mailstats praliases sendmail vacation
    が出来た(12ディレクトリ)。
    これらが後にインストールされると思われるので、おのおのバックアップ。

    /usr/local/bin/rmail
    /usr/local/bin/mailstats
    /usr/local/bin/vacation

    /usr/local/sbin/editmap
    /usr/local/sbin/makemap
    /usr/local/sbin/praliases
    /usr/local/sbin/sendmail

    /usr/lcoal/libexec/smrsh
    /usr/local/libexec/mail.local

    libが3つ(libsmdb,libsm,libsmutil)あるがこれらはコンパイル時にstaticにリンクされるようなのでとりあえずこのまま放っておいて良いみたい。
    src/libmilter があるがこれはBuildしても自動では作成されない。sendmail/milter.c があり、sendmailをコンパイルするとkには milter.o がリンクされているのでたぶんこれは sendmailを作成時には不要のよう。3rdパーティのプログラムを使う(かもしれない)ときに libmilter.a,libmilter.so とかでリンクするためにあるようだ。(see $src/libmilter/README)
    これは明示的に 'cd libmilter; sh ./Build; sh ./Build install' で良さそう。

    config系は

    /etc/mail/
    /usr/local/share/sendmail/
    /etc/rc.sendmail

    あたりをバックアップ。
  3. patchをあてる。
  4. ports の mail/sendmail/files/ 以下に patch-xxx がある。これらを当てればいいはず、、だが、ports用のマクロ設定(%%CC%%とかに置き換え等)がありちょっとためらう。特にこのパッチを当てなくても warningが少しでるがcompileはうまくいっているようなので、今回は当てなかった。
  5. configの作成
  6. $src/INSTALL にあるように、 $src/devtools/Site/site.config.m4 を作成する。 site.config.m4.sample があるが、これはほぼ当てにならない。portsの mail/sendmail/files/ の中に site.config.m4の機能別のファイルがあるのでこれらをconcatinate して作るのが正しいかと。このディレクトリにある、site.config.m4に、ipv6,tls,sasl2,milter を今回は追加した。
    dnl
    dnl 0) use site.config.m4
    dnl
    define(`confEBINDIR',`/usr/local/libexec')
    define(`confMANROOT',`/usr/local/man/cat')
    define(`confMANROOTMAN',`/usr/local/man/man')
    define(`confMBINDIR',`/usr/local/sbin')
    define(`confSBINDIR',`/usr/local/sbin')
    define(`confUBINDIR',`/usr/local/bin')
    define(`confNO_STATISTICS_INSTALL',`True')
    define(`confHFDIR', `/usr/local/share/sendmail')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
    APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
    dnl
    dnl
    dnl 1) use site.config.m4.ipv6
    dnl
    APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
    APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
    APPENDDEF(`conf_libsm_ENVDEF', `-DNETINET6')
    dnl
    dnl 2) use site.config.m4.tls
    dnl
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -D_FFR_TLS_EC')
    APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
    dnl
    dnl 3) use site.config.m4.sasl2
    dnl
    dnl APPENDDEF(`conf_sendmail_ENVDEF', `-I%%LOCALBASE%%/include')
    dnl APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
    dnl APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
    dnl APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
    APPENDDEF(`conf_sendmail_ENVDEF', `-I/usr/local/include')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
    APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
    APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
    dnl
    dnl 4) use site.config.m4.milter
    dnl
    APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
    dnl
    
  7. compile
  8. $src にて、'sh ./Build'
  9. install
  10. $srcにて、'sh ./Build install'
元々 8.15.2 用で使っていた sendmail.cf はそのまま使えた。 これで TLS1.2も話す sendmail になったか。

ps.1
某日、STARTTLSを使ってちゃんとTLSで接続してくるメールを見てみたらいろいろあったので メモ。
クライアント証明書つきのTLS通信(但し認証(verify)はもちろんしていない)
  • NASA
  • Google (Gmailの転送)
  • SwarovskiのML
  • T-PointのML
  • オレオレCA証明書で発行したクライアント証明書を使っているMTA
ただの TLS通信。転送路は TLSのようだが特に認証無し。
  • shopify の広告DM
  • SBIのDairy mail
  • Land's Endの広告DM
  • 東洋経済のML
  • トクバイのML
  • キタムラのML
  • ホンダのML
  • DMMからのメール
  • JustsystemからのML
  • AmazonからのDM
  • GU(ユニクロ)からのML
  • みずほ銀行からのDM
  • OpenHouseからのDM
  • GMOからのML
  • EXPANSYSからのML
  • MoneyforwardからのML
  • JTBからのML
  • Generate DesginからのML
  • Wealthnavi からのML
  • QNAP からのML
  • Nature RemoからのML
  • furusat taxからのML
  • IPCamのメール通知クライアント(sasl認証)
単に forged なだけか、おかしな通信
  • security.criminalip.com
  • ninja.census.shodan.io
  • わざわざ SSL3.0,TLS1.0,TLS1.1,TLS1.2と繋がるか調べにやってきてる。
  • bezeqint.net
今後は sendmailもクライアント接続してくる側も証明書呈示するようになっていくんですかね。 とりあえず、うちも STARTTLSで接続したときに let's encryptあたりの証明書を呈示するようにしておいてみるか?

ps.2
TLS1.2対応になったことを、NASAのシスアドに連絡してみたところ、返答が。

I am glad to hear it is working for you once again!

Yes, I can see the moment in our logs when it got fixed:

Here is the last line of failure and the first line of success:

May 11 xx:xx:xx capella2 sendmail[15971]: ruleset=tls_server, arg1=SOFTWARE, relay=aaa.bbb.ccc, reject=403 4.7.0 TLS handshake failed.

May 11 yy:yy:yy capella2 sendmail[15971]: STARTTLS=client, relay=aaa.bbb.ccc., version=TLSv1.2, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128

Thanks,

David


わざわざ丁寧にありがとう。

sendmail-8.15.2 .on FreeBSD-9

重力波関連の速報が知りたくて、GCN Circularsのメールを受信しているけど、NASAの シスアドからメールが。

Subject: TLSv1.1-related mail bounces with NASA/GSFC

Hello,

I am a system administrator with the Astrophysics Science Division at NASA/Goddard Space Flight Center.

Due to a directive from the US Department of Homeland Security, I have made a change today to our mail server "capella2.gsfc.nasa.gov" (the mail server for the Gamma-ray Coordinates Network, https://gcn.gsfc.nasa.gov/ ) such that it now blocks TLSv1 and TLSv1.1.

Our logs show entries of the form:
May 10 xx:xx:xx capella2 sendmail[yyyyy]: STARTTLS=client: 11833:error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol:s23_clnt.c:714:
May 10 xx:xx:xx capella2 sendmail[yyyyy]: ruleset=tls_server, arg1=SOFTWARE, relay=, reject=403 4.7.0 TLS handshake failed.

I am not sure what changes might be needed on your side, but I at least wanted to alert you (because otherwise you or your users might have a "why is this suddenly failing" feeling!). I hope this is helpful.

Regards,

David

P.S. In terms of changes needed, you might need to upgrade your mail server software (sendmail, postfix, Exim, etc) to one that can "speak" TLSv1.2 or newer. Your site doesn't need to require TLSv1.2 as a minimum, as we have had to do, but it needs to be an option. Alternatively, you can let us know of a different mail address on your end to use.

と。sendmail のやりとりで TLS1.2じゃないから上げてね、というリクエスト。システムの自動応答かと思ったらどうもそうでもないような。

"US Department of Homeland Security"ってなんだ?と思ったら国土安全保障省 ?ひぇひぇ。こういうところが勧告するですね、アメリカは。
DNSのMXは primary 10,secondary 20にしていたので、通常は primary のメールサーバに来ていたが、このNASAのメールが急に secondary にメールが届くようになったので何事だろうと思っていたらこういうことだったのか。 実はprimary は TLS1.0,1.1は喋るが TLS1.2は対応していないlibssl.soをリンクしてるsendmail で動いていた。secondary はちゃんと TLS1.2を喋る libssl.soだったのでこちらに流れてきていたもののようだ。 openssl はちゃんと入れていたつもりが、sendmail はOS附属の古い libssl.so をリンクしていた。 ということで、古いOSに最新のsendmail + TLS1.2対応の ものを再インストールする必要が。 postfix,eximとかに変えることも一瞬考えるけど、milter系のものやMLソフトの整備を考えると手が出ない。 FreeBSDは、patchなどについては portsのファイルを見るとヒントになることが多いのでそれらを考慮して次のようにおこなった。
  1. まず既存の bin,configのバックアップ
  2. 必要なpatch をあてる。
  3. sendmail の configの作成
  4. compile
  5. install
と言うことで作業。
  1. まず既存のbin,configのバックアップ
  2. sendmail だけではなくて、いくつかのバイナリ・設定ファイルが作られるので、それを調べて見る。 sendmail-8.15.2.tar.gz を展開して srcのトップディレクトリで 'sh ./Build' を実行すると、 "$src/obj.`uname`.`uname -r`.`uname -p'にバイナリ別のディレクトリができる。 具体的には、
    obj.FreeBSD.9.3-RELEASE-p49.amd64
    の下に、
    editmap libsmdb mail.local makemap rmap smrsh
    libsm lbismuitl mailstats praliases sendmail vacation
    が出来た(12ディレクトリ)。
    これらが後にインストールされると思われるので、おのおのバックアップ。

    /usr/local/bin/rmail
    /usr/local/bin/mailstats
    /usr/local/bin/vacation

    /usr/local/sbin/editmap
    /usr/local/sbin/makemap
    /usr/local/sbin/praliases
    /usr/local/sbin/sendmail

    /usr/lcoal/libexec/smrsh
    /usr/local/libexec/mail.local

    libが3つ(libsmdb,libsm,libsmutil)あるがこれらはコンパイル時にstaticにリンクされるようなのでとりあえずこのまま放っておいて良いみたい。
    src/libmilter があるがこれはBuildしても自動では作成されない。sendmail/milter.c があり、sendmailをコンパイルするとkには milter.o がリンクされているのでたぶんこれは sendmailを作成時には不要のよう。3rdパーティのプログラムを使う(かもしれない)ときに libmilter.a,libmilter.so とかでリンクするためにあるようだ。(see $src/libmilter/README)
    これは明示的に 'cd libmilter; sh ./Build; sh ./Build install' で良さそう。

    config系は

    /etc/mail/
    /usr/local/share/sendmail/
    /etc/rc.sendmail

    あたりをバックアップ。
  3. patchをあてる。
  4. ports の mail/sendmail/files/ 以下に patch-xxx がある。これらを当てればいいはず、、だが、ports用のマクロ設定(%%CC%%とかに置き換え等)がありちょっとためらう。特にこのパッチを当てなくても warningが少しでるがcompileはうまくいっているようなので、今回は当てなかった。
  5. configの作成
  6. $src/INSTALL にあるように、 $src/devtools/Site/site.config.m4 を作成する。 site.config.m4.sample があるが、これはほぼ当てにならない。portsの mail/sendmail/files/ の中に site.config.m4の機能別のファイルがあるのでこれらをconcatinate して作るのが正しいかと。このディレクトリにある、site.config.m4に、ipv6,tls,sasl2,milter を今回は追加した。
    dnl
    dnl 0) use site.config.m4
    dnl
    define(`confEBINDIR',`/usr/local/libexec')
    define(`confMANROOT',`/usr/local/man/cat')
    define(`confMANROOTMAN',`/usr/local/man/man')
    define(`confMBINDIR',`/usr/local/sbin')
    define(`confSBINDIR',`/usr/local/sbin')
    define(`confUBINDIR',`/usr/local/bin')
    define(`confNO_STATISTICS_INSTALL',`True')
    define(`confHFDIR', `/usr/local/share/sendmail')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DTCPWRAPPERS')
    APPENDDEF(`conf_sendmail_LIBS', `-lwrap')"
    dnl
    dnl
    dnl 1) use site.config.m4.ipv6
    dnl
    APPENDDEF(`conf_sendmail_ENVDEF', `-DNETINET6')
    APPENDDEF(`conf_libmilter_ENVDEF', `-DNETINET6')
    APPENDDEF(`conf_libsm_ENVDEF', `-DNETINET6')
    dnl
    dnl 2) use site.config.m4.tls
    dnl
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSTARTTLS -D_FFR_TLS_EC')
    APPENDDEF(`conf_sendmail_LIBS', `-lssl -lcrypto')
    dnl
    dnl 3) use site.config.m4.sasl2
    dnl
    dnl APPENDDEF(`conf_sendmail_ENVDEF', `-I%%LOCALBASE%%/include')
    dnl APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
    dnl APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
    dnl APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
    APPENDDEF(`conf_sendmail_ENVDEF', `-I/usr/local/include')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DSASL=2')
    APPENDDEF(`confLIBDIRS', `-L/usr/local/lib')
    APPENDDEF(`conf_sendmail_LIBS', `-lsasl2')
    dnl
    dnl 4) use site.config.m4.milter
    dnl
    APPENDDEF(`conf_libmilter_ENVDEF', `-DMILTER')
    APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')
    dnl
    
  7. compile
  8. $src にて、'sh ./Build'
  9. install
  10. $srcにて、'sh ./Build install'
元々 8.15.2 用で使っていた sendmail.cf はそのまま使えた。 これで TLS1.2も話す sendmail になったか。

ps.1
某日、STARTTLSを使ってちゃんとTLSで接続してくるメールを見てみたらいろいろあったので メモ。
クライアント証明書つきのTLS通信(但し認証(verify)はもちろんしていない)
  • NASA
  • Google (Gmailの転送)
  • SwarovskiのML
  • T-PointのML
  • オレオレCA証明書で発行したクライアント証明書を使っているMTA
ただの TLS通信。転送路は TLSのようだが特に認証無し。
  • shopify の広告DM
  • SBIのDairy mail
  • Land's Endの広告DM
  • 東洋経済のML
  • トクバイのML
  • キタムラのML
  • ホンダのML
  • DMMからのメール
  • JustsystemからのML
  • AmazonからのDM
  • GU(ユニクロ)からのML
  • みずほ銀行からのDM
  • OpenHouseからのDM
  • GMOからのML
  • EXPANSYSからのML
  • MoneyforwardからのML
  • JTBからのML
  • Generate DesginからのML
  • Wealthnavi からのML
  • QNAP からのML
  • Nature RemoからのML
  • furusat taxからのML
  • IPCamのメール通知クライアント(sasl認証)
単に forged なだけか、おかしな通信
  • security.criminalip.com
  • ninja.census.shodan.io
  • わざわざ SSL3.0,TLS1.0,TLS1.1,TLS1.2と繋がるか調べにやってきてる。
  • bezeqint.net
今後は sendmailもクライアント接続してくる側も証明書呈示するようになっていくんですかね。 とりあえず、うちも STARTTLSで接続したときに let's encryptあたりの証明書を呈示するようにしておいてみるか?

ps.2
TLS1.2対応になったことを、NASAのシスアドに連絡してみたところ、返答が。

I am glad to hear it is working for you once again!

Yes, I can see the moment in our logs when it got fixed:

Here is the last line of failure and the first line of success:

May 11 xx:xx:xx capella2 sendmail[15971]: ruleset=tls_server, arg1=SOFTWARE, relay=aaa.bbb.ccc, reject=403 4.7.0 TLS handshake failed.

May 11 yy:yy:yy capella2 sendmail[15971]: STARTTLS=client, relay=aaa.bbb.ccc., version=TLSv1.2, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128

Thanks,

David


わざわざ丁寧にありがとう。

spf導入メモ(1)

メールサーバが、Fromを実在のユーザーのメールアドレスに詐称したspamメールのrelay に使われるようになってしまった。
とりあえず、userの メールアドレスを /etc/mail/access で ERROR 処理にして relay block したが本質的には、spf,dkim あたりをちゃんと入れないとあかんなぁ・・・ということで。
まずは簡単にできそうな spf あたりから。
目標は、

  • DNS で spfの設定
  • spfmillter の設定
  • うちのサーバはsendmail + milter なので spfmilterの組み込み
あたりかと。

まず、https://support.zendesk.com/hc/ja/articles/115015746187-%E3%81%AA%E3%81%9C%E8%87%AA%E5%88%86%E3%81%AESPF%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B- を参照。spfレコードがちゃんと設定されているかの確認。
チェックサイトが3つ紹介されている。

まずはこの3つあたりで、ちゃんと DNSの spf設定がされているかどうかのチェックをおこなう。基本、送信元のドメイン、ipを記述し、最後に '-all' とする。'~all'もよくある記述だが、中途半端にsoftfaiにするよりもしっかり failにしたほうが良いと思う。

spf導入メモ(1)

メールサーバが、Fromを実在のユーザーのメールアドレスに詐称したspamメールのrelay に使われるようになってしまった。
とりあえず、userの メールアドレスを /etc/mail/access で ERROR 処理にして relay block したが本質的には、spf,dkim あたりをちゃんと入れないとあかんなぁ・・・ということで。
まずは簡単にできそうな spf あたりから。
目標は、

  • DNS で spfの設定
  • spfmillter の設定
  • うちのサーバはsendmail + milter なので spfmilterの組み込み
あたりかと。

まず、https://support.zendesk.com/hc/ja/articles/115015746187-%E3%81%AA%E3%81%9C%E8%87%AA%E5%88%86%E3%81%AESPF%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E8%AA%8D%E8%A8%BC%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%81%AE%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B- を参照。spfレコードがちゃんと設定されているかの確認。
チェックサイトが3つ紹介されている。

まずはこの3つあたりで、ちゃんと DNSの spf設定がされているかどうかのチェックをおこなう。基本、送信元のドメイン、ipを記述し、最後に '-all' とする。'~all'もよくある記述だが、中途半端にsoftfaiにするよりもしっかり failにしたほうが良いと思う。

メールのウィルスチェック

先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。

20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert

とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。

ports からのインストールの変更点は、

  • amavisd-milter: amavisd.conf で

    $unix_socketname = "$MYHOME/amavisd.sock";
  • /etc/mail/hostname.mc で
    define(`confMILTER_MACROS_ENVFROM',
    confMILTER_MACROS_ENVFROM`, r, b')
    INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
    T=S:10m;R:10m;E:10m')
    と、amavisd-milter に渡すsocketを定義。
  • ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して 
    amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
    と定義する。  -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
  • amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。

/var/log/maillog への出力例

Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy

メールのウィルスチェック

先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。

20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert

とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。

ports からのインストールの変更点は、

  • amavisd-milter: amavisd.conf で

    $unix_socketname = "$MYHOME/amavisd.sock";
  • /etc/mail/hostname.mc で
    define(`confMILTER_MACROS_ENVFROM',
    confMILTER_MACROS_ENVFROM`, r, b')
    INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
    T=S:10m;R:10m;E:10m')
    と、amavisd-milter に渡すsocketを定義。
  • ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して 
    amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
    と定義する。  -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
  • amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。

/var/log/maillog への出力例

Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy

メールのウィルスチェック

先日、virusソフトをアップデートした際に、すでに Freebsd ports では amavis-milter がサポートされなくなっていたので、amavisd-milter + amavisd-new に変更。
milterを使う理由は、別portで待ち受けるMTA 2枚使うパターンにはちょっと躊躇してしまうため。。。
FreeBSD4 では、最新のports ではamavisd-milter (Ver 1.3.1 )が compile できない。

20070901:
Performance optimization: use sem_timedwait instead of
sem_trywait+sleep(1) for amavisd connection lock.
Requested by: David Schweikert

とあるけど、sem_timedwait , FreeBSD5 以降でしか入っていなくて、4.xでは使えない。
仕方ないので、1.2.1 を利用することに。

ports からのインストールの変更点は、

  • amavisd-milter: amavisd.conf で

    $unix_socketname = "$MYHOME/amavisd.sock";
  • /etc/mail/hostname.mc で
    define(`confMILTER_MACROS_ENVFROM',
    confMILTER_MACROS_ENVFROM`, r, b')
    INPUT_MAIL_FILTER(`amavisd-milter',`S=local:/var/amavis/amavisd-milter.sock,F=T,
    T=S:10m;R:10m;E:10m')
    と、amavisd-milter に渡すsocketを定義。
  • ports で amavisd-new をinstallすると、 /usr/local/etc/rc.d/amavis-milter.sh もinstallされる。これを、amavisd-milter.sh に rename して 
    amavisd_milter_flags=${amavis_milter_flags:-"-w /var/amavis/tmp"}
    と定義する。  -p /var/amavis/amavisd-milter.sock はデフォルトで設定されているようなので要らないっぽい。
  • amavisd-milter は、sendmail と amavisd への接続には オプションの -s, -S で設定することになっているが、おのおのデフォルトは /var/amavis/amavisd-milter.sock, /var/amavis/amavisd.sock になっている。
amavisd-new 、昔は対応している vscan ソフトの数が4つくらいしかなかったけど、今は Unix系で出回っているものほとんどに対応してるっぽい?
とりあえずうちでは avira, をメインにして f-prot をバックアップに使ってる。

/var/log/maillog への出力例

Nov 8 12:48:39 mina amavis[49876]: (49876) Passed CLEAN, AM.PDP-SOCK [x.x.x.x] [x.x.x.x] -> , Queue-ID: mA83mY2h051930, Message-ID: <20081108034829.56183205FB5@cd14-0793>, mail_id: UNup7LuHjHB3, Hits: -, size: 5100, 3897 ms
Nov 8 12:48:39 mina sendmail[51930]: mA83mY2h051930: Milter insert (0): header: X-Virus-Scanned: amavisd-new at xxx.yyy

avira Antivir アップデート

うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。

http://www.free-av.com/en/download/download_servers.php

今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。

今回のライセンスは、またあと1年後まで。。。

mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29

product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL

product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL

avira Antivir アップデート

うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。

http://www.free-av.com/en/download/download_servers.php

今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。

今回のライセンスは、またあと1年後まで。。。

mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29

product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL

product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL

avira Antivir アップデート

うちのマシン、いまだに sendmail + milter の組み合わせで virus チェックを行っていますが、virusチェックには、Freeの AVIRA Antivir Personal Edition を使っています。
先月末で一度ライセンスが切れて、vdfの更新がされないよ~というメールが来たので
アップデートしました。

http://www.free-av.com/en/download/download_servers.php

今年のライセンス?は、notification メールが飛んでこなくなってしまいました。ちゃんと virus scanner, vdf が更新されたかどうかは、ちゃんとサーバのログを見ないとわからなくなってしまった。ちょっと不便。まぁ、freeだからしょうがないか。

今回のライセンスは、またあと1年後まで。。。

mina# /usr/lib/AntiVir/antivir --version
7.9.0.10
operating system: FreeBSD
product version: 2.1.12-75
engine version: 7.9.0.10
packlib version: 7.6.1.7 (supports 34 formats)
vdf version: 7.1.0.29

product: AntiVir Workstation
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL

product: AntiVir (command line scanner)
key file: hbedv2.key
registered user: Avira AntiVir PersonalEdition Classic
serial number: 0000149996-PXWSE-0001
key expires: 27 Oct 2009
run mode: PERSONAL