18
19

More than 5 years have passed since last update.

sendmailの送受信設定、ローカルで送受信テスト(Sendmail, BJD)

Last updated at Posted at 2017-03-25

はじめに

メールサーバーを構築していて、ちゃんと送受信できるのか確かめたいときありますよね。オンプレ環境での構築になると、最初は外との通信もできない状態なのでメールの送受信テスト方法に悩むと思います。そこで、今回は構築するサーバーが外と通信できない状況で、ローカルでメールの送受信をテストする方法を記述します!

やること

  • 送信サーバーA(10.1.102.141)から受信サーバーB(10.1.102.223)に送信

前提

  • DNSは自分のノートPC(BJDを利用)
  • サーバーA,Bは仮想マシン
  • DNSとサーバーA,Bは同一サブネット内にある
  • CentOS7.2
  • Sendmail
  • 受信ドメイン:tttt
  • ホスト名:tttt
  • 受信ユーザー:test
  • 受信アドレス:test@tttt.tttt

BJD(BlackJumboDog)とは

  • Webサーバー、メールサーバー、DNSサーバーなどのサーバーソフトを備えたソフト
  • 今回は、DNSサーバーの機能を使って自分のPCをDNSとして使用します

ダウンロードはこちら→http://forest.watch.impress.co.jp/library/software/blackjmbdog/

メールの送受信に必要なもの

  • 送信先のアドレス
  • アドレスの名前解決をするDNS

今回は下記のようなイメージでメールがやり取りされます。
図1.png

手順

送信サーバーの設定

sendmailの設定は特にないです!w
インストールして起動するだけでメールの送信はできてしまいます。
あとは、DNSの設定をローカルPCに向ければOK!
てことで。。。。

1.もろもろインストール

# yum install sendmail sendmail-cf sendmail-devel mailx

2.起動、自動起動設定

# systemctl enable sendmail
# systemctl start sendmail

3.DNSの設定変更

DNSをローカルPCにします。(BJD)
※最初に、ローカルPCで自分のIPアドレスを調べます。
Windowsであれば、コマンドプロンプトで、ipconfigすれば出てきます。
今回は、10.1.102.200でした。

# vi /etc/sysconfig/network-scripts/ifcfg-ens32 ※変更箇所のみ記載
DNS1=10.1.102.200

4.設定の反映

# systemctl restart network

5.確認

# cat /etc/resolve.conf
# Generated by NetworkManager
nameserver 10.1.102.200 ←★DNSのIPアドレスが記載されていることを確認する

※/etc/resolve.confに直接書いても、ifcfg-ens32の方に違うDNSが書いてあると設定の反映をした際に、うまくDNSが設定できないことがあるので注意すること。

送信メールサーバー完成です!

受信サーバーの設定

1.受信ドメインの設定(/etc/mail/local-host-names)

送信先(受信ドメイン)のアドレスの@以降を最下部に追記します。
この設定をしないと、受信できません!(このドメインでメールが来たら、sendmailが受け取りますという設定)

# vi /etc/mail/local-host-names
tttt.tttt

2.sendmail.mc編集(/etc/mail/sendmail.mc)

いろいろ書き換えていきます。

# vi /etc/mail/sendmail.mc ※変更箇所だけ記載します。
118行目 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,  Name=MTA')dnl ←★Addr=127.0.0.1から、Addr=0.0.0.0に変更。(ローカルアドレス以外からもSMTPを受け付ける設定)
157行目 LOCAL_DOMAIN(`tttt.tttt')dnl ←★受信ドメインを記載

3.設定の反映

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# systemctl restart sendmail

4.受信ユーザーの作成

OSのユーザーで受信するので、受信用のユーザーを作成します。

# useradd test

受信の準備ができました!

BJDの設定

1.DNSサーバーの起動

[オプション]→[DNSサーバー]→[DNSサーバー]→[DNSサーバーを使用する]にチェック→[OK]

WS000002.JPG
WS000003.JPG

2.受信ドメインの追加

[オプション]→[DNSサーバー]→[DNSサーバー]→[ドメインの追加と削除]→[ドメイン名]入力→[追加]→[OK]
WS000000.JPG

3.追加したドメインのレコードを設定

[オプション]→[DNSサーバー]→[DNSサーバー]→[Resource-takahashi-mail.com]→[Type:A(PTR)]→[Name:ドメインを入力]→[Address:受信サーバーのIPアドレス]→[追加]→[OK]

WS000001.JPG
WS000002.JPG

送受信テスト!

1.まずは、名前解決がうまくできるか確認します!

送信サーバー内での操作
# ping 10.1.102.223
PING 10.1.102.223 (10.1.102.223) 56(84) bytes of data.
64 bytes from 10.1.102.223: icmp_seq=1 ttl=63 time=0.504 ms
64 bytes from 10.1.102.223: icmp_seq=2 ttl=63 time=0.251 ms
64 bytes from 10.1.102.223: icmp_seq=3 ttl=63 time=0.215 ms

# ping tttt.tttt
PING tttt.tttt (10.1.102.223) 56(84) bytes of data.
64 bytes from tttt.tttt (10.1.102.223): icmp_seq=1 ttl=63 time=0.512 ms
64 bytes from tttt.tttt (10.1.102.223): icmp_seq=2 ttl=63 time=0.236 ms
64 bytes from tttt.tttt (10.1.102.223): icmp_seq=3 ttl=63 time=0.230 ms

うまく名前解決してそうですね!
ちゃんと送信サーバーが、DNSであるローカルPC(BJD)を見に行って名前解決してくれています!
※ここで躓く際は、ローカルPCのファイアウォールが起動していないか等確認してください!

2.送信します!
送信サーバー内での操作

# mail test@tttt.tttt
Subject: test mail
test
i am takahashi
.
EOT

一応送信できたのか、メールログ見てみましょう。

# tail /var/log/maillog
Mar 25 22:16:11 takahashi-mail sendmail[3230]: v2PDGAYw003230: from=root, size=229, class=0, nrcpts=1, msgid=<201703251316.v2PDGAYw003230@takahashi-mail.com.com>, relay=root@localhost
Mar 25 22:16:11 takahashi-mail sendmail[3231]: v2PDGBSv003231: from=<root@takahashi-mail.com.com>, size=488, class=0, nrcpts=1, msgid=<201703251316.v2PDGAYw003230@takahashi-mail.com.com>, proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1]
Mar 25 22:16:11 takahashi-mail sendmail[3230]: v2PDGAYw003230: to=test@tttt.tttt, ctladdr=root (0/0), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30229, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (v2PDGBSv003231 Message accepted for delivery)
Mar 25 22:16:17 takahashi-mail sendmail[3233]: v2PDGBSv003231: to=<test@tttt.tttt>, ctladdr=<root@takahashi-mail.com.com> (0/0), delay=00:00:06, xdelay=00:00:06, mailer=esmtp, pri=120488, relay=tttt.tttt. [10.1.102.223], dsn=2.0.0, stat=Sent (v2PDGC6p024499 Message accepted for delivery)

dsn=2.0.0, stat=Sentになっているので送信できてそうです!

※もし、dsn=5.2.1Host unknownになった場合は、BJDでの設定が誤っているので確かめてください・・・!!

受信サーバー内での操作
3.受信できたか確認します!

# tail -n 30 /var/spool/mail/test
From root@takahashi-mail.com.com  Sat Mar 25 22:16:17 2017
Return-Path: <root@takahashi-mail.com.com>
Received: from takahashi-mail.com.com ([10.1.102.141])
        by takahashi-mail.com (8.14.7/8.14.7) with ESMTP id v2PDGC6p024499
        for <test@tttt.tttt>; Sat, 25 Mar 2017 22:16:17 +0900
Received: from takahashi-mail.com.com (localhost [127.0.0.1])
        by takahashi-mail.com.com (8.14.7/8.14.7) with ESMTP id v2PDGBSv003231
        for <test@tttt.tttt>; Sat, 25 Mar 2017 22:16:11 +0900
Received: (from root@localhost)
        by takahashi-mail.com.com (8.14.7/8.14.7/Submit) id v2PDGAYw003230
        for test@tttt.tttt; Sat, 25 Mar 2017 22:16:10 +0900
From: root <root@takahashi-mail.com.com>
Message-Id: <201703251316.v2PDGAYw003230@takahashi-mail.com.com>
Date: Sat, 25 Mar 2017 22:16:10 +0900
To: test@tttt.tttt
Subject: test mail
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

test
i am takahashi

無事に届いていました!!

おわりに

上記で行った設定は最低限の設定です。
セキュリティも担保しつつ、メールも使ってサービスとして運用したい!といった場合には、上記での設定だけだとまずいです・・・!

この設定だと25番ポートを使用していますが、セキュリティを気にするのであればサブミッションポート(587番ポート)を利用する設定を行わなければなりません!
そのためには、サーバー証明書を使用する設定や、認証機能を持たせる設定等を行う必要があります。

また、一般的にはメーラーも使うようになるはずなので、そのあたりの設定もしないといけません!

セキュリティのところはあまりやったことがないので、今度調べてみます!
postfixの方が分かりやすいですよねw

18
19
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
18
19