telnetコマンドでのメールサーバ(SMTP, SMTP-AUTH, POP3)の動作確認


前回の記事にてメールサーバを構築。本記事は当該サーバに対する動作確認の手法や良くあるエラーの対処例を記載する。

nmapコマンドによるポート開放確認

Postfix, Dovecotの動作確認の前に、そもそもサービスのポートが開放されているかをサーバの外部ネットワークからnmapコマンドを用いて確認する。(nmap自体は公式サイトより適切なモジュールをダウンロード・インストールすればWindows, Mac, LinuxのいずれのOSでも使用可能。)

その実行結果例は下記の通り。nmapコマンドはデフォルトでwell knownポートに対してスキャンをかける。smtp, pop3, imap, imaps, pop3s等が、openであればOK。勿論、dovecot.confのprotocolsディレクティブ設定において、pop3, imapを指定してなければ当該ポートはopenとはならない。

仮にこの段階で期待するポートがopenで無かった場合、iptable設定やネットワークファイアウォールの設定を確認すると良い。ネットワーク型とホスト型(iptable)の切り分けは単純にメールサーバ上でlocalhostに対するnmapを実施すればよい。

telnetコマンドによるメールの送信確認

Postfixの動作確認として、ローカルからtelnetコマンドを用いてSMTPのプロトコルに沿ってメールを送信する。尚、下記のコマンド・ログ上の「←」以降の文字列は補足書きの為、実際のコマンド打鍵時には入力はしない。

尚、SMTPのプロトコルについて詳細を確認したい場合は下記のリンクを当たると良い。
Simple Mail Transfer Protocol – Wikipedia, the free encyclopedia
ページの末尾にRFCへのリンクも記載されている。こちらも体力があるなら読んでみると良いかも。

EHLO、DATA等のコマンドは英子文字でも可。上記のコマンドの中で、認証情報(ユーザー名、パスワード)をBase64エンコードしたものをパラメーターとして入力している。ちまたのメールクライアントであれば自動で変換・送出してくれるが、ここでは予めPerlのモジュール・関数を用いてBase64エンコードした文字列を用意しておく。

実際に使用する際は、sampleをユーザー名に、passowordをパスワード文字列に置き換えて実行する。
逆にBase64エンコードされた文字列をデコードしたい場合は、下記のコマンドを用いる。

telnetコマンドによるメールの受信確認

Dovecotの動作確認として、ローカルからtelnetコマンドを用いてPOP3のプロトコルに沿ってメールを受信する。状況としては、とあるGmailアドレスからsample@example.comへ下記のメールが既に送信されているものとする。

なお、POPのプロトコルについては例によって下記のサイトか、RFCを参照することをオススメする。
Post Office Protocol – Wikipedia, the free encyclopedia

エラー発生時の参照先ログ

よく使うのは/var/log/maillog。モニタリング時は下記のコマンドで読み込むとファイルにログの書き込みがある際に自動表示をしてくれる。

因みに良くある間違いがユーザー名にメールアドレスを指定してしまった場合(プロバイダやフリーメールでは良くあるが。。)。下記の例では、サーバに登録されているユーザー名はsampleであるが、実際に指定しているユーザー名はsample@example.comである為、authentication failure、error retrieving information about userが出力されている。

次に良くある?かどうかは知らないが、下記のエラー。

対処法は下記のサイトをご参考。

Postfix Plesk on Ubuntu Error fatal: open database /var/lib/postfix/smtpd_scache.db: Invalid argument | StuffThatSpins.com

次は各サーバのセキュリティ設定や暗号化されているimapsをWireSharkでスニッフィングする記事を書く予定。

関連記事 (Related Articles):


コメントを残す