カテゴリー
Windows

本家のお世話-#53。(PHP5.4.9へアップデート)

投稿アップデート情報  追記(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 のオフィシャルバイナリに同梱されるようになりました。

カテゴリー
Linux

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

カテゴリー
everyday life

車庫の屋根にアオサギが……

Grey Heron もう,11月が終わりますねぇ。早いもんです。ここのとこ,めっきり寒くなってきましたし,来月の頭には雪も降りそうな気がします。

 今日は野暮用で出かけたんですが,はじめのところが留守だったので,本屋に行って時間を潰しました。2軒めは約束していたので,時間通りに訪問して,用を片付けてきました。

 うちに帰ってきたら,なんと車庫の屋根の上にアオサギがいるじゃないですか。近くの川や田んぼでは,ほぼ毎日見ているアオサギですが,自分ちの屋敷内では初めての目撃ですよ。ワオッ!!

カテゴリー
everyday life

バスクに行ってきました-#8。

バスク旅行-#8 10月25日。
 この日は,終日帰国のための移動だったが,家を出た日に比べてましなのは,そんなに早起きしなくていいことだった。ホテルを出てビルバオに向かうのは10:30の予定だったから,7:30に起きてゆっくり朝食をとった。前日,添乗員が話していたマミアがあった。私たちのために手配してくれていたようだ。ほかの人も食べたかなあ。さっぱりした感じだったけど,量が結構多かった。朝食後はホテルの周りを散歩するつもりだったが,この日はまた雨が戻ってきていたので,あきらめた。

border-sign ビアリッツのホテルからビルバオの空港までは約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日が終わりそうだった,もちろん,日本時間です。

 というわけで,やっと,「オ シ マ イ!!」です。

カテゴリー
everyday life

バスクに行ってきました-#7。

バスク旅行-#7 10月24日。

 前日,ビアリッツこのホテルに着いたときに,ここにツアーバスで来るのは場違いだなと思った。とてもいいホテルで,入り口のゲートは,バスには狭すぎた。このホテルにツアーバスでやってきて,1日か2日くらいしか泊まらないのは,日本人くらいのものなんだろう。まぁ,それが日本人のツアースタイルというものだ。彼らとしては,好むと好まざるとにかかわらず,受け入れざるを得なかったということだろう。

 この日は,初めにバイヨンヌアトリエ・デュ・ショコラの工場を訪問して,いろんな種類のチョコレートを試食した。残念ながら,実際の工程はあまり見ることが出来なかった。お土産にしようと思って,いろんなチョコレートを買った。味見したときに唐辛子チョコレートがあって,面白いと思ったので,これをお土産のひとつにした……つもりだったら,実際は唐辛子キャラメルを買っていた。失敗!!

 このあと,バスでバスク博物館に向かい,そこから,対岸のサント・マリー大聖堂に行くために,ニーヴ川の橋を歩いて渡った。大聖堂は壮大な,しかしなんと言うか,つぎはぎの建物で,上部は石灰岩,下部は砂岩で作られていた。

 この後,部屋にいたとき,メイドがターンダウン・サービスにやってきた。多分,ドアベルを鳴らしたんだと思うが,バスルームにいたせいか,はっきり聞こえなかった。で,返事しなかった訳だが,彼女は鍵を開けて勝手に入ってきた。部屋には,「Don’t disturb」の札もかけていなかったから,多分留守だと思ったんだろうが。このサービスのことを知らなかったので,勝手に入ってきたメイドを見て,びっくり仰天した。あとで聞いたところによると,このクラスのホテルだと,ターンダウンサービスは,基本サービスの一つだそうだ。だから,「いらない」と断られない限り,メイドはそれをしなくてはいけないわけで,彼女は職務に忠実だったということだ。前の日は,チェックインが遅かったので,ターンダウンの時間は終わっていた。何しろこんないいホテルに泊まったことがないから,いろいろと,初体験もある(^_^;)。

 バスク最後の食事は,L’Atelierという小さなレストランで取った。彼らの料理は nouvelle cuisine という感じがした。

 翌日は,日本へ向けて発つ予定。

 というわけで,今しばし,お付き合いを。

カテゴリー
everyday life

山の紅葉。

 行きたい行きたいと思っていた紅葉狩,行ってきました。もう遅いかなと思ったのですが,まだまだきれいでした。いつもは奉幣殿までしか行かないことが多いので,久しぶりに高住神社まで足を延ばしてきました。

 あまり出来のよくない写真ですが,紅葉はきれいでしょう(爆)。





カテゴリー
everyday life

バスクに行ってきました-#6。

バスク旅行-#6 10月23日。
 オンダリビアはいい天気だった。ホテルの前の坂を下って,バスに歩いて行った。途中で,市庁舎サンタマリア門を見たが,門を抜けてすぐ,また,立像があった。兵士だというのだが,エプロンをかけて鋸を持っていた(スライドショーの0:46を参照)。なんでと思ったのだが,工兵ということらしかった。町のお祭りでは,この兵士のような扮装をする人もいるということだった。

 この日は,登山鉄道ラ・リューヌ山頂に行くことになっていた。1924年に開通したラックレールの単線の電車である。途中で,電車からポトックという小型の馬を見た。山頂も晴れていて,フランス・スペイン両方のバスクの素晴らしい景色を見ることができた。

 下山電車を待っていたとき,老婦人が私に「その帽子どこで買ったの」と聞いてきた。私は,フランス語が分からないし,彼女は日・英どちらも分からなかった。にもかかわらず,言ってることが分かったとは,不思議な話だね!! (^o^)

 サールという小さな美しい村を訪問した後,ITHURRIAで昼食を取った。料理はどれもよかったけど,特に,バスク豚が気に入った。とてもおいしかった。昼食後,エスプレットで,有名なエスプレットの唐辛子を,2袋買った。サン・ジャン・ド・リュズでは,ラベルの生家やサン・ジャン・バプティスト教会などを見た。地図を持ってサン・ジャン・ド・リュズの街をうろうろしていたら,老婦人が近づいてきて,道を教えてくれた。彼女もまた,フランス語しかわからなかった。でも,やはり話は通じた。不思議な話パート2だった。 (^o^)(^o^)

 フランスバスクに入ってから,白壁・赤い縁取りの家が多くなった。伝統的なスタイルらしい。昔は,強い日光と虫除けのために,白には石灰を赤には牛の血を使ったということだったけど,今は何を使っているんだろう。

 この日のガイドは一昨日と同じだった。彼女に疑問に思っていたことを聞いてみた。
 「車検みたいな制度があるんですか。」というのが,バスク自治州 (スペインのバスク)で見た車が,どれもきれいだったからだ。国外に出ると結構ポンコツが走っている。彼女の返事は,車を買ったときに届けをして,4年後に車の状態の検査を受けて,さらに2年後に検査を受けて,その後は毎年検査を受けなければいけないということだった。彼女の答えで,ポンコツがないのが当たり前だと納得が行った私であった。

 この日のホテルは,ビアリッツデュ・パレだった。とてーもいいホテルだった。

 もう少し,続きます。

カテゴリー
Windows

覚え書-#12。

 「本家のお世話-#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する。うまくいった。ちゃんと使える。

カテゴリー
WordPress

覚え書-#11。

 子テーマの話。
 「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だから当然でした。なのに,焦りまくりました(大笑い)。

 それはさておき,子テーマの話。

  1. 子テーマ用のフォルダを作る。
    場所は他のテーマと同じようにデフォルトのthemesフォルダの中。
    子テーマのフォルダ名は「親テーマのフォルダ名-child」。
    「o6asan’s netradi」の場合,pink-touch-2-child
  2. pink-touch-2-childの中に子テーマのカスタマイズファイルを入れる。
     指定可能なのは,以下の通りだが,「o6asan’s netradi」で実際に作ったのは最低限のstyle.cssだけ。

    1. style.css (必須)
    2. functions.php (任意)
    3. Template files (任意)
    4. Other files (任意)
  3. style.cssの中は以下の通り。
    /*
    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. (必須) 親テーマのディレクトリ名。大文字小文字が区別される。
      • . You have to switch to a different theme and back to the child theme when you modify this line.
        これがよくわからない。「テンプレートのディレクトリを変えたときは,違うテーマに切り替えたのち,子テーマを弄りなさい」というようにとれるが,それだと当たり前すぎて注に書く必要がないような気がする……ウーム
    • Version. (任意) 子テーマのバージョン 例: 0.1, 1.0, など

    で,見ての通り,「o6asan’s netradi」の場合,必須の2行しか書いていない。

    あと,
    @import url("../pink-touch-2/style.css");
    は当然ながら主な部分のスタイルは全て親テーマのを利用させてもらうので,インポートするってこと。#headerだけを独自スタイルにするから,これを書く。完全に独自スタイルにするならば,インポートせずに自分が望むスタイルをここに書けばいいということだ。

  4. 後は,ダッシュボードのメニューからテーマを切り替えて普通どおり使えばいいことになる。これで,親テーマのバージョンアップがあっても,大丈夫。

 実際の話,この話を思い出したのは,Pink Touch 2のバージョンアップがあったからなのだ(爆)。

カテゴリー
everyday life

鹿に会っちゃった。

 前にも書いたけど,最近よく泳ぎに行く。で,そのときに狭い山道を通らなくちゃいけない。今日の夜-6時15分ごろだと思うが,もう暗いので夜という感じ―この道で鹿に会った。ライトに浮かび上がったとき,危うく轢くところだった。カーブでスピードを落としていたのが幸いしたが。この山道では,タヌキやイタチには結構よく会うが,鹿は初めてである。イタチは,猫と同じように走るものの前を横切る習性のせいだと思うが,かわいそうに,よく轢き殺されている。しかし,鹿となると話が違う。もし,ぶつけていたら,車が壊れる可能性もある。泳ぎに行くときは,携帯を持っていかないし,お金もほとんど持っていない。おまけに,山道で家もないところだ。事故ってたらと思ったらゾッとした。

 鹿くん,お願いだから気をつけてね。それが君だけでなく私も守ることになるんだから。(^^;)

 話は変わるが,友人のパソコンがネットサーフ中にワンクリック・ウェアに感染した。ネットワークから切り離して,PCを調べてみたら,mshta.exeとHTAを悪用するマルウェアが見つかった。5分間隔くらいでポップアップウィンドウが出る。当たり前だが,絶対にリカバリするようにすすめた。
 それはそれとして,リカバリの前に,データの救出をしないといけない。が,何しろポップアップがうざいので,これを止めることにした。タスクスケジューラのエントリを削除して,msconfigのスタートアップを無効にしたら,ポップアップは止まった。しかし,PCが安全になったかどうか誰に分かるだろう。感染したのが見つかったのだけという保証はどこにもないからねえ。

 みなさん,サーフィンには気をつけようね!!