

| sendmailインストール(2002.04) |
【インストール】
前提条件としてSolaris8で構築する場合はここのフリーソフトのインストールは
行っているものとします。Linuxではsendmailを一度rpmで抜いておいたほうがややこしくなくていいかもしれません。
※フリーソフトのところでgroffをパッケージで入れてますが、このパッケージではコンパイル時に
●groffのインストール
| .8.sun4/libsm/libsm.a -lresolv -lsocket -lnsl groff -Tascii -man vacation.1 > vacation.0 || cp vacation.0.dist vacation.0 ld.so.1: groff: 重大なエラー: libstdc++.so.3: open に失敗しました: ファイルもディ レクトリもありません。 強制終了 |
| [root@home6 5.8]# ldd /usr/local/bin/groff libstdc++.so.3 => (ファイルが見つかりません) libm.so.1 => /usr/lib/libm.so.1 libgcc_s.so.1 => (ファイルが見つかりません) libc.so.1 => /usr/lib/libc.so.1 libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-30/lib/libc_psr.so.1 |
| [root@home6 groff-1.17.2]# ldd /usr/local/bin/groff libstdc++.so.2.10.0 => /usr/local/lib/libstdc++.so.2.10.0 libm.so.1 => /usr/lib/libm.so.1 libc.so.1 => /usr/lib/libc.so.1 libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-30/lib/libc_psr.so.1 |
| db_archive: libdb-3.2.so => /usr/local/BerkeleyDB.3.2/lib/libdb-3.2.so libc.so.1 => /usr/lib/libc.so.1 libgcc_s.so.1 => (ファイルが見つかりません) libgcc_s.so.1 => (ファイルが見つかりません) libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-30/lib/libc_psr.so.1 db_checkpoint: libdb-3.2.so => /usr/local/BerkeleyDB.3.2/lib/libdb-3.2.so libc.so.1 => /usr/lib/libc.so.1 libgcc_s.so.1 => (ファイルが見つかりません) libgcc_s.so.1 => (ファイルが見つかりません) libdl.so.1 => /usr/lib/libdl.so.1 /usr/platform/SUNW,Ultra-30/lib/libc_psr.so.1 |
ソースからコンパイルしましょう。
BerkekeyDBはほかのオープンソースなソフトと
ソースの展開したディレクトリ構造が少し違います。
#解凍した配下にMakefileやconfigureがなかったり・・・
#srcディレクトリがあったりすることが多いんですが・・・
#docディレクトリはあるのでこの中を熟読してください、すぐにコンパイルのやり方がわかります。
インストールはこんな感じです。
とりあえずソースは
http://www.sleepycat.com/
から最新版を持ってきます。
[root@home6 src]# tar zxf db-4.2.52.tar.gz
[root@home6 src]# cd db-4.2.52
[root@home6 db-4.2.52]# cd build_unix/
[root@home6 build_unix]# ../dist/configure CC=gcc (LinuxだとCC=gccはなくてもいいかもしれません・・・未検証)
[root@home6 build_unix]# make 2>&1|tee make.log
[root@home6 build_unix]# make install 2>&1|tee make_install.log
※なぜわざわざBerkekeyDBを入れるかというとRELAYの設定をhashサポートで使うからです。
またBerkekeyDBの最新版をインストールしても/usr/local/BerkekeyDB.バージョンというかたちで
インストールされるので古いものを削除しなくても特に問題はないでしょう。
必要なときにLD_LIBRALY_PATHなどに入れてあげればいいだけですから。
●sendmailのインストール
ソースは/usr/local/src/sendmailにおいているものとしてインストールしていきます。
・バックアップ
[root@home6 sendmail]# cp -p /usr/lib/sendmail /usr/lib/sendmail.org
[root@home6 sendmail]# cp -p /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
[root@home6 sendmail]# cp -p /usr/sbin/makemap /usr/sbin/makemap.org
・アクセス権の確認
もし「/ /etc /etc/mail /usr /var /var/spool
/var/spool/mqueue」にgroupに書き込み権が
あればはずして、持ち主をrootにします。
#chmod go-w / /etc /etc/mail /usr /var /var/spool
/var/spool/mqueue
#chown root / /etc /etc/mail /usr /var /var/spool
/var/spool/mqueue
・グループとユーザ作成
[root@home6 sendmail]# groupadd -g 25 smmsp
[root@home6 sendmail]# useradd -u 25 -g 25 -d / smmsp
※予約gid・uidのwarningはでますがただ単なる警告なので
理解してオペレーションしてる分には問題ないです。
・manディレクトリ作成
[root@home6 sendmail]# mkdir /usr/share/man/cat1
[root@home6 sendmail]# mkdir /usr/share/man/cat5
[root@home6 sendmail]# mkdir /usr/share/man/cat8
・ソースの展開
[root@home6 /]# cd /usr/local/src/sendmail
[root@home6 sendmail]# tar zxvf sendmail.8.12.3.tar.gz
[root@home6 sendmail]# cd sendmail-8.12.3/
●site.config.m4の編集
/usr/local/src/sendmail/sendmail-8.12.3/devtools/Site/site.config.m4
BerkeleyDB.4.xをインストールしているのでhashサポートで入れるので以下の
site.config.m4を用いることにする。
※下記のBerkeleyDB.4.0をサポートしていれるやり方ですが
site.config.m4を以下のように書けばいけるかも。(未検証:近々検証します)
| define(`confMAPDEF', `-DNEWDB -DNDBM -DNIS -DNISPLUS -DMAP_REGEX') APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB.4.2/include') APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB.4.2/lib') APPENDDEF(`confLIBSEARCH', `db') APPENDDEF(`confLIBSEARCHPATH', `/usr/lib /usr/local/lib /usr/local/BerkeleyDB.4.2/lib') |
| divert(0)dnl VERSIONID(`$Id: generic-solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $')dnl OSTYPE(`solaris2')dnl FEATURE(`redirect')dnl FEATURE(`always_add_domain')dnl FEATURE(`accept_unresolvable_domains')dnl FEATURE(`accept_unqualified_senders')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`access_db', `hash -o /etc/mail/access')dnl FEATURE(`use_cw_file')dnl dnl FEATURE(`domaintable', `hash /etc/mail/domaintable')dnl dnl FEATURE(`mailertable', `hash /etc/mail/mailertable')dnl dnl FEATURE(`bitdomain', `hash /etc/mail/bitdomain')dnl dnl FEATURE(`virtusertable', `dbm /etc/mail/virtusers')fnl MASQUERADE_AS(`jinjin.com')dnl define(`confDOMAIN_NAME', `jinjin.com')dnl define(`confMAX_HEADERS_LENGTH', `32768')dnl define(`confTO_IDENT', `0')dnl define(`confPRIVACY_FLAGS', `goaway')dnl dnl define(`DATABASE_MAP_TYPE', `dbm')dnl dnl define(`SMART_HOST', `smart.foo.com')dnl MAILER(`local')dnl MAILER(`smtp')dnl |
| 192.168.128 RELAY 127.0.0.1 RELAY |
| define(`confRUN_AS_USER', `smmsp:smmsp') |
| -r-xr-sr-x root smmsp ... /PATH/TO/sendmail drwxrwx--- smmsp smmsp ... /var/spool/clientmqueue drwx------ root wheel ... /var/spool/mqueue -r--r--r-- root wheel ... /etc/mail/sendmail.cf -r--r--r-- root wheel ... /etc/mail/submit.cf |
| jinjin.com .jinjin.com home6.jinjin.com |
| #!/sbin/sh の下に LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/local/BerkeleyDB.4.0/lib; export LD_LIBRARY_PATH; |
| Apr 28 21:23:34 home6 sendmail[454]: [ID
801593 mail.info] g3SCNYbD000454: from=yuzo,
size=51944, class=0, nrcpts=1, msgid=<200204281223.g3SCNYbD000454@home6.jinjin.com>,
relay=root@localhost Apr 28 21:23:34 home6 sendmail[455]: [ID 801593 mail.info] g3SCNYiH000455: from=<yuzo@home6.jinjin.com>, size=52220, class=0, nrcpts=1, msgid=<200204281223.g3SCNYbD000454@home6.jinjin.com>, proto=ESMTP, daemon=MTA, relay=localhost [127.0.0.1] Apr 28 21:23:34 home6 sendmail[454]: [ID 801593 mail.info] g3SCNYbD000454: to=yuzo@jinjin.org, ctladdr=yuzo (100/10), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30043, relay=localhost.jinjin.com. [127.0.0.1], dsn=2.0.0, stat=Sent (g3SCNYiH000455 Message accepted for delivery) Apr 28 21:23:37 home6 sendmail[457]: [ID 801593 mail.info] g3SCNYiH000455: to=<yuzo@jinjin.org>, ctladdr=<yuzo@home6.jinjin.com> (100/10), delay=00:00:03, xdelay=00:00:03, mailer=esmtp, pri=120319, relay=vs.mailsystems.net. [211.125.95.177], dsn=2.0.0, stat=Sent (Mail accepted) |
| /usr/local/man/man8/popper.8 /usr/local/man/man8/popauth.8 /usr/local/sbin/popper /usr/local/bin/poppassd |
| C:\Documents and Settings\Administrator>telnet 192.168.128.16 110 +OK ready user ユーザ名 +OK Password required for yuzo. pass ********* +OK yuzo has 5 visible messages (0 hidden) in 69713 octets. list +OK 5 visible messages (69713 octets) 1 2301 2 28848 3 653 4 2512 5 35399 . |
| #!/bin/sh case "$1" in start) # Start daemons. if [ ! -f /var/run/popper.pid ]; then echo "Starting POP3 Service" /usr/local/sbin/popper 192.168.128.16:110 -S -T600; ps -ef |grep "/usr/local/sbin/popper [0-9]*" | grep -v grep | awk '{print $2}' > /var/run/popper.pid; else echo "process popper allready running!\n" exit 1 fi ;; stop) # Stop daemons. if [ -f /var/run/popper.pid ]; then echo "Shutting down POP3 Service" kill -15 `cat /var/run/popper.pid` rm -f /var/run/popper.pid else echo "process popper not running" exit 1 fi ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac exit 0 |