専用サーバーでDebian7.x AMD64 + Exim 4.82を使用していますが、共有ホスティングで動作するSMTPサーバーもあります。いくつかの特別な配信スクリプト/フィルターを備えたSMTPをVPSにセットアップしたいと思います(たとえば、一部のアカウントのすべての受信メールのコピーを送信します)
現在、VPSの状況は次のとおりです。
/etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='myhost.mycompany.com; localhost'
dc_local_interfaces='127.0.0.1; xxx.xxx.xxx.xxx' <=== public IPv4 address
dc_readhost='mycompany.com'
dc_relay_domains='*'
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.external.com'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'
/etc/exim4/passwd.client
コンテンツ:
*:smtp.external.com:secret
自己署名証明書を生成し、TLS /etc/exim4/exim4.conf.localmacros
を有効にしました
MAIN_TLS_ENABLE = 1
私はplan_textとplain_loginを使おうとしましたが、現在はsaslauthdを使用しています(以前にpostfixでテストしたので、動作すると確信しています)。
exim -bP authenticator_list
出力:
plain_saslauthd_server
login_saslauthd_server
cram_md5
plain
login
telnet myhost.mycompany.com 25
出力:
EHLO test
250-myhost.mycompany.com Hello xxxxxxxxx [xxx.xxx.xxx.xxx]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-STARTTLS
250 HELP
...
AUTH PLAIN <random string>
503 AUTH command used when not advertised
オーセンティケーターがアドバタイズされていない(EHLO応答に250-AUTH ...行がない)ためだと思いますが、デフォルトでは、すべての標準オーセンティケーターにこの条件があります
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_in_cipher}{}{}{*}}
.endif
したがって、server_advertise_condition条件を処理するには、AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
ファイルに/etc/exim4/exim4.conf.localmacros
を追加する必要があると想定しますが、クライアントでTLS暗号化の使用が有効になっていない場合は、とにかく考慮されません(私はそうですか?).
だから私は今何をすべきかについて少し混乱しています..私は私の構成が次のように機能することを望みます:
*
からdc_relay domains
を削除します。これにより、誰でも中継できます。ローカルネットワークを中継する場合は、そのIP範囲をdc_relay_nets
に入力します。
認証されたユーザーがどこからでもメールを送信できるようにする場合は、認証されたユーザーの承認ルールが必要です。デフォルトの構成には、認証されたユーザーのチェックをバイパスする適切なルールを含めて、ユーザーがローカルネットワーク上にいるかのように電子メールを送信できるようにする必要があります。
AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
を/etc/exim4/exim4.conf.localmacros
に追加すると、安全でない接続で認証をテストできるようになります。ネットワークを盗聴できる人は誰でもあなたの資格情報を取得できるため、これを許可しないことをお勧めします。
このマクロを追加して、リモートユーザーの送信ポートを有効にすることができます。送信ポートは、リモート送信の優先ポートです。
daemon_smtp_ports = 25 : 587
私のデフォルト構成では、サーバー側のオーセンティケーターはコメントアウトされています。私はそれらをプレーンテキストとmd5認証にうまく使用しました。ユーザーIDとパスワードは2番目と3番目のフィールドです。