Postfixの説明

メールサーバーを構築する場合、送信メールサーバー(SMTPサーバー)と受信メールサーバー(POP/IMAPサーバー)の構築が必要です。

ここでは、送信メールサーバーには Postfix 受信メールサーバーには courier-imap(Maildir方式) を採用する。

Postfix を外部から利用する為には、POP before SMTP か、SMTP-Auth の送信認証機能が、必要です。

このサイトでは、迷惑メールの不正中継に利用されないようにするため、外部(サーバー機以外)から、安全に送信できるようにするため、POP before SMTP 機能で、構築することにします。

Maildir とは?

MTA(主にsendmail,postfix,qmailなど)のメールの格納方式には Mailbox方式とMaildir方式があります。

Mailbox方式
/var/spool/mail/ユー ザー名
というファイルにメールを蓄える方式で、1つの ファイルに複数のメールを蓄えます。

Maildir方式
/home/ユーザー名/Maildir/new
とい言うディレクトリの中に、1つのメールにつき1つのファイルを使用する方式です。

Maildir にする理由

Mailbox形式だと、1人のユーザー宛のメールは全て1つのファイルに格納される為、
ファイルが壊れると全てのメールが読めなくなる可能性があります。
しかしMaildir形式では、ファイルが壊れても1通のメールが読めなくなるだけで被害を最小限に抑える事が可能です。

また、Mailbox形式の場合、あるユーザーのメールでディレクトリが一杯になると、他のユーザーのメールが配送できなくなる可能性があります。
しかしMaildirならば、ユーザーのホームディレクトリに容量制限(quota)で制限をかけてしまえば事前に被害を防ぐ事が可能です。

上記の理由でYosi はMaildir をお勧めし、当サイトでは Maildir にて構築して行きます。

Maildir を作製する

Maildir方式を使用するにあたり /home/ユーザー名 の中にMaildir と言うディレクトリを作成する必要があります。

# mkdir /home/ユーザー名/Maildir

/home/ユーザー名/Maildir のアクセス権を変更

# chown -R 所有者:グループ名 /home/ユーザー名/Maildir

例)

# chown -R yosi:yosi /home/yosi/Maildir ← 所有者、グループ名が yosi の場合

当サイト ユーザーの追加と削除 に記載の方法でユーザーを作成した場合、所有者、グループ名は同じになります。

※ Maildir を自動作製する
etc/skel/の中身のディレクトリがユーザーを追加した時に自動で作成されます
なので skel の中に Maildir フォルダを作成しておくといちいち、後からディレクトリを作ったり、アクセス権を
変更する手間が省かれます。

Postfixの基本設定

etc/postfix/main.cf をエディタで編集していきます。

main.cfの上から、設定箇所のみ記載して行きます。


myhostname = server.xxxx.net ←ホスト名.ドメイン名を指定

mydomain = xxxx.net ← ドメイン名を指定

myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain $mydomain

# 550を指定し、存在しないユーザー宛てのメールを拒否し、即座にエラーメッセージを返すようします

unknown_local_recipient_reject_code = 550 ← コメントにする (# があれば削除)
#
unknown_local_recipient_reject_code = 450 ← # をつけてコメントアウト

mynetworks = 192.168.0.0/24, 127.0.0.0/8 ← 内部ネットワークアドレスとローカルホストアドレスを指定

relay_domains = $mydestination

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/postfix/aliases

home_mailbox = Maildir/ ← メールボックスをMaildir方式を指定

※ メールボックスと、メールに容量制限する場合以下の二項目を追記します


mailbox_size_limit = 30720000 ←メールボックスの容量制限(例 30Mb)

message_size_limit = 1024000 ←メールのサイズ容量制限(例 1Mb)

smtpd_banner = $myhostname ESMTP unknown ← メールサーバー名を隠す

※メールボックスをMaildir方式を使用するので以下の二項目をコメントアウト

#
mail_spool_directory = /var/spool/mail

#mailbox_command = /some/where/procmail -a "$EXTENSION"

allow_percent_hack = yes


main.cfの編集が終われば、postfixを再起動する。

# /etc/rc.d/init.d/postfix restart




Copyright c Vine Linuxで自宅サーバー. 2004 All Rights Reserved.