今日は,朝からWindows8にかかりきりで気づかなかったのだが,勘三郎がなくなってしまいました。ショック,なんということ。まだ,若いのに。枝雀が自殺したときも,志ん朝が亡くなったときも,惜しいと思ったが,勘三郎がこんなに早く逝くなんて。本当にショックとしか言いようがない。
無念だったろうね,勘三郎さん。ご冥福をお祈りする。
投稿アップデート情報 追記(12/1) 追記2(2013/2/14)
本日ようやく(29 November 2012となってるが,多分ついさっきだね,向こう時間だから。今,うちのPCで00:51 JST),PHP5.4.9用のphp handlerが出たので,アップデートする。handlerが出るのを待っていたのだが,こんな話もあるようなので,mbstring.encoding_translation=On にしているサーバは対処したほうがいいかも。うちは,Offです。iniの設定は,「本家のお世話-#28。」と同じ。
PHPのおニューはいつも通り,VC9のTS版を落としてくる PHP5.4.9(Nov-21 21:22:38 UTC)。待ちかねた5.4.9用のphp handler(php5apache2_4.dll-php-5.4-win32.zipに入っている。)を,Apache Loungeから落として,PHPのフォルダ内にコピーして使う。今回,php.ini-productionは5.4.8からの変更点なし。
追記(12/1):
上記のこんな話の件,徳丸さんとこに検証と対処法の記事が出てるのに気づいたので,リンクを貼っておく。「PHP5.4.8、PHP5.3.18以前にhashdos脆弱性 」。
追記2(2013/2/14):
php5apache2_4.dll でググって来られる方がおられるようなので,追記。 PHP5.4.10 から php5apache2_4.dll も PHP のオフィシャルバイナリに同梱されるようになりました。
前稿からずいぶん時間が経ってしまった。あと何に取り組もうと考えていたかというと,「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
もう,11月が終わりますねぇ。早いもんです。ここのとこ,めっきり寒くなってきましたし,来月の頭には雪も降りそうな気がします。
今日は野暮用で出かけたんですが,はじめのところが留守だったので,本屋に行って時間を潰しました。2軒めは約束していたので,時間通りに訪問して,用を片付けてきました。
うちに帰ってきたら,なんと車庫の屋根の上にアオサギがいるじゃないですか。近くの川や田んぼでは,ほぼ毎日見ているアオサギですが,自分ちの屋敷内では初めての目撃ですよ。ワオッ!!
10月25日。
この日は,終日帰国のための移動だったが,家を出た日に比べてましなのは,そんなに早起きしなくていいことだった。ホテルを出てビルバオに向かうのは10:30の予定だったから,7:30に起きてゆっくり朝食をとった。前日,添乗員が話していたマミアがあった。私たちのために手配してくれていたようだ。ほかの人も食べたかなあ。さっぱりした感じだったけど,量が結構多かった。朝食後はホテルの周りを散歩するつもりだったが,この日はまた雨が戻ってきていたので,あきらめた。
ビアリッツのホテルからビルバオの空港までは約2時間かかった。ここで,またフランスとスペインの国境を越えた。両国ともEUの加盟国だから,国境と言っても何の手続きもなく車で越えるだけなのだが,道端には,右図のような道路標識がある。行きがけに撮り損ねたので,帰路で撮るつもりだったら,また失敗した(泣)。
空港では,混雑していたのでスーツケースを預けるのにちょっと手間取ったが,それ以外は順調で14:25には,フランクフルトに向けて飛び立った。しかし,フランクフルトでの乗り継ぎ時間が何と4時間半ばかりあったのだ(溜息)。
近頃では,大部分の空港で無料WiFiが使える。もちろん,セキュリティーには気を付けなくてはいけないが。成田空港でも,時間制限なく利用できて,登録に必要なのはメールアドレスだけだ。このメールアドレスも,フリーメールのでも構わない。ところが,フランクフルト空港では,1日に30分しか使えなかった。その上,PINコードがいる。このPINコードは,登録ページから国番号と携帯番号を送ると,6桁のが,SMSで携帯に送られてくる。こんなの。
|
Ihre PIN f~r 30 Minuten Internet bei FraPort lautet: xxxxxx Ein Hotline-Anruf kostet 9 ct aus dem Netz der Deutschen Telekom. Mobilkosten abweichend. |
空港でのこういう方式は初体験だったんだけど,他の空港でもフリーWiFiでよくあるスタイルなんですか。
今の時代でも,ヨーロッパと日本は遠いね。実際,家に着いたときは,もうちょっとで26日が終わりそうだった,もちろん,日本時間です。
というわけで,やっと,「オ シ マ イ!!」です。
前日,ビアリッツのこのホテルに着いたときに,ここにツアーバスで来るのは場違いだなと思った。とてもいいホテルで,入り口のゲートは,バスには狭すぎた。このホテルにツアーバスでやってきて,1日か2日くらいしか泊まらないのは,日本人くらいのものなんだろう。まぁ,それが日本人のツアースタイルというものだ。彼らとしては,好むと好まざるとにかかわらず,受け入れざるを得なかったということだろう。
この日は,初めにバイヨンヌのアトリエ・デュ・ショコラの工場を訪問して,いろんな種類のチョコレートを試食した。残念ながら,実際の工程はあまり見ることが出来なかった。お土産にしようと思って,いろんなチョコレートを買った。味見したときに唐辛子チョコレートがあって,面白いと思ったので,これをお土産のひとつにした……つもりだったら,実際は唐辛子キャラメルを買っていた。失敗!!
このあと,バスでバスク博物館に向かい,そこから,対岸のサント・マリー大聖堂に行くために,ニーヴ川の橋を歩いて渡った。大聖堂は壮大な,しかしなんと言うか,つぎはぎの建物で,上部は石灰岩,下部は砂岩で作られていた。
この後,部屋にいたとき,メイドがターンダウン・サービスにやってきた。多分,ドアベルを鳴らしたんだと思うが,バスルームにいたせいか,はっきり聞こえなかった。で,返事しなかった訳だが,彼女は鍵を開けて勝手に入ってきた。部屋には,「Don’t disturb」の札もかけていなかったから,多分留守だと思ったんだろうが。このサービスのことを知らなかったので,勝手に入ってきたメイドを見て,びっくり仰天した。あとで聞いたところによると,このクラスのホテルだと,ターンダウンサービスは,基本サービスの一つだそうだ。だから,「いらない」と断られない限り,メイドはそれをしなくてはいけないわけで,彼女は職務に忠実だったということだ。前の日は,チェックインが遅かったので,ターンダウンの時間は終わっていた。何しろこんないいホテルに泊まったことがないから,いろいろと,初体験もある(^_^;)。
バスク最後の食事は,L’Atelierという小さなレストランで取った。彼らの料理は nouvelle cuisine という感じがした。
翌日は,日本へ向けて発つ予定。
というわけで,今しばし,お付き合いを。
10月23日。
オンダリビアはいい天気だった。ホテルの前の坂を下って,バスに歩いて行った。途中で,市庁舎やサンタマリア門を見たが,門を抜けてすぐ,また,立像があった。兵士だというのだが,エプロンをかけて鋸を持っていた(スライドショーの0:46を参照)。なんでと思ったのだが,工兵ということらしかった。町のお祭りでは,この兵士のような扮装をする人もいるということだった。
この日は,登山鉄道でラ・リューヌ山頂に行くことになっていた。1924年に開通したラックレールの単線の電車である。途中で,電車からポトックという小型の馬を見た。山頂も晴れていて,フランス・スペイン両方のバスクの素晴らしい景色を見ることができた。
下山電車を待っていたとき,老婦人が私に「その帽子どこで買ったの」と聞いてきた。私は,フランス語が分からないし,彼女は日・英どちらも分からなかった。にもかかわらず,言ってることが分かったとは,不思議な話だね!! (^o^)
サールという小さな美しい村を訪問した後,ITHURRIAで昼食を取った。料理はどれもよかったけど,特に,バスク豚が気に入った。とてもおいしかった。昼食後,エスプレットで,有名なエスプレットの唐辛子を,2袋買った。サン・ジャン・ド・リュズでは,ラベルの生家やサン・ジャン・バプティスト教会などを見た。地図を持ってサン・ジャン・ド・リュズの街をうろうろしていたら,老婦人が近づいてきて,道を教えてくれた。彼女もまた,フランス語しかわからなかった。でも,やはり話は通じた。不思議な話パート2だった。 (^o^)(^o^)
フランスバスクに入ってから,白壁・赤い縁取りの家が多くなった。伝統的なスタイルらしい。昔は,強い日光と虫除けのために,白には石灰を赤には牛の血を使ったということだったけど,今は何を使っているんだろう。
この日のガイドは一昨日と同じだった。彼女に疑問に思っていたことを聞いてみた。
「車検みたいな制度があるんですか。」というのが,バスク自治州 (スペインのバスク)で見た車が,どれもきれいだったからだ。国外に出ると結構ポンコツが走っている。彼女の返事は,車を買ったときに届けをして,4年後に車の状態の検査を受けて,さらに2年後に検査を受けて,その後は毎年検査を受けなければいけないということだった。彼女の答えで,ポンコツがないのが当たり前だと納得が行った私であった。
この日のホテルは,ビアリッツのデュ・パレだった。とてーもいいホテルだった。
もう少し,続きます。
「本家のお世話-#20。」のところで,phpMyAdminのconfファイルを作り,Apacheのconf/extraに追加して使う話を書いた。これが出来るんなら,ほかのことも可能なはずとふと思った。実際,awstatsについては,もともともconfの雛形がzipに入っていて,同じようなことをしている。
で,頭の中にあったのはなんについてかというと,PHPについてなのだ。ちょっと,設定ファイルを読んでみたが,特に問題はなさそう。というわけで,php54.confという名前で作ってみた。
「本家のお世話-#28。」を見てもらえばわかるが,バラバラにソフトをインストールして,WAMP系サーバを建てるに当たって,オリジナルのhttpd.confにいろいろ付け加えたりしているのは,PHPだけなのだ。他のは,付け加えではなくアンコメントしたり,デフォを書き直したりしているに過ぎない。だから,これをextra-confにしてしまえば,分かりやすく,管理しやすくなるだろってこと。
php54.confに書いたのは,以下の3行。
LoadModule php5_module “C:/PHP/php5apache2_4.dll”
AddHandler application/x-httpd-php .php
PHPIniDir “C:/PHP”
もちろん,httpd.confの
LoadModule php5_module “c:/php/php5apache2_4.dll”
<IfModule mod_php5.c>
AddHandler application/x-httpd-php .php
PHPIniDir “C:/PHP”
</IfModule>
については,コメントアウトし,Supplemental configurationの区画の末尾に以下の2行を付け加える。
# PHP settings
Include conf/extra/php54.conf
ApacheをRestartする。うまくいった。ちゃんと使える。
子テーマの話。
「o6asan’s netradi」をリニューアルして名前を付け替えたときに,テーマも変更した。で,このときにPink Touch 2というのをカスタマイズして使ったのだが,初めて子テーマの機能を利用した。
「子テーマ」を見に行ったら,「原文が頻繁に更新されており、情報が古くなっている可能性があります。最新版(英語)も合わせてご覧ください。」と書いてあったので,そっちの方を参考に子テーマを作った。その話を書いていなかったので,思い出したときに書いておこうと思う。
ところで,その話に入る前に!! 昨日改めて,最新版(英語)を見ていて,「Note on RTL support」というのに気付いた。Pink Touch 2にはrtl.cssがあったから,よく文章も読まずに, @import url("../pink-touch-2/rtl.css"); を入れてみたら,アラビア語みたいに右からの横書きになるのだね。ハハハ,rtl=right-to-leftだから当然でした。なのに,焦りまくりました(大笑い)。
それはさておき,子テーマの話。
/*
Theme Name: Pink Touch 2 Child
Template: pink-touch-2
*/
@import url("../pink-touch-2/style.css");
#header {
margin: 0px auto 0px;
min-height: 0px;
padding: 20px 0 77px;
position: relative;
text-align: center;
width: 690px;
}
一番上の/*~*/が子テーマ独自のヘッダーで,ここでどの親テーマに依存しているかが宣言される。で,定義可能な各行の説明を書くと,
Theme Name. (必須) 子テーマの名前.
Theme URI. (任意) 子テーマのサイト
Description. (任意) このテーマの説明 例:初めての子テーマ。万歳!
Author URI. (任意) 作者のサイト
Author. (任意) 作者名
Template. (必須) 親テーマのディレクトリ名。大文字小文字が区別される。
Version. (任意) 子テーマのバージョン 例: 0.1, 1.0, など
で,見ての通り,「o6asan’s netradi」の場合,必須の2行しか書いていない。
あと,
@import url("../pink-touch-2/style.css");
は当然ながら主な部分のスタイルは全て親テーマのを利用させてもらうので,インポートするってこと。#headerだけを独自スタイルにするから,これを書く。完全に独自スタイルにするならば,インポートせずに自分が望むスタイルをここに書けばいいということだ。
実際の話,この話を思い出したのは,Pink Touch 2のバージョンアップがあったからなのだ(爆)。