eoにもとうとうOP25Bがキター

先日 突然eoからメールが届いていました。
 
「eoの迷惑メール対策:25番ポートブロックの実施について

<中略>
 さて、弊社は迷惑メール(送信メール)に対する取り組みとして、昨年
より、25番ポートブロック(OP25B:Outbound Port25 Blocking)を携
帯電話事業者向けのメール送信に対して先行して導入しておりましたが、
平成19年2月5日(月)より順次、全てのメールに対して適用を拡大い
たします。<後略>」
 
だそうで・・・
 
対応期間2週間ないんですかっ!
 
要するに、自宅から他ISPに直接メールが送れなくなりeoに一旦送らなくては成らないのですが、直接会社とかのメールサーバーにアクセスしている人や、自宅にメールサーバー置いているばあい、遮断されてメールの送信が出来なくなります。
 
ちなみに、私 自宅にサーバー置いてメール中継させてますので、影響出ます。
 
eoのガイドを見ると
「DDNS等を利用して、メールを直接送信されている方は、固定IPサービス(月4000円)をご利用ください」
って、おぃ! 地味に宣伝ですか?
 
なんと、更にeoやってくれました。eoのサーバーに転送しても送信者がeoのメールアドレスじゃない限りSMTP認証が無い限り メール送らせてくれません!
 
なんで? 別にeoのサーバー経由したらLogは全部取れるんだから抑止にはなるし、内部からのものを転送するには問題何も無いのでは?とも思うのですが...
 
何も固定IPサービス使えと押し売りしなくても良いのではないでしょうか? インターネット接続事業者の癖に、一部インターネットに繋がらなくなる(=サービス低下)に対して、一方的に「更に金払えや!」って言うのは余りにも無礼な話だと思います。(ところで、固定IPにしてもトラフィック増えるわけじゃないのに、何でそんなに高くなるの?)
 
一瞬IPv6トンネル経由で、別のメールサーバーを経由して送ってやろうかとも思いましたが、なんかこれじゃ負けたみたいで悔しいです。(出来るの解りきってるし)
今後同様の症状は顧客のところでも発生するでしょうから、ここは徹底抗戦。何か良い方法は無いか試して見ます。
 
・POP BeforeSMTPはどうだ?
 一度、別マシンでメールを受信した後、送信を試みますが... 即敗退... 駄目です。何が何でもSMTP AUTHらしぃ。
・SMTP AUTHをSendmailに使わせる
 出来ても良さそうですが、出来るのでしょうか?
 色々調べてみても、出てくるのは自分のサーバーをSMTP AUTH対応にする方法ばかり。
 メールの転送にSMTP AUTHを利用する手順を探してみたら幾つか見つかり参考に頑張ってみました。
 
なんとか上手く動いたので、メモを残したいと思います。
 
 
大まかな対策としては、
 ・sendmail.cfのDSにて SmartHostの設定を行う。
 ・SASL2のパッケージをインストール
 ・SASLを使うように設定を行う。
と言う対策で可能になりました。
 
インストールしたパッケージは下記の3つ(とりあえずこれで動きました、本当はもう少し要りそう)
(普通に、pkgsrcからmake&make install)
cyrus-sasl-2.1.20nb2 Simple Authentication and Security Layer
cy2-plain-2.1.20    Cyrus SASL PLAIN authentication plugin
cy2-crammd5-2.1.20  Cyrus SASL CRAM-MD5 authentication plugin
 
 
SASLインストール後 SendmailをSASLに対応させる必要が有ります。
同じくpkgsrcにある options.mkに下記の行を追加して make&make install
PKG_OPTIONS.sendmail=   inet6 sasl tcpwrappers

更に、sendmail.cfをSASLを使ってSMTP AUTHに対応させます。
mcの定義ファイルに以下の設定を追加してsendmai.cfを作成します。
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`SMART_HOST',`smtpauth.eonet.ne.jp')dnl
FEATURE(`authinfo')
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

 
SASL関係の設定では、SASLのライブラリのあるディレクトリにSendmail.confと言うファイルを作成し中身は
pwcheck_method:saslauthd
と書きます。
 
メールの設定ファイルが有るところに、SMTP AUTHに使用するアカウントの設定をします。Authinfoと言うファイルを作り
AuthInfo: "U:<Username>" "P:<Password>" "M:CRAM-MD5(認証に使う方式?)"
とします。(makemap hash authinfo < authinfoとしてauthinfo.dbまで作っておけば安心?)
 
これでOKの様子。
 
因みにOSはNetBSD2.x Sendmailは8.13です。
 
これで暫くは安泰ですかね・・・ 折角なので、時間が有ればサブミッションポート対応にもチャレンジして外部からメール送れるようにしたいと思っています。
最近OP25B対策を大半のISPが取り出したので、確実にメールを送れる足場作っておかないと何かと大変ですから... 顧客の所でも需要ありそうだなぁ。
 
 
これのせいで、昨日東京出張から夜遅くに戻ってきて、朝まで突貫作業、それでも片付かず次の出張先のホテルから遠隔で弄ってなんとか動くようになりました... ヨカッタヨカッタ しかし、飛行機の中でも寝れなかったおかげで眠いです。