LAN内アプリ2 セキュリティ
LAN内で利用するウェブアプリケーションのセキュリティについての備忘録です。小規模オフィスで外部インターネット非公開のLAN限定のウェブアプリケーション(以下WA)を安全に利用するためのセキュリティについての要点を整理しています。
前提環境
前提1: WAの動作
WAはLAN(オフィス)内からのアクセスのみ許可し、外部(インターネット)には非公開とする。
前提2: ネットワーク環境
- winXP,win2000の2台でLANを構築し、ルーターを介してインターネットに接続。
- ルーターはブロードバンドルーターでスイッチングハブを内臓。
- 各パソコンにはNorton Internet Security(以下NIS)をインストール
前提3: プライベートIPアドレス,サブネットマスク
コンピューター | IPアドレス | サブネットマスク |
---|---|---|
winXP | 192.168.1.11 | 255.255.255.0 |
win2000 | 192.168.1.12 | 255.255.255.0 |
前提4 : アプリケーション実行環境(下記は全てwinXPにインストール)
- Apache 2.0.55(Win32)
- PHP5.05
- MySQL 4.1.15-nt
前提5 :アプリケーションへの 接続
winXPからはhttp://localhost/ またはhttp://192.168.1.11 でApacheへ接続する。win2000からはhttp://192.168.1.11 でApacheへ接続する。
目標
上記の環境下でLAN内限定のWA構築における安全なセキュリティの確保。
Apache,MySQLの対策の分類
- ルーターでの対策
- NISによるApache,MySQLへの対策。
- Apache設定ファイルhttp.confでの対策
参考サイト: Web+DB on Windows
ルーターでの対策
外部インターネットとLANの間にルーターを設置することはそのこと自体が外部からのLAN内のWWWサーバ(本文ではApache)やDBサーバ(本文ではMySQL)への不正アクセス防止につながる。
NISによるApache,MySQLへの対策
概要: NISのアクセス制御でApache,MySQLへのアクセスをLAN内のコンピューターに制限する(NIS2004の場合)。
起動画面→ファイアーウォール→設定→プログラム制御を選択する。該当プログラム(Apache.exe,mysqld.exe)でカスタムルールに変更し、LAN内のIPアドレス(本例では192.168.1.11,192.168.1.12)からの通信のみ許可する設定へ変更する。
上記の設定でApacheがインストールされているPCのlocalhostからもアクセス可能となる。
Apache設定ファイルhttpd.confによる対策
hppd.confの前提
Server Root "C:/Program Files/Apache Group/Apache2"
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
httpd.confの設定:
<Directory /> order deny,allow deny from all allow from localhost allow from 192.168.1 Options FollowSymLinks AllowOverride All </Directory> ・・・・・・・ ・・・・・・・ <Directory "C:/Program Files/Apache Group/Apache2/htdocs"> ・・・・・・・・ ・・・・・・・・ #Order allow,deny #Allow from all </Directory>
上記の設定で前述のLAN内のPC(本文では192.168.1.11,192.168.1.12)及びApacheがインストールしてあるPCからのlocalhostでのみApacheへ接続可能となる。
Appendix:Directiveコンテナについて
<Directory>コンテナ(<Directory ディレクトリ>...</Directory>)は、特定のディレクトリ及びそのサブディレクトリに適用される指示子(Order,denay,allow,Options,AllowOverrideなど)をかこむ。
<Directory />......</Directory>
上記設定内容はServerRootに指定したディレクトリ以下の全てのディレクトリに適用される。
下記のように設定すると、C:/Program Files/Apache Group/Apache2に適用されます。
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">.....</Directory>
※設定内容がhtdocs以下のディレクトリに適用される。
<Directory />コンテナで指定した内容を<Directory "C:/Program......./htdocs>コンテナで上書きする。
ApacheについてはApacheに関する基礎事項 を参照してください。
Apache,MySQL,PHPの設定ファイル
Apache(2.0.59),MySQL 4.2.22,PHP 5.2.1の設定ファイルをまとめます。
- Apache設定ファイル
- %APACHE%※1/bin/httpd.conf
- MySQL設定ファイル
%MYSQL%※2my.ini
私の場合はmy.iniはまったく編集しませんでした。
- PHP設定ファイル
%WINDOWS%※3/php.ini
解凍フォルダの直下にあるphp.ini-distをphp.iniにリネイムして%WINDOWS%へ移動します。
私の場合PEARも利用しています。PEARの設定ファイルは%WINDOWS%※1/pear.iniです。
※1:%APACHE%はApacheのインストールフォルダです。通常C:Program FilesApache GroupApache2のようになります。
※2:%MYSQL%はMySQLのインストールフォルダです。通常C:Program FilesMySQLMySQL Server 4.1のようになります。
※3%WINDOWS%はOSのバージョンにより異なります。WindowsXPではC:WINDOWSです。
LAN内アプリ1
LAN内で利用するウェブアプリケーションを構築した際の覚書です。
構築環境
- OS
- Windows XP,Windows Vista(若しくは2000)
- ソフトウェア
- LAN内で動作Apache+PHP(+PEAR,,Smarty)+MySQL
- 主な機能
- DB登録,表示,画像アップロード,表示,エクセルファイル生成,ダウンロード
ダウンロードファイル
- Apache 2.0.59(DL:apache_2.0.59-win32-x86-no_ssl.msi)
- PHP 5.2.1(DL:php-5.2.1-Win32.zip)
- MySQL 4.2.22(DL:mysql-4.1.22-win32.zip)
注意点
最初はApche2.2.4(DL:apache_2.2.4-win32-x86-no_ssl.msi)を試すもうまくいない。ApacheのLoadModuleのところでエラーが発生するようです。