• Japanese

機器置き換えに伴うOS・ソフトウェア更新情報

  • 2015年2月下旬から3月上旬にかけて、旧Webサーバに収容している共用作業領域を新Webサーバに移行します。
  • 今回の入れ換えによりOSは Ubuntu Server 14.04 LTS に更新しました。
  • セキュリティ面の向上を目的ととして、suEXEC、suPHP を導入しました。CGi および、PHP の動作方法が変更になります。

サーバ仕様

主な変更点

項目 旧サーバ 新サーバ
OS Debian Squeeze Ubuntu 14.04 LTS
HTTPサーバ Apache httpd 2.2.26 Apache httpd 2.4.7
PHP 5.2.17 5.5.9 + suPHP
Perl 5.10.1 5.18.2
Ruby 1.8.7 1.9.3p484
Python 2.6.6 2.7.6
gcc 4.4.5 4.8.2
libc6 2.11.3 2.19
PostgreSQL client 8.3.17 9.3.5
MySQL client 5.0.95 5.5.40

CGIの動作仕様の変更点

  • セキュリティの向上を目的としてCGIの動作方法を変更します。
    項目 旧サーバ 新サーバ
    CGIの実行ユーザ Webサーバの実行ユーザ(www) CGIスクリプトのファイルオーナー
    CGIスクリプトの保護モード確認 なし group および other に書き込み権限がないこと
    CGIスクリプトがあるディレクトリの保護モード確認 なし other に書き込み権限がないこと

PHPの動作仕様の変更点

  • セキュリティの向上を目的としてPHPの動作方法を変更します。
    項目 旧サーバ 新サーバ
    PHPバージョン 5.2系 5.5系
    PHP動作モード Apacheモジュール CGI + suPHP
    PHPの実行ユーザ Webサーバの実行ユーザ(www) PHPスクリプトのファイルオーナー
    PHPスクリプトの保護モード確認 なし group および other に書き込み権限がないこと
    PHPスクリプトがあるディレクトリの保護モード確認 なし other に書き込み権限がないこと
    セーフモード On ---
  • 特記事項
    • セーフモード は PHP 5.4 以降で機能が削除されており、新サーバでは設定していません。 ご自身のホームディレクトリ以外へのアクセスについては PHP の open_basedir で制限しています。アクセスを許可しているディレクトリは下記の通りです。
      /usr/bin, /usr/local/bin, /tmp
      

旧サーバで動作していたコンテンツが、新サーバで動作しない場合

  • 下記に該当する場合、新サーバ で正しく動作しないことが分かっています。
    • PukiWiki を使っている
    • WordPressやMovableType をはじめとしたCMS を利用していて、CMSを設置しているディレクトリの保護モードが、その他で書き込める (other writable) 状態になっている
    • WordPressやMovableType をはじめとしたCMS を利用していて、CMSの実行ファイル(.phpや.cgiがついているファイル)の保護モードが、グループで書き込める (group writable)、または、その他で書き込める (other writable) 状態になっている
    • CGIスクリプトやPHP スクリプトファイルの保護モードがグループで書き込める (group writable)、またはその他で書き込める (other writable) 状態になっている
  • これらの対処方法は以下の 新サーバへの移行後に行う作業 をご覧ください。

新サーバへの移行後に行う作業

Pukiwiki 対処

  • 新サーバは PHP 5.5 系です。
  • PukiWiki ( http://pukiwiki.sourceforge.jp/ ) や PukiWiki Plus! ( http://pukiwiki.cafelounge.net/plus/ ) の Wiki は開発が停止しているため PHP 5.5 系に対応していません。
  • このため、新サーバでは「真っ白な画面になる」、または「正しく表示されない」という事象を確認しています。
  • PHP 5.5系に対応している PukiWiki 1.5.0 へのアップグレードツールを用意いたしましたので、ご利用ください。

導入されているPukiWiki の確認 と アップグレード

  1. webedit.sfc.keio.ac.jp にリモートログインします。
  2. /pub/WWW/領域名 に移動します。
    % cd /pub/WWW/領域名
    
  3. 作業ディレクトリを作成します。
    % mkdir pw_work
    % chmod 750 pw_work
    
  4. 作業ディレクトリへ移動します。
    % cd pw_work
    
  5. 導入されているPukiwiki の確認をします。
    % check_pukiwiki 領域名
    
    • % check_pukiwiki 領域名
      利用しているPukiWikiの場所
      ==================================================
      version		encode	path
      ==================================================
      1.4.6		euc          /pub/WWW/領域名/pukiwiki1のパス
      1.4.7		euc          /pub/WWW/領域名/pukiwiki2のパス
      1.4.7		utf          /pub/WWW/領域名/pukiwiki3のパス
      ============================
      次のコマンドを実行して、PukiWiki をアップグレードしてください。
      ============================
      upgrade_pw150 /pub/WWW/領域名/pukiwiki1 euc
      upgrade_pw150 /pub/WWW/領域名/pukiwiki2 euc
      upgrade_pw150 /pub/WWW/領域名/pukiwiki3 utf
      
  6. 出力されたパス毎に、PukiWiki アップグレードスクリプトを実行する
    • 前手順のチェックスクリプトの結果からアップグレードコマンドを1行ずつコピーします
    • バックアップされたPukiWikiも検出されますので、必要に応じてアップグレードを実行してください。
    • % upgrade_pw150 /pub/WWW/領域名/PukiWikiの場所 エンコード
      アップグレードするpukiwikiディレクトリ: /pub/WWW/領域名/PukiWikiの場所
      文字エンコード                                      : エンコード
      アップグレードを実行しますか Y/n (n)
      Y     ( == Y を入力してエンターを押してください。)
      ===install pukiwiki1.5.0===
      unziped pukiwiki 1.5.0
      ===copy config===
      pukiwiki.ini.php has been copied.
      rules.ini.php has been copied.
      === copy data===
      attach has been copied.
      backup has been copied.
      cache has been copied.
      counter has been copied.
      diff has been copied.
      trackback has been copied.
      wiki has been copied.
      === rename pukiwiki dir ===
      既存のデータは、/pub/WWW/領域名/PukiWikiの場所_日付 にリネームされました。
      /pub/WWW/領域名/PukiWikiの場所 の pukiwiki は、 1.5.0 にアップグレードされました。
      
  7. 確認
    • Webブラウザから確認してください。
      • http://領域名.sfc.keio.ac.jp/PukiWikiの場所
  8. 手順を繰り返して、PukiWiki のアップグレードを行う。
  9. 以上

CGI/PHP 実行ファイルのパーミッション変更

  • CGI/PHPスクリプトファイルの保護モードがグループで書き込める (group writable)、またはその他で書き込める (other writable) 場合は suEXEC/suPHP の制限により動作しません。
  • さらにCGI/PHPスクリプトファイルが設置してあるディレクトリの保護モードがグループで書き込める (group writable)、またはその他で書き込める (other writable) 場合も suPHP の制限により動作しません。
  • ファイル/ディレクトリのパーミッションを変更できるのは、そのファイル/ディレクトリの所有者のみです。

パーミッション変更スクリプトによる一括変更

  1. webedit.sfc.keio.ac.jp にリモートログインします。
  2. 利用領域に移動します。
    % cd /pub/WWW/領域名
    
  3. suEXEC/suPHP の実行条件に違反しているファイル/ディレクトリを確認します。
      • user1 により実行した場合
      • パーミッションの変更をする場合には、Y を入力してEnterキーを押してください。
    % check_pwemission 領域名
    ############# START suEXEC/suPHP Check #############
    user1 によって実行されています。
    ============= File Permission Check ================
    suEXEC/suPHP の実行条件に違反しているファイルを探しています。
    以下のcgi/phpファイルには、パーミッション違反があります。
    対象ファイルをchmod go-w filename してください。
    -----------------------------------
    permission	user	group	filename
    -----------------------------------
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/default.ini.php
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/en.lng.php
    -rw-rw-rw-	user1	areagtp	/pub/WWW/領域名/pw147utf/index.php
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/ja.lng.php
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/keitai.ini.php
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/pukiwiki.ini.php
    -rw-rw-rw-	user1	areagrp	/pub/WWW/領域名/pw147utf/rules.ini.php
    -----------------------------------
    リストされた全ファイルのパーミッションを変更しますか? Y/n (n)
    Y    (=== 変更する場合には、Y を入力してEnterキーを押してください。)
    リストされたファイルのパーミッションを変更(chmod go-w filename)します。
    リストされたファイルのパーミッションを変更(chmod go-w filename)しました。
    パーミッション違反のファイルは見つかりませんでした。
    ============ Directory Permission Check================
    suEXEC/suPHP の実行条件に違反するディレクトリを探しています。
    以下のディレクトリには、パーミッション違反があります。
    対象ディレクトリをchmod o-w dirname してください。
    -----------------------------------
    permission	user	group	dirname
    -----------------------------------
    drwxrwsrwx	user1	areagrp	/pub/WWW/領域名/pw147utf
    -----------------------------------
    リストされた全ディレクトリのパーミッションを変更しますか? Y/n (n)
    Y    (=== 変更する場合には、Y を入力してEnterキーを押してください。)
    リストされたディレクトリのパーミッションを変更(chmod o-w dirname)します。
    リストされたディレクトリのパーミッションを変更(chmod o-w dirname)しました。
    パーミッション違反のディレクトリは見つかりませんでした。
    ############# END suEXEC/suPHP Check #############
    
  4. 確認
    • Webブラウザから確認してください。
      • http://領域名.sfc.keio.ac.jp/PukiWikiの場所
  5. 以上

Webサーバ実行ユーザ(www)が所有者となっているファイル/ディレクトリの扱い

  • 旧サーバのCGIスクリプト、PHPスクリプトファイルで生成されたファイルやディレクトリの所有者はWebサーバ実行ユーザ(www)です。
  • このファイルの保護モードがその他で書き込める (other writable) 場合は、新サーバ上でもPHP実行ユーザの権限でファイルに書き込めます。
    その他で書き込めない保護モードの場合は新サーバ上で正しく動作しなくなります。
  • WordPressは新サーバ上でもこれらのファイルに対して書き込みが行えるため動作します。
  • PukiWikiは新サーバ上でにこれらのファイルに対して書き込み権限がないため正しく動作しません。
  • 新サーバ上でのこれらのファイルやディレクトリの所有者を本来の所有者への変更を希望する場合には、ITCにお問い合わせください。

最終更新日: 2015年2月6日

内容はここまでです。