4.1 OSのセキュア化
前のページへ
次のページへ

4.1.1 Solarisのインストール

1) 事前調査とプランニング

OSをインストールする前に、セキュアなSolarisサーバーを構築するための調査とプランニングを行う必要がある。本モデルでは、基本的なセキュリティレベルを確保するために次のような条件を考慮する。

ア) Solaris OSのバージョン

Solaris OSには複数のバージョンがあり、それぞれサポートが行われている(注1)

セキュアなシステムを構築する際には、OSの導入時においていくつか注意すべき点がある。まず、構築開始時点で最新のOSを選択することである。また、Solaris 8のように1つのOSに複数のバージョン(注2)が存在する場合は、最新のバージョンを使用する。これは、新しいバージョンで、それまでに発見された問題点が解消されているためである(注3)。このようなことから、構築時において可能な限り最新版を使用する。

上の点をふまえ、本モデルでは以下のようにOSのバージョンを選定する。

  (注1) 本コンテンツ作成時点においてSun Microsystemsのサポートが続けられているOSは、古い順にSolaris 2.5、Solaris 2.6、Solaris 7、Solaris 8である。  
  (注2) Solaris 8は、現在3ヶ月毎にUpdate Releaseが行われている。  
  (注3)

Solaris 8には「MU(Maintenance Update)」が存在しており、これはある時点のUpdate Releaseを新しいUpdate Release相当にする差分パッチクラスタ(複数のパッチをまとめたもの)で、継続的または複数リリースされている。現時点でリリースされているMUは以下のとおりである。

  • MU1:Solaris 8の初版リリースをSolaris 8 6/00相当にUpdateするMU
  • MU2:10/01より前のSolaris 8をSolaris 8 10/00相当にUpdateするMU
  • MU3:1/01より前のSolaris 8をSolaris 8 1/01相当にUpdateするMU
  • MU4:4/01より前のSolaris 8をSolaris 8 4/01相当にUpdateするMU
  • MU5:7/01より前のSolaris 8をSolaris 8 7/01相当にUpdateするMU
  • MU6:10/01より前のSolaris 8をSolaris 8 10/01相当にUpdateするMU

MUには新しいUpdate Releaseで追加される新機能やそれまでの各種問題点のパッチが含まれている。ただし、MUを適用しても完全に新しいUpdate Releaseと同等のバージョンにはなりえないため、本モデルでは、MUを適用範囲外とする。また、本モデルではセキュリティ対策を対象としているので、セキュリティの問題が発生した際は、その対策としてリリースされるSecurity Patchを適用する。

 

イ) ハードディスク

OSのファイルシステムとして利用するハードディスクの領域をパーティションと呼び、パーティションを使用目的ごとに分割、割り当てた(配置)ものをスライスと呼ぶ。また、これらの設定はOSのインストール時に実施する。

パーティションは、Solaris OSで使用するハードディスクを選択し、選択したハードディスク全体を1つまたは1部分を1つのパーティションで使用するか、1部を使用するか、複数のパーティションとして使用するかを設定する。Solarisで使用可能なハードディスクが複数ある場合は、それぞれについて同様の設定を行う。

Solaris OSのインストール時に標準で配置されるスライスの構成は、以下の2つで、それぞれのサイズは、自動または任意に指定することができる。

この標準スライスの配置でOSをインストールした場合、インストールされるすべてのファイルと、インストール後に作成されるすべてのファイルが1つのスライス「/(ルート)」に保存される(単一スライス構成)。そのような状態でシステムを運用すると、いくつかの問題が発生する可能性がある。そのひとつにログのオーバーフローがある。syslogのようなログシステムによって記録される各種ログのサイズは、時間と共に増加する。単一スライス構成の場合、ログのサイズはスライスの空き領域がなくなるまで増加し、OSの動作に障害が発生する(注4)このような問題の発生を防止するためにも、スライスを使用目的別に分け、配置する必要がある。

  (注4) 攻撃者が攻撃対象サーバーのログのサイズを意図的に肥大化させる攻撃を行う事もある。  

本モデルではTable 4.1に示したスライス配置を適用する。なお、サイズについては各運用条件に適したサイズを選択する。

Table 4.1 本モデルのスライス配置

スライス 説明
/(ルート)
ファイルシステムの起点
/var システムログファイル、メール、プリントなどのスプール
/usr ユーザーコマンド、システムコマンド他
/opt アプリケーション
/export/home ホームディレクトリ(一般ユーザ用)
swap スワップ領域

ウ) OS以外で必要なソフトウェア

本モデルでは、サーバーサービスのインストールに必要なソフトウェア(Table 4.2)を導入する。

Table 4.2 インストールソフトウェア一覧

ソフトウェア名 詳細 パッケージ名 入手先
SUN C Compiler Tools
    Install Media
  CCS tools bundled with SunOS SUNWbtool Install Media
  Archive Libraries SUNWarc Install Media
  SunOS Header Files SunOS Header Files Install Media
  Sun WorkShop Bundled libm SUNWlibm Install Media
  Sun WorkShop Bundled shared libm SUNWlibms Install Media
  Solaris Bundled tools SUNWsprot Install Media
  Programming Tools SUNWtoo Install Media
  SPARCompilers Bundled libC SUNWlibC Install Media
  Source Compatibility, (Usr) SUNWscpu Install Media
SUN Online Manual Pages   SUNWman Install Media
GNU C Compiler   SMCgcc3 SUN-SITE
binutils   SMCbinut SUN-SITE
gzip   SMCgzip SUN-SITE

Table 4.2のソフトウェアは、Solaris 8のインストールメディア、もしくは下記サイトから入手可能である。

  SUN-SITE:
   ftp://sunsite.sut.ac.jp/

開発環境(コンパイラ)

本モデルで取り上げているApacheやBINDなどのソフトウェアをSolaris OS上で動作させるには、それらがバイナリ実行形式である必要がある。このバイナリ実行形式をSolarisにインストールするには大きく2つの方法がある。ひとつはバイナリ実行形式を直接インストールする方法(パッケージソフトウェアのインストール)と、本モデルで取り上げているような、自身の環境下でソースプログラムをコンパイルし、バイナリ実行形式を生成する方法である。この後者の方法でソフトウェアをインストールする場合、ソースプログラムをコンパイルするために開発環境(コンパイラ)が必要である。

Solarisを含むUNIX系OSには、大別してフリー(オープンソースライセンス)と商用の開発環境が提供されている。Solarisでは、それぞれ代表的な開発環境として「GCC(GNU C Compiler)」と「Forte」があり、本モデルでは「GCC」を取り上げ解説をしている。

 GCC Home Page:
  http://gcc.gnu.org/

 FORTE TOOLS:
  http://www.sun.co.jp/forte/

本モデルでは、サーバーサービスを提供するSolarisに開発環境をインストールしているが、この状態のままサービス提供を行うと、悪意あるユーザに悪用されてしまう危険性があるので、開発環境の取り扱いには注意が必要である(注5)。開発環境の悪用防止を考慮した、ソフトウェアのインストール方法とサーバー運用には次のようなものが考えられる。

  • パッケージソフトウェアでインストール
    ソフトウェアのインストールに開発環境を利用せず、パッケージソフトウェアからソフトウェアをインストールする(Solarisでは、多くのソフトウェアがパッケージ形式で提供されている)。
  • 別マシンでソフトウェアをコンパイル
    公開サーバーとは別に開発環境用サーバーを構築し、そのサーバーでソースプログラムからバイナリ実行形式を生成する。その後、サービス提供に必要なファイル一式(バイナリ実行形式、設定ファイル、ライブラリなど)を公開サーバーにコピーする。    
  • 開発環境のアンインストール
    公開サーバーでサーバーサービス構築後、サーバーを公開する前に、サーバーから開発環境をアンインストールする。
  • 別ハードディスクに開発環境をインストール
    別ハードディスク(システムがインストールされているハードディスクとは別のもの)に開発環境をインストールし、ソフトウェアをインストールするときにマウントし、サーバーを公開するときはアンマウントする。
  (注5) 開発環境が存在するシステムに侵入されてしまうと、既存のアプリケーションを不正な処理を含んだものに再構築されたり、環境に適した不正プログラムを生成されてしまう危険性がある。しかしながら、システムに開発環境が存在しなくとも、この種の危険性を必ずしも回避することができるわけではない。例えば、侵入者がroot権限を奪取してしまえば、侵入したシステムで開発環境を構築することも可能になってしまう。
 

2) Solarisの最小インストール

セキュリティを向上させるために、システムの運用上、不必要なサービスやアプリケーションを無効化または削除する。これをシステムの最小化と呼ぶ。Solarisの場合、インストール時に「Entire Solaris Software Group Plue OEM」を選択すると、すべてのパッケージがインストールされてしまうので、OSを稼動させるための最小限インストールである「core system」をインストール時に選択する。その上で、不必要なサービスやアプリケーションが残っているなら、別途それらを無効化または削除する。インストール時のソフトウェアグループの選択オプションに関しては、Table 4.3を参照する。

Table 4.3 インストール時のソフトウェアグループ選択

パッケージ名 内容(概要)
core system
Solarisを稼動させるために必要最小限のパッケージ
End User Solaris Software Group エンドユーザ用途のパッケージ
Developer Solaris Software Group 開発者用途のパッケージ
Entire Solaris Software Group Solaris OS CD-ROMに含まれるパッケージ全て
Entire Solaris Software Group Plue OEM Solarisのパッケージ全て

3) パッチの適用

Solarisにおいてバグやセキュリティ上の問題が発見された場合、それらを修正するオペレーティングシステムパッチがリリースされる。オペレーティングシステムパッチは一般的なパッチとセキュリティ関連のパッチに分類されており、前者は推奨パッチ、後者はセキュリティパッチとしてリリースされている。

パッチに関する情報やパッチ本体は、SUN Microsystems提供のSun Solve CD-ROMまたは以下のサイトから入手できる。

  SUN Solve Online:
   http://sunsolve.sun.co.jp/

運用しているシステムに関係するパッチがリリースされた場合は速やかにパッチを適用するべきであるが、稼働中のシステムに直接パッチを適用するとシステムの運用に問題が発生する可能性があるため、いくつかの手順を経て適用することが望ましい。また具体的な手順については「8.1.2 セキュリティ維持作業」の「2) パッチ適用」を参照する。

ここでは、セキュリティパッチの適用方法を解説する。上記のサイトよりパッチを入手後、以下のア)からウ)の手順でパッチを適用する。

ア) システム実行レベルの変更

パッチを適用するために、システムの実行レベルを通常サービスを提供しているレベル2(マルチユーザモード)から、メンテナンスモードであるレベル1(シングルユーザモード)へ変更する。シングルユーザモードでシステムを起動するためには、以下のコマンドを実行する。

---シングルユーザモードへ---
# cd /
# sync ; sync ; sync ; shutdown -y -is -g0

---システムログイン後、シングルユーザモードであることを確認---
# who -r
. run-level S Mar 16 12:41 S 1 3

イ) パッチの適用

以下の手順で、入手した圧縮ファイルを解凍し、「patchadd」コマンドを利用してパッチを適用する。ここでは、ZIP形式で圧縮されているパッチの適用方法を解説する。Solarisのパッチは.zipファイル形式以外にも、.Zファイル形式や.gzファイル形式などで配布されているので、入手したファイルの圧縮形式により異なる解凍方法を実施する必要がある。

---入手パッチファイルの解凍---
# unzip <パッチID>.zip

---パッチの適用---
---パッチIDは「6桁のパッチ番号-バージョン番号」から構成される---
# patchadd <パッチID>

/var/sadm/patch/<パッチID>/logファイルにパッチ適用時のログが記録されるので、ファイルの内容からパッチが正常に適用されたことを確認する。

また、「patchadd -p」コマンドでシステムへの適用済みパッチ情報一覧が参照でき、「patchrm <パッチID>」コマンドで適用済みパッチがアンインストール可能である。

ウ) システムの再起動

システムの通常運用を開始するために、以下のコマンドでシステムを再起動(マルチユーザモードで再起動)する。

---システムの再起動---
# cd /
# sync ; sync ; sync ; shutdown -y -i6 -g0

4) OpenBoot PROMセキュリティモード

SPARCアーキテクチャのシステムはOpenBoot PROMセキュリティモードを備えている。OpenBootはSPARCアーキテクチャのハードウェアとSolaris OSの間に位置し、SPARCシステムの起動情報(どこから起動するか)やSPARCハードウェアをテストするような、組み込みコマンドが含まれている。

OpenBootによってOSの起動先の変更などが可能であるため、異なるメディア (CD-ROMなど)からOSを起動して、既存システムのディスク内容を参照や改ざんなどをされてしまう危険性がある。また、稼動しているSolaris OSのコンソール上でキーボードの「Stop」と「A」キーを押すことでOSを強制終了させて、OpenBootにアクセスできる機能がある。これらの機能をア)からウ)の方法で防止する。また、この設定は、OS再起動後に有効となる。

ア) OpenBoot PROMのセキュリティモードを変更

OpenBoot PROMセキュリティモードを変更するには、下記の2つの方法がある。

Table 4.4 OpenBoot PROMセキュリティモード

モード 内容
null
OpenBootの使用に制限が無い
command boot、goコマンド以外でパスワードが必要
full goコマンド以外でパスワードが必要

イ) OpenBoot PROMパスワードを変更

OpenBoot PROMのパスワードを変更するには、下記の2つの方法がある。

ウ) 「Stop」と「A」キーでOSの強制終了を禁止

「Stop」と「A」キーで、Solaris OSを強制終了できないようにする。 Solaris OSにroot権限でloginし、「/etc/default/kbd」ファイルを以下のように編集する。

KEYBOARD_ABORT=disable

 

前のページへ
目次へ
次のページへ
第4章の目次
第4章の目次
セキュア化のための設定


Copyright ©   2002 Information-technology Promotion Agency, Japan.  All rights  reserved.