コンテンツ

  • Top
  • What's New
  • Command
  • Basic
  • Server
  • Security
  • Conf
  • tools
  • etc
  • blog
  • Link
  • サイトについて
  • Mail
INDEX /  Apache /  ProFTPD /  vsftpd /  BIND /  Postfix /  Qpopper /  Samba /  PHP / 
最終更新日 2005/04/01  

Postfix


Postfixとは
Postfixの入手
Postfixのインストール
Postfixの設定ファイル
main.cfの主なパラメータ
Postfixの制御パラメータ
Postfixの確認・チェック

Postfixとは

Postfixとは、TCPWrapperの開発者であるWietse Venema 氏が開発したMTAサーバソフトです。
GNU/LinuxシステムにおけるMTAサーバは、「sendmail」が有名ですが、sendmailは設計思想が古く、セキュリティ・ホールが発生しやすくなっています。
また、設定ファイルの記述が大変難しいなどの欠点があります。そのため、「qmail」や「Postfix」などのソフトウェアが登場してきました。
Postfixはsendmailとの互換性があり移行しやすく、設定ファイルはsendmailと比べて簡易になっています。また、他のソフト(スパム対策ソフトやウィルス対策ソフト等)との連携する場合も簡単に設定をすることが可能です。
セキュリティ面でも作者がTCPWrapperなどの開発者と同じですので、十分な機能をもっています。
ページトップへTop

Postfixの入手

バイナリ(RPM)は各ディストリビューションのホームページ又はCDROMから入手します。
ソースファイルは、Postfixホームページ「http://www.postfix.org/」から入手します。
Postfix関連パッケージ(Fedora Core3)
パッケージ 内容
postfix-x.x.-xx-x.i386.rpmPostfix本体
cyrus-sasl-x.x.xx-x.i386.rpmcyrus-sasl(SMTP認証を利用するため)

ソースファイル
Postfix本体 ftp://postfix.get7.biz/postfix/official/postfix-2.1.5.tar.gz
ページトップへTop

Postfixのインストール

RPM版のインストール

PostfixのインストールはRPM版は、RPMコマンドを使用して行います。
# rpm -ivh postfix-2.1.5-2.2.i386.rpm

ソースファイルのインストール

まず、最初にpostfixが利用するユーザ(postfix)とグループ(postdrop)を作成します。
ユーザpostfixはログインなどでシェルを利用することがありませんので、ホームディレクトリやログインシェルを与えません。
make intallの途中でインストールディレクトリなどを尋ねてきますので、デフォルト指定[y]エンターキーで進みます。
# useradd -M -s /bin/false postfix
# groupadd postdrop
# tar zxvf postfix-2.1.5.tar.gz
# cd postfix-2.1.5
# make
# make install

install_root: [/]

Please specify a directory for scratch files while installing Postfix. You
must have write permission in this directory.
tempdir: [/usr/local/src/postfix-2.1.5]

Please specify the final destination directory for installed Postfix
configuration files.
config_directory: [/etc/postfix]

Please specify the final destination directory for installed Postfix
daemon programs. This directory should not be in the command search path
of any users.
daemon_directory: [/usr/libexec/postfix]

         〜省略〜



ページトップへTop

Postfixの設定ファイル

RPMインストール・ソースインストールともにPostfixの設定ファイルは、「/etc/postfix/main.cf」と「/etc/postfix/master.cf」になります
設定ファイルの書式は、パラメータと値を=(イコール)で結びます。

main.cfファイルの書式: <パラメータ>=<値>

設定ファイル「main.cf」は、ほとんど変更する箇所が無くデフォルトのままで構いません。初期設定でセキュアな 状態になっています。変更する場所は、10箇所程度です。
変更を行うパラメータ
1: myhostname = mail.foo.com
2: mydomain = foo.com
3: myorigin = $mydomain
4: inet_interfaces = all
5: mydestination = $myhostname, localhost.$mydomain, $mydomain
6: local_recipient_maps = unix:passwd.byname $alias_maps
7: mynetwork_style = subnet
8: home_mailbox = Maildir/

  1. メールサーバのFQDN(Fully Qualified Domain Name)を記述する。ホスト名.ドメイン命
  2. メールサーバのドメイン名のみを記述する。ホスト名はいらない
  3. ドメイン全体のメールサーバとして機能するように「$mydomain」を指定
  4. ローカルだけではなく、リモートからのメール配送を受け入れるために「all」を指定
  5. ドメイン宛のすべてのメールを受信するように指定
  6. メール受信の際に、GNU/Linuxシステムのユーザをチェックし、その他のユーザ宛のものは破棄するように指定
  7. メールサーバ自身を同じサブネットからのメールのみ送信するように「subnet」を指定
  8. メールの保存をqmailが採用しているMaildir形式で行うように指定
ページトップへTop

main.cfの主なパラメータ

main.cfの主なパラメータ 内容
パラメータ 値
myhostnameメールサーバのFQDNを指定
mydomainメールサーバのドメイン(のみ)を指定
myoriginメール送信時に送信元アドレスの「@」以降に付加する値の設定
inet_interfacesメールを受信するインターフェースを指定
mydestination届けられたメールが自分宛かどうか判断するパラメータ
local_recipient_mapsローカルユーザをチェックし、不明なユーザ宛のメールは破棄をする
mynetworks_styleメールの送信を許可するクライアントを指定
mynetworksメールの送信を許可するクライアントを指定
home_mailboxmboxの形式を指定

ページトップへTop

Postfixの起動パラメータ

Postfixの起動・停止・再起動などの操作は、「/usr/sbin/postfix 引数」という形で行います。
起動  # /usr/sbin/postfix start
停止  # /usr/sbin/postfix stop
再起動 # /usr/sbin/postfix restart(RPM版使用時のみ。ソースの場合は「reload」を使用)

Postfix制御のパラメータ
パラメータ 動作
startPostfixの起動
stopPostfixの停止
restartPostfixの再起動
reloadPostfixの設定ファイルの再読み込み
abort緊急停止
flush遅延したメールを強制的に配送する
check設定ファイルのパーミッションチェック
fulstatushttpdの状態を表示(すべて)
configtesthttpdの設定ファイルの文法チェック
helphttpdのコマンドライン引数の表示

ページトップへTop

Postfixの起動・チェック

Postfixを起動したら、Postfixプロセスの確認を「ps」コマンドを用いて行います。
「ps aux」ですべてのプロセスを表示して、その結果をパイプで「grep postfix」コマンドに渡します。
psコマンドの実行例
# ps aux|grep postfix
postfix  18023  0.5  1.2  1712  792 ?        S    20:05   0:00 pickup -l -t fifo
postfix  18024  0.5  1.3  1764  844 ?        S    20:05   0:00 qmgr -l -t fifo -
root     18026  0.0  0.8  1668  520 pts/0    S    20:05   0:00 grep postfix

プロセスの確認ができたならば、実際にメールを出し送信を確認します。mailコマンド又はtelnetコマンドでSMTPへ接続をして確認をします。

mailコマンドは、mail [アドレス]という書式になります。
Subject;欄に件名を入力しエンターキーを押します。その後が本文になります。本文を終わるとこにドット(.) だけの行を一行入力します。

mailコマンドの実行例
# mail user@sample.org
Subject: 1st mail
testmail
.
Cc:


telnetでpostfixが利用する25ポートにアクセスをします。
「telnet localhost 25」で自分自身のMTAへアクセスします。「EHLO」コマンドで自分のドメインを入力します。
「MAIL FROM:」で送信者を指定し、「RCPT TO:」コマンドで受信者と指定します。
「DATA」コマンドでメール内容を始まりを指定し、「Subject:」コマンドで件名を入力します。
あとは「mail」コマンドを同じです。終了(切断)する場合は「QUIT」を入力します。

telnetからSMTPプロトコルを使った例
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.sample.org ESMTP Postfix
EHLO localhost
250-mail.sample.org
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250 8BITMIME
MAIL FROM: 
250 Ok
RCPT TO: 
250 Ok
DATA
354 End data with .
Subject: 1st mail

test mail
.
250 Ok: queued as 84EEB1BF5E
QUIT
221 Bye
Connection closed by foreign host.


メールの送信が終われば、実際のメールボックスの中にメールが届いているか確認をします。
メールが保存されるディレクトリは、mailbox形式は「/var/spool/mail/」になります。
maildir形式は「~/user/Mailbox/new/」の中です。
ページトップへTop

 
Copyright (c) 2005 Mukuan All Rights Reserved.