●プロセス概要
postfixは内部的に処理が分割されていてそれぞれが自分の仕事をこなすことで成り立っています。
主なものは以下。
master
postfix全体の管理する。
sendmail
ローカルからの送信処理を担当。
smtpd
メールの受信処理を担当。その後cleanupプロセスに渡す。
cleanup
メールをincomingキューに保管するプロセス
qmgr
incomingキューを監視し,メール配送の準備をするプロセス
active
qmgrが配送中のメールを管理するプロセス
local
届いたメールをローカルスプールに格納するプロセス
incoming
受信したメールを保存し,配送プロセスに渡す。
pickup
maildropキューを監視するプロセス。メールを検知するとcleanupプロセスに渡す。
メール送受信の流れの概要は,
外部からメールを受信した場合のプロセスは,
smtpd -> cleanup --> incoming --> qmgr --> active --> local
内部からメールを送信する場合のプロセスは,
sendmail --> postdrop --> maildrop --> pickup --> cleanup --> incoming --> qmgr --> active --> smtp
●インストール
実際にpostfixによるメールサーバの構築をします。
CentOS4ではsendmailとpostfix関連のパッケージが入っていると思うのでアンインストールしてソースからインストールします。
依存関係で必要なパッケージをおいておきたい場合は --nodeps をつけてアンインストールします。
例えばこんな感じ。
# rpm -e --nodeps sendmail
postfix ユーザと postfix, postdrop グループがなければ作成しておきます。
オプションの設定によってはpcre-develが必要になるかもしれません。
ソースの入手先は http://www.postfix.org
現時点での最新バージョンは postfix-2.3.7.tar.gz でした。
ではさっそくダウンロードしてインストール準備をしましょう。
# tar zxvf postfix-2.3.7.tar.gz -C /usr/local/src
# cd /usr/local/src/postfix-2.3.7
以前のコンパイル情報を初期化する場合は以下のコマンドを打ちます。
# make tidy
コンパイルオプションは必要に応じて適宜設定してください。
CCARGSにコンパイルオプション,AUXLIBSにライブラリを指定します。
特に拡張機能を有効にする必要がない場合は make とシンプルに入力です。
# make makefiles 'CCARGS=-DHAS_LDAP -DHAS_PCRE -I/usr/include/pcre -DUSE_SASL_AUT\H -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS -DDEF_MANPAGE_DIR=\"/usr/share/m\an\"' AUXLIBS="-ldb -lldap -llber -lz -lm -lpcre -lsasl2 -lssl -l crypto"
# make install
以下のようなことを聞いてきますがいろいろ聞いてくるが基本的にはデフォルトでOKです。
私は好みでcommand_directoryを /usr/local/sbin にしました。
install_root: [/]
tempdir: [/usr/local/src/postfix-2.3.7]
config_directory: [/etc/postfix]
daemon_directory: [/usr/libexec/postfix]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/bin/mailq]
mail_owner: [postfix]
setgid_group: [postdrop]
html_directory: [no]
manpage_directory: [/usr/share/man]
readme_directory: [no]
これでインストールは終了です。
設定は次回書きます。