🕌

Postfix と Dovecot を使用したメールサーバー構築(VMware環境)

に公開

はじめに

VMware Workstation Pro 17 上に Ubuntu 22.04 をインストールし、その上で Postfix と Dovecot を使用したメールサーバーを構築します。

今回はPostfixを送信サーバー、Dovecotを受信サーバーとして使用します。

環境準備

1. VMware Workstation Pro 17 の準備

  • VMware Workstation Pro 17 を起動し、新規仮想マシンを作成します。
  • ISO イメージ: Ubuntu 22.04 LTS 日本語 Remix の ISO ファイルを指定します。
  • Ubuntu Japanese Team 公式サイトからダウンロードできます。
    Ubuntu 22.04 LTS 日本語 Remix ダウンロード
  • ディスク容量: 20GB 以上
  • メモリ: 2GB 以上
  • ネットワーク: NAT またはブリッジ接続

2.Ubuntu 22.04のインストール

  1. 仮想マシンを起動
    作成した仮想マシンを起動すると、Ubuntu インストーラーが表示されます。

  2. 言語の選択
    インストーラーの最初に「言語を選択」画面が表示されます。
    → 「日本語」を選択し、「Ubuntu をインストール」をクリックします。

  3. キーボードレイアウトの選択
    キーボードレイアウトを選択します。
    → 「日本語」が選択されていることを確認し、「続ける」をクリックします。

  4. インストールの種類

  • インストールオプションで「通常インストール」を選択します。
  • 「アップデートをダウンロードしながら Ubuntu をインストールする」にチェックを入れます。
  • 「サードパーティソフトウェアをインストールする」にもチェックを入れておくと、コーデックやドライバが自動でインストールされます。
  • 「続ける」をクリックします。
  1. ディスクの設定
  • 「ディスク全体を使用」を選択し、「インストール」をクリックします。
  1. 地域の選択
  • 自動的に「東京」が選ばれることが多いですが、確認して「続ける」をクリックします。
  1. ユーザー情報の設定
  • 名前、コンピュータ名、ユーザー名、パスワードを入力します。
  • 「自動的にログインする」か「パスワードを要求する」か選択できます。
  • 設定が完了したら「続ける」をクリックします。
  1. インストールの完了
  • インストールが進行し、完了したら「再起動」を求められます。
    → 「今すぐ再起動」をクリックします。

ユーザーアカウントの設定

メールサーバーで利用するユーザーアカウントを作成します。

1. ユーザーアカウントの作成

sudo adduser testuser
  • ユーザー名としてtestuserを指定します。
  • パスワードとその他の情報を入力します。

2. 作成したユーザーを確認

id testuser

Postfixのインストールと設定

1.必要パッケージのインストール

sudo apt update
sudo apt install postfix -y
  • 「メールサーバーの設定」 が表示されます
  • SMTPサーバーとして機能させるには、「Internet Site」 を選択します
  • その後任意のドメイン名を入力します。今回はlocaldomainで設定します。

2. 基本設定

設定ファイルを編集

sudo nano /etc/postfix/main.cf

設定内容

myhostname = mail.localdomain
mydomain = localdomain
myorigin = $mydomain #追記
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = $myhostname, localhost.$mydomain, localhost, mail.localdomain # mail.localdomain を含めることで、ローカル配信が有効になります。
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24 
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4 #ipv4に変更
home_mailbox = Maildir/ #追加
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination #追加

3. Postfixの起動とステータス確認

sudo systemctl restart postfix
sudo systemctl status postfix
  • Postfixが起動(Active)になっていることを確認
Active: active (running) 

4. telnetによるメール送信テスト

4.1 Telnetのインストール

sudo apt install telnet -y

4.2 メール送信テスト

telnet localhost 25

出力

220 localhost.localdomain ESMTP Postfix

smtp コマンド操作

入力
helo localhost
 
出力
250 localhost.localdomain
 
入力:送信元アドレス
mail from: testuser@mail.localdomain
 
出力
250 2.1.0 Ok
 
入力:宛先アドレス
rcpt to: user1@mail-server.test
 
出力
250 2.1.5 Ok
 
入力:メールの本文かきますコマンド
data
 
出力
354 End data with <CR><LF>.<CR><LF>
 
入力:メール本文
helo postfix

入力:本文書き終えましたコマンド
.
 
出力
250 2.0.0 Ok: queued as ・・・
 
入力:telnet終了
quit
 
出力
221 2.0.0 Bye

4.3 メールが届いているかの確認

ユーザー切り替え

sudo su - testuser

メールが存在するか確認

ls /home/testuser/Maildir/new

メールが存在していれば内容確認

cat /home/testuser/Maildir/new/メールファイル名

Dovecotのインストールと設定

1. Dovecotのインストール

sudo apt install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-pop3d -y

2. 各設定ファイルの編集

/etc/dovecot/dovecot.confを編集

sudo nano /etc/dovecot/dovecot.conf

設定内容

# 使用するプロトコル
protocols = imap pop3 lmtp
 
# IPv4のみ使用。v6へのバインドを行わない
listen = *

/etc/dovecot/conf.d/10-mail.confを編集

sudo nano /etc/dovecot/conf.d/10-mail.conf

設定内容

# ファイルの場所を指定
mail_location = maildir:~/Maildir

/etc/dovecot/conf.d/10-auth.confを編集

sudo nano /etc/dovecot/conf.d/10-auth.conf

設定内容

disable_plaintext_auth = no
 
auth_mechanisms = plain login

/etc/dovecot/conf.d/10-ssl.confを編集

sudo nano /etc/dovecot/conf.d/10-ssl.conf

設定内容

ssl = no 

3. Dovecotの起動とステータス確認

sudo systemctl restart dovecot
sudo systemctl status dovecot

Dovecotが起動(Active)になっていることを確認

Active: active (running) 

4. telnetによるメール受信テスト

4.1 メール受信テスト

telnet localhost 143

出力

Connected to localhost.

コマンド操作

入力:user1でログイン
a1 login testuser パスワード
 
出力
Logged in
 
入力:ホームディレクトリの一覧を見る
a2 list "" *
 
出力
* List () "." "INBOX"
a2 OK List completed.
 
入力:INBOXの中身を見る
a3 select INBOX
 
出力
1 EXISTS  ←1通のメールがある
1 RECENT  ←最新のメールは1通
3 OK Select completed.
 
入力:1通目のメールを見る。送信時のテストのものが見れる。
a4 fetch 1 body[]
 
出力
From: testuser@mail.localdomain
To: undisclosed-recipients:;
 
helo postfix
)
a4 OK Fetch completed.
 
入力:終了
a5 logout
 
出力
a5 OK logout completed.

Thunderbird の設定手順

Dovecot と Postfix の動作確認が完了したら、Thunderbird を使ってメールの送受信を行えるように設定します。

1. Thunderbird の起動とアカウント追加

Thunderbird を起動します。「新規作成」>「既存のメールアカウント」をクリックします。

2. アカウント情報を入力

項目 入力内容
あなたのお名前 任意(例: Test User)
メールアドレス testuser@localdomain
パスワード ユーザーアカウントの作成で設定したパスワード

  • 入力後、「続ける」をクリックし、「手動設定」をクリックします。

3. サーバー設定(手動設定)

種類 サーバー名 ポート番号 接続の保護 認証方式 ユーザー名
受信 (IMAP) 実際のUbuntuのIPアドレスを入力してください 143 なし 通常のパスワード testuser(ユーザーアカウントの作成で設定したID)
送信 (SMTP) 実際のUbuntuのIPアドレスを入力してください 25 なし 通常のパスワード testuser(ユーザーアカウントの作成で設定したID)

  • 入力が完了したら「再テスト」または「完了」をクリック。

4. 設定完了後の確認

  • Thunderbird 左側に「受信トレイ」が表示されていれば成功です。
  • 自分宛にメールを送って受信確認を行いましょう。

最後に

メールサーバーの構築は以上になります。
もし、それぞれの工程でエラーが発生する場合は、下記のコマンドを用いてログを確認して適宜、対応して下さい。

sudo tail -f /var/log/syslog

感想

今回、VMware 上に Ubuntu をインストールし、Postfix と Dovecot を用いてローカルのメールサーバーを構築しました。各サービスの動作原理や設定ファイルの役割を理解しながら進めることで、メールの送受信の流れを知ることができました。

今後はこれをベースに、Dockerコンテナでメールサーバーを0から構築したいと考えております。
また、TLS を使った暗号化通信や、複数ユーザー対応、メールフィルタリングなどの応用にも挑戦してみたいです。

Discussion