SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC102】Linuxにおけるメール管理 LPICで学ぶLinux10

Linuxにおけるメール配送

以下に全体イメージを載せます。

f:id:wantanBlog:20201225001547p:plain

■SMTP
Simple Mail Transfer Protocol。
標準的なメール転送プロトコル。通常ポートは25番ポートが使用される。

■MTA
Mail Transfer Agent(メール転送エージェント)。
SMTPで受け取った電子メールを転送、受信する。

■MDA
Mail Delivery Agent(メール配送エージェント)。
MTAによって振り分けられた電子メールを受信者に配送する。
一般的にはMDAとセットになっていることも多いが、セットになっている場合にはメールサーバ機能のことをMTAと総称するのが通例。

■MUA
mail user agent(電子メールクライアント)。
ユーザがメールを送受信するために使用するソフトウェア。

試験的にはMUAの基本コマンドや代表的なMTA辺りが重要になるか。

mail関連の基本コマンド

MTAの前にコマンドライン上で実行可能な標準のメールコマンドについて確認しておきます。
実践的にどの程度使う機会があるのかは分からないところですが、試験的には一定の出題があってもおかしくなさそうです。

mail

mailコマンドはコマンドライン上でメールの送受信を行うコマンドです。
mailコマンドが存在しない場合には、mailxパッケージをインストールします。

・RHEL系のインストール例

[root@localhost wantan]# yum install mailx

・mailコマンドによるメール送信
以下の例では「root」ユーザから「wantan」ユーザに対してメールを送信しています。
「-s」を付与してメールタイトルを入力し、その後ろに宛先(今回の場合はユーザ名、メールアドレスでも可)を入力、次行以降にメールの本文を記入していきます。
本文の終了として「.」のみを入力します。

[root@localhost wantan]# mail -s testmail wantan
Hello mail.
.
EOT

・受信メールの確認
mailコマンドをオプションなしで実行することで、送受信メールを確認することができます。
以下では「wantan」ユーザで受信メールを確認しています。

[wantan@localhost mail]$ mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/wantan": 1 message 1 unread
>U  1 root                  Wed Dec 23 23:39  19/630   "testmail"
& 1
Message  1:
From root@localhost.localdomain  Wed Dec 23 23:39:48 2020
Return-Path: <root@localhost.localdomain>
X-Original-To: wantan
Delivered-To: wantan@localhost.localdomain
Date: Wed, 23 Dec 2020 23:39:47 +0900
To: wantan@localhost.localdomain
Subject: testmail
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@localhost.localdomain (root)
Status: RO

Hello mail.

ファイル自体は私の設定では以下に格納されていました。

[wantan@localhost mail]$ cd /var/mail/
[wantan@localhost mail]$ ll
合計 8
-rw-------. 1 root     mail  702 1011 21:42 root
-rw-rw----. 1 testuser mail    0 1120 00:15 testuser
-rw-rw----. 1 wantan   mail 1256 1223 23:56 wantan
mailq

mailqメールキューに溜まったメールを確認することができます。
メールが正常に送信された場合には溜まらないので、以下ではメールサーバであるpostfixを停止させmailコマンドで送信しています。

・postfixの停止とメール送信

[root@localhost mail]# systemctl stop postfix
[root@localhost mail]# mail -s mailqtest wantan
mailq test.
2
.
EOT

・mailqコマンドでメールキューを確認

[root@localhost mail]# mailq
postqueue: warning: Mail system is down -- accessing queue directly
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
1AF5020C0C79      293 Wed Dec 23 15:01:47  root
                                         wantan

-- 0 Kbytes in 1 Request.

メールの転送

対象のサーバに届いたメールを別の宛先へと転送を行うための転送設定について学習します。

/etc/aliases

まず一つ目が/etc/aliasesファイルです。
こちらのファイルは全体のメールに対して設定を行うことができます。

[root@localhost home]# cat /etc/aliases
***一部抜粋****
bin:            root
daemon:         root
adm:            root
lp:             root
sync:           root
shutdown:       root
halt:           root

上記では、前半部分に書かれた宛先(ユーザ)のメールが受信された場合、後半に書かれた宛先(root)に転送することになります。

試してみます。

・daemonユーザにメール送信

[wantan@localhost ~]$ mail -s aliastest daemon
to daemon.
.
EOT

・rootユーザのメールボックス確認

[root@localhost mail]# tail -20 root
--E88BF10D2D2A.1608814753/localhost.localdomain--

From wantan@localhost.localdomain  Thu Dec 24 22:25:24 2020
Return-Path: <wantan@localhost.localdomain>
X-Original-To: daemon
Delivered-To: daemon@localhost.localdomain
Received: by localhost.localdomain (Postfix, from userid 1000)
        id 8FB1210D2D2C; Thu, 24 Dec 2020 22:25:24 +0900 (JST)
Date: Thu, 24 Dec 2020 22:25:24 +0900
To: daemon@localhost.localdomain
Subject: aliastest
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20201224132524.8FB1210D2D2C@localhost.localdomain>
From: wantan@localhost.localdomain (wantan)

to daemon.

確かにdaemon宛てのメールはrootが受信していることが分かります。

また、/etc/aliasesファイルを編集した場合、即時反映されるわけではないのでnewaliasesコマンドで設定反映を行う必要があります。

[root@localhost mail]# newaliases
~/.forward

全体の設定ができるaliasesファイルに対して、個人の設定を行うには「~/.forward」ファイルを使用します。
特徴としては即時反映されるためコマンドいらずなのと、当該ユーザに送られてきた転送先を設定するものなので、単に転送先の羅列になります。

以下は新規に作成してみた例です。

[wantan@localhost ~]$ vim /home/wantan/.forward

・ファイルの中身

# forwardfile for wantan
testuser
root

LinuxにおけるMTA

sendmail

sendmailはLinuxシステム上で古くから使用される有名なMTAの一つです。
現在のディストリビューションでは、MTAとして使用されることは少なく、後述するMTAでもコマンドが使用できるように残されているケースが多いようです。
試験的にも同様の認識で問題なさそうです。

postfix

RHEL系OSなどの標準MTA。
sendmailコマンドと互換性を保ちながら処理が高速化されている(らしい)。

細かいことはあまり試験的には重要ではなさそうなので軽くいきます。

・設定ファイル
/etc/postfix/main.cf

[root@localhost log]# ll /etc/postfix/main.cf
-rw-r--r--. 1 root root 27176  41  2020 /etc/postfix/main.cf

・標準メールボックス
/var/spool/mail/にユーザごとのファイルが作成され、そこに送受信メールが追記されていく感じ。
sendmailとかもデフォルトでは同じっぽい。

[root@localhost mail]# ll /var/spool/mail/
合計 16
-rw-------. 1 root     mail 5053 1224 23:06 root
-rw-rw----. 1 testuser mail 1382 1224 23:06 testuser
-rw-rw----. 1 wantan   mail 1899 1224 22:00 wantan
exim

Debian系OSなどの標準MTA。
私はDebian系OSはほぼ使ったことがないので、本当に噂にしかきいたことがないレベル。

非常にきめ細かい設定をわかりやすく行える。様々なメールサーバーの色々な要求を満たすメールポリシーを柔軟に設定する事に、非常に向いている。

引用元:Exim - Wikipedia

とのこと。


ーーーーーーーーーーーーーーーーー

・前回(第九回)
www.wantanblog.com

・次回(第十一回)
www.wantanblog.com