• ベストアンサー

Cronからのメール

CentOSでCronを使っているのですが、 時々、以下のような内容のメールが送られてきます。 ### Warning: File system error. ### Filename: /var/lib/rpm/__db.001 ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /var/lib/rpm/__db.002 ### No such file or directory ### Continuing... ### Warning: File system error. ### Filename: /var/lib/rpm/__db.003 ### No such file or directory ### Continuing... 調べるには調べてみて、 # rpm –rebuilddb # rpm -qa # yum list などとはしてみたのですが、 一時的にでもこれで問題なくなったのかどうかもわからず、 再び、メールが送られてきました。 これはどのような内容のメールなのでしょうか。 無視しておいてもいいのでしょうか。 根本的に解決する方法があるのでしょうか。 あれば教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.2

tripwireはファイルの改ざん検知の為のシステムです。 ポリシーファイルの設定が正しくできていないから、ファイルが削除された。 と警告されているのでしょう。 もしかしたらSELinuxでtripwireのプログラムから読み出しが禁止されているのかも知れませんが。 /var/lib/rpmで、掲示されているファイルだけラベルが違いますし。 [root@localhost ~]# ls /var/lib/rpm/ -lhZ -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Basenames -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Conflictname -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Dirnames -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Filemd5s -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Group -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Installtid -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Name -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Packages -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Providename -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Provideversion -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Pubkeys -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Requirename -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Requireversion -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Sha1header -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Sigmd5 -rw-r--r-- root root user_u:object_r:rpm_var_lib_t Triggername -rw-r--r-- root root user_u:object_r:rpm_var_lib_t __db.000 -rw-r--r-- root root system_u:object_r:rpm_var_lib_t __db.001 -rw-r--r-- root root system_u:object_r:rpm_var_lib_t __db.002 -rw-r--r-- root root system_u:object_r:rpm_var_lib_t __db.003 [root@localhost ~]# 根本的な対処は、ポリシーファイルの修正を行うこと……でしょうかね。 http://www.add9.biz/linode/05_tripwire.html こちらのスクリプトをそのまま使用されているみたいですが……。 tripwireについては@ITとかサーバ構築関連のページで説明されているでしょうからそちらを参照して下さい。 http://www.atmarkit.co.jp/flinux/rensai/security08/security08a.html http://www.atmarkit.co.jp/flinux/rensai/security09/security09a.html http://centossrv.com/tripwire.shtml ファイル改ざんのチェックなんてしねぇよ。 というのであれば、tripwireをアンインストールすればよいでしょう。 cronで自動で改ざんチェックしない。 というのであれば、/etc/cron.daily/辺りに改ざんチェックを実行するスクリプトが入っているハズですので、 削除するか実行属性を外せばよろしいかと。 >出力(メール送信)しないようにでもできればと思ったのですが、その方法がよくわからないのです。 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root この行の意味を勉強して下さいな…。 ちなみに、当初の設計通りにこのスクリプトが動作しているのであれば、 削除された後は一度メールで通知してポリシーファイルから削除される…かと思われますが。 ………やっぱりSELinuxのような気がしますが…。

dell_OK
質問者

お礼

ご回答いただきありがとうございます。 Tripwire のインストールは、ご回答にあげられている、 http://centossrv.com/tripwire.shtml​ を見ながら行いました。 今回の Linux サーバーの構築そのものを、 http://centossrv.com/ を参考にさせていただいているので。 @ITの方は、これから読んで勉強してみます。 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root については、「Tripwire(R) Integrity Check Report in host.domain.com」(先に書いた Open Source ... は件名ではありませんでしたので訂正)メールを送ってくるものだと思っていて、「Cron <root/host> /root/tripwire.sh」メールには直接関係ないのかと思っていました。 チェックした結果メールと、エラーのメールの2通が届いていて、エラーのメールは Cron が出しているのかと思っていたのですが、結局のところ、tripwire.sh を実行しているのは Cron だから関係ないわけないですよね。 にしても、エラーメールは __db.00x についてしか送ってこないのも不思議なのです。 セキュリティについては、どこまでやったらいいのか判断できてなくて、 http://centossrv.com/ を参考に必要かなと思う部分だけを構築していった次第です。 セキュリティについての勉強もこれからやっていこうと思います。 今回の件については、とりあえず自動チェックはやめる方向で考えています。

dell_OK
質問者

補足

SELinux については OS のインストール時に無効にしていて、今、セキュリティレベルの設定で確認すると無効のままでした。 yum list | grep selinux で見ると、 libselinux.i386 1.33.4-5.1.el5 installed libselinux-python.i386 1.33.4-5.1.el5 installed libselinux-utils.i386 1.33.4-5.1.el5 installed selinux-policy.noarch 2.4.6-203.el5 installed selinux-policy-targeted.noarch 2.4.6-203.el5 installed libselinux-devel.i386 1.33.4-5.1.el5 base pure-ftpd-selinux.i386 1.0.21-1.el5.rf rpmforge selinux-policy-devel.noarch 2.4.6-203.el5 base selinux-policy-mls.noarch 2.4.6-203.el5 base selinux-policy-strict.noarch 2.4.6-203.el5 base こうなっているのですが、これだとインストールはされていると言う事ですよね。 無効にしているだけでは、何か影響があるのでしょうか。 ls /var/lib/rpm/ -lhZ では、 -rw-r--r-- root root Basenames ... -rw-r--r-- root root Triggername -rw-r--r-- root root __db.001 -rw-r--r-- root root __db.002 -rw-r--r-- root root __db.003 ラベル(?)の部分が表示されませんでしたが、何か不具合があるのでしょうか。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

原因はよくわからないですが標準(エラー)出力しないようにNULにリダイレクトしておいてはどうでしょう?

dell_OK
質問者

お礼

ご回答いただき、ありがとうございます。 たいしたエラーではなさそうなので、気持ち無視するつもりではいたから、出力(メール送信)しないようにでもできればと思ったのですが、その方法がよくわからないのです。 多分、 > NUL をどこかに入れるのだと思うのですが、どこに入れたらいいのかがわかりません。 メールのタイトルには、 「Cron /root/tripwire.sh」 となっているので tripwire.sh を見たのですが、ここではなさそうな気がしています。 Linuxサーバーは立ち上げたものの Cron が何なのかもわからずに放置状態で管理らしい事はやっていません。 ※今 Cron を調べて、コマンド実行のスケジュール管理を行うもの、である事はわかりました。 私自身が勉強不足でLinuxに詳しくないので、質問させていただいた次第です。 Tripwireからは、毎朝、 「Open Source Tripwire(R) 2.4.1 Integrity Check Report」 と言うメールが届くのですが、これは tripwire.sh が送ってきているものだと思って、 「Cron /root/tripwire.sh」 のメールを送ってくるのは別のところからなのかなと思っていますが、どこかはわかりません。 ご存知でしたら、どこでどのようにリダイレクトさせたらいいのかを教えてください。 他のエラーが発生した場合にもメールが届かなくなってしまうとは思いますが、そのログはどこかに保存されているのかなと思うので、時々自分で確認しようかと思います。 それがどこなのかはまだ調べていません。 ちなみに、 「Open Source Tripwire(R) 2.4.1 Integrity Check Report」 のメールには補足に載せた部分がありました。 これらのファイルが削除されている、と言う事だとは思うのですが、削除されているから先のエラーが出ているのだし、単純に削除されただけならこのメッセージだけで十分ですから、先のエラーのメールを送ってこなくても、と思うのです。

dell_OK
質問者

補足

お礼欄の補足です。 tripwire.shの内容 ---------- #!/bin/bash PATH=/usr/sbin:/usr/bin:/bin:/usr/local/tripwire/sbin # パスフレーズ設定 LOCALPASS=pass SITEPASS=pass cd /etc/tripwire # Tripwireチェック実行 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root # ポリシーファイル最新化 twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt perl twpolmake.pl twpol.txt > twpol.txt.new twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null rm -f twpol.txt* *.bak # データベース最新化 rm -f /usr/local/tripwire/lib/tripwire/*.twd* tripwire -m i -s -c tw.cfg -P $LOCALPASS ---------- 「Open Source Tripwire(R) 2.4.1 Integrity Check Report」の一部 ※002と003についてもあります。 ------------------------------------------------------------------------------- Rule Name: RPM Checksum Files (/var/lib/rpm/__db.001) Severity Level: 0 ------------------------------------------------------------------------------- Removed: "/var/lib/rpm/__db.001"

関連するQ&A