カテゴリー
Windows

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

The same article in English
投稿アップデート情報  追記(4/14)

 Windows 版の PHP5.6.7 が Mar-19 23:50:34UTC に出ていた。結構な数のバグフィックスと CVE-2015-0231 (bug #68976), CVE-2015-2305 (bug #69248), CVE-2015-2331 (bug #69253) へのパッチが含まれているようだ。
 CVE-2015-0231 については,以前の PHP5.6.5 でも修正が入っていた覚えがあるのだが,この脆弱性に対する問題はまだまだ残っているのだろうか。まっ,とにかく,アップデートした。(サーバ OS : Windows7HP+SP1(x86)).

 ところで,新バージョンは OPcache に関するいくつかのバグフィックスを含んでいた。もっとも, Bug #67937 ではなんら新しい報告はないので,あの件に関しては何も変わっていないのかもしれないが,一応,試しに OPcache をサーバ上で有効にしてみた (Mar-29@6:55)。吉と出るか凶と出るか。ドキドキ。

 インストールについて詳しい情報が必要な場合は,「PHP 5.5.16 から PHP 5.6.0 への移行」をご覧ください。

追記(4/14):
 自鯖上の OPcache だが,あれ以来 2 週間以上ちゃんと動いている。なんでかは解んない(汗)。でも,パフォーマンスが良くなって,嬉しいッ!!

カテゴリー
everyday life

桃の節句も過ぎて。

The same article in English

 我が家では,いまだ梅の花が満開ですが(図 1 ,図 2 ),桃の節句も過ぎ,巷には桃の花やら杏の花やら目立ってきました。桃の節句と言えば,今年はひな壇になるチロルチョコレートを,ひと箱もらいましたよ。図 3 みたいなのです。

図 1 白梅
図 1 白梅
図 2 紅梅
図 2 紅梅
図 3 ひな飾り
図 3 ひな飾り

 そんなこんなで,春の詩を詠じたくなっちゃいました。白居易(樂天)の「春風」を選んでみましたが,いかがでしょうか?

亦 薺 櫻 一
道 花 杏 枝
春 楡 桃 先
風 莢 梨 發
爲 深 次 苑
我 村 第 中
來 裏 開 梅

カテゴリー
everyday life

のろし。

The same article in English

 3/1 に Delonix から ‘Smoke signals’ という件名のメールが来た,he-he。彼の言うことには,「毎回,次のメッセージが出るようになっちゃったんだけど: Forbidden You don’t have permission to access / on this server. Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.」。これって 403 Forbidden のデフォルトメッセージだよね。

 彼には, o6asanの掲示板の英語版に新トピックを立ててもらって, access-denied.conf ファイルを確認した。自鯖のアクセス管理は conf ファイルでやっている。 .htaccess でやるほうが普通だと思うけど。まあとにかく,ファイルん中に彼のカレント IP があったんで,削除した。ちゃんとアクセスできるようになったみたい。

403 Forbidden Delonix とはときどきメールのやり取りをするので,こんな方法で連絡がついたが,それほど近しくないビジターのためには,やっぱ, 403 Forbidden メッセージのカスタマイズをやっとかんといかんなということで, 403.html ファイルをこさえた。中には右図のようなことを書いた。

 これを使うためには,ちゃんと表示ができないといけないので, access-denied.conf ファイルに下記の太字行を書き加え, Apache httpd をリブートした。
<Directory “G:/WEB”>   <<— G:/WEB は自鯖のドキュメントルート
<RequireAll>
Require all granted
Require not ip xxx.xxx.xxx.xxx/xx
Require not ip yyy.yyy.yyy.yyy/yy
</RequireAll>
<Files “403.html”>
Require all granted
</Files>

</Directory>

 以上!!

カテゴリー
Windows

本家のお世話-#113。(Apache2.4.12へアップデート)

The same article in English

 Apache HTTP Server 2.4.12 が出た。 CVE-2014-3583, CVE-2014-3581, CVE-2014-8109, CVE-2013-5704 のパッチが入ってる模様。 httpd-ssl.conf に下記の行が追加されている。 2.4.11 はリリースされず,欠番になった。

  • # OCSP Stapling (requires OpenSSL 0.9.8h or later)
    #
    # This feature is disabled by default and requires at least
    # the two directives SSLUseStapling and SSLStaplingCache.
    # Refer to the documentation on OCSP Stapling in the SSL/TLS
    # How-To for more information.
    #
    # Enable stapling for all SSL-enabled servers:
    #SSLUseStapling On

    # Define a relatively small cache for OCSP Stapling using
    # the same mechanism that is used for the SSL session cache
    # above. If stapling is used with more than a few certificates,
    # the size may need to be increased. (AH01929 will be logged.)
    #SSLStaplingCache “shmcb:c:/Apache24/logs/ssl_stapling(32768)”

    # Seconds before valid OCSP responses are expired from the cache
    #SSLStaplingStandardCacheTimeout 3600

    # Seconds before invalid OCSP responses are expired from the cache
    #SSLStaplingErrorCacheTimeout 600

 このバージョンは, openssl-1.0.1l とともにビルドされているので, OpenSSL Security Advisory [08 Jan 2015] 関連の問題も対処済みになった。

 VC11 用の httpd-2.4.12-win32-VC11.zip を我が家用 ( Windows7 x86 ) にダウンロード。 Apache 2.4.x conf 情報が必要な方は,「Windows7上にWamp系WebServerを建てる-#1。」を見てください。

カテゴリー
Vulnerability

Adobe Flash Player の新バージョンが出るまで, Google AdSense は停止。

The same article in English
投稿アップデート情報  追記(2/5) 追記2(2/7)

 皆さま, Adobe Flash Player の新バージョンが出るまで, Google AdSense を停止することにしました。 Google AdSense に罪はないのですが,ご存知の通り, AdSense は時としてよくないサイトを表示してしまうことがあります。そんなわけで,現時点では― CVE-2015-0313 がゼロデイ攻撃に利用されている今という意味ですが― hxxp://www.retilio.com/skillt.swf の危険を回避するには止めたほうがいいだろうと判断したわけです。Adobe Flashの新たなゼロデイ脆弱性を確認、不正広告に利用。この悪しき swf は Dailymotion などを通して広がっているみたいですね。

 Adobe Flash Player の新バージョンでゼロデイが解消されたら, Google AdSense を復帰させるつもりです m(_”_)m。

追記(2/5):
 Adobe Flash Player の新バージョンが出ましたね。今 (16 時), うちの IE, FireFox, Google Chrome 上で version 16.0.0.305 になっているのを確認しました。速やかに,新バージョンに更新しましょう。

 2 ・ 3 日うちには, Google AdSense を復帰させるつもりです。今後は, CVE-2015-0313 狙いの悪性 swf に感染したら,それは,皆さん各自の責任ですよぉ(爆)。

追記2(2/7):
 Google AdSense を復帰させました。

カテゴリー
Linux

初めての VPS-#7 (自分用のリポジトリの使い方)。

The same article in English

 前回作ったリポジトリの使い方を書こうと思う。

 リポジトリを利用しようと思う CentOS7 にログインする。例えば, VPS とか,開発用の VM とか。

  1. ‘yum-plugin-priorities’ をインストールする。
    Base, Updates, Extras リポジトリの優先度が高いので,この 3 つが有効で,なおかつ同じパッケージがこれらの中にあると,デフォルトのままでは自前リポのパッケージは使ってもらえない。この件は,その都度マニュアルで対処することもできるのだが,よく使うリポについては, ‘yum-plugin-priorities’ を利用するほうが,面倒がなくていい。
    $ sudo yum install yum-plugin-priorities
     
    よく使うリポについては,プライオリティをセットしておくべきだが,どのリポジトリを有効にしているかという情報が必要になる。忘れちゃっていることも多いもんネ。そんなときは,下記で調べる。
    $ yum repolist
     
    ‘yum repolist all’ とやれば,有効・無効にかかわらずすべてのリポジトリが,列挙されまっさ。
  2. /etc/yum.repos.d に myrepo.repo を作成する。
    $ sudo vi /etc/yum.repos.d/myrepo.repo
    中に書くのは,下記のようなこと。
    [myrepo]
    name=o6asan’s original RPM packages
    baseurl=http://www17130ue.sakura.ne.jp/~myrepo/x86_64/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-o6asan
    priority=1
  3. /etc/yum.repos.d/CentOS-Base.repo の[base], [updates], [extras] の各エリアの最終行に ‘priority=2‘ を追記する。
  4. $ wget http://www17130ue.sakura.ne.jp/~myrepo/x86_64/RPM-GPG-KEY-o6asan
    $ sudo mv RPM-GPG-KEY-o6asan /etc/pki/rpm-gpg/

 準備完了。自前リポジトリの 1 回目の使用時に, CentOS7 が RPM-GPG-KEY-o6asan をインポートしていいか聞いてくるので, ‘y’ を入力する。

注) クライアント PC から公開鍵を削除する方法。
 クライアント PC には秘密鍵はないので, ‘gpg --delete-key <email@address>’ をやっても, ‘Unknown system error’ が戻ってくるだけで,削除はしてくれなかった。下記を使うとうまくいった。
  $ sudo rpm -e [package]

 当然ながら,正確なパッケージ名がいるが,それは下記で調べることができる。
  $ rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}n'

 例えば, CentOS-7 Key については,下記が戻ってくる。
  gpg-pubkey-f4a80eb5-53a7ff4b –> gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>)
なので,
  $ sudo rpm -e gpg-pubkey-f4a80eb5-53a7ff4b
とやると,削除することができる。

追記:
 あとで気付いたが, Apache の rpm を作ったときの記述だと,秘密鍵なしの状況でも gpg --delete-key RSA鍵ID で公開鍵を消せたと書いてある。今回はできなかったんだが,なんでだろ。バグだったりして。

カテゴリー
Linux

初めての VPS-#6 (自分用のリポジトリを作る)。

The same article in English

 現在,さくらの VPS に event + suEXEC + FPM で WEB サーバを構築しようとしている。そのために,前回, ‘--enable-fpm’ 付きの php.rpm を作ったわけだが, ‘rpm -ivh’ でインストールするときの依存関係でうんざりしたので,自分用にリポジトリを作ることにした(爆)。

    VPS 上。

  1. $ sudo adduser --gid xxxx myrepo
    ‘myrepo’ はリポジトリ用のユーザで, ‘xxxx’ は httpd ユーザグループの gid である。
    $ sudo passwd myrepo
  2. $ sudo chmod 710 /home/myrepo
  3. $ sudo su - myrepo
  4. $ mkdir public_html
  5. $ cd public_html
  6. $ mkdir x86_64
  7. $ exit

 まだ,記事にしていないのだが,実はすでに Apache httpd で suEXEC サポート用の構築をしている。そんなわけで, User と Group はそれ用のものがあるわけだ。この記事に出てくる設定で,ご自分用のリポジトリを作る場合は,各自のシステムに合わせて,用語を読み替えていただきたい。
 
 httpd conf から ‘Options Indexes’ を削除してあるのだが,リポジトリのディレクトリについては,インデックスを表示したい。そのためには, .htaccess において, ‘Options Indexes’ が使えないといけないので,以下のところを変えた。

    VPS の httpd conf において。

  1. userdir.conf (/etc/httpd/conf.d/userdir.conf) の次のところを変えた。
    UserDir enabled normuser1 —>> UserDir enabled normuser1 myrepo
        ↑ これは .htaccess のためではなく, ‘myrepo’ を使えるようにするためである。
    AllowOverride FileInfo AuthConfig Limit Indexes
    —>> AllowOverride FileInfo AuthConfig Limit Indexes Options=Indexes
  2. $ sudo systemctl restart httpd.service
  3. $ sudo su - myrepo
  4. $ cd public_html/x86_64
  5. $ vi .htaccess
    中身は ‘Options Indexes’ の一行。
  6. $ chmod 640 .htaccess
  7. $ exit
    開発用 VM 上。

  1. ‘rpmbuilder’ としてログオンし, rpm ファイルをリビルドする。
     
    注 1) 「初めての VPS-#5」において php.rpm のリビルドについて書いたわけだが,あのままで yum をやると,「パッケージ PACKAGE_NAME.rpm は署名されていません」と言われる。 yum を使うためには, rpm に署名がいるらしい。署名なしの rpm をインストールするには, ‘--nogpgcheck’ オプションを使う。 filezilla.rpm については,その方法でインストールした。
  2. リビルドした rpm ファイルに署名する。
    $ rpm --addsign rpmbuild/RPMS/x86_64/*
     
    当たり前だが,この作業前に GPG キーを作っておかないといけないので,作り方。

    • root 特権のユーザで VM にログオンする。
      $ sudo gpg --gen-key
      $ sudo gpg --export -a 'o6asan' > RPM-GPG-KEY-o6asan
      RPM-GPG-KEY-o6asan は公開鍵のファイルである。これを VPS の myrepo のドキュメントルート内の /x86_64 に Filezilla クライアントでアップロードする。
      $ sudo gpg -o file.secret --export-secret-key o6asan
      file.secret が秘密鍵である。これは, rpmbuilder の ホームディレクトリに移動する。
      $ sudo mv /home/vmowner/file.secret /home/rpmbuilder/file.secret
    • ‘rpmbuilder’ として VM にログオンする。
      $ gpg --import file.secret
      このコマンドは,秘密鍵,公開鍵ともにインポートしてくれる。
       
      $ vi .rpmmacros
      以下の 2 行を追記する。
      %_signature gpg
      %_gpg_name <Owner name>
       
      注 2) 実のところ,リビルドは ‘rpmbuilder’ でやるので,鍵も ‘rpmbuilder’ として作ろうとしたのだが,蹴られた。鍵の作成作業には, root 特権が必要なようである。
  3. すべての rpm ファイルを VPS の myrepo のドキュメントルート内の /x86_64 にアップロードする。
  4. VPS 上。
    $ sudo yum install createrepo
    $ sudo createrepo /path to/x86_64

 やっと,リポができたワイ。 URL は http://www17130ue.sakura.ne.jp/~myrepo/x86_64/
 次回は,使い方を書くつもり。

カテゴリー
Windows

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

The same article in English

 Windows 版の PHP5.6.5 が Jan-22 03:24:41UTC に出た。結構な数のバグフィックスと CVE-2015-0231 (bug #68710), CVE-2014-9427 (bug #68618), CVE-2015-0232 (bug #68799) へのパッチが含まれているようだ。
 PHP5.6.5 ChangeLog には “Fixed bug #68799” が見つからなかったんだが,書き忘れかな。 5.5.21 のにはあったんだが……。まっ,とにかく,アップデートした。(サーバ OS : Windows7HP+SP1(x86)).

 インストールについて詳しい情報が必要な場合は,「PHP 5.5.16 から PHP 5.6.0 への移行」をご覧ください。

カテゴリー
Linux

初めての VPS-#5 (php.rpm のリビルド)。

The same article in English

 当初の予定では, suEXEC サポートの話を書くはずだったのだが,ちょっと困ったことが。今回,さくらの VPS には, event + suEXEC + FPM のシステムを構築しようとしているのだが, CentOS7 標準の php.rpm はビルド時に ‘--enable-fpm‘ オプションが付与されていないみたいなのだ。 Apache httpd 上での event + suEXEC については,標準で動きそうなんだけどね。 php.rpm のビルドオプションは, ‘php-devel’ パッケージをインストールすると,下記のコマンドで参照できる。 CentOS の rpm においては ‘php -i’ では,ビルドオプションは見えないようだ。
$ php-config --configure-options
 
 そんなわけで, ‘--enable-fpm’ オプション付きの php.rpm をリビルドすることにした。本当に必要なんかね,これ?まっ,いいけど!!
 VPS に開発系のパッケージは入れたくないので,そこでは rpm を作れない。で, NJ2100 上に開発用仮想環境を作ることにした。仮想マシンには, VMware(R) Player 6.0.4 build-2249910 と CentOS7 (「開発およびクリエイティブワークステーション」を選択し,「開発ツール」にチェックを入れた)を使用。やり方は,「CentOS6の練習-#13(仮想マシンとして使う)」と大体一緒。
 
 大体一緒だったんだけどね,今回の仮想マシンは,イーサネットデバイスを認識してくれなかった。これ,困るじゃん。 NJ2100 には SiS Ethernet Controller がついてる。「どうすりゃいいんじゃ」と思ったが,ネット上にたくさん解決方法のページがあった。私としては,その中のこちらのページをおすすめする。
 
 みーんな,同じこと書いてある。曰く「vmnetcfg.exe と vmnetcfglib.dll をお使いなさい。 VMware-workstation-full-10.0.x-xxxxxxx.exe のような VMware Workstation の無償評価版を展開すれば,手に入るよ。」と。ところがさ,ベンダーさんから,評価版を落として調べてみたけど,入ってなかった。評価版は,すでに ‘VMware-workstation-full-11.0.0-2305329.exe’ になっていて, 64 ビット版に変わっており,どうも仕様が違うようだ。ウェーン。
 
 どっかに, VMware Workstation 10 がないかって探した探した。だって,今,公式からバージョン 10 を落とすとなると,製品版を買うしかないわけだが,それは「なんじゃそれっ?」状態しょっ。結局, filehorse.com で見つけて,ダウンロードした。みんなも問題の 2 ファイルほしいかしらん?一応, zip にしてみたよ。これって,グレーゾーンかな?何はともあれ,ネットにつながる開発用仮想マシンが手に入った。
 
 さて,実際のリビルド作業。当然ながら,すべて仮想マシン上で行う。参考ページとしては,公式のここを見た。

  1. リビルド用の非特権ユーザー (rpmbuilder) を作る。 mockbuild という no logon ユーザも作る。 mockbuild って, ‘rpm’ コマンドがつかうようで,どうも IUS に起因してるようだ。
    $ sudo useradd rpmbuilder
    $ sudo passwd rpmbuilder
     
    $ sudo useradd -s /sbin/nologin mockbuild
  2. rpmbuilder のホームディレクトリに, RPM ビルド用のディレクトリを作る。
    $ sudo su - rpmbuilder
    $ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
    $ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
  3. vault.centos.org から src.rpm をダウンロードする。
    $ wget http://vault.centos.org/7.0.1406/updates/Source/SPackages/
    php-5.4.16-23.el7_0.3.src.rpm
  4. インストール。
    $ rpm -ivh php-5.4.16-23.el7_0.3.src.rpm
  5. php.spec の編集
    $ $ cd ~/rpmbuild/SPECS/
    $ vi php.spec
    869 行に ‘--enable-fpm ‘ を追加。
  6. $ rpmbuild -ba php.spec
     
    依存関係で,いろいろ足りないよと言われるので,素直に全部インストールののち,再挑戦。
    $ rpmbuild -ba php.spec
     
    ‘--enable-fpm’ オプション付きの php.rpm 入手完了。

 ところで,仮想マシンは, GUI で使っている。ここで, FileZilla を FTP クライアントとして使いたかったんだが,標準のリポジトリにはなかったので, filezilla.rpm も作った。このビルドのときに, wxGTK3-devel を要求されて, epel リポを有効にした。

  1. $ sudo yum install epel-release
  2. $ wget ftp://fr2.rpmfind.net/linux/fedora/linux/development/rawhide/source/
    SRPMS/f/filezilla-3.10.0-1.fc22.src.rpm

    $ rpm -ivh filezilla-3.10.0-1.fc22.src.rpm
    $ cd ~/rpmbuild/SPECS/
    $ rpmbuild -ba filezilla.spec

 こんなとこかな。

カテゴリー
everyday life

あけましておめでとうございます。

おめでとう! あけましておめでとうございます。
 皆様,本年もよろしくお願いいたします。

 新しい年が皆様にとって素晴らしい年でありますように!

 おかげさまで、昨年も1月のトンデモ風邪を除いては,元気に過ごせました。今年も,生きているわが身を素直に喜べる年であることを祈っております。