[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:51362] exim4にて、ポート番号を25番以外でSMTP-Authするには?



初めまして、清水と申します。

今夏、オフィスのメールサーバーとWebサーバーを更新し、その際、両サーバーのOSを
Debian etch 4.0r4に変更しました。

インターネット上の情報と、武藤さんのDebian辞典を参照して、実に快適に運用できるよ
うになりました。

ただ、ひとつだけ困っている点があり、お知恵を拝借したいと存じます。

<< やりたいこと >>

メールサーバー(以下、server.jpとする)をSMTP-AUTH server (TLS使用)としても
運用したいのだが、その際に、25番以外のポート(587番や465番)で接続するよう
にしたい。

その理由は、Outbound Port 25 Blocking (OP25B)を実施しているプロバイダー
経由でインターネット接続しているPCから、server.jpをSMTP-AUTH serverとして、
メール送信したいから。


<< 症状(概略)>>

問題点を明確にするために、OP25Bをしていないネットワーク下のPCから、server.jp
SMTP-AUTH server (TLS使用)として利用することを試みた。

その結果、25番ポートを利用すれば成功するが、465番や587番では失敗する。
(従って、OP25Bをしているネットワーク下のPCからは、いずれのポート番号でも
失敗する)


<< PCで使用したMUA >>

Thunderbird 2.0.0.18を使用

「送信サーバーの設定」にて、server.jpを指定し、ユーザー名もSMTP-Authのもの(smtpuserとする)を指定し、TLSを選択。

送信時にSMTP-Authのパスワードを訊かれるので、そのときにパスワードを入力。


<< メールサーバーの基本構成 >>

OS: Debian etch 4.0r4

MTA: Exim 4.63
以下に従い、TLSを有効にしてある:
http://exim-jp.sourceforge.jp/docs/debian/etch/README.Debian.etch.html#TLS

また、
# apt-get install gnutls-bin
# cp -a /usr/share/exim4/exim4_refresh_gnutls-params /etc/cron.daily/
により、/var/spool/exim4/gnutls-paramsを毎日書き換えている。


<< メールサーバーをSMTP-AUTH serverにするための基本設定 >>

/etc/exim4/passwdというファイルを作成し、
  送信専用ユーザー名:暗号化されたパスワード
を記入。

/etc/exim4/exim4.conf.templateの、以下の行をアンコメント:
login_server:
  driver = plaintext
  public_name = LOGIN
  server_prompts = "Username:: : Password::"
  server_condition = "${if crypteq{$auth2}{${extract{1}{:}{${lookup{$auth1}lsearch{CONFDIR/passwd}{$value}{*:*}}}}}{1}{0}}"
  server_set_id = $auth1
  .ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
  server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
  .endif

以下を実行して、設定を反映:
# update-exim4.conf
# /etc/init.d/exim4 restart

<< 試した設定1 >>

サーバー側(111.111.111.111, server.jpとします):上記の基本設定のまま。

クライアント側(222.222.222.222, pc.jpとします):「送信サーバーの設定」にて、ポート番号を25に。

結果:
OP25Bをしていないネットワーク下のPCからは、送信成功。
サーバーに残ったログは、
008-12-02 10:58:42 1L7KXC-0000Yp-IY <= shimizu@xxxxxxxxx H=pc.jp ([192.168.7.101]) [222.222.222.222]:1372
I=[111.111.111.111]:25 P=esmtpsa X=TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32 CV=no DN="" A=plain_server:smtpuser S=659 id=4934964D.5000805@xxxxxxxxx from <shimizu@xxxxxxxxx> for adominisutoreisyon@xxxxxxxxx
2008-12-02 10:58:42 SMTP connection from pc.jp ([192.168.7.101]) [222.222.222.222]:1372 I=[111.111.111.111]:25 closed by QUIT

<< 試した設定2 >>

サーバー側:ポート番号を465に。その仕方は、
http://exim-jp.sourceforge.jp/docs/debian/etch/README.Debian.etch.html#TLS
に従い、/etc/default/exim4の中で
SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'
を指定し、/etc/exim4/exim4.conf.localmacrosの中で
tls_on_connect_ports=465
を指定し、以下を実行して設定を反映:
# update-exim4.conf
# /etc/init.d/exim4 restart

クライアント側:「送信サーバーの設定」にて、ポート番号を465に。

結果:
OP25Bをしていないネットワーク下のPCからも、送信失敗。
サーバーに残ったログは、
2008-12-02 10:22:37 SMTP connection from [222.222.222.222]:1150 I=[111.111.111.111]:465 (TCP/IP connection count = 1)
2008-12-02 10:23:38 TLS error on connection from pc.jp [222.222.222.222]:1150 (gnutls_handshake): A TLS packet with unexpected length was received.


<< 試した設定3 >>

サーバー側:ポート番号を587に。その仕方は、よくわからないので
http://exim-jp.sourceforge.jp/docs/debian/etch/README.Debian.etch.html#TLS
の記述を真似て、/etc/default/exim4の中で
SMTPLISTENEROPTIONS='-oX 587:25 -oP /var/run/exim4/exim.pid'
を指定し、/etc/exim4/exim4.conf.localmacrosの中で
tls_on_connect_ports=587
を指定し、以下を実行して設定を反映:
# update-exim4.conf
# /etc/init.d/exim4 restart

クライアント側:「送信サーバーの設定」にて、ポート番号を587に。

結果:
OP25Bをしていないネットワーク下のPCからも、送信失敗。
サーバーに残ったログは、
2008-12-02 10:37:10 SMTP connection from [222.222.222.222]:1203 I=[111.111.111.111]:587 (TCP/IP connection count = 1)
2008-12-02 10:38:11 TLS error on connection from pc.jp [222.222.222.222]:1203 (gnutls_handshake): A TLS packet with unexpected length was received.


<< 補足:メールサーバーの/etc/exim4/update-exim4.conf.confの内容 >>

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=オフィス内だけを指定していますがこれは今回の問題とは無関係の
ようです(ポート25でSMTP-Authしたら、この範囲外からもrelayできましたので)
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'


以上のような状況です。お知恵を拝借できれば幸いです。
よろしくお願いいたします。