220.●2.postfixの設定(新)●

●2.postfixの設定(新)

※以下ホスト名やドメイン名は自身のサーバの環境に合わせて適切に読み替えてください

実習に入る前にFirewalldは止めておきましょう!!そもそも電源投入時に起動しない設定にしておきましょう!!!

※この資料内に出てくるサーバ名やドメインイン名は例です。
(例えば sv95dom95.kanatech.ac.jp の95や sv74.dom74.kanatech.ac.jp の74など)

●DNSにMXレコードが登録されていることを確認しておきます

[root@sv95 named]# cat /var/named/dom95.kanatech.ac.jp.zone
$TTL 1D
$ORIGIN dom95.kanatech.ac.jp.
@       IN SOA   sv95 root (
                                        20141119        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
      NS         sv95.dom95.kanatech.ac.jp.
      MX  10   mail.dom95.kanatech.ac.jp.
sv95   A           192.168.95.100
mail   A    192.168.95.100
www    A    192.168.95.100


●DNSが起動していることを確認しておきます
(動いていれば再起動、動いていなければ起動する)

[root@sv95 named]# systemctl status named


●MTAがpostfixであることの確認(使用しているメールサーバを確認する)

[root@sv95 mail]# alternatives --config mta

1 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:^C
[root@sv95 mail]#

※postfixになっていればよい。もしエラーが出ていても気にしない。

●postfixの設定

/etc/postfix/main.cf を編集します。

vi /etc/postfix/main.cf

設定・確認すべきパラメータを以下に示します。もちろんコメントは、外してください。

# マシン名のFQDNを指定します。(76行目付近)
myhostname = sv95.dom95.kanatech.ac.jp

#メールサーバのドメイン名を設定(83行目付近)
mydomain = dom95.kanatech.ac.jp


# このパラメータの値が送信メールのドメイン部となります。(99行目付近)
myorigin = $mydomain


# allでネットワークのすべてのホストから要求を受け付けます。(113行目付近)
inet_interfaces - 接続を受け付けるインターフェースの設定
デフォルトではローカル(127.0.0.1)からの接続しか受け付けません
inet_interfaces = all
116行目付近の(inet_interfaces = localhost)をコメントにすること

# Enable IPv4, and IPv6 if supported プロトコルの設定はIPv4だけにします。(119行目付近)
inet_protocols = ipv4

# Postfixがそのマシンで受け取るあて先のドメイン名を指定します。(164行目付近)
164行目をコメントにして165行目を有効にします
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain


# 信頼するネットワークを指定します。(250行目付近)
# subnetを指定すると自マシンのIPのサブネットワークに属するクライアントを信頼します。
250行目を有効にします
mynetworks_style = subnet


# 認証なしでも送信を許可するネットワークを設定します。(264行目付近)
mynetworks = 192.168.0.0/16, 127.0.0.0/8 ← 許可するIPアドレスの範囲を適切に設定


#ローカル配送エージェントが利用するエイリアスデータベースのリストを指定します。(386行目付近)
alias_maps = hash:/etc/aliases


# newaliases コマンドで更新されるエイリアスデータベースの元になるファイルを指定します。(397行目付近)
alias_database = hash:/etc/aliases


# メールボックスの場所を指定します。(419行目付近)
# 配信メールの保存場所は /home/user-name/Maildir/new
home_mailbox = Maildir/


以上で保存。サービスをリスタート。

[root@sv95 ~]# systemctl restart named(必要に応じて)
[root@sv95 ~]#

[root@sv95 ~]# systemctl restart postfix
[root@sv95 ~]#


ログを確認しておくこと
# tail -f /var/log/messages
# tail -f /var/log/maillog

●送信テストを行います

・まずはユーザを作成して(インストール時にすでに作ってありますので必要ないですよね!)

root@sv95 named]# useradd user95
[root@sv95 named]# passwd user95
ユーザー user95 のパスワードを変更。
新しいパスワード:
よくないパスワード: このパスワードは 7 未満の文字列です。
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@sv95 named]#

・mailコマンドで送信します

[root@sv95 named]# mail user95@dom95.kanatech.ac.jp
Subject: test1
これはテストです
.
EOT

・送信されたか確認します

[root@sv95 new]# cd /home/user95/Maildir/new
[root@sv95 new]# ls -al
合計 4
drwx------ 2 user95 user95  68  2月  1 16:36 .
drwx------ 5 user95 user95  36  2月  1 16:36 ..
-rw------- 1 user95 user95 608  2月  1 16:36 1485934589.Vfd01I7c59aM433526.sv95.dom95.kanatech.ac.jp
[root@sv95 new]#
[root@sv95 new]# cat 1485934589.Vfd01I7c59aM433526.sv95.dom95.kanatech.ac.jp
Return-Path: <root@dom95.kanatech.ac.jp>
X-Original-To: user95@sv95.dom95.kanatech.ac.jp
Delivered-To: user95@sv95.dom95.kanatech.ac.jp
Received: by sv95.dom95.kanatech.ac.jp (Postfix, from userid 0)
        id 4D1B4C0FBA07; Wed,  1 Feb 2017 16:36:29 +0900 (JST)
Date: Wed, 01 Feb 2017 16:36:29 +0900
To: user95@sv95.dom95.kanatech.ac.jp
Subject: test1
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <20170201073629.4D1B4C0FBA07@sv95.dom95.kanatech.ac.jp>
From: root@dom95.kanatech.ac.jp (root)
これはテストです

・親のDNSに自機のDNSを登録してもらい他機のホストの名前解決ができるか試します

現状、例えばmail.dom95.kanatech.ac.jpのuser95からmail.dom74.kanatech.ac.jpのuser74にメールを送ろうとしても、
自機のDNSはmail.dom74.kanatech.ac.jpの名前解決が解決できないため、送信できません。

[root@sv95 new]# nslookup sv74.dom74.kanatech.ac.jp
Server:         192.168.95.100
Address:        192.168.95.100#53

** server can't find sv74.dom74.kanatech.ac.jp: NXDOMAIN


他ドメインのMTAにメールを送信する場合、他機のDNSの名前解決が可能な親のDNSに、自機のDNSを登録してもらわなければなりません。

よって自分のドメインの親のドメインである
kanatech.ac.jpドメインのDNS(192.168.112.7)の管理者に自機のDNSの登録をお願いします。

管理者(講師)に登録をお願いしてください!!!

(実は、これまでの実習がうまくできていればすでに登録してあるのでお願いしなくても他の人へメールは送れます)

登録が完了した後、自機のネットワークのDNS設定に親のDNSを追加します。

[root@sv95 ~]# vi /etc/sysconfig/network-scripts/ifcfg-xxxxxxx
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
UUID="c82d0860-00ec-47ff-be76-da67d3f7f443"
ONBOOT="yes"
HWADDR="00:15:5D:5F:01:00"
IPADDR0="192.168.95.100"
PREFIX0="24"
GATEWAY0="192.168.95.254"
DNS1="192.168.95.100"
DNS2="192.168.112.7" ←  親のDNSを追加する
DOMAIN="dom95.kanatech.ac.jp"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
[root@sv95 ~]#

ネットワークを再起動します
[root@sv95 ~]# systemctl restart network
Restarting network (via systemctl):                        [  OK  ]
[root@sv95 ~]#

念のためにDNS検索順を確認します
[root@sv95 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search dom95.kanatech.ac.jp
nameserver 192.168.95.100
nameserver 192.168.112.7  ← 親のDNSが自動的に追加されている
[root@sv95 ~]#

他機のホストが引けるか確認します
[root@sv95 ~]# nslookup sv74.dom74.kanatech.ac.jp
Server:         192.168.112.7
Address:        192.168.112.7#53

Name:   sv74.dom74.kanatech.ac.jp
Address: 192.168.74.100

[root@sv95 ~]#


・他のホストの人にメールを送信して確認します
(他のホストにもpostfixが動いていてユーザが作成されていることが必要です)

試しにsv95からsv74に向けて送ってみます。実習の際は近くの人と送りあってみてください。
[root@sv95 new]# mail user74@sv74.dom74.kanatech.ac.jp
Subject: test95 ←この段階では日本語を入力しないでください。エンコーディングが違うので受け取り側で直接CATで見たとき文字化けします(MIMEヘッダエンコーディング)
これはsv95からsv74に宛てたメッセージです
.
EOT
[root@sv95 new]#

・sv74側で確認する

[root@sv74 new]# pwd
/home/user74/Maildir/new
[root@sv74 new]# ls
1485936381.Vfd01I87c86M137844.sv84.dom84.kanatech.ac.jp
1485936645.Vfd01I87c87M677661.sv84.dom84.kanatech.ac.jp
[root@sv74 new]# cat 1485936645.Vfd01I87c87M677661.sv74.dom74.kanatech.ac.jp
Return-Path: <root@dom95.kanatech.ac.jp>
X-Original-To: user74@sv74.dom74.kanatech.ac.jp
Delivered-To: user74@sv74.dom74.kanatech.ac.jp
Received: from sv95.dom95.kanatech.ac.jp (sv95.dom95.kanatech.ac.jp [192.168.95.100])
        by sv74.dom74.kanatech.ac.jp (Postfix) with ESMTP id 9DB27C0F1634
        for <user74@sv74.dom74.kanatech.ac.jp>; Wed,  1 Feb 2017 17:10:45 +0900 (JST)
Received: by sv95.dom95.kanatech.ac.jp (Postfix, from userid 0)
        id A1678C0FBA10; Wed,  1 Feb 2017 17:11:03 +0900 (JST)
Date: Wed, 01 Feb 2017 17:11:03 +0900
To: user74@sv74.dom74.kanatech.ac.jp
Subject: test95
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Message-Id: <20170201081103.A1678C0FBA10@sv95.dom95.kanatech.ac.jp>
From: root@dom95.kanatech.ac.jp (root)

これはsv95からsv74に宛てたメッセージです
[root@sv74 new]#


うまくいかないときはログを見ましょう
●エラーログの場所

postfix/dovecotのエラーログ出力先は以下のところです

/var/log/messages
/var/log/maillog

●Firewallも見たほうが良いかもしれません

問題なく送信できているようであれば
完了報告のために親DNSの管理者にメールを送ってください。

[root@sv95 new]# mail mitsuya@ns.kanatech.ac.jp
Subject: 名前をいれます
postfix送信メールの設定完了しました。
.
EOT
[root@sv95 new]#

講師側で受信の確認をいたします!


●最後に
postfixが起動時ONの設定になっているか確認してください。


【参考】Maildir形式での運用(以下を再確認してください)
---------------------------------------------------------------------------------------

メールをどこにどのような形式で保存するかを決めなければいけません。
保存形式としては昔から使われているmbox形式がありますが
これは1ファイルにlogファイルみたいな形で複数のメールが保存されます。
最近はMaildir形式という1メール1ファイルで保存する形式が広まりつつあるようです。
mboxはメール配送中にサーバーがクラッシュした場合にすべてのメッセージに影響が出る可能性があるという点と
ファイルをロックする必要がある為ファイルロックの方法が異なるプロセスが動いた場合に不具合が出る可能性が高いといった欠点があります。
mboxと利点としては古くからある形式であり、mailコマンド等の古いアプリケーションでも使用することができます。
Maildir形式の場合mailコマンドを使用することができなくなります。しかし、Maildir内のファイルをcatすればメールを読むことは可能です。
伝統的な保存場所としてはmbox形式で以下のディレクトリに保存されるのが一般的で、mailコマンドなんかも初期設定ではここからメールを読む設定となっているようです。(異なる場所でもmail -fで指定してやればmbox形式ならば読めますがMaildirは読めません)
/var/mail/user
/var/spool/mail/user (ubuntuの場合/var/mailへのシンボリックリンクになっている)

Maildirの場合はユーザーのホームディレクトリに置くのが一般的で新しく届いたメールは以下のディレクトリに1メール1ファイルの形式で保存されます。
/home/user/Maildir/new/
今後一般的になるであろうMaildirの形式で保存することにします。



mail_spool_directory = /var/spool/mail



home_mailbox = Mailbox



home_mailbox = Maildir/




---------------------------------------------------------------------------------------