ClamdとSpamdをsvscanで動かす。

前回導入した「qmailmrtg」用の対応です。

※qmailmrtgはmultilog形式にしか対応していないので、syslog形式のログでは集計してくれません。

 

日本語の情報が少ないので、自身の覚書の為に。

 

【/service/clamd/run】

#!/bin/sh
exec 2>&1
exec /bin/setuidgid qscand /usr/sbin/clamd

  

【/service/clamd/log/run】

#!/bin/sh
exec /bin/setuidgid qscand /bin/multilog t s16777215 n40 /var/log/clamd

 

【/service/spamd/run】

#!/bin/sh
MAX=10
exec spamd -i -m ${MAX} –username=qscand –syslog=stderr 2>&1

 

【/service/spamd/log/run】

#!/bin/sh
exec /bin/setuidgid qscand /bin/multilog t s16777215 n40 /var/log/spamd

 

いろいろ失敗も踏んだが、とりあえず現状は上記run内容で稼動している。

一定容量のテストデータを作成

テストデータとして250MBのファイルの転送速度を計測することになった。

適当にゴミファイルをzipでまとめても良いんだけど、ある程度正確な値を欲しかったので、きっちり250MBのファイルを作成した時のコマンドメモ。

 

dd if=/dev/zero of=testdate count=262144000 bs=1

postfix-logwatch

CentOS5.2で作ったpostfixの、logwatchのメールサイズが大きくて(1MBぐらい)、かなり読み辛いかったので、postfix-logwatchというものを入れてみた。

qmailの時は、logwatchのscriptでqmail-sendやらqmail-pop3やらあったので、”集計をしない!”って逃げ方をしたけど、postfixのscriptは1つだけしかないから、逃げることが出来ないっぽい。・゚・(ノ∀`)・゚・。

 

以下、インストール方法

wget http://www.mikecappella.com/logwatch/release/postfix-logwatch-1.37.08.tgz

tar zxf postfix-logwatch-1.37.08.tgz

cd postfix-logwatch-1.37.08

make install-standalone

mv /usr/local/etc/postfix-logwatch.conf /usr/share/logwatch/default.conf/services/postfix.conf

chown root:root /usr/share/logwatch/default.conf/services/postfix.conf

chmod 644 /usr/share/logwatch/default.conf/services/postfix.conf

mv /usr/local/bin/postfix-logwatch /usr/share/logwatch/scripts/services/postfix

chown root:root /usr/share/logwatch/scripts/services/postfix

chmod 755 /usr/share/logwatch/scripts/services/postfix

 

公式サイトにはこれで動作するはずだけど、手動で試してみるとlogwatchメールに以下のエラーが表示された。 

 

 ——————— Postfix Begin ————————

 “-T” is on the #! line, it must also be used on the command line at /usr/share/logwatch/scripts/services/postfix line 1.
 
 ———————- Postfix End ————————-

 

まあ、安直にscriptファイルの1行目を、”#!/usr/bin/perl -T”から”#!/usr/bin/perl -w”に変更して正常に動くようになった。

メール鯖の移行が終わりました。

正直待ち疲れた・・・。

旧サーバ側でユーザーデータの圧縮に1時間、VPN経由でデータ落とすのに3時間、新サーバにアップロードするのに1時間半。

たったこれだけの作業で5時間以上も待ちぼうけ (´ー`)y─┛~~・・・orz

メールデータの欠損も無くサーバ移行は完了したけど、サーバ上に残っていた既読メール(cur)がクライアントPC側で2重に受信してしまう結果になった。

多い人だと2000件程度、過去に受信したメールを再度受信する結果となってしまう。

まぁ、MTAが変わるのでしかたないと言えばそれまでだけど、事前にユーザーにクライアントPC側の設定変更の呼びかけをするべきだったな。

会社のメールサーバのリプレース作業

昨年の9月から計画していた会社のメールサーバのリプレース。

今回のリプレースは、情報漏えい対策として「社内ネットワーク以外からはPOP接続させない」という運用に変える事が最大の意図になっている。

あと、「外部ドメインへの送信メールを数年間保存する」って事も合わせて行う。

送信メールの保存のソフトウェアの初期設定以外、環境構築やドキュメント作成を全て1人でやってきたので、スキル的に得た物は大きかったと思うが、変わりに睡眠時間と偏頭痛と肩こりに悩まされた半年だった・・・。

とりあえず、今回のリプレースで行った事をシステム担当の観点からまとめておきます。
(構築の詳細はそのうちに書いていきます。)

1.MTAの変更
  社内のSMTP/POP3のMTAを「qmail」から「postfix+devecot」に変更
  DMZに「qmail」をリレー用のSMTPとして設置

2.メーリングリストの変更
  qmailの「alias」から「Mailman」に変更。
  基本的な運用は変わらないけど、MLを介したメールの件名に連番付加を行っていく。

3.メール利用ルールの強化
  今までは配送容量の制限しか行っていなかったが、「自動転送禁止」、「分割送信禁止」を新たに設定した。
  ただし、「自動転送禁止」、「分割送信禁止」は社内からの送信のみを対象として、社外から送られてくるメールに対する制限は行わない。

4.ウィルスチェック機能の導入
  SMTPリレーサーバにSpamassassinとClamAVを導入して、自前のメールゲートウェイを構築。
  通過する全てのメールのチェックを行い、ウィルスを検知した場合は「受信先へ通知する」ようにした。

5.VPNの導入
  会社貸与のノートPCを使用している場合、VPN経由でメールサーバに接続できるようにした。
  VPNサーバはOpenVPNで構築し、クライアントに渡す秘密鍵などの利用上限を90日までとする。

6.WEBメールの契約
  VPNを使えない従業員用に、WEBメールの契約も行った。
  VPNと同様に利用の上限を90日までとして、恒久的に利用する場合、90日ごとに利用申請を提出してもらうようにする。

ウィルスチェック機能の導入は、「社内からの送信メール」も精査の対象としているため、どのくらいのシステム負荷が掛かるか分からないので、状況を見つつ設定をいじるつもり。

VPNの利用もWEBメールの利用も、そもそも当社では開発も運用もしていない(業務委託)なので、休日などに急いで会社のメールをチェックしなくてはならない事は存在しないはず。
もし緊急事態が起きても、ちんたらメールのやり取りを行える暇があるなら、関係者に電話するし。

本当に社外からメールの利用が必要なのか?と疑問が残るが、兎にも角にも明日のリプレース作業をチャッチと終わらせて、ゆっくり寝たいです。

HP製のUPSがチャージされない

11月に買ったUPSが、まったくチャージされていなかった。
バッテリーエラーなど、コレと言って目立った原因が見つからないが、事実としてチャージが行なわれていない。
HP UPS Management Moduleを確認しても、管理モジュールがUPSを認識すらしていない。
今日午前中に販社の技術者を呼んで一通り確認させたけど、今だ原因が不明。
来年の1月中旬から使うシステム用のUPSだから、とりあえずバッテリー変えるなり、UPSごと変えるなりの対応を早めにして欲しい。
販社も最大手のSIerだから、年内中に対応させるか。
2008/12/23
HPの技術者が来て、該当のUPSの修理をしてくれた。
結果から言うと、USPに増設したHP UPS Management Moduleの故障が原因だったらしい。
HP UPS Management Moduleを交換して、再度確認したところ、UPSはちゃんとチャージされてたから一安心。
どうやら、UPSの仕様上、USPへの電源供給が絶たれて1分後に接続されているサーバ類にシャットダウンコマンドを飛ばし、約5分後にUSP自信が停止する仕組みらしい。
今回はシャットダウンの管理はしていないから、USPにチャージされた電力を使い切った段階で停止させるようにしたけど、30分やそこらでいきなり電源が落ちるのは考えもんだな。

sendmailのリレー先変更

最近、メール関連の事しか書いていないような気がするが、お仕事だからしょうがない。
sendmailに中継させる情報はいろいろあったけど、sendmail自身のリレー先を指定する方法が少ない気がしたが、猫ぐらしさんのブログを発見。
sendmail.mc内の設定箇所をいじってあげると良いっぽい。
define(`SMART_HOST’,`smtp:smtp.yourdomain.jp’)dnl
ちなみに、「smtp:ドメイン名」部分は、IPアドレスだと、下記の様なエラーが出てNGだった。
(0/0), delay=00:00:00, xdelay=00:00:00, mailer=smtp, pri=120359, relay=192.168.4.3, dsn=5.1.2, stat=Host unknown (Name server: 192.168.4.3: host not found)
ローカル環境と言っても、DNSを参照できる環境にサーバを設置しないとダメみたい。

MTAの配送間隔

気になったので調べてみた。
[qmail]
デフォルト: n × 800 – 400秒
      n=再試行の回数
設定の変更:変更不可(要ソース改変)
[sendmail]
デフォルト:15分
設定の変更:引数 -q にて指定
$ sendmail -q15m
[postfix]
デフォルト:1000秒、2000秒、4000秒、以後4000秒間隔。
送信失敗すると、minimal_backoff_time の設定時間後に再送実施。
その後前回の配送間隔の2倍の間隔で配送を試みる。
設定の変更:minimal_backoff_time を設定。
      最大間隔は maximal_backoff_time で指定する。
minimal_backoff_time = 1000s
maximal_backoff_time = 4000s

net-snmpのログ出力の変更

net-snmpのログは、デフォルトだと以下の様な内容のログが/var/log/massageに出力される。
Dec 5 10:50:38 snwms01 snmpd[16849]: Connection from UDP: [127.0.0.1]:52695
Dec 5 10:50:38 snwms01 snmpd[16849]: Received SNMP packet(s) from UDP: [127.0.0.1]:52695
件数が多過ぎるので邪魔くさい。
なので/var/log/snmpd.logに出力するようにする。
[設定ファイル]
/etc/rc.d/init.d/snmtd
[変更前]
OPTIONS=”-Lsd -Lf /dev/null -p /var/run/snmpd.pid -a”
[変更後]
OPTIONS=”-Lf /var/log/snmpd.log -p /var/run/snmpd.pid -a”
ログルーテッドの設定も行う。
[設定ファイル]
/etc/logrotate.d/snmpd
[内容]
/var/log/snmpd.log {
notifempty
missingok
postrotate
/sbin/service snmpd condrestart 2> /dev/null > /dev/null || true
endscript
}
これでnet-snmpのログが/var/log/snmpd.logに出力され、1週間ごとにルーテッドされる。

VMwareにFedora9を入れてみた。

ubuntuにどうしても馴染めなかったので、 Fedora9をVMware上に入れてみた。
会社のPCに・・・www
自宅のPCは古いから、仮想OSの動作が重すぎて使い物にならんかったw
会社のノートPCはCore2Duo 1.6GB、メモリ1.5GBで、TeraTermとOfficeぐらいしか使ってないからさw
新しいPCを買うより、今ある資源を利用するって素敵すぎるwww
って事で、早速インストール。
VMware Playerをインストールして、isoイメージ落とすのが面倒だったので、配布されているFedora9をダウンロード。
初期値ではメモリが256MBしか割り当てられてなかったので、fedora-9-i386.vmxファイルのmemsize の値を “512”と修正する。
以前、MSのVirtualPCを使ったとき、ゲストOSのネットワークの設定で苦労した記憶があったけど、ブリッジモードで難なく外部との接続が行えた。
ダウンロードしたFedora9は日本語環境が使えないので、yumでインストールする。
yum -y groupinstall japanese-support -x xorg-x11-server-Xorg