CentOS6の練習-#12(ClamAVの話,続き-#3)。

 前稿からずいぶん時間が経ってしまった。あと何に取り組もうと考えていたかというと,「avc: deniedをもとに,
clamdについてSELinuxのポリシーを新しく作る」である。記事を書いて読み直してみたら,「ClamAVの話」というより,SELinuxの話になってるなあ。

 ところで正直なところ,Access Vector Cache (AVC)そのものが,いまだによくわかっていない状態である。

 そもそも,SELinuxには,Access Vectorルール(P.157参照)というのがあって,これはあるプロセスが(今の場合 clamd),ある作業をすることについてのルールであるらしい。で,これを素早く利用するためにキャッシュが作られるのだが,これがAVC。avc: denied(Clam-Per-rt参照)というのが,audit.logに出るということは,必要な作業についての特権が,当該プロセスに許されていないということになる。「Clam-Per-rt」を見ると,avc: deniedが11行出ていて,scontext(Source Context)は11行とも
   scontext=unconfined_u:system_r:clamd_t:s0
である。これは,アクセス元の pid=1362 clamd のセキュリティ・コンテキストなわけだから,11個とも同じなのは当然だ。で,:で区切られた4つの部分を左から順に user:role:type[:level] と呼ぶらしい(Security Context (P.20) 参照)。プロセス clamd は clamd_t ドメインで動いているというわけだ。 Clam-Per-rt は, Permissive かつ User root で clamdscan を /home/centos で走らせたときのログなんだが,このとき user は unconfined_u ,role は system_r となっている。

 一方,プロセス clamd のスナップショットを表示してみると,以下のようになる。ここでは,user が system_u になる。OSを起動したときにデフォで動き出すプロセスのほとんどが,system_u:system_rになっているみたい。この辺もまだよくわからない。グダグダだね。
   $ ps -AZ | grep clamd
   system_u:system_r:clamd_t:s0 xxxx ? 00:00:00 clamd

 さらに,グダグダになるが,忘れないために書いておくと,ps -A(ps -eでも同じ)にくっついている Z は,SELinuxのオプションで,これをつけると大抵のものについて,セキュリティ・コンテキストを表示してくれる。例えば,今の段階で,/home/centos に aaa.txt を作っておいて
   $ ls -Z     とやると,
   -rw-r–r–. centos users unconfined_u:object_r:user_home_t:s0 aaa.txt
というように,aaa.txt のセキュリティ・コンテキストが表示される。

 さて,よくわからないなりに,モジュール・パッケージを作ってみることにする。audit2allow を使うらしいが,
   $ sudo yum provides */audit2allow
で調べてみると,含まれている policycoreutils-python-2.0.83-19.24.el6.i686 が未インストールなので,まずはこれをインストール。
   $ sudo yum install policycoreutils-python

 でね,audit2allow マンを見て, -M オプションを付けて,
   $ sudo cat /var/log/audit/audit.log | audit2allow -M myClamAV
とやってみた。

   ******************** IMPORTANT ***********************
   To make this policy package active, execute:

   semodule -i myClamAV.pp
というメッセージが戻って来て,/home/centos には,myClamAV.pp と myClamAV.te が出来た。
   xxx.pp <<— Policy packages つまり,新ポリシーをロードするためのモジュールパッケージ。
   xxx.te <<— Private policy files in the Reference Policy xxx.ppに何が定義されているかを教えてくれる。

 さあこれで,semodule -i myClamAV.pp をやれば,新しいポリシーが有効になる。とはいうものの,セキュリティ関係の話だから,実態も把握せずに新ポリシーを有効にするのは論外。というわけで,早速,myClamAV.teを覗いてみた。これ見てもらったらわかるけど,とんでもないことになっていた。前稿までにいろいろやったことがすべて audit.log に残ったままだったわけだ。これじゃあんまりだというわけで, myClamAV.pp は削除し, myClamAV.te と Clam-Per-rt を参考にしながら,新しい myClamAV.te を作ってみた。

 Clam-Per-rt をみると, type: xxxx_t で使われているのは,次の4つ。これを module myClamAV 1.0; の後に require として記述。
   clamd_t
   home_root_t
   user_home_dir_t
   user_home_t

 次に,myClamAV.te に class xxxx という行があるが,Clam-Per-rt で使われているclassという単語は,tclass(target class)だけで,tclass=dir と tclass=file の2つ。tclass=dir 関連の denied は, search getattr read open ,また,tclass=file 関連の denied は, read open だから,以下の2行を require に追加し,これを閉じる。
   class dir { search getattr read open };
   class file { read open };

 最後に, clamd_t に allow を許可することを列記する。
   allow clamd_t home_root_t:dir search;
   allow clamd_t user_home_dir_t:dir { getattr read open search };
   allow clamd_t user_home_t:dir { getattr read open search };
   allow clamd_t user_home_t:file { read open };

 出来上がったのが,新myClamAV.te。なんというか,これ,上出来だった。あとで, audit.log を真っ新にして,audit2allow に作らせてみたのと順番が多少違うだけで,同じだったヨ。

 編集した myClamAV.te をチェック。checkmodule マン参照。
   $ checkmodule -M -m myClamAV.te -o myClamAV.mod

 これが,エラーなしで通るまでやる。基本的にやっていることは間違っていなかったが,綴りミスとかセミコロン忘れとか,2回ばかりエラーが出た(恥)。通ると myClamAV.mod ができる。次は, myClamAV.pp を生成。semodule_package マン参照。
   $ semodule_package -o myClamAV.pp -m myClamAV.mod

 できたモジュールをインストールした。
   $ sudo semodule -i myClamAV.pp

 ちゃんとインストールされたかどうか,確認。
   $ sudo semodule -l|grep myClamAV
   myClamAV 1.0   が戻ってきた。インストール完了。

 で,何が出来るようになったかというと,以下の環境において,ユーザのホームディレクトリ(例えば,/home/centos)で clamdscan がエラーなく走るようになった。
   $ getenforce
   Enforcing
   $ grep User /etc/clamd.conf
   User root
=======================================================
   $ clamdscan
   /home/centos: OK

   ———– SCAN SUMMARY ———–
   Infected files: 0
   Time: 0.001 sec (0 m 0 s)
==============================================こんな感じ

 あくまで,ユーザのホームディレクトリという制限つきだから, /root だと,以下のように見慣れたエラーが戻ってくる。
=======================================================
   # clamdscan
   /root: lstat() failed: Permmision denied. ERROR

   ———– SCAN SUMMARY ———–
   Infected files: 0
   Tlotal errors: 1
   Time: 0.000 sec (0 m 0 s)
=======================================================

 さて,Enforcing,User root で clamdscan を走らせることができた。あとは,User clamav でということなのだが,これはまだまだ前途多難なようなので,後回しにして他のことに取り組もうと思う。

 ところで, clamscan を自動で走らせるときに,そのオプションを下記のようにしようかなと思っている。
   clamdscan / \
   –infected \
   –recursive \
   –move=/var/log/clamav/virus \
   –log=/var/log/clamav/clamav_`date +%Y-%m-%d`.log \
   –exclude-dir=^/sys \
   –exclude-dir=^/proc \
   –exclude-dir=^/dev \
   –exclude-dir=^/var/log/clamav/virus
で,参考に読んだところでは clamdscan のオプションは clamscan に準じると書いてあったが,上のを clamdscan で使うと,
   WARNING: Ignoring unsupported option –recursive (-r)
   WARNING: Ignoring unsupported option –exclude-dir
   WARNING: Ignoring unsupported option –exclude-dir
   WARNING: Ignoring unsupported option –exclude-dir
   WARNING: Ignoring unsupported option –exclude-dir
が戻ってくる。ということは,同じ使い方はできないということになりそうだ。clamscan と clamdscan の違いを考えると,ダウンロードディレクトリをスキャンするのに使うのが現実的かな。

 ああそうだ,忘れないうちに, myClamAV をアンインストールしておこう。
   $ sudo semodule -r myClamAV.pp

CentOS6の練習-#11(ClamAVの話,続き-#2)。

 今年も,中秋の名月(9月30日)は見えませんでした。台風17号の余波か厚い雲に隠れていまして。明夜(10月1日)は晴れそうなので,今年も十六夜の月見をしようかなと思っているところです。七夕は,昔の暦通りに行なえば,結構2人の逢瀬を叶えてやれそうな風習ですが,八月十五夜は厳しいですね。なかなか,晴れ上がってくれません。もっとも,晴れると本当に素晴らしい月夜になりますが……

 さて,本題の中間報告です。

 CentOS6の練習-#8を書く前の時点で,実は手を焼いていたことがあった。その件について「clamdscan,User rootでもPermission deniedが出る。」という表題で,「はじめての自宅サーバ構築」さんのところに質問を書いたが,どなたからも,お返事がなかった。しばらく思案投げ首ののち,SELinuxが足を引っ張っているという可能性に思い至り,
   $ sudo setenforce 0
をやって,Permissive かつ User root でclamdscanを走らせてみた。走らせる前に
   $ sudo /etc/rc.d/init.d/clamd restart
もやった。ところがこれでも,lstat() failed: Permission denied. ERROR がでる。いい加減お手上げで,あきらめて,Apacheのrpmのビルドに走った。しかし,サーバを走らせるとなれば,ClamAVを避けては通れない。それに,clamscanだけでなくclamdscanも使ってみたい。しかし,ググってみても,Permissive かつ User root でもエラーが出るなどという情報はどうしても探し出せなかった。もう少し分かっているシステムならいざ知らず,これだけ分からないことばかりでは,自力解決を望む方が無理である。

 さて,どうするか。

 ビルド環境もやっとできたところなのに癪だが,CentOS6.3 Mimimalを再インストールしてみる道を選んだ。何故って,Windowsだって,95を初めて自分用に手に入れたとき,どんだけソフト的に壊して,リカバリを繰り返したもんか。それを思い出して,今回も同じじゃないかと思ったわけ。

 で,結果,これがよかった。といっても,この時点でクリアできたのは,「Permissive かつ User root で clamdscan を走らせること」だけだ。

 当面の目標は,「Enforcing かつ User clamav で clamdscan を走らせること」なのだが……。[セキュアOS SELinux入門]第6回 最も簡単な設定方法を見つけたので,/var/log/messages を覗いてみたが,ここには,記事に記述されているようなメッセージが全く出ていない。記事の日付が2004/07/13と古いので,これからいろいろ変わっている可能性がある。ググって他のところも読んでみたのだが,この時点では,うまいページが見つからない。自分がよくわからないまま探しているときはよくある話だ。わかるようになると,「なんであのときは見つからなかったの?」というくらい適切なページが見つかるようになるのだが。

 しばらくあちこちウロウロしていたが,腹をくくって,SELinux Project に行き,NewUsersのところを見ていたら,The SELinux Notebook – The Foundations (3rd Edition)というのがあるようなので,これを落としてきた。これ,なんと日付が9月2日になっていて,出たばかりみたいだ。14ページに表があって,そこに書いていることを調べてみたら,CentOS6.3では,Old Locationと書かれている方の場所に関係ファイルがある。そこで,The SELinux Notebook – The Foundations(2nd Edition)も落としてきた。落としてからこっち,大分読み齧ってみたんだが,何しろ知らないことばかりを書いてあるものだから,よくわからない。しかし,/var/log/audit/audit.log にまでは,たどり着いた。audit(監査)デーモンがロードされたのちは,こちらにログが吐き出されるらしい。起動直後でも,$ chkconfig –list|grep auditd をやって確認してみるとonになっているから,/var/log/messagesに何もなかったわけだ。

 そこで,(1) Enforcing+User clamav,(2) Permissive+User clamav,(3) Enforcing+User root,(4) Permissive+User root の場合について,audit.log を調べてみた。/home/centos で $ clamdscan をやった場合,(1)~(3)においては, lstat() failed: Permission denied. ERROR が出る。(4)の場合のみ,OKになる。ただし,avc: denied が出ているので,Permissiveモードだから通っているだけだと分かる。これについて,新しくポリシーを作ってやればいいらしい。

 この辺はまだよく理解できていないので,中間報告としては,ここまでにしておこうと思う(汗)。

CentOS6の練習-#8(ClamAVの話,続き)。

投稿アップデート情報  追記(9/8)  追記2(10/1)

 前項で

そういえば,指定のリポジトリを書き直した方がいいということをよくネット上で見るが,Minimalインストールでも,CentOS6.3には初めからyum-plugin-fastestmirrorとyum-prestoが入ってる。これがあれば,ミラーリストをざっとなめてからやってくれてるみたいだが,それでも指定のリポジトリを書き直したがいいんだろうか。

と書いたのだが,ClamAVをwgetでインストールしたときに分かったことがある。
 常識なんだろうが,yumでインストールすると,依存関係をyumの方でちゃんとやってくれる。なので,
   $ sudo yum install clamd
とやると,clamav,clamd,clamav-dbが,すべてインストールされるが,wgetでダウンロードして,rpmでインストールするとそうはいかないから,順番とかライブラリに気を付けなければいけないことになる。どのサイトにも「yumは依存関係の処理もやってくれる」と書いているし,clamav直前のlm_sensorsのインストールでは,自分でも依存関係でいろいろ入ることに驚いているのに,これらのことをしっかり認識していなかったりするのだ(汗)。ただし,rpmを手動でインストールしても,yumは関知してるようで,
   $ sudo yum list installed|grep clam*
   clamav.i686 0.97.5-2.el6.rf installed
   clamav-db.i686 0.97.5-2.el6.rf installed
   clamd.i686 0.97.5-2.el6.rf installed
とちゃんとリストに表示される。

 ということになると,やはりclamavを含むリポジトリの導入をやっておいた方がいいわけで,ここ(魚拓です)を参考にそれをちょっとやってみた。大概のところは,clamavの導入時にリポジトリを追加し,あとでこれを外すみたいに書いてあって,「めんどくさいな。それならwgetでその都度やっても,同じジャン」とか思っていたのだが,参考ページではyum-prioritiesプラグインをインストールすることになっている。これ,いいな。
   $ sudo yum install yum-plugin-priorities
 CentOs6のCentOS-Base.repoを弄る。[priority=1]を追加してやって,リポジトリに優先順位をつけるわけだ。
   $ sudo vi /etc/yum.repos.d/CentOS-Base.repo

   [base]
   name=CentOS-$releasever – Base
   mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
   #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
   gpgcheck=1
   gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
   priority=1 <<— 追加

   #released updates
   [updates]
   name=CentOS-$releasever – Updates
   mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
   #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
   gpgcheck=1
   gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
   priority=1 <<— 追加

   #additional packages that may be useful
   [extras]
   name=CentOS-$releasever – Extras
   mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
   #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
   gpgcheck=1
   gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
   priority=1 <<— 追加
上書き保存して,終了。

 さて,rpmforgeリポジトリをインストールし,ついでにアップデートしておく。どうして,rpmforgeリポジトリにしたかっていうと,ClamAVオフィシャルのLinux(魚拓です)「RedHat and Fedora」のところに,「Dag Wieersによって大変よくメンテされてるリポジトリがあるのでそれを使うといい」と書いてある。これが http://packages.sw.be/clamav/ で,前項ではここからwgetで入れたわけ。今回は,も一度FAQを読みに行って,How do I use Yum ?のところを読み,rpmforge-release packageを見に行って,「RHEL6 and CentOS-6 x86 32bit」の下記を選択した。でもこれ,結局のところ理研のミラーから落ちてくるようだ。
   $ sudo rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
   $ sudo yum update rpmforge-release

 「11 packages excluded due to repository priority protections」と出た。yum-prioritiesを入れた効用だ。お利口さん。さて改めて,
   sudo yum install clam*    で,うっかりインストールしてしまったので,改めて   sudo yum install clamd
でやり直した。clamav,clamd,clamav-dbについては,最新版がインストールされていると出たが,依存関係がうまく解決されていなかったようだサービスを止めて,インストールし直してみた。

 その後,
   $ sudo vi /etc/clamd.conf
で,189行目を下記のようにコメントアウトする。
   #User clamav
clamdを再スタート。
   $ sudo /etc/rc.d/init.d/clamd restart
 –9/8(土),消し線追加。どうしてもうまくclamdscanを走らせられないので,clamscanで行くことにした。この場合,Userはclamavのままで,不都合はなかった。clamdscanの不具合は,SELinuxをpermissiveにし,Userをrootにしても直らなかった。今のところ,何が足を引っ張っているのか,不明。当面は,clamscanでいいことにしよう。–

   $ chkconfig –list
をチェックしてみると,この段階で,

clamd  0:off  1:off  2:on  3:on  4:on  5:on  6:off

となっており,clamav-milterとclamdが自動起動O.K.になっているようだ。sudo yum install clamdだと,有効になっているサービスは,clamdだけだった。

   $ sudo freshclam
 $ sudo /etc/rc.d/init.d/clamd restartも,freshclamやるまえから一度でうまくいった。やっぱ,前回は何かまずかったのかな。
 sudo yum install clamd でやると,やはり,freshclamを先にやらないと,clamd restartがうまくいかない。

追記2(10/1):
 上に,
> clamdscanの不具合は,SELinuxをpermissiveにし,Userをrootにしても直らなかった。
と書いたのだが,これについては,CentOS6.3 Minimalを改めて新規インストールして試したら,permissive+rootでは走らせることができた。いろいろ弄っていたのでどこかがまずくなっていたのかもしれない。

CentOS6の練習-#7(lm_sensorsとClamAVの話)。

投稿アップデート情報  追記(8/12)

 今日は,夕立あり。3時過ぎには,降り出した。まぁ,一時の雨足は強かったが,本当に夕立で,すぐにやんだ。昨日は立秋。暑い暑いと言っていても,季節は進んでいるな。

 Tera Termを起動して,サーバに接続する。
   $ sudo yum update
をやってみた。できたけど,アップデートが何もなかった(爆)。そういえば,指定のリポジトリを書き直した方がいいということをよくネット上で見るが,Minimalインストールでも,CentOS6.3には初めからyum-plugin-fastestmirrorとyum-prestoが入ってる。これがあれば,ミラーリストをざっとなめてからやってくれてるみたいだが,それでも指定のリポジトリを書き直したがいいんだろうか。

 Tera Termそのものは,CUIのターミナルエミュレータだが,マウスでコピー&ペーストもできるし,サーバの処理をやりながらおんなじPC上でこの記事も書けるし,うんと楽チン。CentOS6.3のMinimalインストールでは,マウスさえ使える状態になっていなくて,久しぶりにキーボード頼りだった。日頃も結構ショートカットキーを使ってはいるが,全部となると,また問題が別。今日の夜中にSSHが使えるようになって,前記事の冒頭でぼやいたことが嘘みたい。サーバ上はこのまま,CUIだけでいいや。現金なやつ —>> 自分

 本家のお世話-#40。で書いたように,春から初夏にかけて,温度のことで大騒ぎしたxw4200なので,lm_sensorsを入れて温度を測ってみた。しかし,lm_sensorsを入れるだけでも,依存関係で結構いろいろ入るものである。
   $ sudo yum install lm_sensors
   $ sudo sensors-detect
   $ sensors
      ———————————————
      smsc47b397-isa-0480
      Adapter: ISA adapter
      fan1: 5619 RPM
      fan2: 0 RPM
      fan3: 0 RPM
      fan4: 3810 RPM
      temp1: +52.0°C
      temp2: +0.0°C
      temp3: +42.0°C
      temp4: +0.0°C
      ———————————————
 今朝からずっと火を入れていて,14:00現在,室温34℃の状態で上記だと,上出来じゃないだろうか。ただし,システムファンは7段階の7番目(「低 <-- 123456(7) --> 高」)でフル回転していて,ものすごーくウルサイ。

 そういえばClamAVを入れていないので入れてみることにする。標準のリポジトリには含まれていないので,ダウンロードにwgetを使うが,これもMinimalには入っていないので,先にwgetをインストール。
   $ sudo yum install wget
 次に,ClamAV関係の3ファイルをダウンロードする。
   $ sudo wget http://pkgs.repoforge.org/clamav/clamav-0.97.5-2.el6.rf.i686.rpm
   $ sudo wget http://pkgs.repoforge.org/clamav/clamd-0.97.5-2.el6.rf.i686.rpm
   $ sudo wget http://pkgs.repoforge.org/clamav/clamav-db-0.97.5-2.el6.rf.i686.rpm
 ダウンロードした3ファイルは/home/centosに保存されている。
   $ sudo rpm -ivh clamav-db-0.97.5-2.el6.rf.i686.rpm
はできたが,
   $ sudo rpm -ivh clamav-0.97.5-2.el6.rf.i686.rpm
をやると,libltdl.so.7がないと怒られるので,libtool-ltdlをインストール。
   $ sudo yum install libtool-ltdl
改めて,次をやると
   $ sudo rpm -ivh clamav-0.97.5-2.el6.rf.i686.rpm
通ったので,次に,
   $ sudo rpm -ivh clamd-0.97.5-2.el6.rf.i686.rpm
で,インストールは完了。

   $ sudo /etc/rc.d/init.d/clamd start
とやると,
     Starting Clam AntiVirus Daemon: LibClamAV Error: cl_cvdhead: Can’t read CVD header in
     /var/clamav/daily.cld
     LibClamAV Error: cli_loaddbdir(): error parsing header of /var/clamav/daily.cld
     ERROR: Malformed database
と daily.cld が壊れているらしいので,先に
   $ sudo freshclam
をやってみた。その後,改めて
   $ sudo /etc/rc.d/init.d/clamd start
をやったら,Clam AntiVirus Daemon が無事走り出した。

追記(8/12):
 ちゃんとrpmforgeリポジトリを導入して,ClamAVのインストールをやり直した。その経緯を次記事に書いたので,インストールする場合は,そっちを参考にしてください。

本家のお世話-#40。(サーバ機テンヤワンヤ-#4)

 一昨日,2週間ぶりくらいで勝った鷹が,昨日も勝った(喜)。今日は月曜日だが,交流戦の変則日程で試合があるので,勝ってほしいな(祈)。

 第4弾は切りづらくてバカ長くなってしまった。読みづらいこと甚だしいが,今のところ書き直す元気がない。だって,夕べまた,臨時サーバの調子が悪くて,おいでいただいた方のアクセスを別場所にとばして,弄っていたのだよー。このノートも本当に厳しい状態になってきた。やっぱり,ハードディスクかなあ。しかし,多少腑に落ちないところもある。何とか,サーバを帰宅させるまでは,LC550にがんばってもらいたいんだが……

 ところで,転載分のFHさんの掲示板の話を読むと,自分の考えや皆さんの提案の紆余曲折が分かって面白い。あとになって振り返ってみれば,「あれは,違っていたなあ」と思うこともあるが,リアルワールドで,ゴチャゴチャ話しながらすると,ひょいと考えもしなかったようなことを思いつくことがあるのに,似たところがある。これが複数で当たることのよさ。昔から「3人寄れば文殊の知恵」というではありませんか。みなさま,ありがとうございました。

図1

 本家のお世話-#39。での,誤差確認を経て,皆さんの意見も「やはりちょっと温度が高すぎるようだ」と言うところに落ち着いた。また,xw4200の内部の構造から考えて,「ふたを開けて稼働させても,あまり冷却効果は上がらないだろうと思う」というjuneさんからのお話もあった。実際,xw4200のふたを開けて連続稼働してみたが,さして冷却効果は増さなかった。

 しかし,私はここでちょっと脇道にそれた。本筋と全く関係ないわけではないのだが,Pen4のHyper-Threading Technologyの話が出てきて,サーバ機ならそっちの方が温度にもよさそうだというので,試そうとしたのだ。juneさんが,「セットアップとトラブルシューティング」の「3.7 Hyper-Threading 技術を有効にする(22ページ)」に書いてあるやり方を調べてくださったのだが,あとから考えるとこの説明書の記述が若干違っていた。「Device Options (デバイスオプション)」のところにあるという記述に引きずられて,ハマってしまったが,Hyper-Threadingの項目は,結局,「電源投入時オプション」のところにあった。いつものことながら,自分の思い込みにはあきれてしまう。ホント,困ったもんだ(爆)。

 まぁ,最終的には達成できて,図1のように,デバイス・マネージャ上にCPUが2つ表示されるようになった。それから,xw4200には MAS3367NP がついていたが,このSCSI Diskの温度が,HWMonitorでもEverestでも測れていなかった。SCSI DISK対応のフリーソフトをネット上で探した。他にもあるのだろうが,HDDScanHDD-SCANとは別のソフト)というのがあったので測ってみたが,朝一の電源投入直後,室温より4℃も低い17℃で,どうも,あんまり当てにできない。(転載Part4です。)

 さて,ここに至って,チョクチョク C0000218 エラーが出るようになった。これが,xw4200の中をもう一回掃除し,使っていないIEEE1394のボード(AFW-2100)を外したりした後だったので,その辺に原因があるのかと思ったのだが,あとから考えると本家のお世話-#34。に書いたように, MAS3367NP がご臨終寸前だったらしい。しかし,この時点ではそんなことはわからないから,悪あがきもしてみたけど,
C0000218エラーのメッセージが,ハード関係でなく出ることもあるらしいということにすがって(何かソフトですむ手がありそうだと,そっちに走ってしまうのが常。リアルワールドでも,そうです。 <<--- なんちゃって。),CentOS6をインストールしてしまった。で,それでやれやれ起動するようになったワイと喜んでいたら,Disk Read Errorが出るようになった。改めて,前とは別方法で地道に MAS3367NP を調べてみたら,すごい数の不良セクタが見つかったわけだ。  SCSI DISKは MAS3367NP だけしか手持ちがないから,この際,ボード(LSI Logic LSI20320A-R Ultra320)も込みで外してしまった。

 Maxtor 6Y160M0を整理して,CentOS6をインストールし直すことにしたのだが,そのためには,データの入ったままのMaxtor 6Y160M0のパーティションを,切りなおさないといけない。どういう訳か,この間利用したGparted-live0.12.0-5では起動できなかったので,たまたま手元にあった,Knoppix 5.1.0のLiveCDで起動し,該当のパーティションを切り直した。Knoppix 6.7.1でも起動できなかった。今回はその辺が目的ではないので細かく調べていないが,なんでだろう。

 Knoppix LiveCDのGpartedをGUIで使用しようとするとrootのパスワードを要求されるので,Gpartedの使用前に,rootのパスワードを設定する必要がある。
 コンソールを立ち上げて,
     su
でrootになり,
     passwd
と打つとパスワード設定画面になるので,使いやすいパスワードを設定する。このパスワードは,Knoppix LiveCDのこのセッションが終われば破棄されるので,使いやすいわかりやすいもので構わない。あとは,GUIでGpartedを起動し,普通通りパーティションを切りなおす。この作業は,CentOS6のLiveCD(i386)でも可能なのかもしれない。

 ところで,xw4200はx64にも対応しているらしいが,メモリも2ギガしか積んていないし,x64関係をインストールするとどうなるかもよくわからないので,今回使ったものは,SCSI DISKに入れたのも,空けたパーティションにインストールしたのも,理研ミラーから落としたCentOS-6.2-i386-bin-DVD1.isoとCentOS-6.2-i386-bin-DVD2.isoだ。手順はWindows7 HP 64bit SP1+CentOS6のデュアルブート-#2。を参照。実は,「Minimal Desktop」のインストールだと,CentOS-6.2-i386-bin-DVD2.isoは必要ない。また,Hyper-Threading Technologyについては,「セットアップとトラブルシューティング」の「4.3 Hyper-Threading 技術を有効にする(28ページ)」に「Linux システムでは最新のシステムBIOS とSMP カーネル が必要です。」という文言があったが,インストール前にBIOSでHyper-Threading 技術を有効にしておけば,何も問題は生じなかった(インストール後 less /proc/cpuinfo をやってみたら,cpuが2つ表示された。 <<--- cpu情報を表示させるコマンド,終了は「q」キー)。BIOSについては,今回のドタバタの間に,メーカサイトからver.01.09 Rev. a (15 7 2005)を落としてアップデートしている。ずいぶん古い日付だが,xw4200の公式BIOSとしては,これが最新のようだ。  再起動する。  ようこそ画面で基本情報設定後,作ったばかりの一般ユーザでログイン。すぐに,端末を立ち上げてrootになり,yum update する。  ≪注意≫この後しばらくは端末上のrootでの話です。

  1. viを使い慣れていないので,GUIのテキストエディタとして,Text editor for the GNOME desktop(つまりgedit)をインストール。
     yum install gedit

     hostsファイルを編集して,現サーバに接続できるようにする。
      gedit /etc/hosts
    と打つ。自宅サーバのIPv4を追加して保存。

  2. CentOSはデフォルトでは,ntfsに対応していなくて残存しているデータエリアが読めなくて不便なので,Unable to mount ntfs partition on CentOS 6.を参照しながら,ntfs-3gをインストールする。

         wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
         rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.i686.rpm
     インストール直後のCentOS6には,fuse-ntfs-3gが入っていないので,
         yum install fuse-ntfs-3g
    でこれをインストール。デスクトップから,データエリア内のパーティションを開いて読み書きを試してみる。できた。

  3. Clamavをインストールする。デーモンとして使うので,
         yum install clamd
    これで,clamav-db,clamav,clamdがインストールされる。
     clamd.conf(gedit /etc/clamd.conf)の編集。この辺は,新・懸案のLoox(DazukoFS+ClamAV+HAVP on LuPu)。の経験をもとに書いているのだが,パッケージとして出来上がっているものなので,スゴーク楽ちん。freshclam.logなんかも既にあってデフォルトのままで使えるのだ!!189行をコメントアウト。
         # User clamav <--- root権限だけに制限。Puppyのときはルートしかいなかったから関係なかったとこ。User rootの明記も必要ないみたい。  Clamavをデーモンとして起動する。      /etc/rc.d/init.d/clamd start  以下のように注意されるので,      Starting Clam AntiVirus Daemon: LibClamAV Warning: **************************************************      LibClamAV Warning: *** The virus database is older than 7 days! ***      LibClamAV Warning: *** Please update it as soon as possible. ***      LibClamAV Warning: ************************************************** 定義ファイルを更新しよう。      freshclam  まぁここまではいいとして,後のcronの使い方がよく分からん。ひとまず,テストスキャンだけやってみるか。      clamscan --infected --remove --recursive /home    ----------- SCAN SUMMARY -----------    Known viruses: 1217320    Engine version: 0.97.4    Scanned directories: 340    Scanned files: 315    Infected files: 0    Data scanned: 81.66 MB    Data read: 102.06 MB (ratio 0.80:1)    Time: 23.913 sec (0 m 23 s)  その後のスッタモンダでまだこのまま。つまり,ときどき手動でスキャンしている。今は,何かやるとき以外は,ほとんど電源OFFなので問題ないだろうが,サーバとして稼働させる前にちゃんと対処しなくては(汗)。
  4. ブログ上のflash video が見れない。FireFoxで
         http://get.adobe.com/jp/flashplayer/
    に行き,tar.gzファイルを選んでダウンロード。端末に戻り,
         cd /home/User_ID/ダウンロード
    でダウンロードフォルダに移動し,
         tar -zxvf install_flash_player_11_linux.i386.tar.gz
    で,libflashplayer.soを抽出後,これをFireFoxのプラグインフォルダにコピーする。うちの場合は,/usr/lib/mozilla/pluginsだった。
         cp libflashplayer.so /usr/lib/mozilla/plugins
     FireFoxを再起動すると,flash videoを見れるようになった。Adobe Flash Playerの更新は,手動になるなぁ。
  5. 今回の件には,温度がからんでいるので,lm_sensorsをインストールする。
         yum install lm_sensors
     自機のセンサーを捜索する。
         sensors-detect
     いろいろ質問が続くが,すべて[Enter]で構わない。質問の内容は,センサをscanするかと,/etc/sysconfig/lm_sensorsを見つけた結果で上書きするかということである。うちで,見つかったのは以下の2つだった。
    —————————————————————————–
       Driver `smsc47b397′:
         * ISA bus, address 0x480
          Chip `SMSC LPC47B397-NC Super IO’ (confidence: 9)

       Driver `lm90′:
         * Bus `nouveau-0000:01:00.0-2′
          Busdriver `drm’, I2C address 0x4c
          Chip `National Semiconductor LM89/LM99′ (confidence: 8)
    —————————————————————————–

  6. この際,hddtempも入れることにする。
         wget http://fedora-mirror01.rbc.ru/pub/epel/6/i386/hddtemp-0.3-0.20.beta15.el6.i686.rpm
         rpm -Uvh http://fedora-mirror01.rbc.ru/pub/epel/6/i386/hddtemp-0.3-0.20.beta15.el6.i686.rpm
  7. まとめてリアルタイムで表示させるために,gnome-applet-sensorsを使うことにする。(http://www.atmarkit.co.jp/flinux/rensai/linuxtips/893hddtemp.htmlを参照。)
         wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el6/en/i386/dag/RPMS/gnome-applet-sensors-2.2.7-1.el6.rf.i686.rpm
         rpm -Uvh ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el6/en/i386/dag/RPMS/gnome-applet-sensors-2.2.7-1.el6.rf.i686.rpm

≪注意≫ここでrootをexitします。

 端末でsensorsとやって測定。大したデータ取れず。以下のとおり。しかも,どっちがどっちか分からないorz。
   smsc47b397-isa-0480
   Adapter: ISA adapter
   fan1: 2898 RPM
   fan2: 0 RPM
   fan3: 0 RPM
   fan4: 1535 RPM
   temp1: +60.0°C
   temp2: +0.0°C
   temp3: +41.0°C
   temp4: +0.0°C
 hddtempでも測ってみた。ほんとかいな。今室温25℃なんだが。
     # hddtemp /dev/sda
     /dev/sda: Maxtor 6Y160M0: 39°C

 HDDTEMPを自動起動するアプリに登録する。コマンドの欄には,hddtemp -d /dev/sda を記入する。ここで,OSを再起動。先の参考ページにはログインしなおすと書いてあるのだが,それではだめだった。
 パネルにGNOME Sensors Appletを追加する。パネルを右クリックして,[パネルへ追加]を選択し,[パネルへ追加]ダイアログボックスから[Hardware Sensors Monitor]を選択して[追加]ボタンをクリックする。[Preferences]や[Configure Sensor]を自環境に合わせて,設定する。この辺が,転載Part5になる。

 さて,このあとFHさんの掲示板を読み直していて,扇風機で冷やしてみるということをまだやっていなかったのに気づいた。なにしろ,次から次へと問題が起こったので。<<--- 言い訳(汗)。やってみなくてはということで,冷やしてみた。結構,冷えたねぇ。    fan1: 2202 RPM    fan4: 1249 RPM    temp1: +53.0℃    temp3: +30.0℃    /dev/sda:Maxtor 6Y160M0: 30℃  それと,このときの副産物として,ほぼ同じものを測定していると思っていたtemp3と/dev/sdaは,まったく違うものを測っているらしいことが分かった。temp3が何を示しているのかは,はっきりしないままだが。  この辺で,juneさんにAMIBIOSのHealth Statusを教えていただいたので,その関連でBIOS項目を見直していた。そして,システムファンのアイドル段階を手動ではあるが,7段階も変更できるということを初めて知った(大汗)。  で,これを7段階の5番目(「低 <-- 1234(5)67 --> 高」)にしてみたら,
   fan1: 4026 RPM
   fan4: 2671 RPM
   temp1: +49.0°C
   temp3: +36.0°C
   /dev/sda: Maxtor 6Y160M0: 36°C
すごい。なんで5番目かというと、7番目だと,単に,ものすごーくうるさかったので(爆)。

 FHさんから,「夏場に設定”7”で無事通過できればイイですね。」というレスをいただいて,長かった「FHの掲示板」での相談を終えた。最終 —>> 転載Part6です。
 本当に,お世話になりました m(_”_)m。

新・懸案のLoox(DazukoFS+ClamAV+HAVP on LuPu)。

Win2Kのサポートが切れたので,後継としてPuppyLinuxをワークステーションに使おうと思って,いろいろ試してきた。Puppy独自のFRUGALモードで使うのなら,フォーラムの投稿通り,あまりウィルス対策をする必要がないかもしれないが,FULLモードで使うし昨今の情勢だしということで,やはり,ウィルス対策いるよねということである。
では,以下をお読みください。

結局,LooxS5/53Wはオフラインワープロ専用として使うことにしたので,もう一台のLooxT93B(これには,今までWin2Kが入っていて,ちょっと重いけれどもモバイル機として利用してきたもの。オンアクセススキャンに執着してきたのも,この機を今まで通り使いたいからだ。)にLuPu5.1.0をFullインストールすることにした。

  • LuPu5.1.0をLooxにインストールする。
    1. S5/53W と違って,CDが使えるので,CD からシステム用に12GBに切った/dev/sda1にLuPu5.1.0 をインストール。再起動。
    2. 再起動後,Welcome to Lucid Puppy で,「eth0,wlan0」の状態を確認。どちらもちゃんと機能しているが,wlan0のほうは使える環境がないので,どうしようもないね。
      「言語と場所」の設定,下のほうに推奨で,ATI Radeon Mobility M16 LYのためにXorg_High.petを導入しろと書いてあったので,お言葉通りにしたのち,再起動。
    3. 「Menu」→「Network」からFirewallの設定。
      Pet_Maker-1.7-3.petをインストールし,これを使って,lang_support_ja-1.4.sfsをpetとしてインストール。
      SCIM入力メソッドの設定。x再起動。 <—- 日本語化なんだけど,メニューは英語のまま。
    4. x上のキーボードの言語設定。
  • DazukoFSをLooxにインストールする。
    1. 開発の環境準備。
      • lupu_devx_510.sfsをpetとしてインストール。
      • kernel_src-2.6.33.2-patched.sfsをpetとしてインストール。
        # /usr/src/linuxに移動して,make oldconfigを実行。
        # make menuconfigを実行。
        # makeを実行。
        半日掛っちゃったよぉ,カーネルの再構築に! モジュールを作るのに再構築しない方法もあるらしい。でも,/boot/System.map とかを使うようで,LuPuの場合はかなり勉強しないと使えるようにならないかも。ニャンともいいがたいね。
        この半日掛ったlinux-2.6.33.2をlinux-2.6.33.2-T93B.tar.gzとして,保存。    <—–   やり直しに備えて,「転ばぬ先の杖」ね。なんせ半日だから。
        (注意) ⇒ linux-2.6.33.2だけしか保存していないから,使うときはさきにkernel_src-2.6.33.2-patched.sfsをインストールして,出来たlinux-2.6.33.2とtar.bzを展開して出来たものとを置き換えること。
      • linux/fsにfs_stack.hを作る。中は,externvoid fsstack_copy_attr_all(struct inode *dest, const struct inode *src);の1行。
    2. dazukofs-3.1.3-rc2.tar.gz を usr/src 内に,tar zxvf dazukofs-3.1.3-rc2.tar.gzで展開。解凍フォルダにあるREADMEの説明に従う。
      # cd dazukofs-3.1.3-rc2,移動後,makeを実行。
      # make dazukofs_installを実行。
    3. # dazukofsのモジュールを手動でロード。
      ロードはされたが,LuPu501では出なかった Warning が……Deprecated config file /etc/modprobe.conf, all files belong into /etc/modprobe.d/. 。
    4. DazukoFSをテストする。
      • # mkdir /tmp/dazukofs_test     DazukoFSがテストのために使うディレクトリを作る。
      • # mount -t dazukofs /tmp/dazukofs_test /tmp/dazukofs_test    作ったディレクトリをDazukoFSでマウントする。
      • # cp /bin/* /tmp/dazukofs_test   テストのためのファイルを作ったディレクトリにコピーする。
      • /usr/src/dazukofs-3.1.3-rc2/testに移動してテストプログラムを作るために,makeを実行。
      • # env LD_LIBRARY_PATH=lib ./showfiles   テストプログラムを実行。
      • そのままで,別の端末を開いて,
        $ find /tmp/dazukofs_test -type f | xargs file
        元の端末内に,アクセス中のファイル名が,表示されれば,テストは完了。CTRL-Cでテストプログラムを終了する。
      • # umount /tmp/dazukofs_test    テストディレクトリをアンマウントする。
      • # mount | grep dazukofs    DazukoFSがマウントしているディレクトリがあるかの確認。この時点では何もなくて正常。
    5. 前々から先送りにしていた,boot 時の dazukofsモジュールの自動ロードとマウントを達成しなくてはいけない。 Warning に現れた modprobe.conf などをいろいろいじってみたのだがうまくいかなかった。
      ところがである。Puppyにはちゃんと GUI で新モジュールをロードするメニューがあるではないスか!!
      メニューは英語のままなのだが,デスクトップから「setup」→「Configure startup of Puppy」→「Click here to add a new module」→「Module add-list manager」と行く。dazukofsを探して追加してやったら,あっさりロードされた。(ハハハ)
    6. で,DazukoFSによるマウントのほうだけど,READMEにはね,/etc/fstab に
      /usr   /usr   dazukofs   defaults   0   0
      /opt   /opt   dazukofs   defaults   0   0
      と追記すればよいと書いてあるのだが,これはだめだった。boot時のメッセージを見てわかったが,モジュールがロードされる前にFileSystemの有効化が来るせいのようだ。
      困って,分からないなりに設定ファイルなどをあれこれ開けて見ていたのだが,うまいことに,/etc/rc.d/rc.sysinit にPERSONAL BOOT SCRIPT という項目があって,/etc/rc.d/rc.local をいじれと書いてあった。
      mount -t dazukofs /root /root
      mount -t dazukofs /usr /usr
      mount -t dazukofs /opt /opt
      を書いて再起動したらうまくいった。ただ,どこをマウントするのが適切かわからない。ダウンロードファイルなどは,/root に落とすからここだけでもいいのかなぁ。
      いずれにしても,ClamAvの作業に移る前に再起動。
      (BugFix) /root をマウントすると,電源が落ちなくなった。電源が切れなくなった件について,/etc/rc.d/rc.shutdown を見ていたら,そのものずばりの [#091117 weird shutdown bug. would not shutdown when a partition mounted, x restarted.] という項があった。
      で,rc.shutdown 内を検索して 091117 について書いてある 927行目あたりを眺めていたら,922 行目に [STRAYPARTL=”`echo “$MNTDPARTS” |grep -v “/dev/pts” |grep -v “/proc” |grep -v “/sys” |grep -v “tmpfs” |grep -v “rootfs” |grep -v ‘on / ‘ | grep -v “/dev/root” | grep -v “usbfs” | grep -v “unionfs” | grep -v “/initrd” | grep -v “dazukofs”`”] というのがあって,fsについての指定をしているようなので,ここに赤字を追記。無事解決。
  • ClamAvをLooxにインストールする。
    1. パッケージマネージャで libbz2-dev をインストール。
    2. /root にcheck-0.9.8.tar.gz を解凍して,インストール。解凍フォルダ内にあるINSTALLの説明に従う。
      # ./configure
      # make
      # make install
    3. /root にclamav-0.96.1.tar.gz を解凍して,インストール。解凍フォルダ内にあるDocsの説明に従う。
      まず,グループとユーザを作成。
      # addgroup clamav
      # adduser -G clamav -s /bin/false clamav
      clamavのパスワードを設定。
      $ ./configure –sysconfdir=/etc –enable-check
      $ make
      # make install
    4. unit tests 。
      # make check
    5. checkの結果
      PASS: check_clamav
      PASS: check_freshclam.sh
      PASS: check_sigtool.sh
      SKIP: check_unit_vg.sh
      PASS: check1_clamscan.sh
      PASS: check2_clamd.sh
      PASS: check3_clamd.sh
      PASS: check4_clamd.sh
      SKIP: check5_clamd_vg.sh
      SKIP: check6_clamd_vg.sh
      SKIP: check7_clamd_hg.sh
      SKIP: check8_clamd_hg.sh

      ======================
      All 7 tests passed
      (5 tests were not run)
      ======================
    6. 全然かかわりないんだろうけど,# /sbin/sysctl -w kernel/shmmax=268435456 にて,shmmax を 268435456 (256MB) に書き換えた。
      というのが,LooxS5/53W でやっていたときに segmentation fault が出て,clamd がちょくちょく死んじゃってたんだが,これに関しては,ClamAvのBugzilla でもあまり回答がなかった。でも,ちょっと古いバージョンの話で「 freshclam をやったら直らない? 」なんていうのがあって,その辺のからみがあるなら― Avast の件が頭にあったもので―おまじないで shmmax を増やしておいたらならないかなと思ったんだよね。
      で,単なる気休めです。
    7. /etc にある clamd.conf の内容を編集。
      • Example の頭に # をつけてコメントアウト。
      • 以下の部分はアンコメント。
        LogFile /tmp/clamd.log     テストラン後はコメントアウトする。
        LogTime yes     テストラン後はコメントアウトする。
        LocalSocket /tmp/clamd.socket
        FixStaleSocket yes
        User root     これを明示的に宣言しないと,オンアクセススキャンが効かないようだ。
        DetectPUA yes
        ClamukoScanOnAccess yes
    8. /etc/rc.d/rc.local に env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/clamd -c /etc/clamd.conf を追加。
      PATHを恒久的に通すことも考えたが,起動時にいるだけだから, env で済ませることにした。再起動したら,無事,clamd が走っていた。
    9. /etc にある freshclam.conf の内容を編集。
      • Example の頭に # をつけてコメントアウト。
      • 以下の部分はアンコメント。
        UpdateLogFile /var/log/freshclam.log
        LogTime yes
        DatabaseMirror db.jp.clamav.net
        NotifyClamd /etc/clamd.conf
    10. freshclam.log用の空ファイルを作り,所有者を変更する。
      # touch /var/log/freshclam.log
      # chown clamav:clamav /var/log/freshclam.log
    11. /etc/rc.d/rc.local に env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/freshclam -d を追加。
      起動時にfreshclamがデーモンとして起動する。再起動して,freshclam.log を見たら,ちゃんとウィルスデータベースが更新されていた。これがらみで,rc.networkのMAXWAITを48
    12. /root/clamav-0.96.1/test内のテスト用ウイルスを解凍(たとえば,unzip ~/clamav-0.96.1/test/clam.zip)しようとすると
      error: cannot open zipfile [ /root/clamav-0.96.1/test/clam.zip ]
      Operation not permitted
      unzip: cannot find or open /root/clamav-0.96.1/test/clam.zip, /root/clamav-0.96.1/test/clam.zip.zip or /root/clamav-0.96.1/test/clam.zip.ZIP.
      が出る。ただ,端末にしてもGUIで直接ファイルをクリックにしても,メッセージがわかりにくくて困る。
    13. テストラン→# env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/clamscan –infected –remove –recursive / を打って,一応テストウィルスのお掃除。
      で,判明したこと。DazukoFsがマウントしているディレクトリで見つかったマルファイルについては
      WARNING: Can’t open file ファイル名: Operation not permitted
      が出る。削除してくれないので,手動削除が必要。それ以外のディレクトリについては,
      ファイル名: なんちゃらかんちゃら FOUND
      ファイル名: Removed.
      が出て,削除までしてくれる。
    14. clamscan については,シェルを作ってcron に入れておくという手もあるけど,Windowsマシンだって,そんなにたびたび,フルスキャンはしないし,ときどき思い出してやればいいのではないかと思うわけ。
  • HAVPをLooxにインストールする。
    HAVPについては,前にjuneさんがお書きでしたね。petはないようなので,ソースからやります。

    1. /root にhavp-0.92.tar.gz を解凍してインストール。解凍フォルダにあるINSTALLの説明に従う。
    2. # ./configure
      # make
      # make install
    3. /usr/local/etc/havp/havp.config を編集。
      • REMOVETHISLINE deleteme   を削除。
      • Listening port を8080にするので,
        PORT 8080   をアンコメント。
        BIND_ADDRESS 127.0.0.1   をアンコメント。
      • ClamAV Library Scanner を有効化するために,
        ENABLECLAMD true
      • ClamAV Socket Scanner を有効化するために,
        ENABLECLAMD true
        CLAMDSOCKET /tmp/clamd.socket
    4. # addgroup havp
      # adduser -G havp -s /bin/false havp
      # chown havp /var/tmp/havp /var/log/havp /var/run/havp
      # chmod 700 /var/tmp/havp /var/log/havp /var/run/havp
      LuPuもLinux の仲間なので,mandatory locking を有効にね,ということらしい。
      # mount -o remount,mand /
    5. ブラウザの設定をする。FireFoxを使うつもりなので,最新版の3.6.8をインストールし,日本語化(参照「懸案のLoox-#7。」)ののち,ネットワークの接続設定からプロキシを,127.0.0.1:8080にする。。
    6. テストがうまくいったら,rc.localに
      # mount -o remount,mand /
      # env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/havp -c /usr/local/etc/havp/havp.config
      を記入して,起動時に起きるようにする。
  • 後は,適当にLooxを自分用にカスタマイズする。
    追記:

  • HAVP経由の接続がうまく行ったり行かなかったり,今日(8/20),つくづくerror.logを眺めていたら,起動時にclamd.socketとの接続がうまく行っていないときがあるようだ。起動順をclamd,freshclam,HAVPとしていたのだが,ウィルスデータベースの更新が多いときにfreshclamが,HAVPとclamd.socketの接続の邪魔になっているように感じたので,起動順をclamd,HAVP,freshclamにやりかえた。これでしばらく様子を見てみよう。
  • ところで,T93Bからは,初の書き込みです。(喜)—-8/21 01:26a.m.

懸案のLoox-#10。

「LooxS5/53WにPuppyLinuxを入れて,オンアクセススキャンでウイルス対策ソフトを動かす」の最終段である。読んでもらうとわかりるが,所期の目標に達していない。
しかし,DazukoFS+ClamAvデーモンはひとまず動いた。その時あまりにも重くて,他の作業もままならないので,LooxS5/53Wはオフラインのサブ機として使うことにしようと決めた。
とはいっても,その過程で分かったこともいろいろあったので,忘れないためにもそのあたりをまとめておこうと思う。

以下の作業は「懸案のLoox-#9。」の13.に続いて行うことになる。

まだ,ウイルス対策が済んでいないので,必要なファイルのダウンロードは別PCを利用する。また,今回は開発環境ができているので,Debianのパッケージを利用せず, clamav-0.96.1.tar.gz をダウンロードして使う。

Clamavのインストール。
1度,1.~6.まで済んだのだが,
========================================
4 of 7 tests failed
(5 tests were not run)
See unit_tests/test-suite.log
Please report to http://bugs.clamav.net/
========================================

ということで,ClamAvのBugzillaを見たら1744が似ているようなので,パッケージマネージャでlibbz2-devをインストールし,ClamAvのほうは make uninstall して,clamd.conf とfreshclam.confも削除。改めて,やり直した。

  1. 後で,checkを使うので,http://www.sf.net/から,check-0.9.8.tar.gzをダウンロードして解凍し,中のINSTALLにしたがって,
    # ./configure
    # make
    # make install
    (※) プラットフォームに,もともとcheckパッケージがあれば,この部分は必要なし。
  2. /rootにダウンロードしたファイルを
    # tar zxvf clamav-0.96.1.tar.gz
    で解凍し,解凍されたフォルダの中にあるdocsを読んで,その手順に従う。
  3. # cd clamav-0.96.1      解凍されてできたClamAvのソースフォルダに移動。
  4. docsには
    # groupadd clamav
    # useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
    と書いてあるが,Puppyの場合は,
    # addgroup clamav
    # adduser -G clamav -s /bin/false clamav
    で,グループとユーザを作成。
  5. ClamAvのコンフィグに入る。
    $ ./configure –sysconfdir=/etc –enable-check      初めのオプションはconfファイルを/etcに作る。省けば,/usr/local/etcにできる。2つ目は,後で使うチェックのため。
    $ make      相当時間食った。計るの忘れたけど,多分4,5時間。
    でもって,$ su -c “make install”と書いてあるけど,Puppyはもともとroot権限で動いているから,
    # make install      でいいんだろう。
  6. 次が unit tests 。今コンパイルしたのが,システム上でちゃんと動くか,調べてくれるそうだ。
    で,1度目の結果が,上記のとおりなのだが,2度目はちゃんと通って,結果は以下の通り。
    PASS: check_clamav
    PASS: check_freshclam.sh
    PASS: check_sigtool.sh
    SKIP: check_unit_vg.sh
    PASS: check1_clamscan.sh
    PASS: check2_clamd.sh
    PASS: check3_clamd.sh
    PASS: check4_clamd.sh
    SKIP: check5_clamd_vg.sh
    SKIP: check6_clamd_vg.sh
    SKIP: check7_clamd_hg.sh
    SKIP: check8_clamd_hg.sh
    ======================
    All 7 tests passed
    (5 tests were not run)
    ======================
    SKIPされている項目は valgrind がインストールされていないせいである。
  7. さて,このあとも大問題。各confの中を読みつつ,デフォルト設定を環境に合わせていくわけだ。心労の極み!(笑)
    /etc にある clamd.conf の内容を編集。

    • Example の頭に # をつけてコメントアウト。
    • 以下の部分はアンコメント。
      LogFile /tmp/clamd.log
      LogTime yes
      LocalSocket /tmp/clamd.socket
      FixStaleSocket yes
      DetectPUA yes      PUA — Possibly Unwanted Applicationsということなんだけど,コメントのままにしとくべきかな。
      ClamukoScanOnAccess yes
  8. /etc にある freshclam.conf の内容を編集。
    • Example の頭に # をつけてコメントアウト。
    • 以下の部分はアンコメント。
      UpdateLogFile /var/log/freshclam.log
      LogTime yes
      DatabaseMirror db.jp.clamav.net      # DatabaseMirror db.XY.clamav.netをアンコメントして,XYをカントリーコードに書き換える。
      NotifyClamd /etc/clamd.conf      # NotifyClamd /path/to/clamd.confをアンコメントして,パスを書き換える。
  9. # touch /var/log/freshclam.log      ログ用に空のファイルを作る。
    # chown clamav:clamav /var/log/freshclam.log      ログファイルのownerをrootからclamavに変更する。
  10. # modprobe dazukofs      DazukoFsのモジュールをロード。
    # mount -t dazukofs / /      全ディレクトリをDazukoFsでマウント。
    # env LD_LIBRARY_PATH=/usr/local/lib /usr/local/sbin/clamd -c /etc/clamd.conf      ClamAvを起動。
    別の端末から
    # env LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/freshclam   でウイルス定義ファイルの更新。
    更新は無事完了。しかし,しばらくするとclamdが落ちた。
    /tmp/clamd.log によると segmentation fault が出て止まっている模様。
(※) Valgrindもインストールしてみたが,VaigrindはCrusoeをサポートしていないということであった。


valgrind_3.6.0~svn20100212-0ubuntu5_i386.deb (依存関係でlibc6-dbg_2.11.1-0ubuntu7.1_i386.debも) をインストールしてみたときのcheckの結果は,以下の通り。
PASS: check_clamav
PASS: check_freshclam.sh
PASS: check_sigtool.sh
PASS: check_unit_vg.sh
PASS: check1_clamscan.sh
PASS: check2_clamd.sh
PASS: check3_clamd.sh
PASS: check4_clamd.sh
FAIL: check5_clamd_vg.sh
FAIL: check6_clamd_vg.sh
SKIP: check7_clamd_hg.sh
FAIL: check8_clamd_hg.sh
========================================
3 of 11 tests failed
(1 test was not run)
See unit_tests/test-suite.log
Please report to http://bugs.clamav.net/
========================================
test-suite.logによれば,unsupported CPU ということで,Crusoeというのが,ここでも響いている。

サウンドは使えなくなる,電源は落ちなくなると,副作用もいろいろあった。

懸案のLoox-#8。

LuPuのウイルス対策をどうしようかという話。
前回Ver4.3.1にClamAvを入れたときはあまり満足いく結果は得られなかった。「Puppyの日本語フォーラム」を見ると,FRUGALインストールの場合すぐに初期状態に復帰できるし,Linuxのウィルスはそれほど多くないから,ときどきスキャンする程度でいいという意見が大勢を占めている。しかし,我がLooxはFULLインストールだし……何とか,対策ソフトを常駐させるところまで,持っていきたいネ。

というわけで,28日(月)に取り組んでみた。
WinでのフリーソフトはAviraを使っているので,これをインストールして見たのだが,現バージョンからはUIが削られてて,結構操作が難しい。あきらめて,楽に行きそうだという Avastの現バージョン (http://files.avast.com/files/linux/avast4workstation_1.3.0-2_i386.deb) を入れてみた。すんなり,インストールでき,レジストしてconsoleからavastguiを打ったら,あっさり立ち上がったので,「やった!!」と思ったんだが,Update databaseでこけちゃいました。
An error occurred in avast! engine: Invalid argument
がでるようになり,どうしてもダメ。お手上げ。この日は,あきらめた。

で,今日(30日)ググってみてたんだけど,2chの記事(http://pc11.2ch.net/test/read.cgi/linux/1186329249/)にUbuntuがらみで,

Ubuntu の avast! Antivirus が変   でググって
ttp://eunheui.cocolog-nifty.com/ubuntu/2010/03/ubuntu-avast-an.html によると
sudo gedit /etc/init.d/rcS として

exec /etc/init.d/rc S という行の前に
sysctl -w kernel.shmmax=128000000
という行を挿入して、Ubuntu を再起動します。 とのこと

というのがあった。shmmaxのサイズで引っかかっているらしい。同じところをPuppyで見てみたが,kernel.shmmaxの設定場所が違うようだ。やっぱ駄目かなと思いつつ,shmmax puppy avastでググったら,ありました。
http://www.murga-linux.com/puppy/viewtopic.php?t=54475
これを参考に,以下のことをやったら,エラーが消えて無事,アップデート完了。

/proc/sys/kernel/shmmaxを開いて値を確認。
33554432 です。
consoleから
# /sbin/sysctl -w kernel/shmmax=200000000を打つと
kernel.shmmax = 200000000 が出る。
もう一度/proc/sys/kernel/shmmaxを確認。
200000000 になってます。

それと,メニューがちゃんとできなかったので,デスクトップから,Avast.desktopを開けるようにショートカットを作成。
で,フルスキャンして見ました。問題なし。

それは,いいんだけど,常駐させるためには,もう一個問題が……難関,Dazukoのインストールです。(泣)
苦難は続く。しかも,読んでみると,Dazukoをウイルス対策ソフトより先にインストしなくてはいけないらしいではないですか。あちゃー。

  • 追記:えー,Dazukoを入れようと,よくわからないカーネルいじりにもがいていたら,LooxがUSBやPC Cardを認識しなくなっちゃいました。もう一回,一からやり直さなくちゃいけないみたいっす。(痛っ)
  • 追記#2:kernel.shmmax = 200000000 にしたときから,気になっているんだけど,これはこんな中途半端な数でいいのかなぁ。もともとの33554432は33554432÷1024÷1024=32だから,32MBだよね。209715200(200MB)とかにする必要はないのかな? Linux,素人だから悩んでます……

懸案のLoox-#3。

ここのところ,忙しくてLOOXを放りっぱなしだったのだが,27日(木)にjuneさんからclamAVの件でコメントをもらった。これには困った。clamAV-0.91.2はうまく動かないままだったのだ。実のところ,記事からclamAVの件を消しておくべきだったが,juneさんからのコメントで記述していたことに気づいた次第で,書いたことすら忘れていた。juneさんには,一応泥縄で返信を書いたが,そのあたりの顛末を含めて,記事「懸案のLoox-#2。」以降のことを書く。
まだ,途中だけど,あとがいつになるかわからないし……

では,始めます。

えー,21日の夜作成したはずのSeaMonkeyのメッセージフィルタの設定が,全部消えてしまった。―後日談としては,実は,消えていませんでして,何でなのかどうもよくわからない。(泣)

不愉快だし,どうも不安。それで,ftp://ftp.t.ring.gr.jp/pub/linux/puppylinux/packages-stray/Shintani/からsylpheed-3.0.0-i486-koro1.petを落としてきて,インストール。

デスクトップに,ショートカット(Linuxではランチャというものだと思っていたが,Puppyの日本語版ページにはこう書いてある。)を作る。インストールした,sylpheedの実行ファイルは~/.usr/binにあったので,これをデスクトップにドラッグ&ドロップ。歯車型のままでは格好悪いので,右クリックショートカットメニューよりアイコンを設定を選んで,メールアイコンに変更。sylpheedのアイコンがわからなかったので,SeaMonkeyのアイコンで代用。

さて,clamAVのほうも,バージョン0.91.2はうまく動かなかった。私がclamAVを知っていたのは前に使っていた FedoraCoreがらみなのだが,このときは,パッケージをインストールして,コマンドを打ったら動いたので,楽だったけどあまり勉強にはならなかった。今回,動かなかったので,「何でだろう」とは思ったが,ここんとこ忙しくてほったらかし。Looxは,寝かせたままなので害はないです。

ただ,ほったらかしの前にどうも古いclamAVのサポートが終わっているらしいことは分かった。clamAVのオフィシャルサイトでもアナウンス(魚拓です)をしているようだ。うまく動かないのがこれがらみかどうかは別だが。

で,28日帰宅してから,ClamAV – Anti Virus software というページを発見し,0.96.xバージョンをインストールしなおした。

以下のファイルを落としてきて,この順にインストール。

http://http.us.debian.org/debian/pool/main/c/clamav/clamav_0.96+dfsg-4_i386.deb

http://http.us.debian.org/debian/pool/main/c/clamav/libclamav6_0.96+dfsg-4_i386.deb

http://http.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.2.6b-2_i386.deb

http://http.us.debian.org/debian/pool/main/libt/libtommath/libtommath0_0.39-3_i386.deb

http://http.us.debian.org/debian/pool/main/e/eglibc/libc6_2.10.2-9_i386.deb

ClamAVのページから下記の二つのウイルス定義ファイルを落として,/var/lib/clamav/ (←なかったので,作った)にコピー。
http://db.local.clamav.net/main.cvd
http://db.local.clamav.net/daily.cvd

端末から,clamscanを打ったら,無事走り出した。

しかし,/rootのスキャンだけで,90分22秒。前途多難。

———– SCAN SUMMARY ———–
Known viruses: 787882
Engine version: 0.96
Scanned directories: 1
Scanned files: 29
Infected files: 0
Data scanned: 18.04 MB
Data read: 8.54 MB (ratio 2.11:1)
Time: 5422.044 sec (90 m 22 s)

clamAVをGUIで動かすために,http://sourceforge.net/projects/fetcav/からfetcav-0.5.tar.gzを落として解凍し,install.shがうまく動かなかったので,手動で,fetcav.shを~/.usr/sbinにコピー。デスクトップにショートカットを作る。fetcavを走らせて基本設定を保存。

常駐はさせていないけど,Puppyにはもともとファイヤーウォールの設定があるし,今のところclamAVについてはこれでいいかな。

懸案のLoox-#2。

いろいろ,書き忘れたことや手直しがあったので,追加です。

  1. 上書きインストールは何となく嫌なので,HDD中にあったKnoppixを削除するために,http://homepage1.nifty.com/bible/fdos/からFreeDosのimageを落としてきて,Fdiskでパーティションを削除。
  2. 手動インストールのときは軽かったのに,なんかどうも動きが重いので,何でかな?と考えていて,ふと,FULLモードでインストールしたのを思い出し,もう一度,USBFDから起動して,FRUGALモードでインストールすることにする。しかし,このときにGUIではどうしてもGRUBをおく/bootの作成がうまくいかないので,前回のautoexec.batの2行目に「,nox」を加えて,コマンドラインで立ち上 げ,まず,GRUBのインストールをする。
    1. fdisk /dev/sda
      d (削除コマンド)→ n (作成コマンド)→ w(変更の適用コマンド)   パーティションの作成です。
    2. mkfs -t ext2 /dev/sda1
    3. mkdir /sda1
    4. mount /dev/sda1 /sda1
    5. mkdir /sda1/boot
    6. grub-install –root-directory=/sda1 /dev/sda1
    7. startx
  3. 立ち上がったPuppy上のユニバーサルインストーラで改めて,/sda1内にFRUGALモードでインストール(/sda1/431内)。
    ユニバーサルインストーラが/tmpに作ってくれたNEWGRUBTEXTを,先ほどコマンドラインから作成済みの/sda1/boot/grubに移動して,名前をmenu.lstに変更。
  4. 再起動したら無事,立ち上がった。キーボードはjp106,グラフィックにはXorgで自動設定。画面は,1024×512の変則なんだけど,ちゃんと対応ドライバがあった。FRUGALモードだと,スペックの低いパソコンだと自動的にスワップエリアも作ってくれる。うーん,かなり速くなるかな?
  5. 壁紙の表示設定をストレッチにして,横長のLCDに合わす。
  6. 自宅のサーバにドメイン名で接続できるよう /etc/hosts に本家のドメイン名を記載。
  7. ネットに接続して,PETgetパッケージマネージャでclamav-0.91.2(アンチウイルスソフト)をダウンロードし,インストール。   <—-   後述のようにこいつはまともに動きませんでいた。(「懸案のLoox-#3。」を参照)
  8. ファイアーウォールの設定。デフォルトのオートマチックのまま。
  9. つい,うっかりダブルクリックして,ファイルを二重に開いてしまうので,マウスのクリック設定をデフォルトのシングルクリックから,ダブルクリックに変更。
    デスクトップ上のファイルアイコンをクリックして,ROXファイルマネージャを開く。開いたウインドウ内を右クリックして,現れるショートカットメニューから「オプション設定」を選んで開く。その中の「ファイラーウィンドウ」「ピンボート」の項目中に「シングルクリックで開く」という項目があるので,このチェックをはずす。
  10. SeaMonkeyがもともと入っていたけど,バージョンが1.1.18だったので,サイトからseamonkey-2.0.4.tar.bz2を落としてきた。my\documentsに展開して,petを作ってみる。失敗。まだ,どこが悪いかも理解できない。(溜息)
    dbus-1.0.2,dbus_glib-0.73をインストール,再起動。展開したseamonkeyのファイルの中のseamonkeyをクリックして起動。デスクトップ上にこのファイルのコピーを作って,アイコンをSeaMonkeyのデフォルトのに変更。
  • 追記:PuppyのデフォルトのgFTPを使い画像をアップしてみた。Puppy上のSeaMonkeyでこれを書いている。動きがかなりトロいけど,まぁ許せるレベルかな。
    現在のLooxのデスクトップはこんな感じ。
  • 追記-2:menu.lstの内容を追加しておく。
    Puppyが作ってくれるのは2行目以降。1行目はGrubのためのタイム設定。
    timeout 3
    title Puppy Linux 431 frugal
    rootnoverify (hd0,0)
    kernel /431/vmlinuz pmedia=atahd psubdir=431
    initrd /431/initrd.gz
  • 追記-3:スワップの件もここに書いておいた方がよさそうなので,追加。
    Puppyが自動で作ってくれたpupswap.swpは200MBしかなかったので, swapoff /mnt/home/pupswap.swp でスワップをはずして,pupswap.swpを削除し,大きさを404MBにして,作り直した。Puppyには,実装とスワップを合わせて512MBはあった方がいいらしいので,512-108=404というわけですね。我がLOOXの物理メモリは128MBだけど,システムで16MB,VRAMで4MB使われるらしく108MBしか残らないデス。端末から dd if=/dev/zero of=/mnt/home/pupswap.swp bs=1048576 count=404 で新しいファイルを作る。

    蛇足だけど,BlockSize(bs)の数字は1メガバイト=1024×1024バイト=1048576バイトってことです。で,入力が/dev/zeroだから,NULLで埋まった大きさ404MBのpupswap.swpができます。

    mkswap /mnt/home/pupswap.swp
    swapon /mnt/home/pupswap.swp
    で作ったpupswap.swpをスワップとして有効化して,freeで確認してみたら,無事出来てた。めでたし,めでたし。