• 検索結果がありません。

3.  構築

3.5.  セキュリティポリシーの定義

3.5.1.  Web サーバー

Apache については、2002 年 12 月において、http://www.apache.org から入手が可能な 1.3 系と 2.0 系の Apache 1.3.27 と Apache 2.0.43 があり、ここでは、Apache 1.3.27 につ いての実装と検証を行った。 

(1) インストール 

ここでは、通常の Solaris におけるインストレーションと同様の手順によるインス トールを行う。 

最初に必要なパッケージの追加やソースの展開を行う(リスト 3‑38)。この作業は admin 役割に移行し役割のワークスペースにて行うことが可能である。このときデフォ ルトのラベルは[ADMIN̲LOW]となる。 

リスト 3‑38 パッケージの追加(admin 役割) 

$ cd /usr/local 

$ gzcat apache̲1.3.27.tar.gz │ tar xvf ‑ 

次の作業は primaryadmin 役割に移行し、特権シェル環境において実行する。 

ここでは、httpd の実行ユーザ www およびグループ www を作成する(リスト 3‑39)。

なお、簡易に構築するため作業を特権シェル環境により行うが、ユーザとグループの 追加は admin 役割にて SMC を利用することでも可能である。 

  Ⅰ‑114  Copyright © 2003 IPA, All Rights Reserved.

リスト 3‑39 ユーザとグループの追加(primaryadmin 役割) 

# groupadd ‑g 80 www 

# useradd ‑u 80 ‑g www ‑d / ‑s /bin/false www  次の作業も引き続き特権シェル環境にて行う。 

ここでは、Apache 1.3.27 のコンパイルとインストールを行う(リスト 3‑40)。 

なお、suEXEC を利用するため suexec 関連のオプションを有効にする。 

  リスト 3‑40 コンパイルおよびインストール(primaryadmin 役割) 

# PATH=/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/local/bin 

# export PATH 

# cd /usr/local/apache̲1.3.27 

# ./configure ‑‑enable‑suexec ‑‑suexec‑caller=www ‑‑suexec‑uidmin=80 

‑‑suexec‑gidmin=80 ‑‑suexec‑docroot=/export 

# make 

# make install 

次に Apache の基本設定を行う。この作業は admin 役割により行う。 

ここでは、コンテンツと CGI スクリプトを置くディレクトリを作成する。また、

webadmin 役割による編集が可能となるように、ディレクトリの所有者を webadmin に 変更する(リスト 3‑41)。 

リスト 3‑41 コンテンツディレクトリの作成(admin 役割) 

$ mkdir /export/contents /export/cgi‑bin 

$ chown webadmin /export/contents /export/cgi‑bin 

ここでは、httpd.conf の編集を行う。admin 役割による編集が可能となるように、

所有者を admin に変更する(リスト 3‑42)。 

なお、Apache の標準機能であるバーチャルホストを有効にする。理由は、suEXEC は httpd.conf における<Virtual>で設定されたディレクトリ以下とユーザのディレク トリ以下で有効になるため、利用するドメインは一つだがバーチャルホストとして動 作させるためである。 

  Ⅰ‑115  Copyright © 2003 IPA, All Rights Reserved.

リスト 3‑42 httpd.conf の編集(admin 役割) 

$ cd /usr/local/apache/conf 

$ cp ‑p httpd.conf httpd.conf.org 

$ chown admin httpd.conf 

リスト 3‑43 httpd.conf:基本部分  PidFile   /var/run/httpd.pid 

User   www 

Group   www 

ServerAdmin   [email protected]  ServerName   gpan.tscorp.com  DocumentRoot   "/export/contents" 

... (省略) ... 

<Directory "/export/contents"> 

... (省略) ... 

<Directory "/export/cgi‑bin"> 

... (省略) ... 

ScriptAlias /cgi‑bin/ "/export/cgi‑bin/" 

リスト 3‑44 httpd.conf:追加部分  NameVirtualHost 192.168.0.103 

<VirtualHost gpan> 

 ServerName gpan.tscprp.com 

 User webadmin 

 Group sysadmin 

 DocumentROot /export/contents 

 ScriptAlias /cgi‑bin/ "/export/cgi‑bin/" 

</VirtualHost> 

最後に Apache の起動スクリプトの編集を行う。この作業も引き続き admin 役割によ り行う。 

標準でインストールされている Apache 1.3.12 の起動スクリプトを用いることとし、

これを編集する。admin 役割による編集が可能となるように、所有者を admin に変更 する(リスト 3‑45)。 

インタープリターをシステムシェル(sysh)に変更し、以降のセキュリティ属性定 義において設定する webservice プロファイルがサービス起動時に有効となるように、

setprof コマンドによる定義を追加する。また、Apache の起動用の環境変数を編集す る。 

  Ⅰ‑116  Copyright © 2003 IPA, All Rights Reserved.

リスト 3‑45 apache スクリプトの編集(admin 役割) 

$ cd /etc/init.d 

$ cp ‑p apache apache.org 

$ chown admin apache 

リスト 3‑46 apache スクリプト:インタープリター 

#!/sbin/sysh  setprof webservice 

リスト 3‑47 apache スクリプト:環境変数  APACHE̲HOME=/usr/local/apache 

CONF̲FILE=/usr/local/apache/conf/httpd.conf   

(2) ファイル 

通常の Solaris 8 において適用されるセキュリティ属性、つまりファイルパーミッ ション、所有者、所属グループについては、特別な理由がない限り変更する必要はな い。 

  Ⅰ‑117  Copyright © 2003 IPA, All Rights Reserved.

表 3‑53 ファイル 

#  ファイル名  パーミッション  owner  group 

1 /usr/local/apache/conf/*       

2 /usr/local/apache/logs/*       

3 /usr/local/apache/htdocs/*       

4 /usr/local/apache/icons/*       

5 /usr/local/apache/cgi‑bin/*       

6 /usr/local/apache/include/*       

7 /usr/local/apache/libexec/*       

8 /usr/local/apache/man/*       

9 /usr/local/apache/proxy/*       

10 /usr/local/apache/bin/ab  ‑rwxr‑xr‑x  root  root  11 /usr/local/apache/bin/apachectl  ‑rwxr‑xr‑x  root  root  12 /usr/local/apache/bin/apxs  ‑rwxr‑xr‑x  root  root  13 /usr/local/apache/bin/checkgid  ‑rwxr‑xr‑x  root  root  14 /usr/local/apache/bin/dbmmanage  ‑rwxr‑xr‑x  root  root  15 /usr/local/apache/bin/htdigest  ‑rwxr‑xr‑x  root  root  16 /usr/local/apache/bin/htpasswd  ‑rwxr‑xr‑x  root  root  17 /usr/local/apache/bin/httpd  ‑rwxr‑xr‑x  root  root  18 /usr/local/apache/bin/logresolve  ‑rwxr‑xr‑x  root  root  19 /usr/local/apache/bin/rotatelogs  ‑rwxr‑xr‑x  root  root  20 /usr/local/apache/bin/suexec  ‑rws‑‑x‑‑x  root  root 

 

(3) セキュリティポリシーの定義と設定(基本的ラベル構成のネットワーク) 

最初に、基本的ラベル構成のネットワークを想定した、基本的なセキュリティポリ シーの定義と設定を行う。 

この構成では、外部および内部のネットワークともに単一のラベルでのサービスに 対するアクセスが許可される。この場合、サービスに与える特権を少なくする最良の 方法は、サービスを形成する全てのプロセスが同一のラベルで動作するようにするこ とである。 

この作業は secadmin 役割に移行し役割のワークスペースにて行うことが可能であ る。このときデフォルトのラベルは[ADMIN̲LOW]となる。 

  Ⅰ‑118  Copyright © 2003 IPA, All Rights Reserved.

ADMIN_LOW PUBLIC ADMIN_HIGH

services

Log,conf contents

suexec httpd

全ての ネットワークアクセス

に対する許可範囲

  図 3‑27 シンプルな場合のイメージ図 

httpd プロセスの SL は[PUBLIC SERVICES]とし、CGI プロセスの SL も[PUBLIC  SERVICES]とする。CGI の実行環境として Apache の suEXEC を利用する。 

ネットワークからのアクセスは全てが[PUBLIC SERVICE]とラベル付けされる。 

コンテンツファイルおよびスクリプトファイルの SL は[ADMIN̲LOW]とし、ネッ トワークアクセスに関連するプロセス(httpd および派生するプロセス)から 読み込みのみが許可される。 

(A) ファイル属性定義 

次のサービス提供に関わるファイル属性をそれぞれのファイルに適用する。なお、

設定の手順については 3.4.4.1(1)(A)に記載している。 

表 3‑54 ファイル属性 

#  ファイル名  ラベル  強制特権  許容特権 

1 /usr/local/apache/bin/httpd  ADMIN̲LOW file̲dac̲write  file̲mac̲write 

all   

  Ⅰ‑119  Copyright © 2003 IPA, All Rights Reserved.

Note: 

標準のインストレーションでは、httpd に対して file̲dac̲write 特権および file̲mac̲write 特権ともに必要となるが、これは httpd がログの出力に必要としている特権である。よって、

ログディレクトリの所有者を変更することにより、file̲dac̲write 特権は不要となる。また、

ログディレクトリのラベルを変更することにより、file̲mac̲write 特権は不要となる。 

secadmin 役割にて以下の設定を行うことで特権を扶養とすることが可能である。 

$ chown www /usr/local/apache/logs 

$ setlabel “public services” /usr/local/apache/logs   

(B) プロセス属性定義 

次のサービス提供に関わる実行属性をサービス用の webservice プロファイルに 追加する。なお、設定の手順については 3.4.3.4(2)(A)に記載している。 

表 3‑55 プロセス属性 

#  コマンド  User  Group  Label  Clearance 特権 

1 /usr/local/apache/ 

bin/apachectl 

www www PUBLIC  services

PUBLIC  services 

net̲privaddr   

(C) ネットワーク属性定義 

次のネットワークに関わるセキュリティ属性を適用する。なお、設定手順につい てはそれぞれに、3.4.7.1(2)(A)、3.4.7.2(2)(A)、3.4.7.3(2)(A)に記載している。 

表 3‑56 インターフェース属性 

#  Interface  Mini Label  Max Label  Label  Clearance  1 hme0  PUBLIC  PRIVATE 

services 

PUBLIC  services 

PUBLIC  services  表 3‑57 テンプレート属性 

#  Template  Mini Label  Max Label  Label  Clearance  1 public̲services PUBLIC 

services 

PUBLIC  services 

PUBLIC  services 

PUBLIC  services  表 3‑58 ネットワーク属性 

#  Host/Wildcard  Hostname  IP Address  Prefix Length Template  1 Wildcard  N/A  0.0.0.0  N/A  public̲services 

 

  Ⅰ‑120  Copyright © 2003 IPA, All Rights Reserved.