最終更新日 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などの開発者と同じですので、十分な機能をもっています。
Postfixの入手
バイナリ(RPM)は各ディストリビューションのホームページ又はCDROMから入手します。ソースファイルは、Postfixホームページ「http://www.postfix.org/」から入手します。
Postfix関連パッケージ(Fedora Core3)
| パッケージ | 内容 |
| postfix-x.x.-xx-x.i386.rpm | Postfix本体 |
| cyrus-sasl-x.x.xx-x.i386.rpm | cyrus-sasl(SMTP認証を利用するため) |
ソースファイル
Postfix本体 ftp://postfix.get7.biz/postfix/official/postfix-2.1.5.tar.gz
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] 〜省略〜 |
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/ |
- メールサーバのFQDN(Fully Qualified Domain Name)を記述する。ホスト名.ドメイン命
- メールサーバのドメイン名のみを記述する。ホスト名はいらない
- ドメイン全体のメールサーバとして機能するように「$mydomain」を指定
- ローカルだけではなく、リモートからのメール配送を受け入れるために「all」を指定
- ドメイン宛のすべてのメールを受信するように指定
- メール受信の際に、GNU/Linuxシステムのユーザをチェックし、その他のユーザ宛のものは破棄するように指定
- メールサーバ自身を同じサブネットからのメールのみ送信するように「subnet」を指定
- メールの保存をqmailが採用しているMaildir形式で行うように指定
main.cfの主なパラメータ
main.cfの主なパラメータ 内容| パラメータ | 値 |
| myhostname | メールサーバのFQDNを指定 |
| mydomain | メールサーバのドメイン(のみ)を指定 |
| myorigin | メール送信時に送信元アドレスの「@」以降に付加する値の設定 |
| inet_interfaces | メールを受信するインターフェースを指定 |
| mydestination | 届けられたメールが自分宛かどうか判断するパラメータ |
| local_recipient_maps | ローカルユーザをチェックし、不明なユーザ宛のメールは破棄をする |
| mynetworks_style | メールの送信を許可するクライアントを指定 |
| mynetworks | メールの送信を許可するクライアントを指定 |
| home_mailbox | mboxの形式を指定 |
Postfixの起動パラメータ
Postfixの起動・停止・再起動などの操作は、「/usr/sbin/postfix 引数」という形で行います。起動 # /usr/sbin/postfix start 停止 # /usr/sbin/postfix stop 再起動 # /usr/sbin/postfix restart(RPM版使用時のみ。ソースの場合は「reload」を使用) |
Postfix制御のパラメータ
| パラメータ | 動作 |
| start | Postfixの起動 |
| stop | Postfixの停止 |
| restart | Postfixの再起動 |
| reload | Postfixの設定ファイルの再読み込み |
| abort | 緊急停止 |
| flush | 遅延したメールを強制的に配送する |
| check | 設定ファイルのパーミッションチェック |
| fulstatus | httpdの状態を表示(すべて) |
| configtest | httpdの設定ファイルの文法チェック |
| help | httpdのコマンドライン引数の表示 |
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: |
メールの送信が終われば、実際のメールボックスの中にメールが届いているか確認をします。
メールが保存されるディレクトリは、mailbox形式は「/var/spool/mail/」になります。
maildir形式は「~/user/Mailbox/new/」の中です。
Top