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

3.  構築

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

3.5.3.  SMTP サーバー

ここでは、SMTP サーバーとして以下のパッケージに関する定義と設定の例を示す。 

sendmail  qmail  postfix 

3.5.3.1. sendmail 

sendmail については、2002 年 12 月において、http://www.sendmail.org から入手が可能 な sendmail 8.12.6 について実装と検証を行った。 

sendmail に付随して、BarklayDB が必要となるため、Sun Site からの入手が可能である、

BarklayDB 3.3.11 を利用した。 

(1) インストール 

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

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

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

$ cd /usr/local 

$ pkgadd ‑d db‑3.3.11‑sol8‑sparc‑local 

$ gzcat sendmail.8.12.6.tar.gz │ tar xvf ‑ 

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

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

ここでは、sendmail の実行ユーザ smmsp およびグループ smmsp を作成する(リスト  3‑82)。なお、簡易に構築するため特権シェル環境により行うが、ユーザとグループの 追加は admin 役割にて SMC を利用することでも可能である。 

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

# groupadd ‑g 25 smmsp 

# useradd ‑u 25 ‑g 25 ‑d / smmsp 

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

ここでは、sendmail 8.12.6 のコンパイルに必要となるライブラリのランタイム・

リンキング環境を設定する(リスト 3‑83)。 

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

# crle ‑u ‑l /usr/local/BerkeleyDB.3.3/lib 

# crle   

Configuration file [2]: /var/ld/ld.config      Default Library Path (ELF):   

/usr/lib:/usr/local/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.3.3/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:/usr/local/BerkeleyDB.3.3/lib ‑s  /usr/lib/secure 

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

ここでは、sendmail 8.12.6 のコンパイルとインストールを行う(リスト 3‑85)。 

なお、サイトに固有の構成ファイルを編集する。構成ファイルの例を以下に示す。 

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

リスト 3‑84 devtools/Site/site.config.m4  define(̀confINCDIRS', ̀‑I/usr/local/BerkeleyDB.3.3/include')  define(̀confLIBDIRS', ̀‑L/usr/local/BerkeleyDB.3.3/lib')  define(̀confMANROOT', ̀/usr/local/man/man') 

リスト 3‑85 sendmail の Build(primaryadmin 役割) 

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

# export PATH 

# cd /usr/local/sendmail‑8.12.6 

# ./Build 

# ./Build install 

実際のインスとレーションで NOTE が出力されたため指示に従い以下を実施した 

# cd /usr/local/sendmail‑8.12.6/obj.SunOS.5.8.sun4/mail.local 

# make force‑install 

実際のインスとレーションで NOTE が出力されたため指示に従い以下を実施した 

# cd /usr/local/sendmail‑8.12.6/obj.SunOS.5.8.sun4/rmail 

# make force‑install 

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

ここでは、sendmail.cf ファイルの生成とインストールを行う(リスト 3‑87)。 

なお、サイトに固有の定義ファイルの編集する。定義ファイルの例を以下に示す。 

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

リスト 3‑86 mc 定義ファイル  divert(‑1) 

divert(0)dnl 

VERSIONID(̀$Id: generic‑solaris.mc,v 8.13 2001/06/27 21:46:30 gshapiro Exp $') OSTYPE(solaris2)dnl 

DOMAIN(generic)dnl 

FEATURE(̀always̲add̲domain')dnl  MASQUERADE̲AS(̀tscorp.com')dnl  MASQUERADE̲DOMAIN(̀tscorp.com')dnl  FEATURE(̀masquerade̲entire̲domain')dnl  FEATURE(̀masquerade̲envelope')dnl 

FEATURE(̀access̲db',̀hash /etc/mail/access')dnl  FEATURE(̀blacklist̲recipients')dnl 

FEATURE(̀nouucp',̀reject')dnl  undefine(̀UUCP̲RELAY')dnl  undefine(̀BITNET̲RELAY')dnl 

define(̀confCF̲VERSION',̀ts‑single.mc‑20030108')dnl  define(̀confMAX̲MESSAGE̲SIZE',̀5242880')dnl 

define(̀confPRIVACY̲FLAGS',̀goaway')dnl  MAILER(local)dnl 

MAILER(smtp)dnl 

リスト 3‑87 sendmail.cf の Build(primaryadmin 役割) 

# ./Build ts‑single.cf  Using M4=/usr/ccs/bin/m4  rm ‑f ts‑single.cf 

/usr/ccs/bin/m4 ../m4/cf.m4 ts‑single.mc > ts‑single.cf ││ ( rm ‑f ts‑single.cf 

&& exit 1 ) 

*** WARNING: missing ‑T in argument of FEATURE(̀access̲db', hash  /etc/mail/access) 

chmod 444 ts‑single.cf 

# cp ‑p ts‑single.cf /etc/mail/sendmail.cf 

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

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

ここでは、定義ファイルの編集を行う。また、mailadmin 役割による編集が可能と なるように、定義ファイルの所有者を mailadmin に変更する(リスト 3‑88)。 

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

リスト 3‑88 定義ファイルの編集(primaryadmin 役割) 

# cd /etc/mail 

# chown mailadmin local‑host‑names access aliases 

# chmod 644 local‑host‑names access aliases 

リスト 3‑89 local‑host‑names  tscorp.com 

リスト 3‑90 access  Connect:localhost       RELAY 

Connect:tscorp.com      RELAY 

リスト 3‑91 access.db の生成(primaryadmin 役割) 

# makemap ‑v hash access.db < access  key=̀connect:localhost', val=̀RELAY'  key=̀connect:tscorp.com', val=̀RELAY' 

リスト 3‑92 aliases  Postmaster: admin 

MAILER‑DAEMON: postmaster  nobody: /dev/null 

リスト 3‑93 aliases.db の生成(primaryadmin 役割) 

# newaliases 

/etc/mail/aliases: 3 aliases, longest 10 bytes, 52 bytes total 

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

標準でインストールされている sendmail の起動スクリプトを利用することとし、こ れを編集する。admin 役割による編集が可能となるように、所有者を admin 役割に変 更する(リスト 3‑94)。 

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

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

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

$ cd /etc/init.d 

$ cp ‑p sendmail sendmail.org 

$ chown admin sendmail 

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

#!/bin/sysh 

setprof mailservice   

(2) ファイル 

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

表 3‑72 ファイル 

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

1 /etc/mail/*  N/A  N/A  N/A 

2 /usr/local/man/*  N/A  N/A  N/A  3  /usr/bin/newaliases  ‑> /usr/lib/sendmail      4  /usr/bin/mailq  ‑> /usr/lib/sendmail      5  /usr/bin/hoststat  ‑> /usr/lib/sendmail      6  /usr/bin/purgestat  ‑> /usr/lib/sendmail      7  /usr/bin/rmail  ‑> ./mail      8 /usr/bin/mail  ‑r‑xr‑xr‑x  bin  bin  9 /usr/bin/vacation  ‑r‑xr‑xr‑x  bin  bin  10 /usr/sbin/editmap  ‑r‑xr‑xr‑x  bin  bin  11 /usr/sbin/mailstats  ‑r‑xr‑xr‑x  bin  bin  12 /usr/sbin/makemap  ‑r‑xr‑xr‑x  bin  bin  13 /usr/sbin/praliases  ‑r‑xr‑xr‑x  bin  bin  14 /usr/lib/smrsh  ‑r‑xr‑xr‑x  bin  bin  15 /usr/lib/mail.local  ‑r‑xr‑xr‑x  bin  bin  16 /usr/lib/sendmail  ‑r‑xr‑sr‑x  root  smmsp  17 /var/spool/clientmqueue  drwxrwx‑‑‑  smmsp  smmsp  18 /var/spool/mqueue  drwx‑‑‑‑‑‑  root  bin  19 /var/mail  drwxdrwxrwt  root  mail 

 

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

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

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

シーの定義と設定を行う。 

この構成では、外部および内部のネットワークともに単一のラベルでのサービスに 対するアクセスを許可される。この場合、サービスに与える特権を少なくする最良の 方法は、サービスを形成するすべてのプロセスが同一のラベルで動作するようにする ことである。つまり MTA の機能を果たす sendmail および MDA の機能を果たす mail.local が共に、ネットワークからのアクセスを許可された同一のラベルで動作し ている必要がある。 

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

ADMIN_LOW PUBLIC ADMIN_HIGH

services

/var/spool

aliases etc.

syslog etc.

/var/mail mail.local sendmail

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

に対する許可範囲

  図 3‑29 基本的ラベル構成によるサービスのイメージ 

sendmail および mail.local のプロセスの SL は[PUBLIC SERVICES]とする。 

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

sendmail.cf および定義ファイルの SL は[ADMIN̲LOW]とし、ネットワークアク セスに関連するプロセス(sendmail、mail.local および派生するプロセス)

から読み込みのみが許可される。 

ただし、最小特権を考慮し、キューディレクトリおよびスープールディレク トリは[PUBLIC SERVICES]に変更する。 

(A) ファイル属性定義 

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

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

ところで、/var/spool/mqueue と/var/mail のディレクトリについて、標準のディ

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

レクトリを変更する必要はがないが、標準では MLD になっているので、これを SLD に変更する場合には、/var/spool/clientmqueue と同じ属性を適用する必要がある。 

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

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

1 /usr/lib/mail.local  ADMIN̲LOW  none  all  2 /usr/lib/sendmail  ADMIN̲LOW  none  all  3 /var/spool/clientmqueue  PUBLIC services N/A  N/A  4 /var/spool/mqueue  MLD(標準)  N/A  N/A  5 /var/mail  MLD(標準)  N/A  N/A 

次の管理に関わるファイルの属性をそれぞれのファイルに適用する。なお、実際 には初期設定から変更の必要はない。 

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

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

1 /usr/bin/mail  ADMIN̲LOW  none  none  2 /usr/bin/vacation  ADMIN̲LOW  none  none  3 /usr/sbin/editmap  ADMIN̲LOW  none  none  4 /usr/sbin/mailstats  ADMIN̲LOW  none  none  5 /usr/sbin/makemap  ADMIN̲LOW  none  none  6 /usr/sbin/praliases  ADMIN̲LOW  none  none  7 /usr/lib/smrsh  ADMIN̲LOW  none  none  8 /etc/mail/*  ADMIN̲LOW  N/A  N/A 

 

(B) プロセス属性定義 

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

ところで、ここでは sendmail のみの定義を行い mail.local の定義を行わないが、

その理由は mail.local が sendmail から起動されるため sendmail のセキュリティ属 性を継承することが可能であるためである。 

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

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

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

1 /etc/init.d/sendmail  root  (euid) 

sys  (egid) 

N/A N/A  all  2 /usr/lib/sendmail  root 

(uid) 

smmsp  (gid) 

PUBLIC  services

PUBLIC  services 

file̲chown  file̲mac̲read  net̲privaddr  proc̲setid  sys̲net̲config  sys̲suser̲compat 次の管理に関わる実行属性を管理用の mailcontrol プロファイルに追加する。 

ところで、ここでは sendmail の定義を行っているが、これは、sendmail にシン ボリックリンクをしている、newaliases、mailq、hoststats、purgestat を有効に するためのものである。 

表 3‑76 管理用プロセス属性 

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

1 /usr/lib/sendmail  root  (uid) 

N/A N/A  N/A  proc̲setid  sys̲suser̲compat 2 /usr/sbin/mailstats  root 

(uid) 

N/A N/A  N/A  N/A  3 /usr/sbin/makemap  root 

(uid) 

N/A N/A  N/A  N/A  4 /usr/sbin/praliases  root 

(uid) 

N/A N/A  N/A  N/A   

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

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

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

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

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

services 

PUBLIC  services 

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

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

services 

PUBLIC  services 

PUBLIC  services 

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

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

 

3.5.3.2. qmail 

qmail については、2002 年 12 月において、http://www.qmail.org から入手が可能な qmail‑1.03 について実装と検証を行った。 

(1) インストール 

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

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

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

$ cd /usr/local 

$ gzcat qmail‑1.03.tar.gz │ tar xvf ‑   

(A) ユーザとグループの追加 

qmail では、root の権限で動作するプロセスを最小限に抑えるため、タスク毎に ユーザが異なるプロセスが動作する。そのために必要なユーザおよびグループを作