LoginSignup
4
4

More than 3 years have passed since last update.

Vagrant + VirtualBox + CentOS 7 + Postfix + Dovecotでメールサーバを構築してメール送信のテストを行う

Last updated at Posted at 2019-06-18

概要

VagrantとVirtual Boxを用いて,CentOS7上にメールサーバを構築する

この手順では以下の3つのことを目的とする

  • 仮想マシン(CentOS 7)上でメールの送受信,閲覧ができるメールサーバを構築する
  • バーチャルドメインを使用したメールの送受信,閲覧
  • メーリングリストを用いたメールの送受信,閲覧

注意:メールサーバ構築の手順を一通りさらうことを目的にしており,セキュリティについては一切考慮していないため,公開しないでください.

環境

仮想化ツール:Vagrant,Virtual Box
仮想OS:CentOS7

使用ソフトウェア

  • Postfix (SMTP)
  • Dovecot (IMAP)

使用するユーザー,ドメイン

テスト用ユーザー

  • user1
  • user2

テスト用サーバドメイン(mydomain)

  • originaldomain.mail.test

テスト用バーチャルドメイン

  • virtualdomain.test

テスト用メーリングリスト

使用コマンド

  • vim
  • su
  • useradd
  • passed
  • telnet
  • chkconfig
  • servise
  • chmod

作成手順

box作成

CentOS7のboxを作成

vagrant init centos/7
vagrant up
vagrant ssh

仮想マシン環境設定

vimの導入(必要な場合のみ)

su root
yum -y install vim-enhanced
exit

SMTP (postfix) の初期設定

起動して,バージョンの確認

service postfix start
postconf | grep mail_version

自動起動の設定
cf. chkconfigまとめ - Qiita

chkconfig postfix on

バックアップを取る

sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.org

設定ファイルを編集する

sudo vim /etc/postfix/main.cf

postfixの設定変更(localテスト用)

設定ファイルを編集する

sudo vim /etc/postfix/main.cf

各項目を設定変更する
cf. Postfixの使い方について調べたよ - 新人Webエンジニアの記録。

#自身のドメイン設定
mydomain = originaldomain.mail.test
myorigin = $mydomain

#ローカルホスト以外からも受け付ける
inet_interfaces = all

#ipv4しか使用しないため
inet_protocols = ipv4

#宛先ドメインに自身のドメインを追加
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

#信頼するネットワークの指定
mynetworks = localhost

#メールボックスの形式設定
home_mailbox = Maildir/

postfixの再起動

service postfix restart

アカウント作成(テスト用)

user1というアカウントを作成する

sudo useradd user1
sudo useradd user2

/var/spool/mailの権限編集
(user1,user2が書き込みできるようにする)

sudo chmod 777 /var/spool/mail

パスワードの設定

su root
passwd user1
passwd user2
exit

localテストの実施

Telenetを使用してlocalでメールのやり取りができるか確認する.

telnetのインストール

su root
yum -y install telnet
exit

ここまで終了 2019/05/13

テスト

ローカルホストの25番ポートに接続

telnet localhost 25

220 localhost.localdomain ESMTP Postfixを表示されてコマンドに入る
入力

helo localhost 

正常な出力 250 localhost.localdomain

入力:送信元アドレス

mail from: user1@originaldomain.mail.test

正常な出力 250 2.1.0 Ok

入力:宛先アドレス

rcpt to: user1@originaldomain.mail.test

正常な出力 250 2.1.5 Ok

本文入力の開始

data

メール本文を入力

Hello, mail!
this is mail test.
text message
text message
text message
text message
good bye!

本文の終了コマンド

<改行>.<改行>

正常な出力:250 2.0.0 Ok: queued as ・・・

入力:telnet終了

quit

正常な出力: 221 2.0.0 Bye

テスト実行後,/home/user1/new/Maildirディレクトリが存在することを確認する.

su root
cd /home/user1/new/
ls

IMAPサーバ

POP3, IMAPサーバであるDovecotを導入する
今回はIMAPサーバとして利用する

IMAPサーバ(Dovecot)のインストール

インストール

su root
yum -y install dovecot
exit

起動

service dovecot start

自動起動

chkconfig dovecot on

Dovecotの設定変更(仮想マシン内のテスト用)

sudo/etc/dovecot/dovecot.confを編集

#使用するプロトコル列挙
protocols = imap pop3 lmtp

設定反映のため再起動する

service dovecot restart

talnetを使ったIMAPサーバのテスト

SMTPのテストで送信したメールをIMAPをしようして閲覧する

telnet localhost 143

ログイン

1 login user1 [password]

ホームディレクトリの一覧取得

2 list "" *

INBOXの中を確認する

3 select INBOX

メッセージ一覧が表示される

メールを読む

4 fetch 1 body[]

メッセージ1番の本文が表示される

終了

5 logout

バーチャルドメイン作成

mydestinationに新しいドメインを追加する.

(ただし,方法では,user1@virtualdoamin.testに送信しても,user1@originaldomain.mail.testと同様の場所にポストされる)

/etc/postfix/main.cfを編集

mydestination = $myhostname, localhost.$mydomain, localhost, originaldomain.mail.test, virtualdomain.test

エイリアスの作成

Listtestアカウントに送ると,user1,user2に送るような設定

/etc/ailiasesを編集

# mailing list
listtest: user1@originaldomain.mail.test, user2@virtualdomain.test

DBを更新
sudo newaliases


参考サイト

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4