概要
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