sendmail+ldapのビルド手順


メールアカウントの仮想化の近道は、OSのユーザアカウントを流用せずアカウント情報をLDAPサーバから供給することです。sendmailをLDAP対応させるためのビルド手順をメモします。

ソースのTARボールを解凍する

sendmailのソースコードのtarボールを入手し(www.sendmail.orgを参照)/usr/local/src/等、好みのソース・ビルド用ディレクトリにコピーしたのち解凍します。

#cd /usr/local/src
#tar -zxf sendmail-8.12.9.tar.gz

サイト設定ファイル site.config.m4を作成する

sendmailのコンパイル時の指定は、site.config.m4というファイルにm4マクロで記述し、sendmailのソースコードを展開して作成されたディレクトリ配下のDevtools/Siteにこのファイルを配置して行います。以下は、OpenLDAP(Vers.2.0以降)の利用を前提としたsite.config.m4ファイルの一例です。太字の部分がLDAPの利用に直接関与する記述です。SASLによるSMTP AUTHなど、ほかにも実装したい機能があれば、その記述をこのファイルに加えます。OpenLDAPは、sendmailをビルドする前にインストールされていなければなりません。以下の例は、OpenLDAPライブラリの各ファイルが/usr/libディレクトリにあることを前提としています。

APPENDDEF(`confMAPDEF’,`-DLDAPMAP’)
APPENDDEF(`confENVDEF’,`-DLDAP_VERSION_MAX=3′)

APPENDDEF(`confINCDIRS’, `-I/usr/include’)
APPENDDEF(`confLIBSDIRS’, `-L/usr/lib’)
APPENDDEF(`confLIBS’, `-lpthread -lldap -llber -lldap_r‘)

 ビルド

# cd /usr/local/src/sendmail-8.12.9/sendmail
#sh Build

 ユーザsmmspの作成

# useradd smmsp

インストール

# sh Build install

sendmail.cf, submit.cfの生成

sendmailの機能設定をm4マクロで記述したsendmail.mc, submit.mcファイルを作成し、ディレクトリ cf/cf配下に置き、以下の手順でビルドすることにより、sendmail.cf, submit.cfファイルが/etc/mail以下にコピーされます。

  • 実際にメールルーティングやエリアスの制御を行うためには、sendmail.mcにLDAPの利用に関する記述をおこなう必要があります。記述方法は 「LDAP利用のためのsendmail.mcの設定」を参照してください。
  • ディレクトリ /etc/mailは事前に作成しておきます。
# cd /usr/local/src/sendmail-8.12.9/cf/cf
# sh Build install-cf