サーバが故障してリカバリに四苦八苦。しばらく触らないとすぐ設定方法を忘れる。また同じことが起こるはずなので,私自身のために書き残しておく。つまり,記述は私自身の運用環境に依存するので,不特定の方の参考にはならない可能性が高い。
sendmail
私のメール環境は,送信はプロバイダの SMTP サーバを用い,受信を自宅サーバで行い各ユーザのメールボックスに配信する運用になっている。SPAM メール対策に SpamAssassin を使い,少しでも機械的メール送信プログラム対策に資するよう Milter-Greylist を使っている。家族の PC で動くメールソフトから取りに来る受け口となる POP3 サーバ Qpopper, 着信メールの自動振分のための Procmail, Web アーカイブとして閲覧できるようにするための MHonArc, プロバイダ・アカウント宛に来たメールを取得する Fetchmail 等々,関連プログラムは少なくない。まずこれらのソフトウェアを ports でインストールする。ここでは Qpopper と SpamAssassin についてだけ少し。
Qpopper とのコネクションは inetd が受け付けるようにしているので,/etc/
pop3 stream tcp nowait root /usr/local/libexec/qpopper qpopper -s
SpamAssassin については,FreeBSD 8.2-RELEASE の現時点での最新 ports /usr/
# cd /usr/ports/japanese/mecab && make WITH_CHARSET=utf8 install clean # cd /usr/ports/japanese/mecab-ipadic && make WITH_CHARSET=utf8 install clean # cd /usr/ports/japanese/p5-MeCab && make install clean # cd /usr/ports/japanese/p5-Mail-SpamAssassin && make install clean
メール環境の復旧は何より sendmail.cf 設定ファイルのリカバリが命である。これをバックアップしておけばよいのであるが — 愚かにも — 今回バックアップのなかに見当たらなかった。それで一から設定することに。
最近の FreeBSD では sendmail.cf の生成は,/etc/
divert(0) VERSIONID(`...') OSTYPE(freebsd6) DOMAIN(generic) MASQUERADE_AS(`yasuda.homeip.net') MASQUERADE_DOMAIN(`$j') EXPOSED_USER(``daemon news usenet postmaster MAILER-DAEMON'') FEATURE(`limited_masquerade') FEATURE(`masquerade_envelope') FEATURE(`allmasquerade') FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access') FEATURE(blacklist_recipients) FEATURE(local_lmtp) FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') define(`confCW_FILE', `-o /etc/mail/local-host-names') define(`confMAX_MIME_HEADER_LENGTH', `256/128') define(`confNO_RCPT_ACTION', `add-to-undisclosed') define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy') dnl j,{if_addr},{cert_subject},i,{auth_authen} are already enabled by default define(`confMILTER_MACROS_HELO', confMILTER_MACROS_HELO``, {verify}'') define(`confMILTER_MACROS_ENVRCPT', confMILTER_MACROS_ENVRCPT``, {greylist}'') INPUT_MAIL_FILTER(`greylist', `S=local:/var/milter-greylist/milter-greylist.sock, F=T, T=R:30s') MAILER(local) MAILER(smtp)
私自身の備忘録なので細かいことは省略する。最後行から 3--5 行は Milter-Greylist のための記述である。一般的な記述は freebsd.
mc ファイルができたら,sendmail.
# cd /etc/mail # make SENDMAIL_MC=/etc/mail/beatrice.yasuda.homeip.net.mc all install
さらに /etc/
スパムの踏み台にならないか一応チェックしておくとよい。http://verify.abuse.net/relay.html などで不正な第三者中継のセキュリティホールを診断できる。このサイト・フォームの Address to test: にメールサーバ名を入力して test for relay ボタンをクリックすれば診断を開始する。All tests performed, no relays accepted. が最後に出力されればよいと思う。
Movable Type
本ブログの管理システム Movable Type 4.1 (以下 MT) のリカバリについては,ブログ情報を格納した SQLite3 DB と Web MT data ツリー,cgi-bin ツリーすべてが,壊れたディスクから復元できた。このため,リカバリ作業はこれらのツリーの復元(バックアップアーカイブの解凍),SQLite3 のインストール,そしてMT 動作のために必要な Perl モジュールの追加ということになる。
まず Web サーバ Apache22 環境を構築しておく。その後バックアップから MT ツリーを復元する。SQLite3 がインストールされているか確認し,なければインストールしておく。そのあとでブラウザから mt-check.cgi にアクセスすると,MT が前提とする Perl モジュールの検出状況が出力される。不足しているものを ports で追加するか,cpan コマンドもしくは perl -MCPAN -e shell でインストールする。再度 mt-check.cgi を実行して動作準備完了が確認できれば,mt.cgi にアクセスする。以前の通り使用可能になるはずである。