Solaris のシステム管理 (セキュリティサービス)

第 7 章 自動セキュリティー拡張ツールの使用 (手順)

この章では、自動セキュリティー拡張ツール (ASET) を使用して、システムファイルおよびディレクトリへのアクセスを監視または制限する方法について説明します。

この章で説明する手順は次のとおりです。

ASET よりも広汎なツールとしては、Sun Security Toolkit を使用してください。Sun Security Toolkit は、Solaris システムの強化と最小化のためのフレームワークを提供します。このキットには、プロファイリングツール、レポートツール、取り消し機能などが含まれます。このツールキットは無料であり、Sun の Web サイト http://www.sun.com/software/security/jass からダウンロードできます。この Web サイトでは、関連するオンラインドキュメントもリンクされています。

このツールキットの詳細は、『Securing Systems with the Solaris Security Toolkit』(Alex Noordergraaf、Glenn Brunette 共著、ISBN 0-13-141071-7、2003 年 6 月発行) を参照してください。このドキュメントは、Sun Microsystems Press によって発行されている Sun BluePrints Series の 1 つです。

自動セキュリティー拡張ツール (ASET)

Solaris オペレーティングシステム には、ASET が組み込まれています。ASET を使用すると、ほかの場合には手動で実行する作業が自動的に実行され、システムのセキュリティーを監視して制御できます。

ASET セキュリティーパッケージには、システムのセキュリティーを制御して監視できるように、自動管理ツールが組み込まれています。ASET を実行するセキュリティーレベルには、低レベル、中レベル、または高レベルを指定できます。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセスは減少し、システムセキュリティーが厳しくなります。

ASET には 7 つのタスクがあり、各タスクがシステムファイルに対して特定の検査と調整を行います。ASET のタスクはファイルのアクセス権を厳しくし、重要なシステムファイルの内容にセキュリティー上の弱点がないかどうかを確認して、重要な領域を監視します。ASET では、ゲートウェイシステムとして機能するシステムにファイアウォールシステムの基本要件を適用し、ネットワークも保護できます。詳細は、「ファイアウォールの設定」を参照してください。

ASET は、構成用のマスターファイルを使用します。マスターファイルやレポートなどの ASET ファイルは、/usr/aset ディレクトリにあります。これらのファイルは、サイトの特定の要件に合わせて変更できます。

各タスクは、検出されたセキュリティー上の弱点と、タスクがシステムファイルに対し て行った変更を示すレポートを生成します。最上位のセキュリティーレベルで実行すると、ASET はシステムセキュリティー上のすべての弱点を変更しようとします。潜在的なセキュリティー問題を解決できない場合、ASET は問題の存在を報告します。

ASET セッションを起動するには、/usr/aset/aset コマンドを対話的に使用します。ASET を定期的に実行する場合は、crontab ファイルにエントリを指定します。

ASET のタスクはディスクをかなり使用するため、通常の動作の妨げになることがあります。システム性能への影響を最小限度に抑えるために、24 時間ごとまたは 48 時間ごとに深夜など、システムの稼働レベルがもっとも低いときに ASET を実行するようにスケジュールしてください。

ASET のセキュリティーレベル

ASET は、 低、中、高の 3 つのセキュリティーレベルのいずれかで動作するように設定できます。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセスが減少し、システムのセキュリティーが厳しくなります。これらの機能には、ユーザーによるファイルアクセスを制限せずにシステムセキュリティーを監視する最低レベルから、システムが完全にセキュリティー保護される最高レベルまで、アクセス権が段階的に厳しくなります。

次の表で、この 3 つのセキュリティーレベルの概要について説明します。

セキュリティーレベル 

説明 

低 

システムファイルの属性が標準リリース値に設定されることが保証されます。ASET は複数の検査を実行し、セキュリティー上の潜在的な弱点を報告します。低レベルでは、ASET は動作せず、システムサービスは影響を受けません。

中 

ほとんどの環境で十分にセキュリティーが制御されます。ASET はシステムファイルとパラメータの設定の一部を変更し、システムアクセスを制限し、セキュリティー上の攻撃によるリスクを減らします。ASET は、セキュリティー上の弱点と、アクセスを制限するために行った変更を報告します。中レベルでは、ASET はシステムサービスに影響しません。

高 

システムに高度なセキュリティーが適用されます。ASET は多数のシステムファイルとパラメータの設定を調整して、アクセス権を最小限度に抑えます。ほとんどのシステムアプリケーションとコマンドは、正常に機能します。ただし、高レベルでは、セキュリティーがほかのシステムの動作より優先されます。


注 –

管理者がセキュリティーレベルを下げない限り、ASET によってファイルのアクセス権が変更されてファイルの安全性が低くなるということはありません。管理者が意図的にシステムを ASET 実行前の設定に戻すという場合もあります。


ASET のタスク一覧

この節では、ASET のタスクについて説明します。管理者は、ASET の各タスクを理解しておく必要があります。ASET の目的と処理、ASET が影響を与えるシステムコンポーネントなどを理解することで、レポート内容を判断し、効果的に活用できます。

ASET のレポートファイルには、各 ASET タスクで検出された問題をできるだけ詳細に記述するメッセージが含まれています。これらのメッセージによって、問題を診断して解決できます。ただし、ASET を活用するには、システム管理とシステム構成要素を全般的に理解していることが前提となります。システム管理者になったばかりのユーザーは、ほかの Solaris システム管理マニュアルを参照することをお勧めします。また、関連するマニュアルページを参照して、ASET 管理の概要を把握するとよいでしょう。

taskstat ユーティリティーは、完了したタスクとまだ実行中のタスクを識別します。完了したタスクごとにレポートファイルが生成されます。taskstat ユーティリティーの詳細は、taskstat(1M) を参照してください。

システムファイルのアクセス権の調整

このタスクでは、システムファイルのアクセス権を指定したセキュリティーレベルに設定します。このタスクは、システムのインストール時に実行されます。以前に設定したレベルをあとから変更する場合は、このタスクを再度実行してください。低セキュリティーレベルでは、アクセス権は開放型の情報共有環境に適した値に設定されています。中セキュリティーレベルでは、アクセス権はほとんどの環境に十分なセキュリティーが適用される程度に厳しくなります。高セキュリティーレベルでは、アクセス権がもっとも厳しく制限されます。

このタスクによってシステムファイルのアクセス権やパラメータの設定に加えられた変更は、tune.rpt ファイル内にレポートされます。ASET がアクセス権を設定するときに調整するファイルの例は、「調整ファイルの例」を参照してください。

システムファイルの確認

このタスクでは、システムファイルが検査され、各ファイルと、マスターファイル内のそれらの記述とが比較されます。マスターファイルは、ASET がこのタスクを実行するときに初めて作成されます。マスターファイルには、指定したセキュリティーレベルの checklist によって適用されるシステムファイル設定が含まれています。

ファイルが確認されるディレクトリのリストは、セキュリティーレベルごとに定義されます。デフォルトのリストを使用するか、レベルごとに異なるディレクトリを指定してリストを変更できます。

ファイルごとに次の条件が確認されます。

ASET によって矛盾が見つかると、cklist.rpt ファイルに記録されます。このファイルには、システムファイルのサイズ、アクセス権、およびチェックサムの値について、マスターファイルと比較した結果が入っています。

ユーザーとグループの確認

このタスクでは、ユーザーアカウントとグループの整合性と完全性が確認されます。このタスクは、passwd ファイルと group ファイル内の定義を使用します。ローカルパスワードファイルと、NIS または NIS+ パスワードファイルが検査されます。NIS+ のパスワードファイルの問題はレポートされますが、解決はされません。

このタスクでは、次の違反が検査されます。

矛盾は、usrgrp.rpt ファイル内にレポートされます。

システム構成ファイルの確認

このタスクでは、ASET はあらゆるシステムテーブルを検査します。テーブルのほとんどは /etc ディレクトリに入っています。

次のシステム構成ファイルが検査されます。

ASET は、これらのファイルに関して各種の検査と変更を実行し、問題を sysconf.rpt ファイル内にレポートします。

環境変数の確認

このタスクでは、スーパーユーザー用とその他のユーザー用の PATH 環境変数と UMASK 環境変数がどのように設定されているかを検査します。この検査のために、/.profile/.login、および /.cshrc ファイルがチェックされます。

環境のセキュリティー状況を検査した結果は、env.rpt ファイル内にレポートされます。

eeprom の確認

このタスクでは、eeprom セキュリティーパラメータの値が検査され、適切なセキュリティーレベルに設定されていることを確認します。eeprom セキュリティーパラメータは、nonecommand、または full に設定できます。

ASET はこの設定を変更しませんが、推奨値を eeprom.rpt ファイル内にレポートします。

ファイアウォールの設定

このタスクでは、システムをネットワークリレーとして安全に使用できることが保証されます。「ファイアウォールシステム」で説明しているように、このタスクでは、ファイアウォール専用システムが設定され、内部ネットワークが外部の公共ネットワークから保護されます。このファイアウォールシステムでは、ネットワークが 2 つに分割されます。このとき、分割された各ネットワークは、互いに信頼されないネットワークとして通信します。ファイアウォールの設定タスクによって、インターネットプロトコル (IP) パケットを転送できなくなります。ファイアウォールによって、ルーティング情報も外部ネットワークから見えないように隠されます。

ファイアウォールのタスクはすべてのセキュリティーレベルで実行されますが、ファイアウォールとしての本来の機能は最上位レベルでのみ動作します。ASET を高セキュリティーレベルで実行するときでも、システムにはファイアウォール保護が不要であることがわかった場合は、asetenv ファイルを編集してファイアウォールタスクをはずすことができます。

行われた変更はすべて firewall.rpt ファイル内にレポートされます。

ASET 実行ログ

ASET を対話形式またはバックグラウンドで実行すると、実行ログが生成されます。デフォルトでは、ASET はログファイルを標準出力に生成します。実行ログは、ASET が指定された時刻に実行されたことを確認するもので、実行エラーメッセージも含まれています。aset -n コマンドを使用すると、ログを指定したユーザーに電子メールで配信できます。ASET オプションの一覧は、aset(1M) のマニュアルページを参照してください。

ASET 実行ログファイルの例


ASET running at security level low

Machine=example; Current time = 0325_08:00


aset: Using /usr/aset as working directory

Executing task list...
        firewall
        env
        sysconfig
        usrgrp
        tune
        cklist
        eeprom
All tasks executed. Some background tasks may still be running.

Run /usr/aset/util/taskstat to check their status:
     $/usr/aset/util/taskstat     aset_dir
Where aset_dir is ASET's operating directory, currently=/usr/aset

When the tasks complete, the reports can be found in:
     /usr/aset/reports/latest/*.rpt
You can view them by:
more /usr/aset/reports/latest/*.rpt 

実行ログはまず、ASET が実行されたシステムと時刻を示します。次に、開始したタスクの一覧を表示します。

「ASET のタスク一覧」で説明しているように、ASET はこれらのタスクごとにバックグラウンド処理を呼び出します。タスクは開始されると実行ログに一覧表示されます。この一覧は、タスクの完了を示しているわけではありません。バックグラウンドタスクの状態を確認するには、taskstat コマンドを使用します。

ASET レポート

ASET タスクから生成されたすべてのレポートファイルは、ディレクトリ /usr/aset/reports の下のサブディレクトリに入っています。この節では、/usr/aset/reports ディレクトリの構造と、レポートファイルを管理するためのガイドラインについて説明します。

ASET は、指定されたサブディレクトリにレポートファイルを格納し、レポートの生成日時を反映させます。この規則によって、ASET を実行するたびに変わるシステムの状態が記録されたレコードを順番に追跡できます。これらのレポートを監視し、比較して、システムセキュリティーの状況を判断できます。

次の図に reports ディレクトリ構造の例を示します。

図 7–1 ASET reports ディレクトリの構造

/usr/aset ディレクトリの下にある reports ディレクトリの例です。

この例では、2 つのレポートサブディレクトリを示しています。

サブディレクトリ名は、レポートの生成日時を示します。各レポートサブディレクトリ名の形式は次のとおりです。


monthdate_hour:minute

この場合、monthdatehourminute は、いずれも 2 桁の数値です。たとえば、0125_01:00 は 1 月 25 日の午前 1 時を表します。

2 つのレポートサブディレクトリには、それぞれ ASET を 1 度実行して、生成されたレポートの集合が含まれています。

latest ディレクトリは、常に最新レポートが入っているサブディレクトリを指すシンボリックリンクです。したがって、/usr/aset/reports/latest ディレクトリに移動すると、ASET で生成された最新レポートを見ることができます。このディレクトリには、最後に ASET を実行した各タスクのレポートファイルが入っています。

ASET レポートファイルの形式

各レポートファイルには、レポートを生成したタスクに基づいて名前が付けられます。次の表にタスクとそのレポートのリストを示します。

表 7–1 ASET のタスクと生成されるレポート

タスク 

レポート 

システムファイルのアクセス権の調整 (tune)

tune.rpt

システムファイルの確認 (cklist)

cklist.rpt

ユーザーとグループの確認 (usrgrp)

usrgrp.rpt

システム構成ファイルの確認 (sysconf)

sysconf.rpt

環境変数の確認 (env)

env.rpt

eeprom の確認 (eeprom)

eeprom.rpt

ファイアウォールの設定 (firewall)

firewall.rpt

各レポートファイル内で、メッセージの前後はバナー行で囲まれています。ASET の構成要素を誤って削除したり損傷したりすると、タスクが途中で終了することがあります。このような場合、通常はレポートファイルの末尾の方に、途中で終了した理由を示すメッセージが記録されています。

次にレポートファイル usrgrp.rpt の例を示します。


*** Begin User and Group Checking ***
 
Checking /etc/passwd ...
Warning! Password file, line 10, no passwd
:sync::1:1::/:/bin/sync
..end user check; starting group check ...
Checking /etc/group...
*** End User And group Checking ***

ASET レポートファイルの検査

ASET を最初に実行したときまたは再構成したときは、レポートファイルを詳細に検査する必要があります。再構成には、asetenv ファイル、masters サブディレクトリのマスターファイルを変更したり、ASET が動作するセキュリティーレベルを変更したりすることが含まれます。

このレポートには、ASET の再構成によって発生したエラーがすべて記録されます。レポートを詳しく確認すると、問題が発生した時点で対処して解決できます。

ASET レポートファイルの比較

構成上の変更やシステム更新がない期間中にレポートファイルを監視すると、レポートの内容が安定することがわかります。予期しなかった情報がレポートに含まれる場合は、diff ユーティリティーを使用してレポートを比較できます。

ASET マスターファイル

ASET のマスターファイル tune.hightune.lowtune.med、およびuid_aliases は、ディレクトリ /usr/aset/masters に入っています。ASET は、マスターファイルを使用してセキュリティーレベルを定義します。詳細は、asetmasters(4) のマニュアルページを参照してください。

調整ファイル

tune.lowtune.medtune.high マスターファイルでは、利用できる ASET セキュリティーレベルが定義されます。各ファイルでは、各レベルのシステムファイルの属性が指定され、比較と参照に使用されます。

uid_aliases ファイル

uid_aliases ファイルには、同じユーザー ID (UID) を共有する複数のユーザーアカウントの一覧が入っています。このような複数のユーザーアカウントがあると責任の所在があいまいになるため、通常は ASET が警告を出します。uid_aliases ファイル内で例外を一覧すると、この規則に例外を設けることができます。重複する UID を持つ passwd ファイル内のエントリを uid_aliases ファイル内で指定しておくと、これらのエントリは ASET でレポートされません。

複数のユーザーアカウントで同じ UID を共有しないでください。他の方法で目的を達成することを検討する必要があります。たとえば、複数のユーザーにアクセス権一式を共有させたい場合は、グループアカウントを作成できます。役割を作成することも可能です。UID の共有は、最後の手段としてほかの方法では目的を達成できない場合にだけ使用すべきです。

UID_ALIASES 環境変数を使用すると、別の別名ファイルを指定できます。デフォルトファイルは /usr/aset/masters/uid_aliases です。

確認リストファイル

システムファイルの確認に使用されるマスターファイルは、初めて ASET を実行するときか、セキュリティーレベルの変更後に ASET を実行するときに生成されます。

次の環境変数には、このタスクで確認するファイルを定義します。

ASET 環境ファイル (asetenv)

環境ファイル asetenv には、ASET タスクに影響する環境変数の一覧が入っています。一部の環境変数を変更すると、ASET の動作を修正することができます。asetenv ファイルの詳細は、asetenv(4) のマニュアルページを参照してください。

ASET の構成

この節では、ASET を構成する方法と、ASET が稼働する環境について説明します。

ASET の管理と構成は最小限ですみ、ほとんどの場合はデフォルト値で実行できます。ただし、ASET の処理や動作に影響する一部のパラメータを調整して、その特長を最大限に発揮させることができます。デフォルト値を変更する前に、ASET の機能と、ASET がシステムの構成要素に及ぼす影響を理解しておく必要があります。

ASET は、次の 4 つの構成ファイルに依存してタスクの動作を制御します。

環境ファイルの変更 (asetenv)

/usr/aset/asetenv ファイルには、2 つのメインセクションがあります。

ユーザーが構成可能なパラメータセクションは変更できます。ただし、内部環境変数セクションの設定は内部使用だけに限られ、変更できません。

ユーザーが構成可能なセクションのエントリを編集して、次の操作を行うことができます。

実行するタスクの選択: TASKS

ASET が実行する各タスクでは、システムセキュリティーの特定の領域が監視されます。ほとんどのシステム環境では、すべてのタスクでバランスがとれたセキュリティー範囲を提供する必要があります。ただし、1 つまたは複数のタスクを除外しても構いません。

たとえば、ファイアウォールタスクはすべてのセキュリティーレベルで実行されますが、本来の機能は最上位レベルでのみ動作します。ASET を高セキュリティーレベルで実行する場合でも、ファイアウォール保護は不要なときがあります。

管理者は、ファイアウォール機能を使用しないで高セキュリティーレベルで実行するように ASET を設定できます。このためには、asetenv ファイル内で環境変数の TASKS の一覧を編集します。デフォルトでは、TASKS の一覧にはすべての ASET タスクが含まれています。特定のタスクを削除するには、このファイルからそのタスクに関連する変数を削除します。この場合は、一覧から firewall 環境変数を削除することになります。次の一覧に ASET を実行すると、除外したタスクは実行されません。

次の例では、すべての ASET タスクが含まれる TASKS 一覧が表示されます。


TASKS=”env sysconfig usrgrp tune cklist eeprom firewall”

システムファイル確認タスクのディレクトリの指定: CKLISTPATH

システムファイル確認では、選択したシステムディレクトリ内のファイルの属性が確認されます。次の環境変数を使用して、どのディレクトリを確認するかを定義できます。

CKLISTPATH_LOW 変数は、低セキュリティーレベルで確認されるディレクトリを定義します。CKLISTPATH_MEDCKLISTPATH_HIGH 環境変数は、それぞれ中セキュリティーレベルと高セキュリティーレベルで同じように機能します。

セキュリティーレベルの低い環境変数を定義したディレクトリの一覧は、次にセキュリティーレベルの高い環境変数を定義したディレクトリの一覧のサブセットである必要があります。たとえば、CKLISTPATH_LOW に指定したディレクトリはすべて CKLISTPATH_MED に含めます。同様に、CKLISTPATH_MED に指定したディレクトリはすべて CKLISTPATH_HIGH に含めます。

これらのディレクトリに対して実行される確認は再帰的ではありません。ASET では、環境変数に明示的に指定されているディレクトリだけが確認されます。ASET では、そのサブディレクトリは確認されません。

これらの環境変数の定義を編集して、ASET に確認させたいディレクトリを追加または削除できます。これらの確認リストは、通常は毎日変更がないシステムファイルにのみ便利なことに注意してください。たとえば、一般にユーザーのホームディレクトリは動的な変化が大きすぎるので、確認リストの候補にはなりません。

ASET の実行スケジュールの指定: PERIODIC_SCHEDULE

ASET は対話形式で実行できます。また、-p オプションを使用して、ASET タスクの実行を指定した時刻に要求することもできます。ASET は、システム需要が少ないときに定期的に実行できます。たとえば、ASET は PERIODIC_SCHEDULE を照会して、ASET タスクの実行頻度と実行時刻を判断します。ASET を定期的に実行するように設定する方法については、「ASET を定期的に実行する方法」を参照してください。

PERIODIC_SCHEDULE の形式は、crontab エントリの形式と同じです。詳細は、crontab(1) のマニュアルページを参照してください。

別名ファイルの指定: UID_ALIASES

UID_ALIASES 変数は、共有 UID がリストされる別名ファイルを指定します。デフォルトファイルは /usr/aset/masters/uid_aliases です。

確認範囲を NIS+ テーブルまで拡張: YPCHECK

YPCHECK 環境変数は、ASET でシステム構成ファイルテーブルも確認するかどうかを指定します。YPCHECK はブール型変数です。YPCHECK には true または false しか指定できません。デフォルト値は false で、NIS+ テーブルの確認は無効になっています。

この環境変数の機能を理解するために、passwd ファイルに与える影響を考えてみてください。false に設定すると、ASET はローカルの passwd ファイルを確認します。true に設定すると、NIS+ の passwd テーブル内でシステムのドメインも確認されます。


注 –

ASET ではローカルファイルが自動的に修復されますが、NIS+ テーブル内の潜在的な問題はレポートされるだけです。NIS+ テーブルの変更は行いません。


調整ファイルの変更

ASET は、3 つのマスター調整ファイル tune.lowtune.medtune.high を使用して、重要なシステムファイルへのアクセス制限を緩めたり厳しくしたりします。この 3 つのマスターファイルは /usr/aset/masters ディレクトリにあり、環境に合わせて調整できます。詳細は、「調整ファイルの例」を参照してください。

tune.low ファイルは、アクセス権をデフォルトのシステム設定に適した値に設定します。tune.med ファイルは、これらのアクセス権をさらに制限し、tune.low に含まれていないエントリを追加します。tune.high ファイルは、アクセス権をさらに厳しく制限します。


注 –

調整ファイル内の設定を変更するには、ファイルのエントリを追加または削除します。アクセス権を現在の設定よりも制限が緩やかになるような値に設定しても意味がありません。システムセキュリティーを下位レベルに下げない限り、ASET がアクセス権の制限を緩和したことになりません。


ASET で変更されたシステムファイルの復元

ASET を初めて実行すると、元のシステムファイルが保存され保管されます。aset.restore ユーティリティーは、これらのファイルを復元します。また、ASET を定期的に実行するようにスケジュール指定している場合は、そのスケジュールを解除します。aset.restore コマンドは、ASET の操作ディレクトリ /usr/aset に入っています。

システムファイルに適用した変更は、aset.restore コマンドを実行すると失われます。

aset.restore コマンドは、次のような場合に使用します。

NFS システムを使用するネットワーク操作

通常、ネットワークの一部となっているシステム上でも、ASET はスタンドアロンモードで使用されます。スタンドアロンシステムのシステム管理者は、システムのセキュリティーを守る必要があるため、ASET の稼働と管理を通してシステム保護に当たります。

また、ASET は NFS 分散環境でも使用できます。ネットワーク管理者は、すべてのクライアントの各種管理タスクのインストール、実行、管理を担当します。複数のクライアントシステムにわたって ASET を管理しやすくするため、すべてのクライアントに一括して適用されるような構成変更を行えます。変更を一括して適用すると、各システムにログインして構成変更を繰り返す必要がなくなります。

ネットワークシステム上で ASET の設定方法を決めるときには、セキュリティー制御を誰に行わせるかを考える必要があります。たとえば、ユーザーに各自のシステムにおけるセキュリティーの一部を制御させることができます。また、セキュリティー制御の責任を 1 つにまとめることもできます。

各セキュリティーレベルの一括構成の提供

複数のネットワーク構成を設定する場合があります。たとえば、低セキュリティーレベルに設定したクライアント用に 1 つ、中レベルのクライアント用に 1 つ、さらに高レベルのクライアント用に 1 つのネットワーク構成を設定できます。

セキュリティーレベルごとに個別の ASET ネットワーク構成を作成する場合は、サーバー上に 3 つの ASET 構成を作成できます。この場合、レベルごとに 1 つずつ構成を作成することになります。各構成を該当するセキュリティーレベルのクライアントにエクスポートします。3 つの構成すべてに共通の ASET 構成要素は、リンクを使用して共有できます。

ASET レポートの収集

管理者は、サーバー上に ASET 構成要素を集中できるだけでなく、サーバー上に集中ディレクトリを設定してすべてのレポートを収集できます。クライアントは、スーパーユーザー特権のあるなしにかかわらずサーバーにアクセスできます。収集メカニズムを設定する方法については、「サーバー上で ASET レポートを収集する方法」を参照してください。

サーバー上でレポートを収集するように設定すると、すべてのクライアントに関するレポートを 1 箇所で検討できます。この方法は、クライアントがスーパーユーザー特権を持っているかどうかに関係なく使用できます。また、ユーザーに各自の ASET レポートを監視させたい場合は、ローカルシステム上にレポートディレクトリを残しておくこともできます。

ASET 環境変数

次の表にASET 環境変数と各変数で指定する値を示します。

ASETDIR

ASET の作業ディレクトリを指定します

ASETSECLEVEL

セキュリティーレベルを指定します

PERIODIC_SCHEDULE

定期的なスケジュールを指定します

TASKS

実行する ASET タスクを指定します

UID_ALIASES

別名ファイルを指定します

YPCHECK

NIS マップと NIS+ テーブルを確認するかどうかを指定します

CKLISTPATH_LOW

低セキュリティー用のディレクトリリストです

CKLISTPATH_MED

中セキュリティー用のディレクトリリストです

CKLISTPATH_HIGH

高セキュリティー用のディレクトリリストです

次の節で示す環境変数は、/usr/aset/asetenv ファイルにあります。ASETDIRASETSECLEVEL 変数はオプションです。これらの変数は、シェルから /usr/aset/aset コマンドを使用しなければ設定できません。他の環境変数は、ファイルを編集して設定できます。

ASETDIR 環境変数

ASETDIR は、ASET の作業ディレクトリを指定します。

C シェルからは、次のように入力します。


% setenv ASETDIR pathname 

Bourne シェルまたは Korn シェルからは、次のように入力します。


$ ASETDIR=pathname
$ export ASETDIR

pathname には ASET 作業ディレクトリの完全パス名を設定します。

ASETSECLEVEL 環境変数

ASETSECLEVEL 変数は、ASET タスクが実行されるセキュリティーレベルを指定します。

C シェルからは、次のように入力します。


% setenv ASETSECLEVEL level

Bourne シェルまたは Korn シェルからは、次のように入力します。


$ ASETSECLEVEL=level
$ export ASETSECLEVEL

上記のコマンドで、level を次のいずれかに設定できます。

low

低セキュリティーレベル

med

中セキュリティーレベル

high

高セキュリティーレベル

PERIODIC_SCHEDULE 環境変数

PERIODIC_SCHEDULE の値の形式は、crontab ファイルと同じです。変数の値は二重引用符で囲んだ 5 つのフィールドからなる文字列として指定します。各フィールドは次のように 1 つの空白文字で区切ります。


"minutes hours day-of-month month day-of-week"
minutes hours

開始時刻を (0 から 59) と時間 (0 から 23) で指定します。

day-of-month

ASET を実行する日付を 1 から 31 の値で指定します。

month

ASET を実行する月を 1 から 12 の値で指定します。

day-of-week

ASET を実行する曜日を 0 から 6 の値で指定します。日曜日が 0 になります。

ASET の定期的なスケジュールを作成するときは、次の規則が適用されます。

PERIODIC_SCHEDULE 変数のデフォルトエントリでは、ASET が毎日深夜 12:00 に実行されます。


PERIODIC_SCHEDULE=”0 0 * * *” 

TASKS 環境変数

TASKS 変数は、ASET で実行されるタスクを一覧表示します。デフォルトでは、7 つのタスクが次のようにすべて一覧されます。


TASKS=”env sysconfig usrgrp tune cklist eeprom firewall”

UID_ALIASES 環境変数

UID_ALIASES 変数は、別名ファイルを指定します。別名ファイルがあると、ASET は使用可能な複数の別名の一覧をこのファイル内で照会します。書式は UID_ALIASES=pathname です。pathname は、別名ファイルのフルパス名です。

デフォルトは次のとおりです。


UID_ALIASES=${ASETDIR}/masters/uid_aliases

YPCHECK 環境変数

YPCHECK 変数は、システムテーブルを確認するタスクを拡張して NIS または NIS+ テーブルを含めます。YPCHECK 変数はブール変数なので、true または false に設定されます。

デフォルトは false で、ローカルシステムテーブルが確認されます。


YPCHECK=false

CKLISTPATH_level 環境変数

3 つの確認リストパス変数は、システムファイルの確認タスクで確認されるディレクトリを一覧表示します。次の変数の定義は、デフォルトで設定されます。これらの定義は、さまざまなレベルの変数の関係を示しています。


CKLISTPATH_LOW=${ASETDIR}/tasks:${ASETDIR}/util:${ASETDIR}/masters:/etc
CKLISTPATH_MED=${CKLISTPATH_LOW}:/usr/bin:/usr/ucb
CKLISTPATH_HIGH=${CKLISTPATH_MED}:/usr/lib:/sbin:/usr/sbin:/usr/ucblib

確認リストパス環境変数の値は、シェルパス変数の値と似ています。シェルパス変数と同様に、確認リストパス環境変数はディレクトリ名のリストです。ディレクトリ名はコロンで区切ります。等号 (=) を使用すると、変数名にその値を設定できます。

ASET ファイルの例

この節では、調整ファイルや別名ファイルなどの ASET ファイルの例を示します。

調整ファイルの例

ASET は 3 つの調整ファイルを管理します。調整ファイル内の各エントリは 1 行に入っています。エントリ内のフィールドの順序は次のとおりです。


pathname mode owner group type 
pathname

ファイルのフルパス名

mode

アクセス権の設定を表す 5 桁の数値

owner

ファイルの所有者

group

ファイルのグループ

type

ファイルの形式

調整ファイルを編集するときは、次の規則が適用されます。

別名ファイルの例

別名ファイルには、同じユーザー ID を共有する別名の一覧が含まれています。

各エントリの書式は次のとおりです。

uid=alias1 =alias2=alias3 =...

uid

共有 UID。

aliasn

UID を共有するユーザーアカウント。

たとえば、次のエントリでは UID 0を一覧表示しています。この UID は、sysadm および root アカウントによって共有されています。

0=root=sysadm

ASET の実行 (作業マップ)

作業 

説明 

参照先 

ASET をコマンド行から実行します 

指定する ASET レベルにあるシステムを保護します。実行ログを表示して変化を確認します 

「ASET を対話的に実行する方法」

定期的に ASET をバッチモードで実行します 

cron ジョブを設定し、ASET がシステムを保護するようにします。 

「ASET を定期的に実行する方法」

バッチモードによる ASET の実行を停止します 

ASET cron ジョブを削除します。 

「ASET の定期的な実行を停止する方法」

ASET レポートをサーバーに保存します 

監視のためにクライアントから ASET レポートを収集し、中心的な場所に保存します。 

「サーバー上で ASET レポートを収集する方法」

ASET で変数を設定する方法は、「ASET 環境変数」を参照してください。ASET を構成する方法は、「ASET の構成」を参照してください。

ProcedureASET を対話的に実行する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、「RBAC の構成 (作業マップ)」を参照してください。

  2. aset コマンドを使用して ASET を対話的に実行します。


    # /usr/aset/aset -l level -d pathname
    
    level

    セキュリティーレベルを指定します。有効な値は lowmedium、または high です。デフォルト設定は low です。セキュリティーレベルの詳細は、「ASET のセキュリティーレベル」を参照してください。

    pathname

    ASET の作業ディレクトリを指定します。デフォルトは /usr/aset です。

  3. 画面に表示される ASET 実行ログを見て、ASET が動作していることを確認します。

    実行ログメッセージは、動作しているタスクを示します。


例 7–1 ASET を対話的に実行する

次の例では、デフォルトの作業ディレクトリを使用して低セキュリティーレベルで ASET を実行します。


# /usr/aset/aset -l low
======= ASET Execution Log =======
 
ASET running at security level low
 
Machine = jupiter; Current time = 0111_09:26
 
aset: Using /usr/aset as working directory
 
Executing task list ...
	firewall
	env
	sysconf
	usrgrp
	tune
	cklist
	eeprom
 
All tasks executed. Some background tasks may still be running.
 
Run /usr/aset/util/taskstat to check their status:
 /usr/aset/util/taskstat [aset_dir]
 
where aset_dir is ASET's operating
directory,currently=/usr/aset.
 
When the tasks complete, the reports can be found in:
 /usr/aset/reports/latest/*.rpt
 
You can view them by:
 more /usr/aset/reports/latest/*.rpt

ProcedureASET を定期的に実行する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、「RBAC の構成 (作業マップ)」を参照してください。

  2. 必要であれば、ASET を定期的に実行する時刻を設定します。

    システム需要が少ないときに ASET を実行します。/usr/aset/asetenv ファイル内の PERIODIC_SCHEDULE 環境変数を使用して、ASET を定期的に実行する時刻を設定します。デフォルトでは、時刻は深夜に設定されます。

    別の時刻を設定する場合は、/usr/aset/asetenv ファイル内の PERIODIC_SCHEDULE 変数を編集します。PERIODIC_SCHEDULE 変数の設定の詳細は、PERIODIC_SCHEDULE 環境変数」を参照してください。

  3. aset コマンドを使用してエントリを crontab ファイルに追加します。


    # /usr/aset/aset -p
    

    -p オプションは、決めた時刻に ASET の実行を開始するように /usr/aset/asetenv ファイル内の PERIODIC_SCHEDULE 環境変数に設定した行を crontab ファイルに挿入します。

  4. 次のコマンドを実行すると crontab エントリが表示され、ASET の実行スケジュールを確認できます。


    # crontab -l root
    

ProcedureASET の定期的な実行を停止する方法

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. crontab ファイルを編集します。


    # crontab -e root
    
  3. ASET エントリを削除します。

  4. 変更を保存して終了します。

  5. crontab エントリを表示して、ASET エントリが削除されていることを確認します。


    # crontab -l root
    

Procedureサーバー上で ASET レポートを収集する方法

  1. Primary Administrator 役割を引き受けるか、スーパーユーザーになります。

    Primary Administrator 役割には、Primary Administrator プロファイルが含まれます。役割を作成してユーザーに役割を割り当てるには、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

  2. サーバー上でディレクトリを設定します。

    1. /usr/aset ディレクトリに移動します。


      mars# cd /usr/aset
      
    2. rptdir ディレクトリを作成します。


      mars# mkdir rptdir
      
    3. rptdir ディレクトリに移動して、client_rpt ディレクトリを作成します。

      これにより、クライアント用のサブディレクトリ client_rpt が作成されます。レポートを収集するクライアントごとに、この手順を繰り返します。


      mars# cd rptdir
      mars# mkdir client_rpt
      

      次の例では、ディレクトリ all_reports とサブディレクトリ pluto_rpt および neptune_rpt が作成されます。


      mars# cd /usr/aset
      mars# mkdir all_reports
      mars# cd all_reports
      mars# mkdir pluto_rpt
      mars# mkdir neptune_rpt
      
  3. client_rpt ディレクトリを /etc/dfs/dfstab ファイルに追加します。

    このディレクトリには、読み取り権と書き込み権があります。

    たとえば、dfstab ファイル内の次のエントリは、読み取り権と書き込み権によって共有されます。


    share -F nfs -o rw=pluto /usr/aset/all_reports/pluto_rpt
    share -F nfs -o rw=neptune /usr/aset/all_reports/neptune_rpt
  4. dfstab ファイル内のリソースをクライアントが利用できるようにします。


    # shareall
    
  5. 各クライアント上でクライアントのサブディレクトリを、マウントポイント /usr/aset/masters/reports にサーバーからマウントします。


    # mount server:/usr/aset/client_rpt /usr/aset/masters/reports
    
  6. /etc/vfstab ファイルを編集して、ブート時にディレクトリを自動的にマウントするようにします。

    neptune 上の /etc/vfstab 内の次のエントリ例には、mars からマウントされるディレクトリ /usr/aset/all_reports/neptune_rpt と、neptune 上のマウントポイント /usr/aset/reports が一覧されています。ブート時には、vfstab 内に一覧されたディレクトリが自動的にマウントされます。


    mars:/usr/aset/all_reports/neptune.rpt /usr/aset/reports nfs - yes hard

ASET の問題の障害追跡

この節では、ASET によって生成されるエラーメッセージについて説明します。

ASET のエラーメッセージ


ASET failed: no mail program found.

原因:

ASET は実行ログをユーザーに送るように指示されましたが、メールプログラムが見つかりません。

対処方法:

メールプログラムをインストールしてください。


Usage: aset [-n user[@host]] in /bin/mail or /usr/ucb/mail.


Cannot decide current and previous security levels.

原因:

ASET は、今回と前回の呼び出しのセキュリティーレベルを判別できません。

対処方法:

現在のセキュリティーレベルがコマンド行オプションまたは ASETSECLEVEL 環境変数によって設定されているかどうかを確認してください。また、ASETDIR/archives/asetseclevel.arch の最終行に、以前のセキュリティーレベルが正しく反映されているかどうかを確認してください。これらの値が設定されていないか正しくない場合は、正しい値を入力してください。


ASET working directory undefined.


To specify, set ASETDIR environment variable or use command line option -d.


ASET startup unsuccessful.

原因:

ASET の作業ディレクトリが定義されていないか、正しく定義されていません。

対処方法:

ASETDIR 環境変数または -d コマンド行オプションを使用してエラーを訂正してから、ASET を再起動してください。


ASET working directory $ASETDIR missing.


ASET startup unsuccessful.

原因:

ASET の作業ディレクトリが定義されていないか、正しく定義されていません。ASETDIR 変数または -d コマンド行オプションによって、存在しないディレクトリが参照されている可能性があります。

対処方法:

正しいディレクトリ、つまり ASET ディレクトリ階層が入っているディレクトリが正しく参照されているかどうかを確認してください。


Cannot expand $ASETDIR to full pathname.

原因:

ASET が ASETDIR 変数または -d コマンド行オプションで指定されたディレクトリ名を完全パス名に展開できません。

対処方法:

ディレクトリ名が正しいか確認します。ユーザーがアクセス権を持つ既存のディレクトリをそのディレクトリが参照しているか確認してください。


aset: invalid/undefined security level.


To specify, set ASETSECLEVEL environment variable or use command line option -l, with argument= low/med/high.

原因:

セキュリティーレベルが定義されていないか、正しく定義されていません。lowmed、または high の値以外は定義できません。

対処方法:

ASETSECLEVEL 変数または -l コマンド行オプションを使用して、low、med、または high のいずれかの値を指定してください。


ASET environment file asetenv not found in $ASETDIR.


ASET startup unsuccessful.

原因:

ASET は asetenv ファイルを作業ディレクトリ内で見つけることができません。

対処方法:

ASET の作業ディレクトリ内に asetenv ファイルが入っているかどうかを確認してください。このファイルの詳細は、asetenv(4) のマニュアルページを参照してください。


filename doesn't exist or is not readable.

原因:

filename で指定されたファイルが存在しないか、読み取れません。この問題は、-u オプションを使用している場合に発生します。このオプションは確認するユーザーの一覧が入ったファイルを指定するために使用します。

対処方法:

-u オプションの引数が存在することと、その引数が読み取り可能であるかを確認してください。


ASET task list TASKLIST undefined.

原因:

asetenv ファイル内で定義されているはずの ASET タスクリストが定義されていません。asetenv ファイルが無効である可能性があります。

対処方法:

asetenv ファイルを検査してください。タスクリストが User Configurable セクションで定義されているかどうかを確認します。また、ファイルの他の部分をチェックして、ファイルが変更されていないことを確認します。有効な asetenv ファイルの内容については、asetenv(4) のマニュアルページを参照してください。


ASET task list $TASKLIST missing.


ASET startup unsuccessful.

原因:

asetenv ファイル内で定義されているはずの ASET タスクリストが定義されていません。asetenv ファイルが無効である可能性があります。

対処方法:

asetenv ファイルを検査してください。タスクリストが User Configurable セクションで定義されているかどうかを確認します。また、ファイルの他の部分をチェックして、ファイルが変更されていないことを確認します。有効な asetenv ファイルの内容については、asetenv(4) のマニュアルページを参照してください。


Schedule undefined for periodic invocation.


No tasks executed or scheduled. Check asetenv file.

原因:

-p オプションを使用して ASET のスケジュール指定が要求されましたが、環境変数 PERIODIC_SCHEDULEasetenv ファイル内で定義されていません。

対処方法:

asetenv ファイルの User Configurable セクションをチェックして、変数が定義されていることを確認してください。また、変数の書式が正しいかも確認してください。


Warning! Duplicate ASET execution scheduled.


Check crontab file.

原因:

ASET のスケジュールが複数回指定されています。つまり、ASET スケジュールがまだ有効な間に別のスケジュールを指定するように要求されています。複数のスケジュールが必要な場合は、このメッセージはエラーを示すものではなく、警告メッセージとなります。複数のスケジュールが必要な場合は、crontab コマンドを使用して、正しいスケジュール書式を使用する必要があります。詳細は、crontab(1) のマニュアルページを参照してください。

対処方法:

crontab コマンドを使用して、正しいスケジュールが有効になっていることを検証してください。ASET に関して不要な crontab エントリがないかどうかを確認してください。