2006年12月03日
メールセキュリティ強化 |
午前中断髪式予定だったが寝坊。延期。
午後からtsubameサーバ(新サーバ、といっても2年前の)でメールサーバ環境構築
sendmail設定は完了済み。
spamassassinを導入。
先輩のhayateサーバと同様の環境に仕立てるのが目標。
まずはMail-spamassassinをいきなり入れてみる。
$tar zxf Mail-SpamAssassin-3.1.4.tar.gz
$cd Mail-SpamAssassin-3.1.4
$perl Makefile.PL
とやると、
What email address or URL should be used in the suspected-spam report
text for users who want more information on your filter installation?
(In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system]
と聞かれた。 管理者のメールアドレスを入れた。
:
checking module dependencies and their versions...
***************************************************************************
ERROR: the required Digest::SHA1 module is not installed.
The Digest::SHA1 module is used as a cryptographic hash for some
tests and the Bayes subsystem. It is also used by Razor2.
:
REQUIRED module missing: Digest::SHA1
optional module missing: DB_File
optional module missing: Net::DNS
optional module missing: libnet
optional module missing: Mail::SPF::Query
optional module missing: IP::Country
optional module missing: Razor2
optional module missing: Net::Ident
optional module missing: IO::Socket::INET6
optional module missing: IO::Socket::SSL
optional module missing: Time::HiRes
optional module out of date: Getopt::Long
optional module missing: Archive::Tar
optional module missing: IO::Zlib
必要なモジュールがインストールされていないようだ。 Makefileを作ってくれなかった。
www.cpan.orgからこれら必要そうなモジュールをインストールしていく。
・Digest-SHA1-2.11.tar.gzインストール
・DB_File-1.814.tar.gzインストール
・Net-IP-1.25.tar.gzインストール
・Digest-HMAC-1.01.tar.gzインストール
・Net-DNS-0.59.tar.gzインストール
上記モジュールのインストール手順はすべて共通
$tar zxf filename_of_module.tar.gz
$cd filename_of_module
$perl Makefile.PL
$make
#make install
さて、再度spamassassinのインストールに挑戦
$perl Makefile.PL
:
Writing Makefile for Mail::SpamAssassin
Makefile written by ExtUtils::MakeMaker 6.17
$
第一関門通過。
$make
#make install
とも無事クリアした。
spamassassinが/usr/local/bin/にインストールされなかったので、手動でコピーしておく。
試運転良好。
ついでにPop-before-smtpの設定をtsubameサーバにもしておく。
・DRAC のインストールと設定
http://mail.cc.umanitoba.ca/drac/#source からダウンロード
DRAC は展開しても自動的にディレクトリを作らないので、あらかじめディレクトリを作成しておき、その中でアーカイヴを展開する。OS 環境に合わせて、Makefile を編集する必要がある。
$ mkdir drac
$ cd drac
$ tar zxvf ~/drac.tar.Z
$ vi Makefile
編集したところ
INSTALL = /usr/bin/install
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
CFLAGS = $(DEFS) -g
LDLIBS = -ldb
RPCGENFLAGS = -C -I
MANADM = 8
$make
#make install
/usr/local/sbin に rpc.dracd (DRACの本体、デーモンプログラム) がインストールされる。DRAC のライブラリ libdrac.a は自動的にはインストールされないので、/usr/local/lib などに手動でコピー。
# cp libdrac.a /usr/local/lib/
dracd-setup.linux をちょいと編集。
#daemon rpc.dracd& ←コメントに
/usr/local/sbin/rpc.dracd & ←レコード追加
/etc/init.d に dracd としてコピー。
# cp dracd-setup.linux /etc/rc.d/init.d/dracd
・DRAC の設定
次に、DRAC デーモンにアクセスできる IP アドレスを設定するファイル dracd.allow を作成します。アーカイブに同梱されている dracd.allow-sample を /etc/mail/dracd.allow にコピーし、編集。しかし、/etc/mail/dracd-allow ファイルは既にあり、しかるべき値で設定されていたので省略。
# cp dracd.allow-sample /etc/mail/dracd-allow
# vi /etc/mail/dracd.allow
/etc/mail/dracd.allowの内容:
255.255.255.255 127.0.0.1
・DRAC の起動設定
DRAC デーモンの起動の前に portmap を起動しておく必要があるので、/etc/rc.d/rc3.dの設定に注意。
# ln -s /etc/init.d/dracd /etc/rc.d/rc3.d/S90dracd
portmap はローカルで参照されるだけなので、セキュリティ対策上、外部に対してはポートを閉じておく。
# vi /etc/hosts.allow
portmap : 127.0.0.1 : allow
portmap : ALL : deny
portmapを起動
#/etc/rc.d/init.d/portmap start
portmapperを起動中: [ OK ]
・次にqpopper(POP3サーバ)のインストール
http://www.ring.gr.jp/pub/net/mail/qpopper/ からダウンロード。
$ tar zxf qpopper4.0.9.tar.gz
$ cd qpopper4.0.9
$ ./configure --with-drac=/usr/local/lib --enable-specialauth --enable-log-login
$ make
# make install
・qpoppor設定
以下の内容のファイルを /etc/xinetd.d/popper として作成
service pop3
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/popper
server_args = -s
log_on_success += HOST DURATION
log_on_failure += HOST
disable = no
}
そしたらxinetd再起動(これを忘れてしばし 嵌ったorz)。
・sendmail 更新
この際最新版にしておく。
http://www.sendmail.org/releases/ からダウンロード
$ tar zxf sendmail.8.13.8.tar.gz
$ cd sendmail-8.13.8
$ sh ./Build
smmsp というユーザとグループを作成
# /usr/sbin/adduser smmsp
インストール続行
# sh ./Build install
エラーだ。
install -c -o bin -g bin -m 444 smrsh.0 /usr/man/man8/smrsh.8
install: cannot create regular file `/usr/man/man8/smrsh.8': そのようなファイルやディレクトリはありません
make[1]: *** [install-docs] エラー 1
:
install -c -o bin -g bin -m 444 vacation.0 /usr/man/man1/vacation.1
install: cannot create regular file `/usr/man/man1/vacation.1': そのようなファイルやディレクトリはありません
make[1]: *** [install-docs] エラー 1
:
make: *** [all] エラー 2
/usr/man/...なんてディレクトリはないっす。
こうした。
# ln -s /usr/local/man /usr/man
再度 sh ./Build install 実行→OK
・makemap などの再構築
sendmailアップデートに伴い、sendmail 付属の makemap, mail.local, smrsh なども再構築。
cd sendmail-8.13.8/makemap
$ sh ./Build
# mv /usr/sbin/makemap /usr/sbin/makemap.8.11
# sh ./Build install
# cd ../mail.local
# sh ./Build
# sh ./Build force-install
# cd ../smrsh
# sh Build
# mv /usr/libexec/smrsh /usr/libexec/smrsh.org
# sh Build install
・sendmail.cf の再構築
$ cd sendmail-8.13.8/cf/cf
$ cp cp generic-linux.mc sendmail.mc
$ vi sendmail.mc
従来のsendmail.mcと比較しながら それなりに編集。
末尾に以下追加
-start-
define(`LOCAL_MAILER_PATH', /usr/sbin/mail.local)dnl
define(`LOCAL_MAILER_FLAGS', LOCAL_MAILER_FLAGS`'SP)dnl
LOCAL_CONFIG
# dynamic relay authorization control map
Kdrac btree /etc/mail/dracd
LOCAL_RULESETS
SLocal_check_rcpt
# allow recent POP/IMAP mail clients to relay
R$* $: $&{client_addr}
R$+ $: $(drac $1 $: ? $)
R? $@ ?
R$+ $@ $#OK
-end-
# mv /etc/mail/sendmail.mc /etc/mail/sendmail.mc.8.11
# cp sendmail.mc /etc/mail/
・旧サーバからメールデータ移行
メーリングリストのデータをごっそりコピー(/var/spool/ml 以下)
・試運転
・ルータにて NAT定義変更。
やっぱり疲れた。
2023:
投稿者 onsenfan [ Linuxサーバ ] : 2006年12月03日 23:09
この記事が役に立った/おもしろいと思ったら、ワンクリックで応援お願いしますトラックバック
このエントリーのトラックバックURL:
https://blog.odorokutamegoro.com/mt-tb.cgi/1665_3570951882194