【AlmaLinux】Postfixを使ってSMTPサーバーを構築してみた① ~基本動作確認編~

未分類

はじめに

AlmaLinuxを利用したメール中継サーバーの構築を仕事で行うので、勉強も兼ねてPostfixを使ったSMTPサーバーを構築してみました。

今回はSMTPサーバーの基本動作を確認し、SMTPプロトコルの流れを実際に体験するところまで実施します。

検証環境

項目内容
OSAlmaLinux 9
仮想環境VirtualBox
メールサーバーPostfix

Postfixのインストール

まずはPostfixをインストールします。

sudo dnf install postfix -y

インストール後、サービスを起動します。

sudo systemctl enable postfix
sudo systemctl start postfix

サービスの状態を確認します。

systemctl status postfix

active (running)と表示されれば正常に起動しています。


SMTPの待ち受け確認

SMTPは通常25番ポートを使用します。

待ち受け状態を確認します。

ss -lntp | grep :25

初期状態では

127.0.0.1:25

となっていました。

これはローカルホストからの接続のみ受け付ける設定になっています。


Postfixの設定変更

設定ファイルを編集します。

sudo vi /etc/postfix/main.cf

今回は外部からも接続できるように、以下の設定を変更しました。

inet_interfaces = all

設定ファイルに問題がないか確認します。

sudo postfix check

問題がなければPostfixを再起動します。

sudo systemctl restart postfix

再度待ち受け状態を確認すると、

0.0.0.0:25

となり、外部からの接続も受け付けるようになりました。


SMTP通信を手動で実行してみる

SMTPサーバーへ接続します。

telnet localhost 25

接続すると次のようなメッセージが表示されます。

220 localhost.localdomain ESMTP Postfix

ここからSMTPコマンドを入力していきます。

まずは接続先へ自分の情報を通知します。

EHLO localhost

続いて送信者を指定します。

MAIL FROM:<test@gmail.com>

次に宛先を指定します。

RCPT TO:<daichi>

メール本文を送信します。

DATA
Subject: SMTP Test

This is TestMail
MailServer
.

最後の「.(ピリオド)」はメール本文の終了を意味します。

正常に受信されると

250 2.0.0 Ok: queued as XXXXXXXX

と表示され、メールがキューへ登録されます。

最後に接続を終了します。

QUIT

Postfixログを確認

別ターミナルでログを確認しました。

journalctl -u postfix -f

ログには以下のような処理が記録されます。

  • SMTP接続
  • メール受信
  • メールキュー登録
  • ローカル配送
  • キュー削除

特に

status=sent (delivered to mailbox)

というログが表示されれば、メールが正常に配送されたことが分かります。


メールキューの確認

現在のメールキューを確認します。

mailq

配送完了後は

Mail queue is empty

と表示され、メールキューが空になっていることを確認できました。


メールボックスを確認

ローカルメールを確認します。

mail

実際にSMTPで送信したメールが受信されていることを確認できました。


SMTPの流れを理解する

今回実際に入力したSMTPコマンドには、それぞれ役割があります。

コマンド役割
EHLOSMTPサーバーへ接続したことを通知する
MAIL FROM送信者を指定する
RCPT TO宛先を指定する
DATAメール本文を送信する
QUITSMTP接続を終了する

普段はOutlookやThunderbirdなどのメールソフトが自動的に実行していますが、今回は手動で入力することでSMTPプロトコルの流れを理解することができました。


まとめ

今回はPostfixをインストールし、SMTPサーバーとして基本動作を確認しました。

実施した内容は以下の通りです。

  • Postfixのインストール
  • サービス起動
  • SMTP待ち受け確認
  • Postfix設定変更
  • SMTPコマンドによるメール送信
  • Postfixログ確認
  • メールキュー確認
  • ローカルメールボックス確認

実際にSMTPコマンドを入力しながら動作を確認したことで、メールソフトが内部で行っている処理を理解することができました。

次回は、Postfixをメール中継サーバー(SMTP Relay)として構成し、relayhostやSMTP認証(SASL)、STARTTLSの設定を行い、外部メールサーバーへの中継を試してみたいと思います。

タイトルとURLをコピーしました