Dell Optiplex GXa |
SolarisTM 9 x86 9/04 |
POP Before SMTP with sendmail-8.13.3 + smtpfeed
こちら に引っ越します。今後このページの更新はありません。
sendmail-8.13.3
作業ディレクトリを作成
$ mkdir /opt/src/sendmail-8.13.3
作業ディレクトリに移動
$ cd /opt/src/sendmail-8.13.3
sendmailアーカイブをダウンロード
$ wget ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.13.3.tar.gz
sendmailアーカイブを解凍展開
$ tar xozf sendmail.8.13.3.tar.gz
インストール:
sendmailディレクトリのdevtools/OSに移動
$ cd /opt/src/sendmail-8.13.3/sendmail-8.13.3/devtools/OS
SunOS.5.9m4 を ../Site/SunOS.5.9.m4 としてコピーする。
$ cp SunOS.5.9 ../Site/SunOS.5.9.m4
コピーしたファイルSunOS.5.9.m4 をviで開く。
$ vi ../Site/SunOS.5.9.m4
以下のように修正して保存する。
#####################################################
# $Id: SunOS.5.9,v 8.9 2002/03/21 23:59:26 gshapiro Exp $
dnl DO NOT EDIT THIS FILE.
dnl Place personal settings in devtools/Site/site.config.m4
define(`confCC', `gcc')
define(`confLDOPTS_SO', `-G')
define(`confBEFORE', `sysexits.h')
define(`confMAPDEF', `-DNEWDB -DNIS -DNISPLUS -DMAP_REGEX')
define(`confENVDEF', `-DSOLARIS=20800 -DNETINET6')
define(`confSM_OS_HEADER', `sm_os_sunos')
define(`confLIBS', `-lsocket -lnsl')
define(`confMTCCOPTS', `-D_REENTRANT')
define(`confMTLDOPTS', `-lpthread')
define(`confMBINDIR', `/usr/lib')
define(`confEBINDIR', `/usr/lib')
define(`confSBINGRP', `sys')
define(`confINSTALL', `${BUILDBIN}/install.sh')
define(`confDEPEND_TYPE', `CC-M')
define(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.1/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.1/include')
PUSHDIVERT(3)
sysexits.h:
if [ -r /usr/include/sysexits.h ]; \
then \
ln -s /usr/include/sysexits.h; \
fi
POPDIVERT
#####################################################
セキュリティを高めるため、このサーバーを経由して配信されたメール
のヘッダ部分に表示されるバージョン番号(8.13.3/8.13.3)を変える。
もしも自分が使っているバージョンにセキュリティホールが見つかってし
まった場合、クラッカーはその情報を元に攻撃を仕掛けてくる可能性があ
るので、ソースを少々書き換えて、表示させるバージョンを架空のものに
してしまう。
(後のsendmail.cfのDZの書き換えも忘れずに)
ディレクトリを移動する。
$ cd /opt/src/sendmail-8.13.3/sendmail-8.13.3/sendmail
version.cをviで開く。
$ vi version.c
最下行(18行目)を以下のように書き換えて保存する。
(" "の中は適当に)
/* ##### 変更前 ##### */
char Version[] = "8.13.3";
/* ##### 変更後例 ##### */
char Version[] = "2008";
ディレクトリを移動する。
$ cd ../
コンパイル
$ /bin/sh ./Build -c -f /opt/src/sendmail-8.13.3/sendmail-8.13.3/devtools/Site/SunOS.5.9.m4
SuperUserになって、マニュアルがインストールされるディレクトリを作っておく。
$ su
Password:
# mkdir /usr/share/man/cat1
# mkdir /usr/share/man/cat5
# mkdir /usr/share/man/cat8
新しいグループsmmspを作成する。
# groupadd smmsp
新しいユーザーsmmspを作成する。
# useradd -g smmsp -s /bin/false smmsp
新しいディレクトリclientmqueueを作成する。
# mkdir /var/spool/clientmqueue
各バイナリとディレクトリのパーミッションを変更しておく。
# chown root:smmsp /usr/lib/sendmail
# chown smmsp:smmsp /var/spool/clientmqueue
# chmod 770 /var/spool/clientmqueue
インストールする。
# /bin/sh ./Build install
# exit
$
dracへの対応。
ディレクトリを移動する。
$ cd /opt/src/sendmail-8.13.3/sendmail-8.13.3/cf/feature/
新規ファイル drac.m4を作成する。
$ vi drac.m4
内容は以下のように記述して保存する。(tabとスペースの違いに注意!)
#####################################################
divert(-1)
#
# drac for sendmail.mc
#
divert(0)
VERSIONID(`drac.m4, for sendmail-8.13.*')
divert(-1)
define(`_CHECK_BY_DRAC_',`dnl
# check by drac
R`$'* $: $&{client_addr}
R$+ $: $(drac `$'1 $: ? $)
R? `$'@ ?
R$+ `$'@ `$'#OK')
LOCAL_CONFIG
Kdrac ifdef(`confDRAC_DBTYPE',confDRAC_DBTYPE,`btree') -a@rej@ -o ifdef(`confDRAC_DB', confDRAC_DB,`/etc/mail/dracd')
#####################################################
ディレクトリを移動する。
$ cd /opt/src/sendmail-8.13.3/sendmail-8.13.3/cf/m4/
proto.m4 をviで開く。
$ vi proto.m4
SLocal_check_rcptという行を検索して、以下のようにすぐ下に1行追加記述して保存する。
(8.13.3と8.13.2と8.13.1と8.13.0の場合は1930行目、8.12.11の場合は1884行目、8.12.10の場合は1882行目、
8.12.9の場合は1880行目、8.12.7の場合は1876行目、8.12.5と8.12.4の場合は1871行目だった)
SLocal_check_rcpt
ifdef(`_CHECK_BY_DRAC_', _CHECK_BY_DRAC_) # <-新規追加記述行
Scheck`'_U_`'rcpt