最新ブログ
OpenPNE 2 を Windows 上に簡単にインストールできるようになりました
01 / 18 火曜日 2011
手嶋屋インターンの小川純平です。
OpenPNE 2 が Microsoft Web Platform Installer (WebPI) を用いて、Windows 系 OS (XP、Vista、7 や、Server 2003、2008 など) 上に、簡単にインストールできるようになりました。
Web Platform Installer とは?
Windows 上に自動的にサーバ (IIS) 及び Web アプリケーション実行環境 (PHP、ASP.NET、MySQL など) を構築し、そのサーバ上に様々な Web アプリケーション (OpenPNE の他、WordPress、Joomla!、Drupal など) を自動的にインストール・設定するためのツールです。
Windows 7 などにインストールし、テスト環境として様々な Web アプリケーションを試してみることも出来ますし、Windows Server 上で用いて、実運用を行うことも出来ます。クライアント OS で用いる場合は、WebMatrix を用いてサイトの管理を行うことも出来ます。
(但し、OpenPNE 2 に限って言えば、OpenPNE 2 は Linux と Apache を主なサポート対象としてきたため、Windows 上での動作については十分に確認されていません。そのため、現状では Windows Server 上での実運用については推奨しません。)
普通の OpenPNE 2 とは何が違うのか
従来の手動インストール時に必要であった、Apache (WebPI の場合は IIS) や PHP などのインストール及び環境設定から、パーミッションの調整、DB 関係の設定などまで、一切は WebPI 側で自動的に行われます。config.php の設定も GUI で行うことが出来ます。他に必要な設定は、ブラウザ画面から SNS 名などを設定するだけです。
インストール方法
追記: Microsoft の方々が既に gihyo.jp にちゃんとしたものを書いてくださっていたみたいです。
http://gihyo.jp/design/serial/01/webpi/0008
WebPI のダウンロードページの Download ボタンを押し、wpilauncher.exe を保存します。
このファイルを管理者権限で実行すると、自動的にインストーラが起動し、インストールが終了すると自動的に WebPI 本体が起動します。
下の方にある “オプション” をクリックします。
「どの Web サーバを使用しますか」で、クライアント OS にインストールしてテスト環境として用いる場合は IIS Express を、Windows Server にインストールして本番環境で運用する場合は IIS を選択して下さい。IIS Express というのは、開発用 IIS です。
オプション画面を “OK” を押して閉じたら、右上の検索窓に “openpne” と入力し、エンターキーを押します。
“OpenPNE 日本語版パッケージ” が表示されますので、これを “追加” します。
インストールされるパッケージの確認を求められますので、”同意する” を押してください。IIS や MySQL など、必要なソフトウェアが芋づる式にインストールされます。
ファイルのダウンロードと、IIS などのインストールを行っています。しばらくお待ち下さい…。
完了すると、今度は OpenPNE 2 の設定を行います。画像を参考に、設定項目を埋めていって下さい。(ここに関しては、後程説明を書き加えます。)
“新しいデータベースの作成または既存のデータベースの使用” では、必ず “新しいデータベースの作成” を選択して下さい。(申し訳ないのですが、既存のデータベースの仕様には、時間的な都合で対応しておりません)
データベース管理者には、デフォルトのまま “root” としておいて下さい。
“データベース管理者のパスワード” は、予め MySQL で root ユーザのパスワードを設定しておき、そのパスワードを入力して下さい。
“データベースユーザ名” は、OpenPNE のデータベースのユーザ名です。ここで新規にユーザを作成します。英字であれば何でも構いません。デフォルトの openpne_user のままで良いでしょう。
“データベースパスワード” には、OpenPNE データベースのパスワードを決めて、入力して下さい。”確認” に同じパスワードを入力します。
“データベースサーバー” は、PC 上でテスト用途として使う場合は、”localhost” と入力して下さい。サーバーマシンで用いる場合は、サーバー名を入力して下さい。(例えば sns.openpne.jp など)
“データベース名” も、英字から成る文字列であれば何でも構いませんが、必要がなければデフォルトのまま openpne で良いでしょう。
“データベース暗号化キー” には、適当な英数文字列を入力します。56バイト以内 (つまり56文字以内) にして下さい。
“続行” を押すと、OpenPNE 2 のインストールが始まります。
完了しました。”WebMatrix の使用を開始するには、[起動]をクリックします” とありますので、”[起動]” をクリックしてから、”完了” を押します。
WebMatrix の管理画面が開きました。”URL: http://localhost:***/” のリンクをクリックすると、OpenPNE の初期設定画面が開きますので、SNS 名などを設定してください。
以上でインストールは完了です。
注意: この WebPI パッケージは、既にインストールされた OpenPNE 2 のアップデートには対応していません。アップデートを行おうとすると、データベース操作の際にエラーが発生します。誤ってアップデートを行おうとしても既存のデータベースが破損したりするなどの障害は確認しておりませんが、予期せぬトラブルが発生する可能性がありますので、ご注意下さい。
OpenPNE 3 の WebPI パッケージについて
都合により OpenPNE 2 のパッケージを先に作成しましたが、OpenPNE 3 の WebPI パッケージについても今年度中に提供される予定です。OpenPNE 3.6 の正式版リリース後の公開を予定しています。
謝辞
WebPI パッケージの作成にあたり、Microsoft の武田様をはじめ、Microsoft の方々には大変多くのご助力をいただきました。ありがとうございました。
携帯電話IPアドレス帯域リストを更新しました
12 / 24 金曜日 2010
OpenPNE開発チームのきわです。
2011/1 au のIPアドレス帯域追加に伴って、OpenPNEのIPアドレスリストを更新しました。
OpenPNEの携帯版を利用している方はSNSに反映お願いします。
ダウンロード
https://www.openpne.jp/pne-downloads/mobile_ip_list/
こちらのページから各バージョンのIPアドレス帯域リストをDLできます。
IPアドレス帯域リストの更新方法
OpenPNE3
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
lib/config/config/mobile_ip_address.yml
OpenPNE2
OpenPNEのパッケージ内にある以下のファイルを、ダウンロードしたIPアドレス帯域リストに置き換えてください。
webapp/lib/ktaiIP.php
次回の更新
次回のリリースは2011/6/24(金) を予定しています。
- 2011/06/24
- docomo (2011年7月予定)IPアドレス帯域追加対応 リリース
【緊急リリース】OpenPNE 3 に存在するサービス運用妨害 (DoS) 攻撃の脆弱性のお知らせ
12 / 22 水曜日 2010
OpenPNE 3 には、画像動的生成処理が適切におこなわれないことによる、サービス運用妨害 (DoS) 攻撃を許す脆弱性が存在します。
本日(12/22)、この問題の対策版として OpenPNE 3.0.8.3, 3.2.7.4, 3.4.9.2, 3.6beta8 のリリースをおこないましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
本問題について
影響を受けるシステム
3.0.8.2 以下、 3.2.7.3 以下、 3.4.9.1 以下、 3.6beta7 以下の OpenPNE を使用しているすべてのサイト。
※OpenPNE 2 を使用しているサイトは影響を受けません。
概要
OpenPNE 3 には、ユーザの投稿した画像を、ユーザのリクエストに応じて、動的にリサイズ、形式変換し、静的なファイルとしてキャッシュした上で表示する機能があります。一度生成されたものと同一のサイズ、同一の形式の画像のリクエストについては、キャッシュファイルを直接レスポンスすることで、負荷を抑えるような対応がおこなわれていました。
この機能の実装に誤りがあり、特定の形式の画像表示用の URL に対しリクエストがおこなわれた場合に、常に画像バイナリを DB などのストレージから取得し、形式変換等の処理をおこなってしまう問題が存在していました。画像を動的に取得、変換、生成して表示する処理は、静的にキャッシュしたファイルを表示するよりもはるかにコストの高い処理となります。そのため、そのようなリクエストを集中して実行されることで、 Web サーバがサービスを提供できない状態を引き起こされてしまいます。
想定される影響
この脆弱性を利用したサービス運用妨害 (DoS) 攻撃を受けた場合、 Web サーバが過負荷状態となり、その Web サーバ上で動作するアプリケーションなどが利用できなくなる可能性があります。
対策方法・回避方法
対策方法については、本エントリの「本問題への対応方法」をご覧ください。
この問題に対する回避方法はありません。
本問題への対応方法
「影響をうけるシステム」で示したバージョンの OpenPNE を利用しているすべての SNS は、対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
- OpenPNE 3.6beta8
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.4.9.2
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.2.7.4
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.0.8.3
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施してください。
各バージョンのマイナーバージョンアップ手順書は以下から確認することができます。
- OpenPNE 3.6beta8 バージョンアップ手順書 (バージョンが 3.4 と表記されていますが、この手順は 3.6.x でも有効なものです)
- OpenPNE 3.4.9.2 バージョンアップ手順書
- OpenPNE 3.2.7.4 バージョンアップ手順書
- OpenPNE 3.0.8.3 バージョンアップ手順書
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
4. 以下のコマンドを実行します
$ ./symfony openpne:migrate
謝辞
本問題は、 OpenPNE 公式 SNS 内の NUP 様よりご報告いただきました。厚く御礼申し上げます。
セキュリティ上の問題の報告手順について
OpenPNE プロジェクトでは、以下に案内している通り、セキュリティ上の問題の報告を受け付ける窓口 ([email protected]) を用意しています。
もしセキュリティ上の問題を発見した場合は、通常の公開されたバグ報告の手順を踏むのではなく、 [email protected] に連絡してください。 [email protected] はクローズドなメーリングリストであり、このメーリングリストでおこなわれた脆弱性の詳細情報などのやり取りがそのまま公開されることはありません。
OpenPNE2.14.9のリリース再延期のお知らせ
12 / 21 火曜日 2010
今村です。
OpenPNE2.14.9のリリースを12/22(水)に予定していましたが、
実装の目処が立たず、リリース日を変更が必要と判断いたしました。
スケジュールについても現在検討中で、延期後のリリース日については未定です。
スケジュールが決定次第、こちらのブログで連絡いたします。
リリースをお待ち頂いている皆様にはご迷惑をおかけしますが、
何卒ご理解頂きますようよろしくお願いいたします。
opCommunityTopicPlugin 0.9.8, 1.0.1 リリースのお知らせ
12 / 16 木曜日 2010
OpenPNE 開発チームの海老原です。
本日 2010/12/16 (木)、 opCommunityTopicPlugin 0.9.8 と 1.0.1 をリリースしました。
このバージョンでは、「非公開のコミュニティのトピックがトピック検索結果に表示されてしまう (権限のないメンバーがトピック自体にアクセスすることはできない)」という重大な問題への修正をおこなっています。
OpenPNE 3.2, 3.4 を使われている方は opCommunityTopicPlugin 0.9.8 にアップデートしてください。
OpenPNE 3.6 を使われている方、もしくは OpenPNE 3.4 で opCommunityTopicPlugin 1.0.x 系を使われている方は、 opCommunityTopicPlugin 1.0.1 へのアップデートを実施してください。
OpenPNE 3.4.10リリース延期のお知らせ
12 / 10 金曜日 2010
今村です。
OpenPNE3.4.10のリリースを12/9(木)に予定していましたが、
実装の目処が立たず、リリース日を変更が必要と判断いたしました。
スケジュールについても現在検討中で、延期後のリリース日については未定です。
スケジュールが決定次第、こちらのブログで連絡いたします。
OpenPNE 3.4.10 修正予定バグ
リリースをお待ち頂いている皆様にはご迷惑をおかけしますが、
何卒ご理解頂きますようよろしくお願いいたします。
【緊急リリース】OpenPNE 3 に存在するセッション管理の不備に関する複数の脆弱性のお知らせ
12 / 08 水曜日 2010
OpenPNE 3 には、セッション管理の不備に関する複数の脆弱性が存在します。
本日(12/8)、この問題の対策版として OpenPNE 3.0.8.2, 3.2.7.3, 3.4.9.1, 3.6beta7 のリリースをおこないましたので、内容を確認のうえバージョンアップまたはパッチの適用をお願いいたします。
本問題について
影響を受けるシステム
3.0.8.1 以下、 3.2.7.2 以下、 3.4.9 以下、 3.6beta6 以下の OpenPNE を使用しており、以下のどちらかまたはすべての条件を満たしているサイト。
1. セッションストレージにデータベースを設定している
2. 他の OpenPNE 3 とセッション保存先を共有している
※OpenPNE 2 を使用しているサイトは影響を受けません。
概要
OpenPNE のセッション管理が以下に説明するように不適切であったために、ログイン状態の継続などが正しくおこなえない状態にありました。
・(3.0.x を除く) セッションストレージとしてデータベースを使用していた場合に、セッションの継続に用いられるセッション ID を誤った形で保存していました。セッション ID で使われる文字種は、 PHP の設定により異なりますが、少ない場合でも 0-9, a-f となります。しかし、データベース内のセッション保存用のテーブルを誤った設定で構築していたため、本来のセッション ID の数値部分しか保存しない状態にありました。このような状態ではセッション ID が頻繁に衝突するようになるため、自分のセッション ID が他のユーザが使っているセッション ID とみなされてしまうことがあります。また、セッション ID が容易に推測可能であるため、なりすましの危険も高くなります。
・他の OpenPNE 3 とセッション保存先を共有していた際に、他方の SNS 向けのセッション ID をそのまま受け入れてしまう問題がありました。セッションを共有している A と B の SNS があったとして、 A のセッション ID を使って B にアクセスすることで、 A ではメンバー ID が 1 のメンバーが B でもメンバー ID が 1 であるとみなされてしまいます。複数の OpenPNE 間でセッション保存先を共有するのは OpenPNE では想定された使用方法であるはずでした。
想定される影響
条件を満たす SNS において、意図せずに、または故意に別のメンバーとしてアクセスできてしまうことで、非公開情報の漏洩などを許してしまう可能性があります。
対策方法・回避方法
対策方法については、本エントリの「本問題への対応方法」をご覧ください。
回避方法
一時的にこの問題を回避する場合、以下のすべての対策を採ってください。
セッションストレージとしてデータベースを使用しない
ファイルストレージもしくは memcached を使用する
他の OpenPNE 3 とセッション保存先を共有しない
ファイルストレージの場合は ProjectConfiguration.class.php でセッションの保存先パスを他の OpenPNE 3 と別のものに設定する
memcached を使用している場合は、 OpenPNE.yml でセッションの保存先が他の OpenPNE 3 と別のものになるよう設定してください。
本問題への対応方法
「影響をうけるシステム」で示した条件を満たした OpenPNE を利用しているすべての SNS は、対策版へのマイナーバージョンアップもしくは修正パッチの適用を実施してください。
なお、マイナーバージョンアップや修正パッチの適用をおこない、 OpenPNE.yml の check_session_site_identifier の値が true のままであると、既存のすべてのセッションが無効になります。この件についての詳細は、「既存のセッションが無効になることについて」をご覧ください。
- OpenPNE 3.6beta7
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.4.9.1
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.2.7.3
- [.zip 版ダウンロード] [修正パッチ]
- OpenPNE 3.0.8.2
- [.zip 版ダウンロード] [修正パッチ]
マイナーバージョンアップ手順
パッケージに同梱されているバージョンアップ手順書に記載されている通りに作業を実施した後、セッションを DB に正しく保存できるようにするためのコマンドを実行します。
各バージョンのマイナーバージョンアップ手順書は以下から確認することができます。
- OpenPNE 3.6beta7 バージョンアップ手順書 (バージョンが 3.4 と表記されていますが、この手順は 3.6.x でも有効なものです)
- OpenPNE 3.4.9.1 バージョンアップ手順書
- OpenPNE 3.2.7.3 バージョンアップ手順書
- OpenPNE 3.0.8.2 バージョンアップ手順書
通常のマイナーバージョンアップが完了した後、以下のコマンドを実行してください。
$ ./symfony openpne:fix-session-db
パッチ適用手順
1. OpenPNEを設置しているディレクトリにパッチファイルをアップロードします
2. SSHでログインし、1 のディレクトリに移動します
3. 以下のコマンドを実行します
$ patch -p1 < パッチファイル名
4. 以下のコマンドを実行します
$ ./symfony openpne:migrate
$ ./symfony openpne:fix-session-db
既存のセッションが無効になることについて
これは、他の OpenPNE とセッション保存先を共有しても問題にならないよう、セッションデータの形式を変更したために発生する現象です。
セッションが無効になると、ログイン中のメンバーが一斉にログアウトすることになるため、編集中の日記などの情報が失われたり、多くのメンバーが一斉にログインを試みようとすることから一時的に負荷が高くなるといったことが起こりえます。そのため、事前に予告をしたうえで本脆弱性への対応を実施することをお勧めします。
セッションをデータベースに保存しておらず、他の OpenPNE とセッション保存先を共有していないサイト (つまり本脆弱性の影響を受けないサイト) で、既存のすべてのセッションが無効になってしまっては都合が悪い場合、 OpenPNE.yml にて check_session_site_identifier を false に変更することで、セッションデータの形式がバージョンアップ前と同様のものになるため、既存のすべてのセッションが無効になるのを防ぐことができます。
check_session_site_identifier: false
セッションをデータベースに保存している場合
セッションをデータベースに保存している場合は、 check_session_site_identifier を false に変更したとしても、既存のセッションがすべて無効になります。この場合、既存のセッションが無効になることについての回避策は存在しません。
本脆弱性への対策をおこなっていない OpenPNE 3 でセッションをデータベースに保存していた場合、そのセッションの ID は安全なものではなく、この状態で運営を続けることは極めて危険です。早急に「対策方法・回避方法」で示している対応を実施してください。
OpenPNE3についてのアドベントカレンダーを連載中
12 / 04 土曜日 2010
OpenPNE開発者の川原さんと手嶋が、OpenPNE3についてのアドベントカレンダーに取り組んでいます。
12月1日から24日まで、1日一章ずつ記事を掲載してきいます。
川原さんはOpenPNE3のプラグイン開発について。
手嶋はOpenPNEがあればオフィスはいらない。と題して、会社全体でOpenPNEを導入し、運営していくためのガイドを作成しています。
川原:OpenPNE 3.6 Advent Calendar
誤字があるよ、こっちの言い回しがよくない?一章書いてみたいんだけど、などフィードバックは大歓迎です。OpenPNEを普及させるために、応援をお願いします。
opOpenSocialPlugin 1.2.2, 1.3.1-beta リリースのお知らせ
12 / 02 木曜日 2010
【重要】前回の脆弱性リリースの記事を読んでいない場合は必ず読んでください。
【緊急リリース】2010/11/21以前にリリースされたopOpenSocialPlugin に存在する XSS 脆弱性対応のお知らせ
昨日、2010年12月1日に、opOpenSocialPluginの安定版 1.2.2 および 開発版 1.3.1-beta をリリースしました。
概要
今回のリリースは、XSSおよびCSRF脆弱性が起きていないかをプログラマがテストするための Functional Test ・ Unit Testを追加しています。
また、5つのバグが修正されました。
修正されたバグ
- UserPrefのBOOL型のデータを保存するときにWarningが表示される (#1818)
- GadgetXMLのUserPref.requiredが仕様どおり動作しない (#1819)
- [1.3] mcrypt未導入時にアプリガジェットが表示されない (#1803)
- [mobile]フレンド招待機能でフレンド一覧が表示できない (#1765)
- [mobile]アプリ招待の承認画面での日本語メッセージ欠落 (#1766)
インストール・アップデート
必要な OpenPNE3 のバージョンは以下になります。
アップグレードをする場合は、OpenPNE3自体のバージョンをよく確認してください。
1.2.2 | OpenPNE3.6.x〜 (現在開発中) |
1.3.1-beta | OpenPNE3.6.x〜 (現在開発中) |
インストールやアップデートの失敗に備えて、データベースのバックアップを
取ることを推奨します。
1.2.2
OpenPNE3 のディレクトリで、以下のコマンドを実行します。
$ php symfony opPlugin:install opOpenSocialPlugin opOpenSocialPlugin -r 1.2.2
$ php symfony openpne:migrate
$ php symfony cc
続けて、ドキュメントのセットアップの章を御覧ください。
http://redmine.openpne.jp/projects/plg-open-social/wiki
1.3.1-beta
このバージョンは開発版です。
$ php symfony opPlugin:install opOpenSocialPlugin -r 1.3.1 -s beta
$ php symfony openpne:migrate
$ php symfony cc
opOpenSocialPlugin 1.2.x から互換性を保ちつつ利用する場合は、
plugins/opOpenSocialPluginにある UPGRADE_1_2_TO_1_4 を御覧ください。
バグ報告・開発について
このプラグインに何か、問題がありましたら
http://redmine.openpne.jp/projects/plg-open-social/issues/new
こちらで Issue を作成してください。
Github上で開発を進めています。forkやpull requestは大歓迎です!
http://github.com/kawahara/opOpenSocialPlugin
OpenPNE 3.6.0 のリリースを 2011 年 1 月末以降に延期します
11 / 27 土曜日 2010
OpenPNE 開発チームの海老原です。
タスクの進捗状況などを検討した結果、 2010 年 11 月末のリリースを予定していた OpenPNE 3.6.0 のリリースを、 2011 年 1 月末以降に延期することに決めました。告知が遅くなってしまい申し訳ありません。
ベータ版の各バージョンのリリース計画はいったん白紙に戻させていただき、決定次第順次告知していきたいと思います。
(なお、この延期が、今後の OpenPNE 3.4 のサポート期間に影響を及ぼすことはないことを念のため申し添えておきます。 OpenPNE 3.4 のサポート期間は、 OpenPNE 3.8 のベータ版リリースまでです。通常通りリリースがおこなえていれば、 OpenPNE 3.8 のベータ版は OpenPNE 3 系のリリース規則のお知らせ で明記しているとおり、 2011 年の 1 月にリリースされているはずで、 OpenPNE 3.4 のサポートは 2011 年の 1 月までの 1 年間、ということになるはずでした。しかし、現実には OpenPNE 3.6 がまだリリースできない状態が続いており、 OpenPNE 3.8 の開発に入ることができていないため、 OpenPNE 3.4 は少なく見積もってあと半年はサポートが継続することになります)
以下、延期の理由について説明します。