共用作業領域向けバーチャルウェブホスティングサービスについて
概要
共用作業領域名を仮想ホスト名として利用できるバーチャルウェブホスティングサービスです。
URL | https://仮想ホスト名.sfc.keio.ac.jp/ |
---|
Webページを設置するには
-
指定の公開用ディレクトリに公開したいファイルをサーバ上のエディタ(Emacs,viなど)で編集するかSFTPソフトウェアを使ってアップロードします。
アップロード先サーバ | webedit.sfc.keio.ac.jp |
---|
公開用ディレクトリ(アップロード先) | /pub/WWW/仮想ホスト名/ |
---|
ユーザ名 | CNSログイン名 |
---|
パスワード | CNSログインパスワード |
---|
CGI/PHP について
CGIの動作仕様
項目 |
説明 |
CGIの実行ユーザ |
CGIスクリプトのファイルオーナー |
CGIスクリプトの保護モード確認 |
group および other に書き込み権限がないこと |
CGIスクリプトがあるディレクトリの保護モード確認 |
other に書き込み権限がないこと |
PHPの動作仕様
項目 |
説明 |
PHPバージョン |
8.2系 |
PHP動作モード |
CGI + suPHP |
PHPの実行ユーザ |
other に書き込み権限がないこと |
PHPスクリプトの保護モード確認 |
group および other に書き込み権限がないこと |
PHPスクリプトがあるディレクトリの保護モード確認 |
other に書き込み権限がないこと |
注意事項
管理グループについて
- 管理グループメンバー内でファイルやディレクトリ操作を行えるようにするためには、ファイルやディレクトリのグループに対して書き込み権限を設定してください。
-
ただし、group もしくは other に write を許可している実行ファイルは、CGI/PHPによる実行をすることはできませんのでご注意ください。
- CGI/PHPの実行ファイルをコピーして共用作業領域内に設置する際には、ファイルの所有者の権限(ファイルコピーを実施した利用者の権限)で動作することになります。実行ファイルの内容を良く確認した上で、コピーを実施してください。
共用作業領域向けWebサーバでのホームディレクトリマウント
- 共用作業領域向けWebサーバでは、各利用者のホームディレクトリはマウントしていません。
- したがって、共用作業領域向けWebサーバを通してホームディレクトリ以下のデータを参照することはできません。
CGI/PHP の実行ファイルの保護モード
- CGI/PHPの実行ファイルは次の保護モードとすることをお勧めします。
- 必要に応じて group に対する read 権限を追加して設定してください。
種別 |
保護モード |
CGI |
700 or 740 |
PHP |
600 or 640 |
CGI/PHPを格納するディレクトリ |
701 or 771 |
- CMSなどのインストール時には自動的に上記の設定とはなりません。
- インストール後に各自保護モードの変更をお願いします。
- CMSによっては、画像ファイルのアップロードディレクトリを Webサーバの実行ユーザである www から読み出せるようにしておく必要がある場合があります。
テンポラリファイルの使用について
- テンポラリファイルを再利用したい場合は各領域の指定されたディレクトリ以下に作成してください。
WikiやBlogの設置について
- 設置後も定期的に配布元を確認し、脆弱性が発見された時は速やかにバージョンアップするなどしてください。
- 特にトラックバックスパムやコメントスパムはサーバ資源を浪費し、共用作業領域全体に影響が及びますので対策を確実に行なってください。
Return-Pathの設定
- CGIなどからsendmail によりメール送信を行なう場合は、エラーメールの返送先である Return-Path: を設定してください。
- perlでの例
- PHPでの例
- PHPスクリプト内で mb_send_mail()関数を使用してメール送信を行なう場合は、エラーメールの宛先である Return-Path: を設定してください。 5番目の引数として、-fのあとに続けてメールアドレスを書きます。
mb_send_mail($to,$subject,$msg,$from,"-fz00000tk@sfc.keio.ac.jp");
PHPでのfopen()に使用について
- fopenする対象のファイルポインタの参照先が存在することを確認するようにコーディングしてください。
PHPのセーフモードについて
メール
- メールプログラムのパスは /usr/sbin/sendmail です。
利用するソフトウェアについて
-
利用するソフトウェアの利用規約を確認し、ライセンス違反にならないようご注意ください。
- 例えば、Movable Type のバージョン6以降はオープンソースソフトウェアではなくなっており、個人無償版をCNSの個人領域・共用作業領域で利用することはできません。
データベースの連携について
概要
-
仮想ホスト名を用いたWWW空間提供サービスからデータベースが利用できるようになりました。
- PostgreSQL と MySQL が利用可能です。
利用方法
データベース情報
データベースサーバ名 | webpubdb.sfc.keio.ac.jp |
---|
接続ポート | PostgreSQL | 5432 |
---|
MySQL | 3306 |
---|
- データベースに接続できるのはwebedit.sfc.keio.ac.jpからのみです。
接続方法
- PostgreSQL
- MySQL
- 例1: webedit でcommandで MySQL に接続する
webedit% mysql -h webpubdb -u MySQL用ユーザ名 -p
- 例2: PHPでMySQLに接続する
$con = mysql_connect("webpubdb:3306","DBユーザ名","DBパスワード");
常時SSL化について【2019年6月提供開始】
以下のページをご覧ください。
共用作業領域Webサイトの常時SSL化について
応用
アクセス制限
1. パスワードによる制限(Digest認証)
- https://仮想ホスト名.sfc.keio.ac.jp/secret/ というディレクトリ内のコンテンツをパスワードが知っている人のみアクセスできるようにします。Digest認証はBasic認証よりも安全性の高い仕組みです。
- webedit.sfc.keio.ac.jp にリモートログインします。
リモートログインの方法については リモートログインについて をご覧ください。
- パスワードファイル用ディレクトリ(secdir)を作成し、アクセス権を変更します。
% cd /pub/WWW/仮想ホスト名
% mkdir secdir
% chmod o-r secdir
- パスワードファイルを作成します。ここにアクセスできるユーザ名は taro とし、領域名をsecret 1としています。
% htdigest -c /pub/WWW/仮想ホスト名/secdir/.htdigest "secret 1" taro
New password: (パスワードを入力する)
Re-type new password: (再度パスワードを入力する)
Adding password for user taro
- /pub/WWW/仮想ホスト名/secret/ に次のような内容のファイルを .htaccess という名前で設置します。AuthNameにはパスワードファイルを作成した時の領域名を指定して一致させます。
AuthName "secret 1"
AuthType Digest
AuthUserFile /pub/WWW/仮想ホスト名/secdir/.htdigest
require user taro
- ブラウザで https://仮想ホスト名.sfc.keio.ac.jp/secret/ を開くとユーザ名とパスワードの入力を促すダイアログが表示されます。
2. パスワードによる制限(Basic認証)
- https://仮想ホスト名.sfc.keio.ac.jp/secret/ というディレクトリ内のコンテンツをパスワードが知っている人のみアクセスできるようにします。
- webedit.sfc.keio.ac.jp にリモートログインします。
リモートログインの方法については リモートログインについて をご覧ください。
- パスワードファイル用ディレクトリ(secdir)を作成し、アクセス権を変更します。
% cd /pub/WWW/仮想ホスト名
% mkdir secdir
% chmod o-r secdir
- パスワードファイルを作成します。ここにアクセスできるユーザ名は taro としています。
% htpasswd -c /pub/WWW/仮想ホスト名/secdir/.htpasswd taro
New password: (パスワードを入力する)
Re-type new password: (再度パスワードを入力する)
Adding password for user taro
- /pub/WWW/仮想ホスト名/secret/ に次のような内容のファイルを .htaccess という名前で設置します。
AuthUserFile /pub/WWW/仮想ホスト名/secdir/.htpasswd
AuthGroupFile /dev/null
AuthName "Members Only"
AuthType Basic
require user taro
- ブラウザで https://仮想ホスト名.sfc.keio.ac.jp/secret/ を開くとユーザ名とパスワードの入力を促すダイアログが表示されます。
3. 指定したホスト/IPアドレスで制限
- 制限したいコンテンツを保存しているディレクトリに以下を書いた .htaccess というファイルを設置します。
- 例1: 特定のホストとSFC内からのアクセスのみ許可 (IPアドレスの場合)
order deny,allow
deny from all
allow from hoge.example.com
allow from 133.27.0.0/16
- 例2: SFC内からのアクセスのみ許可。(サーバの処理が増えるため例1のIPアドレスでの制限を推奨)
order deny,allow
deny from all
allow from .sfc.keio.ac.jp
1.と3.の組み合わせ
AuthDigestFile /pub/WWW/仮想ホスト名/secdir/.htdigest
AuthName "secret 1"
AuthType Digest
order deny,allow
deny from all
require user himitsu
allow from 133.27.0.0/16
Satisfy any
2.と3.の組み合わせ
AuthUserFile /pub/WWW/仮想ホスト名/secdir/.htpasswd
AuthName "Members Only"
AuthType Basic
order deny,allow
deny from all
require user himitsu
allow from 133.27.0.0/16
Satisfy any
サーバ仕様
OS構成 |
OS |
Ubuntu 20.04 LTS |
CGI利用可能言語 |
Perl, Ruby, PHP, Python, C/C++*1 |
実行パス |
Perl 5.30.0 |
/usr/local/bin/perl |
Ruby 3.2.2 |
/usr/local/bin/ruby |
Python 3.8系 |
/usr/local/bin/python |
PHP 8.2系 + suPHP |
CGI: /usr/local/bin/php5 |
C/C++ 9.4.0 |
/usr/local/bin/gcc |
sendmail |
/usr/sbin/sendmail |
nkf |
/usr/local/bin/nkf |
利用可能データベース |
PostgreSQL, MySQL |
HTTPサーバ仕様 |
HTTPサーバ |
Apache 2.4.41 |
セキュリティ |
CGI/SSI: SuEXEC有効 |
PHP: suPHP有効 |
変更履歴
2024年5月8日 |
OSをUbuntu 20.04 LTSに更新しました |
2020年3月16日 |
OSをUbuntu 18.04 LTSに更新しました |
2014年8月6日 |
運用開始 |
webedit でコンパイルしてください