サーバー設定 · 2 min read · Nov 09, 2025

完璧なサーバー - CentOS 5.2 [ISPConfig 3] - ページ 4

10 Courier-IMAP、Courier-Authlib、および Maildrop のインストール

残念ながら、Courier-IMAP、Courier-Authlib、および Maildrop の rpm パッケージは存在しないため、私たち自身でビルドする必要があります。

RPM パッケージは root としてビルドしてはいけません。courier-imap は、コンパイルが root ユーザーとして実行されていることを検出すると、コンパイルを拒否します。したがって、ここで通常のユーザーアカウント(この例では compileuser)を作成し、パスワードを設定します:

useradd -m -s /bin/bash compileuser  
passwd compileuser

後で sudo コマンドが必要になるので、compileuser が rpm パッケージをコンパイルしてインストールできるように、まず compileuser にすべてのコマンドを sudo で実行できるようにします:

実行

visudo

開いたファイルには、root ALL=(ALL) ALL という行があります。その行のすぐ下に compileuser のための同様の行を追加します:

| [...] root ALL=(ALL) ALL compileuser ALL=(ALL) ALL [...] |

これで、rpm パッケージをビルドする準備が整いました。まず、compileuser ユーザーになります:

su compileuser

次に、ビルド環境を作成します:

mkdir $HOME/rpm  
mkdir $HOME/rpm/SOURCES  
mkdir $HOME/rpm/SPECS  
mkdir $HOME/rpm/BUILD  
mkdir $HOME/rpm/SRPMS  
mkdir $HOME/rpm/RPMS  
mkdir $HOME/rpm/RPMS/i386
echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacros

次に、http://www.courier-mta.org/download.php からソースファイルをダウンロードします:

cd /tmp  
wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.62.1.tar.bz2  
wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2  
wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2

次に(まだ /tmp にいる間に)、courier-authlib をビルドできます:

sudo rpmbuild -ta courier-authlib-0.62.1.tar.bz2

ビルドプロセスの後、rpm パッケージは $HOME/rpm/RPMS/i386 に見つけることができます(x86_64 システムの場合は $HOME/rpm/RPMS/x86_64):

cd $HOME/rpm/RPMS/i386

コマンド

ls -l

は、利用可能な rpm パッケージを表示します:

[compileuser@server1 i386]$ ls -l
total 584
-rw-r–r– 1 root root 140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root root  34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root root  17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root root  14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root  13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root   8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root root  35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
[compileuser@server1 i386]$

インストールしたいものを選択し、次のようにインストールします:

sudo rpm -ivh courier-authlib-0.62.1-1.i386.rpm courier-authlib-mysql-0.62.1-1.i386.rpm courier-authlib-devel-0.62.1-1.i386.rpm 

次に、/tmp ディレクトリに戻り、再度 rpmbuild を実行します。今回は sudo を使わずに、そうしないとコンパイルが root として実行されたために失敗します:

cd /tmp  
rpmbuild -ta courier-imap-4.4.1.tar.bz2

ビルドプロセスの後、rpm パッケージは $HOME/rpm/RPMS/i386 に見つけることができます(x86_64 システムの場合は $HOME/rpm/RPMS/x86_64):

cd $HOME/rpm/RPMS/i386

コマンド

ls -l

は、利用可能な rpm パッケージを表示します:

[compileuser@server1 i386]$ ls -l
total 1868
-rw-r–r– 1 root        root        140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root        309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root          8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 395137 Feb 26 03:13 courier-imap-4.4.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 906775 Feb 26 03:13 courier-imap-debuginfo-4.4.1-1.i386.rpm
[compileuser@server1 i386]$

courier-imap を次のようにインストールできます:

sudo rpm -ivh courier-imap-4.4.1-1.i386.rpm

次に、/tmp ディレクトリに戻り、再度 rpmbuild を実行します。今回は maildrop パッケージをビルドします:

cd /tmp  
sudo rpmbuild -ta maildrop-2.0.4.tar.bz2

ビルドプロセスの後、rpm パッケージは $HOME/rpm/RPMS/i386 に見つけることができます(x86_64 システムの場合は $HOME/rpm/RPMS/x86_64):

cd $HOME/rpm/RPMS/i386

コマンド

ls -l

は、利用可能な rpm パッケージを表示します:

[compileuser@server1 i386]$ ls -l
total 3096
-rw-r–r– 1 root        root        140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root        309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root          8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root        root         35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 395137 Feb 26 03:13 courier-imap-4.4.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 906775 Feb 26 03:13 courier-imap-debuginfo-4.4.1-1.i386.rpm
-rw-r–r– 1 root        root        303104 Feb 26 03:25 maildrop-2.0.4-1.i386.rpm
-rw-r–r– 1 root        root        739326 Feb 26 03:25 maildrop-debuginfo-2.0.4-1.i386.rpm
-rw-r–r– 1 root        root        134387 Feb 26 03:25 maildrop-devel-2.0.4-1.i386.rpm
-rw-r–r– 1 root        root         58837 Feb 26 03:25 maildrop-man-2.0.4-1.i386.rpm
[compileuser@server1 i386]$

次のように maildrop をインストールできます:

sudo rpm -ivh maildrop-2.0.4-1.i386.rpm

必要なすべてのパッケージをコンパイルしてインストールした後、次のようにして再び root になります:

exit

11 Postfix にクォータパッチを適用する

Postfix のソース rpm を取得し、クォータパッチでパッチを当て、新しい Postfix rpm パッケージをビルドしてインストールする必要があります。

cd /usr/src  
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.2/os/SRPMS/postfix-2.3.3-2.src.rpm  
rpm -ivh postfix-2.3.3-2.src.rpm

最後のコマンドは、無視できるいくつかの警告を表示します:

warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root

cd /usr/src/redhat/SOURCES  
wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz  
gunzip postfix-2.3.3-vda.patch.gz  
cd /usr/src/redhat/SPECS/

次に、postfix.spec ファイルを編集する必要があります:

vi postfix.spec

%define MYSQL 0 を %define MYSQL 1 に変更し、# Patches スタンザに Patch0: postfix-2.3.3-vda.patch を追加し、最後に %setup -q スタンザに %patch0 -p1 -b .vda を追加します:

| [...] %define MYSQL 1 [...] # Patches Patch0: postfix-2.3.3-vda.patch Patch1: postfix-2.1.1-config.patch Patch3: postfix-alternatives.patch Patch6: postfix-2.1.1-obsolete.patch Patch7: postfix-2.1.5-aliases.patch Patch8: postfix-large-fs.patch Patch9: postfix-2.2.5-cyrus.patch [...] %setup -q # Apply obligatory patches %patch0 -p1 -b .vda %patch1 -p1 -b .config %patch3 -p1 -b .alternatives %patch6 -p1 -b .obsolete %patch7 -p1 -b .aliases %patch8 -p1 -b .large-fs %patch9 -p1 -b .cyrus [...] |

次に、クォータと MySQL サポートを持つ新しい Postfix rpm パッケージをビルドします:

rpmbuild -ba postfix.spec

私たちの Postfix rpm パッケージは /usr/src/redhat/RPMS/i386 に作成されます(x86_64 システムの場合は /usr/src/redhat/RPMS/x86_64)、そこに移動します:

cd /usr/src/redhat/RPMS/i386

コマンド

ls -l

は、利用可能なパッケージを表示します:

[root@server1 i386]# ls -l
total 11292
-rw-r–r– 1 root root 3820393 Feb 27 18:16 postfix-2.3.3-2.i386.rpm
-rw-r–r– 1 root root 7666204 Feb 27 18:16 postfix-debuginfo-2.3.3-2.i386.rpm
-rw-r–r– 1 root root   50539 Feb 27 18:16 postfix-pflogsumm-2.3.3-2.i386.rpm
[root@server1 i386]#

Postfix パッケージを選択し、次のようにインストールします:

rpm -ivh postfix-2.3.3-2.i386.rpm

次に、Sendmail をオフにし、Postfix、saslauthd、および courier-authlib を起動します:

chkconfig --levels 235 courier-authlib on  
/etc/init.d/courier-authlib start

chkconfig --levels 235 sendmail off  
chkconfig --levels 235 postfix on  
chkconfig --levels 235 saslauthd on  
/etc/init.d/sendmail stop  
/etc/init.d/postfix start  
/etc/init.d/saslauthd start

12 Courier の設定

次に、courier-imap のシステム起動リンクを作成します:

chkconfig --levels 235 courier-imap on  
/etc/init.d/courier-authlib restart  
/etc/init.d/courier-imap restart

courier-imap が初めて起動されると、自動的に /usr/lib/courier-imap/share/imapd.pem と /usr/lib/courier-imap/share/pop3d.pem の証明書ファイルが /usr/lib/courier-imap/etc/imapd.cnf と /usr/lib/courier-imap/etc/pop3d.cnf ファイルから作成されます。これらの .cnf ファイルには CN=localhost という行が含まれていますが、私たちのサーバーは server1.example.com という名前なので、証明書は TLS 接続を使用する際に問題を引き起こす可能性があります。これを解決するために、両方の証明書を削除します…

cd /usr/lib/courier-imap/share/  
rm -f imapd.pem  
rm -f pop3d.pem

… そして、/usr/lib/courier-imap/etc/imapd.cnf と /usr/lib/courier-imap/etc/pop3d.cnf の CN=localhost 行を CN=server1.example.com に置き換えます:

vi /usr/lib/courier-imap/etc/imapd.cnf

| [...] CN=server1.example.com [...] |

vi /usr/lib/courier-imap/etc/pop3d.cnf

| [...] CN=server1.example.com [...] |

次に、両方の証明書を再作成します…

./mkimapdcert  
./mkpop3dcert

… そして、courier-authlib と courier-imap を再起動します:

/etc/init.d/courier-authlib restart  
/etc/init.d/courier-imap restart

13 Getmail のインストール

Getmail は次のようにインストールできます:

yum install getmail
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。