Tips

LinuxServer 電子メールについてもう一度… 安全にメールサーバを利用する為に

telnetでSMTP-AUTH

動作確認として、SMTP-AUTHを使用した上で、メール送信を行ってみます。
送信に使うユーザをあらかじめSASLデータベースに登録します。

[コマンド] # saslpasswd2 -u senderdomain.org -c username
[応答]パスワードを入力します。
Password:
Again (for verification):

ユーザの登録確認は’ sasldblistusers2’コマンドで実行します。
[コマンド] # sasldblistusers2
[応答] sender@senderdomain.org: userPassword

また、SMTP-AUTHでログインする際のユーザ名とパスワードは
BASE64エンコードされている必要が有ります。

[エンコードコマンド例] # perl -MMIME::Base64 -e ‘print encode_base64(“usernameusernamepassword”);’

a2VpAGtlaQBrZXk3OTI3

ユーザ認証を使用したメール送信を行うには、HELOコマンドではなく
拡張コマンドであるEHLOを使用します。

[サーバへの接続は普通に] # telnet localhost 25
Trying ::1…
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.sender.org ESMTP Postfix

[EHLOコマンドを使う] ehlo localhost
250-mail.sender.org
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-AUTH PLAIN LOGIN GSSAPI
250-AUTH=PLAIN LOGIN GSSAPI
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

このサーバではユーザ認証(AUTH)にPLAINとLOGINが
対応している事が分かります。

AUTH PLAIN認証ではユーザ名とパスワードが合わさったものを
Base64でエンコードし認証文字列として使用します。

[コマンド] auth plain a2VpAGtlaQrrZXk3OTI4
[応答] 235 2.7.0 Authentication successful

また、AUTH LOGIN認証ではユーザ名とパスワードをそれぞれ
Base64でエンコードし認証文字列として使用します。

[コマンド]AUTH LOGINでユーザ認証をしてみる
auth login
[応答] 334 VXNlcm5hbWU6
ezct63lz(BASE64エンコードされたユーザ名))
334 UGFzc3dvcmQ6
f2V8NzkYnW==(BASE64エンコードされたパスワード)
235 2.7.0 Authentication successful

ユーザ認証が成功すれば、後はMAILコマンドを使用し、
メールを送信します。

mail from:sender@sender.org
250 2.1.0 Ok
rcpt to:recipient@recipient.com
250 2.1.5 Ok
data
354 End data with .
From:sender@sender.org
To:recipient@recipient.com
Subject:test

test
.
250 2.0.0 Ok: queued as 24A66A018C
quit
221 2.0.0 Bye
Connection closed by foreign host.

POP before SMTPやSMTP-AUTHを使用する事により、そのサーバを使用して
メールを送信するユーザを限定する事で、不正なSMTP通信を防ぐ事が出来ます。

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search