Eximのインストール

ここでは、exim の一般的な導入方法についての概要を説明します。
より実践的な「ケーススタディ」のほうが役に立つかも知れません。まだ書いてないけど :-P

インストール

ダウンロード

exim のオフィシャルページ中、"Availability" から、最新の tar ball をダウンロードします。日本にもミラーがあります。

今回は、exim-4.10.tar.gzを使って説明します。

なお、rpm のパッケージについては、このページの下部 を参照してください。

ファイルの展開

tar ball (拡張子が .tar.gz) の場合、以下のコマンドでファイルを展開します。(太字部分がコマンド)

wassy src> tar zxvf exim-4.14.tar.gz
exim-4.14/
exim-4.14/OS/
exim-4.14/OS/Makefile-AIX
exim-4.14/OS/Makefile-BSDI
exim-4.14/OS/Makefile-Base
exim-4.14/OS/Makefile-CYGWIN
         :
exim-4.14/CHANGES
exim-4.14/ACKNOWLEDGMENTS
exim-4.14/Makefile
wassy src>

bzip2 パッケージ (拡張子が .tar.bz2) の場合は、以下のコマンドになります。

wassy src> tar jxvf exim-4.14.tar.bz2

…が、展開方法の解説がこのページの目的ではないので、'Unknown Option' などとエラーが表示される場合は、適当に調べてください。

Local Makefile の記述

残念ながら、exim は configure スクリプトには対応していませんし、今後も対応する予定はない (だってめんどくさいんだもーん by Philip) ので、自分で Makefile を書き換える必要があります。でも、本当に必要なオプション部分のみ (変なスクリプトを書く必要はない) なので安心してください (^^;

以下、ファイル名は展開したディレクトリ (たとえば /usr/src/exim-4.14/) を基点に説明します。たとえば src/README というファイルは、/usr/src/exim-4.14/src/README という絶対パスで表記されます。

まず、src/EDITME というファイルを Local/ ディレクトリに Makefile というファイル名にしてコピーします。また、(空の) Local/eximon.conf ファイルを作成します。

wassy exim-4.14> cp src/EDITME Local/Makefile
wassy exim-4.14> touch Local/eximon.conf

次に、Local/Makefile を編集します。最近添付されているこのファイルは、何も編集しなくても一応コンパイルして動作させるだけなら可能なのですが、次の箇所だけは変更しなければなりません。

EXIM_USER=
EXIM_USER=mail

# EXIM_GROUP=
EXIM_GROUP=mail

(前提として、mail グループに所属する mail ユーザーがいることを想定していますので、適当に変えてください)

その他、たとえば MySQL を使ってユーザー管理をする場合に

# LOOKUP_MYSQL=yes

の行のコメントを外したり、SMTP AUTH を使う場合には

# AUTH_CRAM_MD5=yes
# AUTH_PLAINTEXT=yes

のコメントを外したりします。詳しいことはファイル Local/Makefile 自身を読んでください。

make & install

で、とりあえず make します。

wassy exim-4.14> make

>>> Creating links to source files...
>>> New Makefile installed
>>> Use "make makefile" if you need to force rebuilding of the makefile
       :
       : 
>>> exim binary built
 
make[1]: Leaving directory `/usr/src/exim-4.14/build-Linux-i386'
wassy exim-4.14>

そのまま make install をします。当然 root になる必要があります。

wassy exim-4.14> su
Password: ********

root root# make install
mkdir -p /usr/exim/bin
/usr/exim/bin created

Installation directory is /usr/exim/bin
     :
Exim installation complete
root exim-4.14# exit

wassy exim-4.14>

実行時コンフィギュレーションファイルの設定

exim の動作のほとんどは、実行時(プロセス起動時)に読まれるコンフィギュレーションファイル (以下 confファイル) によって決定されます。confファイルは、デフォルトでは /usr/exim/configure にインストールされます。普通なら /etc/exim.conf とかに置きたいものですが、インストール場所を変えるには、ソース中の Local/Makefile ファイルの CONFIGURE_FILE オプションの値を変更してコンパイルしなおす必要があります。

もしくは ln -sf /usr/exim/configure /etc/exim.conf などとします。

exim は強力で、その軽さの割に sendmail でできることの大半を実現しています。そのため、このconfファイルの設定項目は非常に膨大になりえます。ただ、普通のメールサーバーとして動作させるには、以下の項目を変更すればとりあえず動作します。

以下、ドメイン example.jp のメールを取り扱い、社内ネットワークからのアクセスが 192.168.0.0/24 になるような環境を前提にします。

qualify_domain =
qualify_domain = example.jp

local_domains =
local_domains = example.jp

host_accept_relay = 127.0.0.1:
host_accept_relay = 127.0.0.1:192.168.0.0/24

で、(稼動しているなら) sendmail を止め、代わりに exim をデーモンとして起動します。

wassy exim-4.14> su
Password: ********

root exim-4.14# killall -KILL sendmail
root exim-4.14# /usr/exim/bin/exim -bd
root exim-4.14# exit

wassy exim-4.14>

さぁ、これで exim は 25番ポートで sendmail の代わりに動作するようになりました(はずです)。

メンテナンス入門

そのまま何もせずに稼動させておくと、いずれログファイルが膨大な量になってしまうので、月1回〜週1回くらいの頻度でログをローテートさせるべきです。一般の logrotate コマンドでもよいのですが、exicyclog というコマンドも導入されるので、これを使いましょう。

root exim-4.14# echo '/usr/exim/bin/exicyclog' >> /etc/cron.weekly/exim'

一応、こんな感じで導入することができます。

ただし、これだと Linux OS をインストールしたときにあらかじめインストールされる sendmail とレベル的に変わらないですし、企業レベルでも個人レベルでもあまり有効な使い方ができない、ということは頭の片隅に置いておいて下さい。

より具体的なシステム構築について、/mail/case/に書く予定ですので、そちらも併せてご参照ください。

日本ユーザー向けの rpm パッケージ

exim-4.21 以降、日本語によるヘッダのフィルタリングなどができるようになりました。timj.co.uk で配布されている rpm パッケージ は、エンコーディングが ISO-8859-1 を想定しているものになっているので、日本語ユーザー向けに utf-8 なバージョンの RPM を作りました。

このパッケージは、mysql サポートと、iconv()サポート (iso-2022-jp なメールヘッダを utf-8 に変換してフィルタリングできる) を組み込んだものです。また、exiscan (ACL版) と sa-exim の拡張を行っています (が、デフォルトでは両者の機能はオフになっています)。

上の srpm をダウンロードしたら、まずは以下のコマンドで自分のシステム用に rpm パッケージを再構築します。

% rpmbuild --rebuild exim-4.24-1.src.rpm

注) redhat 7.x までのシステムでは、rpmbuild の代わりに rpm コマンドを利用します

続いて、作成された rpm パッケージをインストールします。

# rpm -Uvh exim-4.24-1.i386.rpm

これでインストールは完了です。適宜、/etc/mail/ 以下の exim.conf, sa-exim.conf を編集し、次のコマンドで exim を起動します。

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

exim をシャットダウンする場合は、次のコマンドを利用します。

# /etc/rc.d/init.d/exim stop