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

3.  構築

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

3.5.2.  DNS サーバー

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

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

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

# groupadd ‑g 24 bind 

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

ここでは、BIND 9.2.2rc2 のコンパイルに必要となるライブラリのランタイム・リ ンキング環境を設定する(リスト 3‑50)。 

リスト 3‑50 ランタイム・リンキング環境設定(primaryadmin 役割) 

# crle ‑u ‑l /usr/local/ssl/lib 

# crle   

Configuration file [2]: /var/ld/ld.config   

  Default Library Path (ELF):   /usr/lib:/usr/local/lib:/usr/local/ssl/lib    Trusted Directories (ELF):    /usr/lib/secure 

 

Command line: 

  crle ‑c /var/ld/ld.config ‑l /usr/lib:/usr/local/lib:/usr/local/ssl/lib ‑s  /usr/lib/secure 

次の作業も引き続き特権シェル環境にて行う。 

ここでは、BIND 9.2.24c2 のコンパイルとインストールを行う(リスト 3‑51)。 

なお、SSL を有効にするにするためのオプションを指定する。 

リスト 3‑51 bind の Build(primaryadmin 役割) 

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

# export PATH 

# cd /usr/local/bind‑9.2.2rc1 

# ./configure ‑‑with‑openssl=/usr/local/ssl 

# make 

# make install 

次に BIND の基本設定を行う。この作業も引き続き特権シェル環境にて行う。 

なお、ここでは簡易に構築するため作業を特権シェル環境により行うが、運用時に はこれらの作業が mailadmin 役割により可能となるようにする。 

ここでは、named.conf ファイルと zone ファイルなどを置くディレクトリを作成す る(リスト 3‑52)。 

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

リスト 3‑52 設定ファイル用ディレクトリの作成(primaryadmin 役割) 

# mkdir /etc/named 

# chown mailadmin /etc/named 

ここでは、named.conf ファイルおよび zone ファイルを作成し編集を行う。また、

mailadmin 役割による編集が可能となるように、ファイルの所有者を mailadmin に変 更する(リスト 3‑53)。なお、zone ファイルの具体例については省略する。 

リスト 3‑53 named.conf の作成と編集(primaryadmin 役割) 

# cd /etc/named 

# touch named.conf 

# chown mailadmin named.conf 

# chmod 644 named.conf 

リスト 3‑54 named.conf   

options { 

 directory "/etc/named"; 

 forwarders { 

  200.200.0.1; 

  200.200.0.2; 

 }; 

}; 

 

zone "." { 

 type hint; 

 file "tscorp.cache"; 

}; 

 

zone "tscorp.com" { 

 type master; 

 file "tscorp.zone"; 

}; 

 

zone "0.0.127.in‑addr.arpa" { 

 type master; 

 file "localhost.zone"; 

}; 

 

zone "0.168.192.in‑addr.arpa" { 

 type master; 

 file "192.168.0.rev"; 

}; 

最後に BIND の起動スクリプトの編集を行う。この作業は admin 役割により行う。 

標準でインストールされている sendmail の起動スクリプトに BIND の起動スクリプ

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

トを追加することとし、これを編集する。admin 役割による編集が可能となるように、

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

インタープリターがシステムシェル(sysh)となっていることを確認し、以降のセ キュリティ属性定義において設定する mailservice プロファイルがサービス起動時に 有効となるように、setprof コマンドによる定義を追加する。また BIND の起動用のス クリプトを編集する。なお、BIND は sendmail よりも前に起動しなければならない。 

リスト 3‑55 sendmail スクリプトの編集(admin 役割) 

$ cd /etc/init.d 

$ cp ‑p sendmail sendmail.org 

$ chown admin sendmail 

リスト 3‑56 sendmail スクリプト:インタープリター 

#!/bin/sysh 

setprof mailserice 

リスト 3‑57 sendmail スクリプト:named 起動スクリプト 

  if [ ‑f /usr/local/sbin/named ‑a ‑f /etc/named/named.conf ]; then                 echo 'starting internet domain name server.' 

       /usr/local/sbin/named ‑c /etc/named/named.conf & 

 fi   

(2) ファイル 

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

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

表 3‑59 ファイル 

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

1 /etc/named/*       

2 /usr/local/doc/*       

3 /usr/local/include/*       

4 /usr/local/lib/*       

5 /usr/local/man/*       

6 /usr/local/bin/dig  ‑rwxr‑xr‑x  bin  bin  7 /usr/local/bin/host  ‑rwxr‑xr‑x  bin  bin  8 /usr/local/bin/isc‑config.sh  ‑rwxr‑xr‑x  bin  bin  9 /usr/local/bin/nslookup  ‑rwxr‑xr‑x  bin  bin  10 /usr/local/bin/nsupdate  ‑rwxr‑xr‑x  bin  bin  11 /usr/local/sbin/dnssec‑keygen  ‑rwxr‑xr‑x  bin  bin  12 /usr/local/sbin/dnssec‑makekeyset ‑rwxr‑xr‑x  bin  bin  13 /usr/local/sbin/dnssec‑signkey  ‑rwxr‑xr‑x  bin  bin  14 /usr/local/sbin/dnssec‑signzone  ‑rwxr‑xr‑x  bin  bin  15 /usr/local/sbin/lwresd  ‑rwxr‑xr‑x  bin  bin  16 /usr/local/sbin/named  ‑rwxr‑xr‑x  bin  bin  17 /usr/local/sbin/named‑checkconf  ‑rwxr‑xr‑x  bin  bin  18 /usr/local/sbin/named‑checkzone  ‑rwxr‑xr‑x  bin  bin  19 /usr/local/sbin/rndc  ‑rwxr‑xr‑x  bin  bin  20 /usr/local/sbin/rndc‑confgen  ‑rwxr‑xr‑x  bin  bin 

 

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

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

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

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

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

ADMIN_LOW PUBLIC ADMIN_HIGH

services

named.conf etc.

syslog etc.

named 全ての

ネットワークアクセス に対する許可範囲

  リスト 3‑58 基本的ラベル構成によるサービスのイメージ  named プロセスの SL は[PUBLIC SERVICES]とする。 

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

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

(A) ファイル属性定義 

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

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

表 3‑60 サービス用ファイル属性 

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

1 /usr/local/sbin/named  ADMIN̲LOW none  all  2 /usr/local/sbin/lwresd  ADMIN̲LOW none  all 

次の管理に関わるファイルの属性をそれぞれのファイルに適用する。なお、実際 には初期設定から変更の必要はない。ただし、DNSSEC の設定および検証は行ってい ない。 

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

表 3‑61 管理用ファイル属性 

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

1 /usr/local/bin/dig  ADMIN̲LOW none  none  2 /usr/local/bin/host  ADMIN̲LOW none  none  3 /usr/local/bin/isc‑config.sh  ADMIN̲LOW none  none  4 /usr/local/bin/nslookup  ADMIN̲LOW none  none  5 /usr/local/bin/nsupdate  ADMIN̲LOW none  none  6 /usr/local/sbin/dnssec‑keygen  ADMIN̲LOW none  none  7 /usr/local/sbin/dnssec‑makekeyset ADMIN̲LOW none  none  8 /usr/local/sbin/dnssec‑signkey  ADMIN̲LOW none  none  9 /usr/local/sbin/dnssec‑signzone  ADMIN̲LOW none  none  10 /usr/local/sbin/named‑checkconf  ADMIN̲LOW none  none  11 /usr/local/sbin/named‑checkzone  ADMIN̲LOW none  none  12 /usr/local/sbin/rndc  ADMIN̲LOW none  none  13 /usr/local/sbin/rndc‑confgen  ADMIN̲LOW none  none 

 

(B) プロセス属性定義 

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

表 3‑62 サービス用プロセス属性 

#  ファイル名  User  Group  Label  Clearance 特権 

1 /etc/init.d/ 

sendmail 

root  (euid) 

sys  (egid) 

N/A N/A  all  2 /usr/local/sbin/ 

named 

root  (uid) 

N/A PUBLIC  services

PUBLIC  services 

file̲mac̲read  net̲privaddr  sys̲net̲config  sys̲suser̲compat 3 /usr/local/sbin/ 

lwresd 

root  (uid) 

N/A PUBLIC  services

PUBLIC  services 

file̲mac̲read  net̲privaddr  sys̲net̲config  sys̲suser̲compat  

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

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

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

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

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

services 

PUBLIC  services 

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

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

services 

PUBLIC  services 

PUBLIC  services 

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

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

 

3.5.2.2. djbdns 

djbdns については、2002 年 12 月において、http://cr.yp.to/djbdns.html から入手が可 能な djbdns‑1.05 について実装と検証を行った。 

djbdns を イ ン ス ト ー ル す る に あ た っ て デ ー モ ン の 監 視 お よ び ロ グ の 管 理 を 行 う daemontools も併せてインストールするため、http://cr.yp.to/daemontools.html から入 手が可能な daemontools‑0.76 について実装と検証を行った。 

なお、以下のサービス関するセキュリティ属性の設定が必要になる。これらについては、

基本的なサービスのセキュリティ定義の設定後に行う。 

tinydns ‑ 管理する zone の名前解決を行う。 

dnscache ‑ 外部の zone の名前解決を行う。 

axfrdns ‑ スレーブサーバーへ対してゾーン転送を行う。 

ここで、インストールした djbdns および daemontools のディレクトリ構成を表 3‑66 に 示す。 

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

表 3‑66 ディレクトリの構成 

#  ファイルパス  内容 

1 /usr/local/admin/daemontools‑0.76/command daemontolls のプログラムファイル  2 /command  daemontools へのシンボリックリンク  3 /service  svscan プログラムの監視対象ディレクト

リ 

4 /usr/local/djbdns/bin djbdns 関連の実行プログラムのインス トール先ディレクトリ 

5 /var/dnscache  ローカルキャッシュサーバー用管理ディ レクトリ 

6 /var/dnscachex  外部キャッシュサーバー用管理ディレク トリ 

7 /var/tinydns  ゾーン DNS サーバー用管理ディレクトリ  8 /var/axfrdns  ゾーン転送用管理ディレクトリ 

 

(1) インストール 

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

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

リスト 3‑59 ソースの展開(admin 役割) 

$ cd /usr/local 

$ gzcat daemontools‑0.76.tar.gz │ tar xvf ‑ 

$ gzcat djbdns‑1.05.tar.gz │ tar xvf ‑   

(A) ユーザおよびグループの追加 

次に djbdns のそれぞれのデーモン、dnscache、tinydns および axfrdns を実行す るユーザ dnscache、tinydns、axfrdns とログを管理するユーザ djblog を作成する。 

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

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

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

# groupadd djbdns 

# useradd ‑s /bin/false ‑d /usr/local/djbdns ‐g djbdns dnscache 

# useradd ‑s /bin/false ‑d /usr/local/djbdns ‐g djbdns tinydns 

# useradd ‑s /bin/false ‑d /usr/local/djbdns ‐g djbdns axfrdns 

# useradd ‑s /bin/false ‑d /usr/local/djbdns ‐g djbdns djblog   

(B) daemontools のインストール 

daemontools のインストール作業については、特権シェル環境において実行する。 

リスト 3‑61 daemontools のインストール(primaryadmin 役割) 

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

# export PATH 

# cd /usr/local/admin/daemontools‑0.76 

# package/install 

deamontools をインストールすると、デフォルトでは inittab に以下の行が追加 され init 経由で起動する。しかし、ここでは rc スクリプトとして起動し djbdns を監視することとする。よって/etc/inittab に追加された以下の行を削除する必要 がある。 

 リスト 3‑62 /etc/inittab の削除項目  SV:123456:respawn:/command/svscanboot  

 

(C) djbdns のインストール 

djbdns のインストール作業については、特権シェル環境において実行する。 

なお、デフォルトでは djbdns のバイナリは/usr/local 以下にインストールされる が、ここではインストール先を/usr/local/djbdns に変更するため conf‑home ファイ ルを変更する