|
4.1 OSのセキュア化
|
||
| 前のページへ | ||
OSをインストールする前に、セキュアなSolarisサーバーを構築するための調査とプランニングを行う必要がある。本モデルでは、基本的なセキュリティレベルを確保するために次のような条件を考慮する。
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は以下のとおりである。
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 | スワップ領域 |
本モデルでは、サーバーサービスのインストールに必要なソフトウェア(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: FORTE TOOLS: 本モデルでは、サーバーサービスを提供するSolarisに開発環境をインストールしているが、この状態のままサービス提供を行うと、悪意あるユーザに悪用されてしまう危険性があるので、開発環境の取り扱いには注意が必要である(注5)。開発環境の悪用防止を考慮した、ソフトウェアのインストール方法とサーバー運用には次のようなものが考えられる。
|
セキュリティを向上させるために、システムの運用上、不必要なサービスやアプリケーションを無効化または削除する。これをシステムの最小化と呼ぶ。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のパッケージ全て |
Solarisにおいてバグやセキュリティ上の問題が発見された場合、それらを修正するオペレーティングシステムパッチがリリースされる。オペレーティングシステムパッチは一般的なパッチとセキュリティ関連のパッチに分類されており、前者は推奨パッチ、後者はセキュリティパッチとしてリリースされている。
パッチに関する情報やパッチ本体は、SUN Microsystems提供のSun Solve CD-ROMまたは以下のサイトから入手できる。
SUN Solve Online:
http://sunsolve.sun.co.jp/
運用しているシステムに関係するパッチがリリースされた場合は速やかにパッチを適用するべきであるが、稼働中のシステムに直接パッチを適用するとシステムの運用に問題が発生する可能性があるため、いくつかの手順を経て適用することが望ましい。また具体的な手順については「8.1.2 セキュリティ維持作業」の「2) パッチ適用」を参照する。
ここでは、セキュリティパッチの適用方法を解説する。上記のサイトよりパッチを入手後、以下のア)からウ)の手順でパッチを適用する。
パッチを適用するために、システムの実行レベルを通常サービスを提供しているレベル2(マルチユーザモード)から、メンテナンスモードであるレベル1(シングルユーザモード)へ変更する。シングルユーザモードでシステムを起動するためには、以下のコマンドを実行する。
|
---シングルユーザモードへ--- ---システムログイン後、シングルユーザモードであることを確認--- |
以下の手順で、入手した圧縮ファイルを解凍し、「patchadd」コマンドを利用してパッチを適用する。ここでは、ZIP形式で圧縮されているパッチの適用方法を解説する。Solarisのパッチは.zipファイル形式以外にも、.Zファイル形式や.gzファイル形式などで配布されているので、入手したファイルの圧縮形式により異なる解凍方法を実施する必要がある。
|
---入手パッチファイルの解凍--- ---パッチの適用--- |
/var/sadm/patch/<パッチID>/logファイルにパッチ適用時のログが記録されるので、ファイルの内容からパッチが正常に適用されたことを確認する。
また、「patchadd -p」コマンドでシステムへの適用済みパッチ情報一覧が参照でき、「patchrm <パッチID>」コマンドで適用済みパッチがアンインストール可能である。
システムの通常運用を開始するために、以下のコマンドでシステムを再起動(マルチユーザモードで再起動)する。
| ---システムの再起動--- # cd / # sync ; sync ; sync ; shutdown -y -i6 -g0 |
SPARCアーキテクチャのシステムはOpenBoot PROMセキュリティモードを備えている。OpenBootはSPARCアーキテクチャのハードウェアとSolaris OSの間に位置し、SPARCシステムの起動情報(どこから起動するか)やSPARCハードウェアをテストするような、組み込みコマンドが含まれている。
OpenBootによってOSの起動先の変更などが可能であるため、異なるメディア (CD-ROMなど)からOSを起動して、既存システムのディスク内容を参照や改ざんなどをされてしまう危険性がある。また、稼動しているSolaris
OSのコンソール上でキーボードの「Stop」と「A」キーを押すことでOSを強制終了させて、OpenBootにアクセスできる機能がある。これらの機能をア)からウ)の方法で防止する。また、この設定は、OS再起動後に有効となる。
OpenBoot PROMセキュリティモードを変更するには、下記の2つの方法がある。
Solaris OSにroot権限でloginし「eeprom」コマンドを使用する。設定可能なモードは3種類あるが、ここでは「command」モードに設定する。
|
$ su |
OpenBootコンソール上で「setenv」を使用する。PROMブートが終了し、「ok」プロンプトが表示された後に続いて以下のコマンドを入力する。
|
ok setenv
security-mode command |
Table 4.4 OpenBoot PROMセキュリティモード
| モード | 内容 |
| null |
OpenBootの使用に制限が無い |
| command | boot、goコマンド以外でパスワードが必要 |
| full | goコマンド以外でパスワードが必要 |
OpenBoot PROMのパスワードを変更するには、下記の2つの方法がある。
Solaris OSにroot権限でloginし、「eeprom」コマンドを使用して、OpenBoot PROMパスワードを変更する。
|
$ su |
OpenBootコンソール上で「setenv」を使用して、OpenBoot PROMパスワードを変更する。PROMブートが終了し、「ok」プロンプトが表示された後に続いて以下のコマンドを入力する。
|
ok
setenv security-password <パスワードを指定>(注6) |
| (注6) | OpenBoot PROMパスワードはrootパスワードとの関連は無い。rootパスワードとは別のパスワードを設定することを推奨する。 |
「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.