CentOS4.x Postfix-2.1 courier-imap-4.0

Postfix+PostfixAdmin+Courier-IMAPをCentOSにインストールし、Postfixによるバーチャルホスト運用を行います

POP3/IMAPサーバはCourier-IMAPを使用します

データベースにはPostgreSQLを使用します(Web上ではMySQLでの設定例が多いのですが、ここでは敢えてPostgreSQLで構築してみます)

Recommend Book

上級のメールサーバー管理者にとっても十分に実用的な情報がそろっています

この環境を構築すると・・・

  • ドメインの追加/変更/削除がブラウザ上からできる
  • メールアカウントの追加/変更/削除がブラウザ上からできる
  • 各アカウントの情報(パスワード・転送設定等)の変更はアカウント保持者にてブラウザ上から更新させられる
  • SMTP AUTHを実装し、不正中継の防止を強化
ができる様になります。

作業の流れ

apache2+PHPの環境等は既に構築されている事を前提とします

ここまでの設定で、一通り使える形になります

ここから、一歩進んだ設定を追加していきます


環境など

下記の様な環境で構築します

ホスト名saturday.example.com
ドメインexample.com
IPアドレス192.168.0.150
ネットマスク255.255.255.0
データベース名postfix
DB文字符号EUC_JP
DB所有者postgres
DB接続ユーザ1/PWDpostfix / postfix (*)Postfixから接続
DB接続ユーザ2/PWDpostfixadmin / postfixadmin (*)PostfixAdminから接続

また、バーチャルアカウント宛メール受信用UNIXユーザとして以下を利用することとします

ユーザ名mailuser
UID10000
GID10000
HOME/home/mailuser

PostgreSQLの導入

インストール

yumにてインストールします

rootにて以下を実行します

# yum install postgresql-server

依存関係で、postgresql postgresql-libsもインストールされます

自動起動設定

ランレベル2,3,4,5で自動起動する様に設定する

rootにて以下を実行します

# chkconfig postgresql on

起動

rootにて以下を実行し、PostgreSQLを起動します

rootにて以下を実行します。

# /etc/rc.d/init.d/postgresql start

初回起動なので、データベースの初期化等の必要な作業を起動スクリプトが実行してくれます

PostgreSQLの設定

PHPで接続できる様にする為の設定やPostfixAdminやCourier-IMAPが参照する

データベースの作成等を行います

TCP-IP接続を許可する設定を行う

この設定をしておかないと、PHPからDBに接続できません

/var/lib/pgsql/data/postgresql.confに以下を設定する

tcpip_socket = true

データベースアクセスユーザの作成

ユーザ postfix 及び postfixadmin を作成する

postfixユーザは、Courier-IMAPから接続するユーザで、postfixadminユーザは、PostfixAdmin(PHP)から接続するユーザになります

postgresユーザになり、以下を実行します

# su - postgres
$ createuser -A -D -P postfix
Enter password for new user: postfix
$ createuser -A -D -P postfixadmin
Enter password for new user: postfixadmin

データベースの作成

postfixデータベース(encodingはEUC_JP)を作成する

postgresユーザになり、以下を実行します

# su - postgres
$ createdb --encoding=EUC_JP postfix

PostgreSQL設定ファイルの変更

作成したpostfixデータベースにアクセス可能にする為、/var/lib/pgsql/data/pg_hba.confの最後付近に以下を追加します

        :              :              :
        :              :              :
        :              :              :
local  postfix       postfix,postfixadmin                                          password
host   postfix       postfix,postfixadmin      127.0.0.1         255.255.255.255   password
host   postfix       all                       0.0.0.0           0.0.0.0           reject

local  all    all             ident   sameuser

これで、ユーザpostfix,postfixadminにて自端末(localhost)からのみpostfixデータベースにアクセスできる様になります(postgresユーザを除くその他は不可)

接続テスト

以下を実行して接続できるか確認する

$ psql -U postfix postfix
Passwdor: xxxx
Welcome to psql 7.4.8, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

postfix=>\q
$

目次

  • Page.1
    • 構築する環境
    • PostgreSQLのインストール及び設定
  • Page.2
    • PostfixAdminのインストール及び設定
    • PostfixAdminの日本語化
  • Page.3
    • Postfixのインストール
    • TELNETを使ったメール送信テスト
  • Page.4
    • Courier-IMAPのインストール及び設定
    • メール受信テスト
  • Page.5
    • SMTP AUTH機能の追加
    • TELNETを使った、SMTP AUTH機能の動作確認
  • Page.6
    • メールボックスの容量制限(QUOTA)機能の追加
    • LogWatch等のローカル配送メールの転送設定
    • ClamAV+Amavisd-newによるウイルス対策

関連ページ