mailsystem-1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
|[[Home]] | [[Prev>webserver-3]] | [[Next>mailsystem-2]] |
&size(24){2016/12/16(Fri) 第10回 メールサーバー(1)};
#contents
-----
*電子メールの配送の概略
電子メールを相手に送って読まれるまでには、いくつかのサー...
のプログラムが関与することになる。典型的な場合、以下のよ...
理をそれぞれ担当するプログラムがある。
1) メールの作成(及び送信側メールサーバーへの転送)
2) 送信側メールサーバー(送信の受付と受信側メールサーバー...
3) 受信側メールサーバー(受け取りとユーザーのメールボック...
4) メールボックスから受信者の端末への転送(読み出し)
5) 受信者の端末での表示など
ユーザーと直接やりとりしながら(1)と(5)の部分を担当...
は MUA (Mail User Agent) と呼ばれている。端末上のプログラム
(thunderbird など)が担当することが多いが、ウェブメール...
上のブラウザーとウェブサーバー上のプログラムが協力してこ...
ることになる。
いわゆるメールサーバー上のプログラムは(2)から(4)の...
ことになるが、(2)と(3)を担当する「転送サーバー」(MT...
Transfer Agent)と、(4)の受信者の端末からの読み出しを扱...
サーバー」(Message Derivery Agent) にわかれている。
それぞれの段階を担当するプログラムにはいろいろな種類があ...
れたプロトコルに従って通信することで、お互いに送受信でき...
ている。
標準的に用いられている通信方法は
(1)と(2)、(2)と(3)の間の通信:
>
端末と送信側サーバー間、送信側と受信側のサーバー間は、ど...
はネットワークを経由した通信が必要になる。この通信には SM...
トコルを使うことが多い。基本的に受信側のサーバープログラ...
ト(通常は 25 番ポート)で待ち受けていて、送信側からこの...
することで通信を行う。
<
(3)と(4)の間:
>
どちらも同じ計算機(受信側のメールサーバー)の上で動いて...
その場合(3)のサーバーはメールをファイルシステム(ハー...
ど)に書き込み、(4)のサーバーはそれを読み出す、という...
ることができる。ファイルの形式としては、ファイルを一つの...
て複数のメールを保存する方法と、ディレクトリを受信箱をみ...
ルを一つのファイルの形で保存する方法とがあり、サーバーの...
せてどちらもよく使われている。
<
(4)と(5)の間:
>
受信者の端末とメールサーバー間の通信は、受信者の端末側か...
上の配送サーバープログラムに接続してメールを読み出すとい...
IMAP4 あるいは POP3 というプロトコルがおもに使われており...
理を担当する配送サーバープログラムがある。POP3 用のサーバ...
IMAP4 用のサーバーは 143 番のポートを使う。
<
>
基本的に POP は受信したメールは端末側に転送して、端末上で...
前提としているが、IMAP はサーバー上にメールを残しておき既...
するための機能も持っている。
<
>>
pop や imap でメールボックスの内容を読み出す際には、各ユ...
ためにパスワードの情報が送信される。また送信サーバへの接...
限定せずに認証を行う形で運用する場合には、ここでもパスワ...
されることになる。こういったパスワード等を含む情報が暗号...
で外部のネットワークを流れるのは望ましくないので、外部の...
由でこれらの認証を行う場合には SSL による暗号化がよく使わ...
<<
>>
ただしサーバー間の転送については暗号化されていない通信が...
合が多いので、pop/imap の暗号化を使っていても暗号化されな...
トワーク上を流れてしまう可能性は結構高い。
<<
**送受信の制限
電子メールの利用が一般化するとともに、電子メールのシステ...
ルス入りのメールや不必要な広告メールを配送しようとするも...
元々悪意のあるメール送信者の存在はあまり想定せずに作られ...
迷惑メールを完全にシャットアウトするのは原理的にも難しい...
>
主にメールサーバーがメールを受け付ける際に、
必要条件を満たさないメールの受付を拒否することで迷惑メー...
<
という形の対策が一般的にとられている。
(1)から(2)への転送と、(2)から(3)への転送で、...
サーバーがメールを受け付けることになるが、その際にどのよ...
け付けるべきか、という基準はそれぞれ異なっている。
電子メールの仕組み上(3)の受信側のサーバーとして働くプ...
では迷惑メールを排除するのはなかなか難しい。通常の運用で...
からしか受け取らないという設定にするわけにはいかないこと...
ラックリストを作成するなどして迷惑メールをはじく努力は行...
の、正しいアドレスに送られてきたメールは基本的には受け取...
しまう。プロバイダ等のメールサービスでは受け取ったメール...
惑メールと思われるものを自動で判定して迷惑メールフォルダ...
しているが、必要なメールを迷惑メールと判定してしまう例が...
全に避けるのは難しい。
一方(2)の送信側のサーバーとして働くプログラムでは、迷...
付けて他のサーバーに転送してしまうことはある程度さけるこ...
こで、現在の電子メールのシステムでは、身元不明のメールを...
わないように送信者を何らかの形で限定するような設定が要求...
切な制限をかけていないサーバーを経由したメールは受け取り...
とが多い。
ややこしいことに、(2)と(3)はどちらも 25 番ポートの ...
ルを使って行われてきた。そのため
-送られてきたメールの宛先が、自分が担当するドメインのメー...
合は(3)のサーバーとして振る舞い、アドレスが有効であれ...
のメールを受け付ける
-それ以外の場合には(2)のサーバーとして振る舞い、送信し...
IPアドレスが自分の組織内などでない限り受け取りを拒否する
という設定が一般的になっている。
実際には(2)のサーバーとしてメールを受け付ける基準をI...
で判定すると不便なことも多い。そこで、「送信受付」を別の...
送信者のIPアドレスを特に制限しない代わりにパスワード等...
(認証)を行い、アカウントを持っている送信者からのメール...
るという方法がよく使われるようになってきている。
>
「メールの送信の前に POP で接続してそのサーバーにアカウン...
るユーザーであることを確認した場合のみ、よそへの送信(転...
る」という POP before SMTP という方法もあり、以前よく用い...
<
>>
ネットワークが未発達だった時代には電子メールのシステムは...
式によそからよそへのメールも転送することでメールを届けて...
り、常時接続しているとは限らない相手や、直接の通信ができ...
てもメールを届けることができるというメリットがあった。し...
分に無関係のメールの転送を受け付ける状態でメールサーバー...
トに接続するのは、迷惑メールの配布を手助けすることになっ...
けなければならない。
<<
>>
無制限に転送を受け付ける状態のサーバーをネットワークに接...
に迷惑をかけると同時に open relay server としてブラックリ...
て受信拒否の対象となることも多い。登録されると自分のとこ...
を他所に送ることができなくなってしまうのでメールサーバー...
果たせなくなってしまう。
<<
*postfix の動作確認
まずはサーバープログラムはデフォルトで一応動作してはすな...
をしてみる。
telnet コマンドを使って、直接 postfix と対話して、テスト...
みよう。
$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 linux00.cl.math.sci.osaka-u.ac.jp ESMTP Postfix
HELO test
250 linux00.cl.math.sci.osaka-u.ac.jp
MAIL from: chawanya@math.sci.osaka-u.ac.jp
250 2.1.0 Ok
RCPT To: chawanya
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: TESTMAIL
To: dummy
Testmail.
.
250 2.0.0 Ok: queued as 1E8D4C004F
quit
221 2.0.0 Bye
Connection closed by foreign host.
新しいメールが /var/spool/mail/chawanya にあります
$
**メールの配達の確認
メールサーバーが受け取ったメールは、宛先のアカウントの「...
に記録される。デフォルトの設定では、これは /var/spool/mai...
ント名)というファイルになっている。
そこで、
ls /var/mail
として、/var/spool/mail/ ディレクトリにあるファイル一覧を...
送信した宛先のアカウント名のファイルができていたら(例え...
/var/spool/mail/chawanya" などとして)そのファイルの中身...
と。
また、メールサーバーはメールを処理した記録を /var/log/mai...
イルに残すようになっている。これも確認しておくこと。
$ sudo tail -20 /var/log/maillog
...(中略)...
Dec 5 12:06:27 linux00 postfix/smtpd[12478]: 1E8D4C004F...
Dec 5 12:06:47 linux00 postfix/cleanup[12491]: 1E8D4C00...
5030627.1E8D4C004F@linux00.cl.math.sci.osaka-u.ac.jp>
Dec 5 12:06:47 linux00 postfix/qmgr[2080]: 1E8D4C004F: ...
.osaka-u.ac.jp>, size=404, nrcpt=1 (queue active)
Dec 5 12:06:47 linux00 postfix/local[12492]: 1E8D4C004F...
th.sci.osaka-u.ac.jp>, orig_to=<cha>, relay=local, delay...
.03, dsn=2.0.0, status=sent (delivered to mailbox)
Dec 5 12:06:47 linux00 postfix/qmgr[2080]: 1E8D4C004F: ...
Dec 5 12:06:52 linux00 postfix/smtpd[12478]: disconnect...
$
**端末からのメールの読み書き
端末から直接メールの送受信をするためのコマンドも一応使え...
$ mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/cha": 1 message
> 1 T. Chawanya Fri Dec 5 12:20 20/701 "...
& mail
To: chawanya
Subject: test from mail command
test
.
EOT
& exit
のようにメールを送信したりできる。テスト用には知っている...
ト用途以外で使うことはなさそうなので、ここでは紹介するだ...
*postfix の基本的な設定
デフォルトの状態では、このメールサーバーはネットワークか...
け取らない設定になっている。というわけで、基本的にデーモ...
カウント (root) 宛の動作報告のために動いているような状態...
送信に関しては mail コマンドなどで作成したメールをネット...
する仕事はしてくれる。ただし設定をちゃんとしておかないと...
の設定によっては受け取りを拒否される場合もある。
というわけで、一応ここではあるドメイン(メールアドレスの ...
を担当するメールサーバーという形で postfixの設定 をやって...
**メールのドメインとホスト名の関係
メールアドレスの @ の右側の部分がメールのドメイン名になる...
名とよく似た形をしている。実際どちらも DNS の検索システム...
メールのドメイン名を検索するとそのメールを送るべきホスト...
そのIPアドレス)が分かるようになっている。
メールのドメイン名とホスト名は別ものとして区別されている...
kitsune-udon.net と tanuki-soba.net というホスト名のマシ...
て、 aburage@kitsune-udon.net 宛のメールは tanuki-soba.ne...
tenkasu@tanuki-soba.net 宛のメールは kitsune-udon.net が...
設定することもできる。
実際、大学で学生や職員用のメールサーバーの運用を外部に委...
な場合、例えばXXX@ecs.osaka-u.ac.jp のアドレスのメールは...
ては阪大なのだが実際の処理は阪大内のサーバーではなくて委...
理しているサーバーに送られるようになっている。
>
ただし、メールのドメイン名としての登録が特にされていない...
ホスト名をもつマシンがあればそちらにメールを送るというこ...
ので、メールのドメイン名とホスト名が完全に無関係というわ...
<
実習では、それぞれが使っているコンピューターのホスト名と...
はじまる名前を使っているが、ここではホスト名とメールドメ...
別して扱うため、メールのドメイン名としては mail** で始ま...
担当するという形で設定をしていくことにする。(** のところ...
同じ2桁の数字を入れる。)
実習室内のネームサーバーは dareka@mail**.cl... 宛のメール...
宛先のホスト名として linux**.cl... を答えるように設定して...
スト上のメールサーバーの設定をすれば(部屋の中限定だ
が)****@mail**.cl... のメールアドレスを使ってメールのや...
ようになるはずだ。
user@linuxXX $ dig mail00.cl.math.sci.osaka-u.ac.jp MX
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> mail00.cl....
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35568
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mail00.cl.math.sci.osaka-u.ac.jp. IN MX
;; ANSWER SECTION:
mail00.cl.math.sci.osaka-u.ac.jp. 3600 IN MX 10 linux00....
;; AUTHORITY SECTION:
cl.math.sci.osaka-u.ac.jp. 3600 IN NS cl.math.sci.osaka-...
;; ADDITIONAL SECTION:
linux00.cl.math.sci.osaka-u.ac.jp. 3600 IN A 192.168.125...
cl.math.sci.osaka-u.ac.jp. 3600 IN A 192.168.125.14
;; Query time: 1 msec
;; SERVER: 192.168.125.14#53(192.168.125.14)
;; WHEN: 金 12月 09 12:18:47 JST 2016
;; MSG SIZE rcvd: 131
この様に設定する場合、各マシンの側でも mail** 及び linux*...
メイン名のメールも受け取る用に設定しておく必要がある。
**メールボックスの変更
最初の状態ではメールサーバーは XXX のメールを /var/spool...
うファイルに書き込むように設定されている。これは複数のメ...
イルに記録される形式となっていて、新しく到着したメールの...
の末尾に追加されていく。そのため、たくさんのメールのうち...
選んで消去するといった操作にはあまり向いていない。
受け取ったメールを端末にダウンロードして、サーバー上のメ...
消してしまうような使い方をする場合にはそれほど問題ないが...
ルを使う場合などは、サーバー上にメールをおいたままで管理...
こういった使い方をする場合には、それぞれのメールを別々の...
記録する方式の方が向いている。
ここでは各ユーザーのホームディレクトリに Maildir という名...
リを作り、その中にメール1通ごとに別ファイルとして保存する...
配達するような設定もしておくことにする。
**設定ファイルの編集
このシステムのメールサーバーは postfix というものを使って...
バーの設定ファイルは /etc/postfix というディレクトリに置...
このディレクトリ内の main.cf というファイルが文字通り主な...
いうことになっている。ホスト名やドメイン名、及びメールボ...
る設定変更は以下のようになる。
$ cd /etc/postfix
$ sudo cp main.cf main.cf.distrib
$ sudo nano main.cf
などとして編集してみること。linux00, mail00 などは適宜自...
マシンに合わせて変更すること。
以下は linux00 上で設定ファイルを書き換えた後で、
$ diff main.cf.distrib main.cf
というコマンドで変更部分を表示した結果を示してある。
>
diff コマンドは2つのファイルを比較して違う部分を表示す...
"<"の行が書き換え前、">"の行が書き換え後のファイルの内容...
<
76a77
> myhostname = linux00.cl.math.sci.osaka-u.ac.jp
83a85
> mydomain = mail00.cl.math.sci.osaka-u.ac.jp
99c101
< #myorigin = $mydomain
---
> myorigin = $mydomain
113c115
< #inet_interfaces = all
---
> inet_interfaces = all
116c118
< inet_interfaces = localhost
---
> #inet_interfaces = localhost
119c121
< inet_protocols = all
---
> inet_protocols = ipv4
164c166
< mydestination = $myhostname, localhost.$mydomain, loca...
---
> #mydestination = $myhostname, localhost.$mydomain, loc...
167a170
> mydestination = $myhostname, $mydomain, localhost, loc...
419c422
< #home_mailbox = Maildir/
---
> home_mailbox = Maildir/
自分のホスト名等に合わせてファイルを編集したら
$ sudo systemctl restart postfix
あるいは
$ sudo service postfix restart
として postfix を再起動して新しい設定が有効になるようにす...
>
$ sudo tail -20 /var/log/maillog
とするとメール関係のログを見ることができる。postfix が無...
いるかどうか、一応確認しておくこと。
<
**変更した設定の確認
postfix を再起動したら、その状態で自分にメールを送ってみ...
自分のアカウントを chawanya としているが、それぞれ自分の...
替えること!!)
$ mail chawanya
Subject: TEST for new configuration
TEST
.
EOT
$
新しい設定が有効になっていれば、このメールは /var/spool/m...
イルに書き込まれるのではなく、ホームディレクトリの下にある
Maildir/new/ というディレクトリに結構長い名前のファイルと...
るはずだ。
$ ls -l ~/Maildir/new
合計 8
-rw------- 1 chawanya chawanya 616 12月 5 18:06 2014 13...
-rw------- 1 chawanya chawanya 636 12月 5 18:14 2014 13...
$
このファイルの中身を見てみると
$ cat 1386234882.Vfd02I12e00efM197000.linux00.cl.math.sc...
Return-Path: <chawanya@mail00.cl.math.sci.osaka-u.ac.jp>
X-Original-To: chawanya
Delivered-To: chawanya@mail00.cl.math.sci.osaka-u.ac.jp
Received: by linux00.cl.math.sci.osaka-u.ac.jp (Postfix,...
id 22B8DC09CA; Fri, 5 Dec 2014 18:14:42 +0900 (JST)
Date: Fri, 05 Dec 2014 18:14:42 +0900
To: chawanya@mail00.cl.math.sci.osaka-u.ac.jp
Subject: TEST for new configuration
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20141205091442.22B8DC09CA@linux00.cl.math.s...
From: chawanya@mail00.cl.math.sci.osaka-u.ac.jp (T. Chaw...
TEST
のように差出人と宛先のドメインが新しく設定されたドメイン...
されているはずなので、その点も確認しておくこと。
>
Maildir ディレクトリ内にはさらに new, tmp, cur というサブ...
<
**ログファイルの確認
上記の送信テストがうまくいかなかった場合はもちろん、うま...
/var/log/maillog の内容は一度のぞいてみて確認しておくこ...
(ちなみにこのログファイルのファイル名は、 /etc/rsyslog....
*imap サーバーのインストール
一応メールは配送されるようになったものの、今のところメー...
は cat コマンド等で直接ファイルを読む必要がある。これでは...
メーラーソフトウェアから(必要であれば)ネットワーク越し...
ルが読めるよう、配信用のサーバープログラム(IMAP と POP ...
るサーバープログラム)も動かすように設定してみる。
インストールは
$ sudo yum install dovecot
のように入力する
設定ファイルは特に何も変更しない状態でも一応動作するが、...
ipv6 及び pop の機能については外しておくことにする。
/etc/dovecot/dovecot.conf の20行め付近の部分に、下の pr...
# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = imap
# A comma separated list of IPs or hosts where to listen...
# "*" listens in all IPv4 interfaces, "::" listens in al...
# If you want to specify non-default ports or anything m...
# edit conf.d/master.conf.
#listen = *, ::
listen = *
その後
$ sudo systemctl restart dovecot
として imap サーバーを再起動しておく
IMAP で接続(ログイン)するためには、ログインしようとして...
の受信箱(ディレクトリ)が既に存在している必要がある。
メールをディレクトリに配送するよう
に設定したあとでメールを受信すると自動的に作成されるので...
を自分に送るのが楽だろう。
一応このディレクトリは自分で作成することもできる。その場合
$ mkdir -p ~/Maildir/{cur,tmp,new}
$ chmod -R og-wrx ~/Maildir
のように、自分以外のアカウントではメールを読めないように...
>
Maildir ディレクトリは所有者が受取人(じぶんのホームディ...
には自分のアカウント)になっていないとメールの読み書きで...
しまう。
$ ls -l ~uketorinin/Maildir
でディレクトリの所有者を確認してみること。うっかり sudo -...
権限を持った状態で作業していると所有者が root の状態で作...
$ sudo chown -R uketorinin:uketorinin ~uketorinin/Maildir
のようにして、サブディレクトリも含めディレクトリ全体の所...
なるように設定しなおしておくこと
<
*evolution を使った送受信のテスト
一応ここまでで、メールサーバーとして一応の動作はするよう...
ずだ。ということで、メーラーソフトウェア(evolution) を使...
受信ができるかどうかを試してみることにする。(とりあえず...
トメールで試してみる)
$ sudo yum install evolution
として evolution をインストールする。その後
$ evolution &
(あるいは左上メニューの、アプリケーション→オフィス から...
として起動すると、最初にアカウントの設定画面が出てくるは...
#ref(evolution-setup00a.png);
とりあえずアカウントの設定が出てくるまでは特に入力するこ...
アカウントアシスタントのところでは、メールアドレスを入力...
#ref(evolution-setup02a.png);
次に(受信用の)サーバーの設定をする。
-サーバー種別は IMAP+
-サーバーは localhost
-ポート番号は 143
-ユーザー名は自分のアカウント名
-暗号化はしない
-認証方法はパスワード
としておく
#ref(evolution-setup03a.png);
#ref(evolution-setup04a.png);
次に新着メールのチェックや購読フォルダーなどの設定が出て...
り特に変更なしでよいだろう。
その次に送信メールサーバーの設定がでてくる。
-サーバー種別は SMTP
-サーバーは localhost
-ポート番号は 25
-暗号化はしない
という設定で次に進む。
#ref(evolution-setup05a.png);
最後にアカウントを識別するための名前を適当に設定する。
#ref(evolution-setup06a.png);
設定が無事に終わったら、メインの画面が出てくる。
上で端末から自分宛に送ったテストメールが受信箱の中にある...
さらに新しくメールを作成してみて、自分のアカウント宛にメ...
みよう。上手くいっていれば受信ボタンをおすと、送信したメ...
れるはずだ。
*(余裕があれば)EPEL レポジトリの登録
centOS (を含めた redhat のディストリビューションと互換性...
のディストリビューション)を対象として、いろいろなソフト...
コマンドを使って簡単にインストールできるように準備された...
がいくつかある。
OS をインストールしたデフォルトの状態で利用できるパッケ...
ていないソフトウェアでも、よく使われているものについては...
のレポジトリを登録することで yum コマンドでのインストー...
レポジトリを追加すると利用できるパッケージが多くなり便利...
よってはパッケージ同士のバージョンの不整合などでトラブル...
もある。
追加のレポジトリにはいろいろなものがあるが、redhat (centO...
ポジトリとの整合性を考慮して作成されている EPEL という...
いては利用しても問題が起こる可能性もあまり高くないので、...
しておくと便利だろう。
*(余裕があれば) Thunderbird のインストール
windows など他の OS 上でも利用されている thunderbird ...
ドでインストールできる。
$ yum search thunderbird
...
$ sudo yum install thunderbird
thunderbird での送受信の設定については、[[2013年度版...
-----
*課題:
メールサーバーとしての動作の確認をかねて、テキストに沿っ...
evolution からレポート用のアドレス(ホワイトボードで知ら...
を送ってみること。
thunderbird をいれてみた場合はそちらを使って送信してもよ...
終了行:
|[[Home]] | [[Prev>webserver-3]] | [[Next>mailsystem-2]] |
&size(24){2016/12/16(Fri) 第10回 メールサーバー(1)};
#contents
-----
*電子メールの配送の概略
電子メールを相手に送って読まれるまでには、いくつかのサー...
のプログラムが関与することになる。典型的な場合、以下のよ...
理をそれぞれ担当するプログラムがある。
1) メールの作成(及び送信側メールサーバーへの転送)
2) 送信側メールサーバー(送信の受付と受信側メールサーバー...
3) 受信側メールサーバー(受け取りとユーザーのメールボック...
4) メールボックスから受信者の端末への転送(読み出し)
5) 受信者の端末での表示など
ユーザーと直接やりとりしながら(1)と(5)の部分を担当...
は MUA (Mail User Agent) と呼ばれている。端末上のプログラム
(thunderbird など)が担当することが多いが、ウェブメール...
上のブラウザーとウェブサーバー上のプログラムが協力してこ...
ることになる。
いわゆるメールサーバー上のプログラムは(2)から(4)の...
ことになるが、(2)と(3)を担当する「転送サーバー」(MT...
Transfer Agent)と、(4)の受信者の端末からの読み出しを扱...
サーバー」(Message Derivery Agent) にわかれている。
それぞれの段階を担当するプログラムにはいろいろな種類があ...
れたプロトコルに従って通信することで、お互いに送受信でき...
ている。
標準的に用いられている通信方法は
(1)と(2)、(2)と(3)の間の通信:
>
端末と送信側サーバー間、送信側と受信側のサーバー間は、ど...
はネットワークを経由した通信が必要になる。この通信には SM...
トコルを使うことが多い。基本的に受信側のサーバープログラ...
ト(通常は 25 番ポート)で待ち受けていて、送信側からこの...
することで通信を行う。
<
(3)と(4)の間:
>
どちらも同じ計算機(受信側のメールサーバー)の上で動いて...
その場合(3)のサーバーはメールをファイルシステム(ハー...
ど)に書き込み、(4)のサーバーはそれを読み出す、という...
ることができる。ファイルの形式としては、ファイルを一つの...
て複数のメールを保存する方法と、ディレクトリを受信箱をみ...
ルを一つのファイルの形で保存する方法とがあり、サーバーの...
せてどちらもよく使われている。
<
(4)と(5)の間:
>
受信者の端末とメールサーバー間の通信は、受信者の端末側か...
上の配送サーバープログラムに接続してメールを読み出すとい...
IMAP4 あるいは POP3 というプロトコルがおもに使われており...
理を担当する配送サーバープログラムがある。POP3 用のサーバ...
IMAP4 用のサーバーは 143 番のポートを使う。
<
>
基本的に POP は受信したメールは端末側に転送して、端末上で...
前提としているが、IMAP はサーバー上にメールを残しておき既...
するための機能も持っている。
<
>>
pop や imap でメールボックスの内容を読み出す際には、各ユ...
ためにパスワードの情報が送信される。また送信サーバへの接...
限定せずに認証を行う形で運用する場合には、ここでもパスワ...
されることになる。こういったパスワード等を含む情報が暗号...
で外部のネットワークを流れるのは望ましくないので、外部の...
由でこれらの認証を行う場合には SSL による暗号化がよく使わ...
<<
>>
ただしサーバー間の転送については暗号化されていない通信が...
合が多いので、pop/imap の暗号化を使っていても暗号化されな...
トワーク上を流れてしまう可能性は結構高い。
<<
**送受信の制限
電子メールの利用が一般化するとともに、電子メールのシステ...
ルス入りのメールや不必要な広告メールを配送しようとするも...
元々悪意のあるメール送信者の存在はあまり想定せずに作られ...
迷惑メールを完全にシャットアウトするのは原理的にも難しい...
>
主にメールサーバーがメールを受け付ける際に、
必要条件を満たさないメールの受付を拒否することで迷惑メー...
<
という形の対策が一般的にとられている。
(1)から(2)への転送と、(2)から(3)への転送で、...
サーバーがメールを受け付けることになるが、その際にどのよ...
け付けるべきか、という基準はそれぞれ異なっている。
電子メールの仕組み上(3)の受信側のサーバーとして働くプ...
では迷惑メールを排除するのはなかなか難しい。通常の運用で...
からしか受け取らないという設定にするわけにはいかないこと...
ラックリストを作成するなどして迷惑メールをはじく努力は行...
の、正しいアドレスに送られてきたメールは基本的には受け取...
しまう。プロバイダ等のメールサービスでは受け取ったメール...
惑メールと思われるものを自動で判定して迷惑メールフォルダ...
しているが、必要なメールを迷惑メールと判定してしまう例が...
全に避けるのは難しい。
一方(2)の送信側のサーバーとして働くプログラムでは、迷...
付けて他のサーバーに転送してしまうことはある程度さけるこ...
こで、現在の電子メールのシステムでは、身元不明のメールを...
わないように送信者を何らかの形で限定するような設定が要求...
切な制限をかけていないサーバーを経由したメールは受け取り...
とが多い。
ややこしいことに、(2)と(3)はどちらも 25 番ポートの ...
ルを使って行われてきた。そのため
-送られてきたメールの宛先が、自分が担当するドメインのメー...
合は(3)のサーバーとして振る舞い、アドレスが有効であれ...
のメールを受け付ける
-それ以外の場合には(2)のサーバーとして振る舞い、送信し...
IPアドレスが自分の組織内などでない限り受け取りを拒否する
という設定が一般的になっている。
実際には(2)のサーバーとしてメールを受け付ける基準をI...
で判定すると不便なことも多い。そこで、「送信受付」を別の...
送信者のIPアドレスを特に制限しない代わりにパスワード等...
(認証)を行い、アカウントを持っている送信者からのメール...
るという方法がよく使われるようになってきている。
>
「メールの送信の前に POP で接続してそのサーバーにアカウン...
るユーザーであることを確認した場合のみ、よそへの送信(転...
る」という POP before SMTP という方法もあり、以前よく用い...
<
>>
ネットワークが未発達だった時代には電子メールのシステムは...
式によそからよそへのメールも転送することでメールを届けて...
り、常時接続しているとは限らない相手や、直接の通信ができ...
てもメールを届けることができるというメリットがあった。し...
分に無関係のメールの転送を受け付ける状態でメールサーバー...
トに接続するのは、迷惑メールの配布を手助けすることになっ...
けなければならない。
<<
>>
無制限に転送を受け付ける状態のサーバーをネットワークに接...
に迷惑をかけると同時に open relay server としてブラックリ...
て受信拒否の対象となることも多い。登録されると自分のとこ...
を他所に送ることができなくなってしまうのでメールサーバー...
果たせなくなってしまう。
<<
*postfix の動作確認
まずはサーバープログラムはデフォルトで一応動作してはすな...
をしてみる。
telnet コマンドを使って、直接 postfix と対話して、テスト...
みよう。
$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 linux00.cl.math.sci.osaka-u.ac.jp ESMTP Postfix
HELO test
250 linux00.cl.math.sci.osaka-u.ac.jp
MAIL from: chawanya@math.sci.osaka-u.ac.jp
250 2.1.0 Ok
RCPT To: chawanya
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: TESTMAIL
To: dummy
Testmail.
.
250 2.0.0 Ok: queued as 1E8D4C004F
quit
221 2.0.0 Bye
Connection closed by foreign host.
新しいメールが /var/spool/mail/chawanya にあります
$
**メールの配達の確認
メールサーバーが受け取ったメールは、宛先のアカウントの「...
に記録される。デフォルトの設定では、これは /var/spool/mai...
ント名)というファイルになっている。
そこで、
ls /var/mail
として、/var/spool/mail/ ディレクトリにあるファイル一覧を...
送信した宛先のアカウント名のファイルができていたら(例え...
/var/spool/mail/chawanya" などとして)そのファイルの中身...
と。
また、メールサーバーはメールを処理した記録を /var/log/mai...
イルに残すようになっている。これも確認しておくこと。
$ sudo tail -20 /var/log/maillog
...(中略)...
Dec 5 12:06:27 linux00 postfix/smtpd[12478]: 1E8D4C004F...
Dec 5 12:06:47 linux00 postfix/cleanup[12491]: 1E8D4C00...
5030627.1E8D4C004F@linux00.cl.math.sci.osaka-u.ac.jp>
Dec 5 12:06:47 linux00 postfix/qmgr[2080]: 1E8D4C004F: ...
.osaka-u.ac.jp>, size=404, nrcpt=1 (queue active)
Dec 5 12:06:47 linux00 postfix/local[12492]: 1E8D4C004F...
th.sci.osaka-u.ac.jp>, orig_to=<cha>, relay=local, delay...
.03, dsn=2.0.0, status=sent (delivered to mailbox)
Dec 5 12:06:47 linux00 postfix/qmgr[2080]: 1E8D4C004F: ...
Dec 5 12:06:52 linux00 postfix/smtpd[12478]: disconnect...
$
**端末からのメールの読み書き
端末から直接メールの送受信をするためのコマンドも一応使え...
$ mail
Heirloom Mail version 12.4 7/29/08. Type ? for help.
"/var/spool/mail/cha": 1 message
> 1 T. Chawanya Fri Dec 5 12:20 20/701 "...
& mail
To: chawanya
Subject: test from mail command
test
.
EOT
& exit
のようにメールを送信したりできる。テスト用には知っている...
ト用途以外で使うことはなさそうなので、ここでは紹介するだ...
*postfix の基本的な設定
デフォルトの状態では、このメールサーバーはネットワークか...
け取らない設定になっている。というわけで、基本的にデーモ...
カウント (root) 宛の動作報告のために動いているような状態...
送信に関しては mail コマンドなどで作成したメールをネット...
する仕事はしてくれる。ただし設定をちゃんとしておかないと...
の設定によっては受け取りを拒否される場合もある。
というわけで、一応ここではあるドメイン(メールアドレスの ...
を担当するメールサーバーという形で postfixの設定 をやって...
**メールのドメインとホスト名の関係
メールアドレスの @ の右側の部分がメールのドメイン名になる...
名とよく似た形をしている。実際どちらも DNS の検索システム...
メールのドメイン名を検索するとそのメールを送るべきホスト...
そのIPアドレス)が分かるようになっている。
メールのドメイン名とホスト名は別ものとして区別されている...
kitsune-udon.net と tanuki-soba.net というホスト名のマシ...
て、 aburage@kitsune-udon.net 宛のメールは tanuki-soba.ne...
tenkasu@tanuki-soba.net 宛のメールは kitsune-udon.net が...
設定することもできる。
実際、大学で学生や職員用のメールサーバーの運用を外部に委...
な場合、例えばXXX@ecs.osaka-u.ac.jp のアドレスのメールは...
ては阪大なのだが実際の処理は阪大内のサーバーではなくて委...
理しているサーバーに送られるようになっている。
>
ただし、メールのドメイン名としての登録が特にされていない...
ホスト名をもつマシンがあればそちらにメールを送るというこ...
ので、メールのドメイン名とホスト名が完全に無関係というわ...
<
実習では、それぞれが使っているコンピューターのホスト名と...
はじまる名前を使っているが、ここではホスト名とメールドメ...
別して扱うため、メールのドメイン名としては mail** で始ま...
担当するという形で設定をしていくことにする。(** のところ...
同じ2桁の数字を入れる。)
実習室内のネームサーバーは dareka@mail**.cl... 宛のメール...
宛先のホスト名として linux**.cl... を答えるように設定して...
スト上のメールサーバーの設定をすれば(部屋の中限定だ
が)****@mail**.cl... のメールアドレスを使ってメールのや...
ようになるはずだ。
user@linuxXX $ dig mail00.cl.math.sci.osaka-u.ac.jp MX
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> mail00.cl....
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35568
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mail00.cl.math.sci.osaka-u.ac.jp. IN MX
;; ANSWER SECTION:
mail00.cl.math.sci.osaka-u.ac.jp. 3600 IN MX 10 linux00....
;; AUTHORITY SECTION:
cl.math.sci.osaka-u.ac.jp. 3600 IN NS cl.math.sci.osaka-...
;; ADDITIONAL SECTION:
linux00.cl.math.sci.osaka-u.ac.jp. 3600 IN A 192.168.125...
cl.math.sci.osaka-u.ac.jp. 3600 IN A 192.168.125.14
;; Query time: 1 msec
;; SERVER: 192.168.125.14#53(192.168.125.14)
;; WHEN: 金 12月 09 12:18:47 JST 2016
;; MSG SIZE rcvd: 131
この様に設定する場合、各マシンの側でも mail** 及び linux*...
メイン名のメールも受け取る用に設定しておく必要がある。
**メールボックスの変更
最初の状態ではメールサーバーは XXX のメールを /var/spool...
うファイルに書き込むように設定されている。これは複数のメ...
イルに記録される形式となっていて、新しく到着したメールの...
の末尾に追加されていく。そのため、たくさんのメールのうち...
選んで消去するといった操作にはあまり向いていない。
受け取ったメールを端末にダウンロードして、サーバー上のメ...
消してしまうような使い方をする場合にはそれほど問題ないが...
ルを使う場合などは、サーバー上にメールをおいたままで管理...
こういった使い方をする場合には、それぞれのメールを別々の...
記録する方式の方が向いている。
ここでは各ユーザーのホームディレクトリに Maildir という名...
リを作り、その中にメール1通ごとに別ファイルとして保存する...
配達するような設定もしておくことにする。
**設定ファイルの編集
このシステムのメールサーバーは postfix というものを使って...
バーの設定ファイルは /etc/postfix というディレクトリに置...
このディレクトリ内の main.cf というファイルが文字通り主な...
いうことになっている。ホスト名やドメイン名、及びメールボ...
る設定変更は以下のようになる。
$ cd /etc/postfix
$ sudo cp main.cf main.cf.distrib
$ sudo nano main.cf
などとして編集してみること。linux00, mail00 などは適宜自...
マシンに合わせて変更すること。
以下は linux00 上で設定ファイルを書き換えた後で、
$ diff main.cf.distrib main.cf
というコマンドで変更部分を表示した結果を示してある。
>
diff コマンドは2つのファイルを比較して違う部分を表示す...
"<"の行が書き換え前、">"の行が書き換え後のファイルの内容...
<
76a77
> myhostname = linux00.cl.math.sci.osaka-u.ac.jp
83a85
> mydomain = mail00.cl.math.sci.osaka-u.ac.jp
99c101
< #myorigin = $mydomain
---
> myorigin = $mydomain
113c115
< #inet_interfaces = all
---
> inet_interfaces = all
116c118
< inet_interfaces = localhost
---
> #inet_interfaces = localhost
119c121
< inet_protocols = all
---
> inet_protocols = ipv4
164c166
< mydestination = $myhostname, localhost.$mydomain, loca...
---
> #mydestination = $myhostname, localhost.$mydomain, loc...
167a170
> mydestination = $myhostname, $mydomain, localhost, loc...
419c422
< #home_mailbox = Maildir/
---
> home_mailbox = Maildir/
自分のホスト名等に合わせてファイルを編集したら
$ sudo systemctl restart postfix
あるいは
$ sudo service postfix restart
として postfix を再起動して新しい設定が有効になるようにす...
>
$ sudo tail -20 /var/log/maillog
とするとメール関係のログを見ることができる。postfix が無...
いるかどうか、一応確認しておくこと。
<
**変更した設定の確認
postfix を再起動したら、その状態で自分にメールを送ってみ...
自分のアカウントを chawanya としているが、それぞれ自分の...
替えること!!)
$ mail chawanya
Subject: TEST for new configuration
TEST
.
EOT
$
新しい設定が有効になっていれば、このメールは /var/spool/m...
イルに書き込まれるのではなく、ホームディレクトリの下にある
Maildir/new/ というディレクトリに結構長い名前のファイルと...
るはずだ。
$ ls -l ~/Maildir/new
合計 8
-rw------- 1 chawanya chawanya 616 12月 5 18:06 2014 13...
-rw------- 1 chawanya chawanya 636 12月 5 18:14 2014 13...
$
このファイルの中身を見てみると
$ cat 1386234882.Vfd02I12e00efM197000.linux00.cl.math.sc...
Return-Path: <chawanya@mail00.cl.math.sci.osaka-u.ac.jp>
X-Original-To: chawanya
Delivered-To: chawanya@mail00.cl.math.sci.osaka-u.ac.jp
Received: by linux00.cl.math.sci.osaka-u.ac.jp (Postfix,...
id 22B8DC09CA; Fri, 5 Dec 2014 18:14:42 +0900 (JST)
Date: Fri, 05 Dec 2014 18:14:42 +0900
To: chawanya@mail00.cl.math.sci.osaka-u.ac.jp
Subject: TEST for new configuration
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20141205091442.22B8DC09CA@linux00.cl.math.s...
From: chawanya@mail00.cl.math.sci.osaka-u.ac.jp (T. Chaw...
TEST
のように差出人と宛先のドメインが新しく設定されたドメイン...
されているはずなので、その点も確認しておくこと。
>
Maildir ディレクトリ内にはさらに new, tmp, cur というサブ...
<
**ログファイルの確認
上記の送信テストがうまくいかなかった場合はもちろん、うま...
/var/log/maillog の内容は一度のぞいてみて確認しておくこ...
(ちなみにこのログファイルのファイル名は、 /etc/rsyslog....
*imap サーバーのインストール
一応メールは配送されるようになったものの、今のところメー...
は cat コマンド等で直接ファイルを読む必要がある。これでは...
メーラーソフトウェアから(必要であれば)ネットワーク越し...
ルが読めるよう、配信用のサーバープログラム(IMAP と POP ...
るサーバープログラム)も動かすように設定してみる。
インストールは
$ sudo yum install dovecot
のように入力する
設定ファイルは特に何も変更しない状態でも一応動作するが、...
ipv6 及び pop の機能については外しておくことにする。
/etc/dovecot/dovecot.conf の20行め付近の部分に、下の pr...
# Protocols we want to be serving.
#protocols = imap pop3 lmtp
protocols = imap
# A comma separated list of IPs or hosts where to listen...
# "*" listens in all IPv4 interfaces, "::" listens in al...
# If you want to specify non-default ports or anything m...
# edit conf.d/master.conf.
#listen = *, ::
listen = *
その後
$ sudo systemctl restart dovecot
として imap サーバーを再起動しておく
IMAP で接続(ログイン)するためには、ログインしようとして...
の受信箱(ディレクトリ)が既に存在している必要がある。
メールをディレクトリに配送するよう
に設定したあとでメールを受信すると自動的に作成されるので...
を自分に送るのが楽だろう。
一応このディレクトリは自分で作成することもできる。その場合
$ mkdir -p ~/Maildir/{cur,tmp,new}
$ chmod -R og-wrx ~/Maildir
のように、自分以外のアカウントではメールを読めないように...
>
Maildir ディレクトリは所有者が受取人(じぶんのホームディ...
には自分のアカウント)になっていないとメールの読み書きで...
しまう。
$ ls -l ~uketorinin/Maildir
でディレクトリの所有者を確認してみること。うっかり sudo -...
権限を持った状態で作業していると所有者が root の状態で作...
$ sudo chown -R uketorinin:uketorinin ~uketorinin/Maildir
のようにして、サブディレクトリも含めディレクトリ全体の所...
なるように設定しなおしておくこと
<
*evolution を使った送受信のテスト
一応ここまでで、メールサーバーとして一応の動作はするよう...
ずだ。ということで、メーラーソフトウェア(evolution) を使...
受信ができるかどうかを試してみることにする。(とりあえず...
トメールで試してみる)
$ sudo yum install evolution
として evolution をインストールする。その後
$ evolution &
(あるいは左上メニューの、アプリケーション→オフィス から...
として起動すると、最初にアカウントの設定画面が出てくるは...
#ref(evolution-setup00a.png);
とりあえずアカウントの設定が出てくるまでは特に入力するこ...
アカウントアシスタントのところでは、メールアドレスを入力...
#ref(evolution-setup02a.png);
次に(受信用の)サーバーの設定をする。
-サーバー種別は IMAP+
-サーバーは localhost
-ポート番号は 143
-ユーザー名は自分のアカウント名
-暗号化はしない
-認証方法はパスワード
としておく
#ref(evolution-setup03a.png);
#ref(evolution-setup04a.png);
次に新着メールのチェックや購読フォルダーなどの設定が出て...
り特に変更なしでよいだろう。
その次に送信メールサーバーの設定がでてくる。
-サーバー種別は SMTP
-サーバーは localhost
-ポート番号は 25
-暗号化はしない
という設定で次に進む。
#ref(evolution-setup05a.png);
最後にアカウントを識別するための名前を適当に設定する。
#ref(evolution-setup06a.png);
設定が無事に終わったら、メインの画面が出てくる。
上で端末から自分宛に送ったテストメールが受信箱の中にある...
さらに新しくメールを作成してみて、自分のアカウント宛にメ...
みよう。上手くいっていれば受信ボタンをおすと、送信したメ...
れるはずだ。
*(余裕があれば)EPEL レポジトリの登録
centOS (を含めた redhat のディストリビューションと互換性...
のディストリビューション)を対象として、いろいろなソフト...
コマンドを使って簡単にインストールできるように準備された...
がいくつかある。
OS をインストールしたデフォルトの状態で利用できるパッケ...
ていないソフトウェアでも、よく使われているものについては...
のレポジトリを登録することで yum コマンドでのインストー...
レポジトリを追加すると利用できるパッケージが多くなり便利...
よってはパッケージ同士のバージョンの不整合などでトラブル...
もある。
追加のレポジトリにはいろいろなものがあるが、redhat (centO...
ポジトリとの整合性を考慮して作成されている EPEL という...
いては利用しても問題が起こる可能性もあまり高くないので、...
しておくと便利だろう。
*(余裕があれば) Thunderbird のインストール
windows など他の OS 上でも利用されている thunderbird ...
ドでインストールできる。
$ yum search thunderbird
...
$ sudo yum install thunderbird
thunderbird での送受信の設定については、[[2013年度版...
-----
*課題:
メールサーバーとしての動作の確認をかねて、テキストに沿っ...
evolution からレポート用のアドレス(ホワイトボードで知ら...
を送ってみること。
thunderbird をいれてみた場合はそちらを使って送信してもよ...
ページ名:
PukiWiki 1.5.3
© 2001-2020
PukiWiki Development Team
. Powered by PHP 7.4.33. HTML convert time: 0.002 sec.
Site admin:
cha