この章では、自動セキュリティ拡張ツール (ASET) を使用して、システムファイルおよびディレクトリへのアクセスを監視または制限する方法について説明します。
この章で説明する手順は次のとおりです。
SunOS 5.x システムソフトウェアには、自動セキュリティ拡張ツール (ASET) が組み込まれています。ASET を使用すると、他の場合には手作業で実行する作業が自動的に実行され、システムのセキュリティを監視して制御できます。
ASET セキュリティパッケージには、システムのセキュリティを制御して監視できるように、自動管理ツールが組み込まれています。ASET を実行するとセキュリティレベルとして、低、中、または高レベルを指定できます。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセスが減少し、システムセキュリティが厳しくなります。
ASET に関連して 7 つのタスクがあり、それぞれがシステムファイルに対して特定のチェックと調整を行います。ASET のタスクはファイルのアクセス権を厳格にし、重要なシステムファイルの内容にセキュリティ上の弱点がないかどうかをチェックし、重要な領域を監視します。ASET は、ゲートウェイシステムとして機能するシステムにファイアウォールシステムの基本要件を適用し、ネットワークを保護できます (詳細は、「ファイアウォールの設定」を参照してください)。
ASET は、構成用のマスタファイルを使用します。マスタファイルやレポートなどの ASET ファイルは、ディレクトリ /usr/aset にあります。これらのファイルは、サイトの特定の要件に合わせて変更できます。
各タスクは、検出されたセキュリティ上の弱点と、システムファイルに対して行なった変更を示すレポートを生成します。上位のセキュリティレベルで実行すると、ASET はシステムセキュリティ上の弱点をすべて変更しようとします。潜在的なセキュリティ問題を解決できなければ、ASET は問題の存在を報告します。
/usr/aset コマンドを対話的に実行すると、ASET セッションを開始できます。また、crontab ファイルにエントリを追加すると、ASET を定期的に実行するように設定できます。
ASET のタスクはディスクをかなり使用するため、通常の活動の妨げになることがあります。システム性能に及ぼす影響を最小限度に抑えるために、24 時間ごとまたは 48 時間ごとに深夜など、システムの稼働レベルが最も低いときに ASET を実行するようにスケジュールしてください。
ASET は、低、中、高の 3 つのセキュリティレベルのいずれかで動作するように設定できます。上のレベルほど、ASET のファイル制御機能が増え、ファイルアクセスが減少し、システムのセキュリティが厳しくなります。これらの機能には、ユーザーによるファイルアクセスを制限せずにシステムセキュリティを監視する最低レベルから、システムが完全にセキュリティ保護される最高レベルまで、アクセス権が段階的に厳格になります。
次に、この 3 つのセキュリティレベルについて説明します。
低セキュリティ - このレベルでは、ファイルシステムの属性が標準リリース値に設定されることが保証されます。ASET は複数のチェックを実行し、セキュリティ上の潜在的な弱点を報告します。このレベルでは、ASET は動作せず、システムサービスは影響を受けません。
中セキュリティ - このレベルでは、ほとんどの環境で十分にセキュリティが制御されます。ASET はシステムファイルとパラメタの設定の一部を変更し、システムアクセスを制限し、セキュリティ上の攻撃によるリスクを減少させます。ASET は、セキュリティ上の弱点と、アクセスを制限するために行なった変更を報告します。このレベルでは、ASET はシステムサービスに影響しません。
高セキュリティ - このレベルでは、システムに高度なセキュリティが適用されます。ASET は多数のシステムファイルとパラメタの設定を調整して、アクセス権を最小限度に抑えます。ほとんどのシステムアプリケーションとコマンドは引き続き正常に機能しますが、このレベルではシステム動作よりもセキュリティ上の検討事項が優先されます。
セキュリティレベルを下げるか、システムを ASET 実行前の設定に意図的に戻さなければ、ASET によってファイルのアクセス権が緩められることはありません。
この節では、ASET のタスクについて説明します。レポートを解釈して活用するには、各 ASET のタスク、つまり、その目的、実行される処理、および影響を受けるシステム構成要素を理解しておく必要があります。
ASET のレポートファイルには、各 ASET タスクで検出された問題をできるだけ詳細に記述するメッセージが入っています。これらのメッセージを調べると、問題を診断して解決できます。ただし、ASET を活用するには、システム管理とシステム構成要素を全般的に理解していることが前提となります。管理者になったばかりの方は、他の SunOS 5.x システム管理マニュアルと関連するマニュアルページを参照して、ASET の管理の概要を把握してください。
taskstat ユーティリティは、完了したタスクとまだ実行中のタスクを識別します。完了したタスクごとにレポートファイルが生成されます。taskstat ユーティリティの詳細は、taskstat(1M) のマニュアルページを参照してください。
このタスクでは、システムファイルのアクセス権が指定したセキュリティレベルに設定されます。このタスクは、システムをインストールするときに実行されます。以前に設定したレベルを後から変更したい場合は、このタスクをもう一度実行してください。低セキュリティレベルでは、アクセス権は開放型の情報共有環境に適した値に設定されています。中セキュリティレベルでは、アクセス権はほとんどの環境に十分なセキュリティが適用される程度に厳格です。高セキュリティレベルでは、アクセスが厳しく制限されます。
このタスクによってシステムファイルのアクセス権やパラメタの設定に加えられた変更は、tune.rpt ファイル内でレポートされます。アクセス権を設定するときに ASET が参照するファイルの例については、「調整ファイル」を参照してください。
このタスクでは、システムファイルが検査され、マスタファイル内にリストされたファイルの記述と比較されます。マスタファイルは、ASET がこのタスクを実行すると初めて作成されます。マスタファイルには、指定したセキュリティレベル checklist によって適用されるシステムファイル設定が入っています。
ファイルがチェックされるディレクトリのリストは、セキュリティレベルごとに定義されます。デフォルトのリストを使用するか、レベルごとに異なるディレクトリを指定して変更できます。
ファイルごとに次の基準がチェックされます。
所有者とグループ
アクセス権ビット
サイズとチェックサム
リンク数
最終変更時刻
矛盾が見つかると、cklist.rpt ファイル内でレポートされます。このファイルには、システムファイルのサイズ、アクセス権、チェックサムの値、およびマスタファイルと比較した結果が入っています。
このタスクでは、passwd ファイルと group ファイル内で定義されているユーザーアカウントとグループの整合性と完全性がチェックされます。ローカルパスワードファイルと、NIS または NIS+ パスワードファイルがチェックされます。NIS+ パスワードファイルの問題はレポートされますが、解決されません。このタスクでは、次の違反がチェックされます。
重複する名前または ID
不正な形式によるエントリ
パスワードが付いていないアカウント
無効なログインディレクトリ
アカウント nobody
空のグループパスワード
NIS (または NIS+) サーバー上の /etc/passwd ファイル内のプラス記号 (+)
矛盾は usrgrp.rpt ファイル内でレポートされます。
このタスクの実行中に、ASET は各種システムテーブルをチェックしますが、そのほとんどは /etc ディレクトリに入っています。次のファイルがチェックされます。
/etc/default/login
/etc/hosts.equiv
/etc/inetd.conf
/etc/aliases
/var/adm/utmp
/var/adm/utmpx
/.rhosts
/etc/vfstab
/etc/dfs/dfstab
/etc/ftpusers
ASET は、これらのファイルに関して各種のチェックと変更を実行し、すべての問題を sysconf.rpt ファイル内でレポートします。
このタスクでは、root 用とその他ユーザー用の PATH 環境変数と UMASK 環境変数が /.profile、/.login、/.cshrc ファイル内でどのように設定されているかがチェックされます。
環境のセキュリティ状況をチェックした結果は、env.rpt ファイル内でレポートされます。
このタスクでは、eeprom セキュリティパラメタの値がチェックされ、適切なセキュリティレベルに設定されているかどうかが確認されます。eeprom セキュリティパラメタは、none、command、または full に設定できます。
ASET はこの設定を変更しませんが、推奨値を eeprom.rpt ファイル内でレポートします。
このタスクでは、システムをネットワークリレーとして安全に使用できることが保証されます。「ファイアウォールシステム」で説明したように、ファイアウォール専用システムが設定され、内部ネットワークが外部の公共ネットワークから保護されます。ファイアウォールシステムは、相互に信頼されない (untrusted) システムとしてアクセスし合う 2 つのネットワークを分離します。ハードウェアの設定作業によって、インターネットプロトコル (IP) パケットを転送できなくなり、ルーティング情報は外部ネットワークから隠されます。
ファイアウォールのタスクはすべてのセキュリティレベルで実行されますが、ファイアウォールとしての本来の機能は最上位レベルでのみ動作します。ASET を高セキュリティレベルで実行したいが、システムにはファイアウォール保護が不要であることがわかった場合は、asetenv ファイルを編集してファイアウォールタスクを除去できます。
行われた変更はすべて firewall.rpt ファイル内にレポートされます。
ASET を対話形式またはバックグラウンドで実行すると、実行ログが生成されます。デフォルトでは、ASET はログファイルを標準出力に生成します。実行ログは、ASET が指定された時刻に実行されたことを確認するもので、実行エラーメッセージも入っています。aset コマンドの -n オプションを使用すると、ログを指定したユーザーに電子メールで配信できます。ASET オプションのリストについては、aset(1M) のマニュアルページを参照してください。
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
第 1 のログは、ASET が実行されたシステムと時刻を示します。その後に、開始された各タスクがリストされています。
「ASET のタスク」で説明しているように、ASET はこれらのタスクごとにバックグラウンドプロセスを呼び出します。タスクは開始されると実行ログにリストされますが、これはタスクの完了を示しているわけではありません。バックグラウンドタスクの状態をチェックするには、taskstat ユーティリティを使用します。
ASET タスクから生成されたすべてのレポートファイルは、ディレクトリ /usr/aset/reports の下のサブディレクトリに入っています。この節では、/usr/aset/reports ディレクトリの構造と、レポートファイルを管理するためのガイドラインについて説明します。
ASET はレポートファイルを指定されたサブディレクトリに格納し、レポートの生成日時を反映させます。このため、ASET を実行するたびに変化するシステムの状態を示すレコードを順番に追跡できます。これらのレポートを監視し、比較して、システムセキュリティの状況を判断できます。
図 54-1 に reports ディレクトリ構造の例を示します。
この例は、2 つのレポートサブディレクトリを示しています。
0124_01:00
0125_01:00
サブディレクトリ名は、レポートの生成日時を示します。各レポートサブディレクトリ名の形式は次のとおりです。
monthdate_hour:minute
この場合、「month」、「date」、「hour」、「minute」は、いずれも 2 桁の数値です。たとえば、0125_01:00 は 1 月 25 日の午前 1 時を表します。
2 つのレポートディレクトリには、それぞれ ASET を 1 度実行した結果、生成されたレポートの集合が入っています。
ディレクトリ latest は、常に最新レポートが入っているサブディレクトリを指すシンボリックリンクです。したがって、ディレクトリ /usr/aset/reports/latest に移動すれば、ASET で生成された最新レポートを調べることができます。このディレクトリには、前回の ASET で実行された各タスクのレポートファイルが入っています。
各レポートファイルは、それを生成したタスクから取った名前が付けられます。表 54-1 にタスクとそのレポートのリストを示します。
表 54-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 を実行するか構成し直したら、レポートファイルを詳しく検査する必要があります (構成し直す作業には、サブディレクトリ masters 内の asetenv ファイルやマスタファイルの変更や、ASET が動作するセキュリティレベルの変更が含まれます)。レポートには、構成し直したために発生したエラーが記録されます。レポートを詳しく検査すると、問題が発生した時点で対処して解決できます。
構成上の変更やシステム更新がない期間中にレポートファイルを監視すると、レポートの内容が安定状態になり、予期しない情報が入っていてもわずかであることがわかります。diff ユーティリティを使用して、レポートを比較できます。
ASET のマスタファイル、tune.high、tune.low、tune.med、uid_aliases は、ディレクトリ /usr/aset/masters に入っています。ASET は、マスタファイルを使用してセキュリティレベルを定義します。
tune.low、tune.med、tune.high マスタファイルでは、利用できる ASET セキュリティレベルが定義されます。各ファイルでは、各レベルのシステムファイルの属性が指定され、比較と参照に使用されます。
uid_aliases ファイルには、同じ ID を共有する複数のユーザーアカウントのリストが入っています。この種のアカウントがあると責任の所在があいまいになるので、通常は ASET が警告を出します。uid_aliases ファイル内で例外をリストすると、この規則に例外を設けることができます。重複するユーザー ID を持つ passwd ファイル内のエントリを uid_aliases ファイル内で指定しておくと、これらのエントリは ASET でレポートされません。
複数のユーザーアカウント (パスワードエントリ) に同じユーザー ID を共有させないでください。他の方法で目的を達成することを検討する必要があります。たとえば、複数のユーザーにアクセス権一式を共有させたい場合は、グループアカウントを作成できます。ユーザー ID の共有は最後の手段であり、どうしても必要で、他の方法では目的を達成できない場合にだけに使用します。
環境変数 UID_ALIASES を使用すると、別の別名ファイルを指定できます。デフォルトは /usr/aset/masters/uid_aliases です。
システムファイルのチェックリストに使用されるマスターファイルは、初めて ASET を実行するときか、セキュリティレベルの変更後に ASET を実行するときに生成されます。
このタスクでチェックされるファイルは、次の環境変数で定義されます。
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
環境ファイル asetenv には、ASET タスクに影響する変数のリストが入っています。各変数を変更すると ASET の動作を変更できます。
この節では、ASET を構成する方法とその処理の基礎となる環境について説明します。
ASET の管理と構成は最小限度ですみ、ほとんどの場合はデフォルト値で実行できます。ただし、ASET の処理や動作に影響する一部のパラメタを調整して、利点を最大限に発揮させることができます。デフォルト値を変更する前に、ASET の機能と、システムの構成要素に及ぼす影響を理解しておく必要があります。
ASET は、次の 4 つの構成ファイルに依存してタスクの動作を制御します。
/usr/aset/asetenv
/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
/usr/aset/asetenv ファイルは、次の 2 つの主要セクションに分かれています。
ユーザーが構成できるパラメタセクション
内部環境変数セクション
ユーザーが構成できるパラメタセクションは変更できます。しかし、内部環境変数セクションの設定は内部使用専用で変更できません。
ユーザーが構成できるパラメタセクション内のエントリを編集して、次の作業を実行できます。
実行するタスクを選択する。
チェックリストタスク用のディレクトリを指定する。
ASET の実行スケジュールを指定する。
別名ファイルを指定する。
チェック対象を NIS+ テーブルまで拡張する。
ASET が実行する各タスクでは、システムセキュリティの特定の領域が監視されます。ほとんどのシステム環境では、すべてのタスクでバランスがとれたセキュリティ範囲を提供する必要があります。ただし、1 つ以上のタスクを除外してもかまいません。
たとえば、ファイアウォールタスクはすべてのセキュリティレベルで実行されますが、本来の機能は最上位レベルでのみ動作します。ASET を高セキュリティレベルで実行したいが、ファイアウォール保護は不要な場合があります。
asetenv ファイル内で環境変数の TASKS リストを編集すると、ファイアウォール機能を使用しないで高レベルで実行するように ASET を設定できます。デフォルトでは、TASKS リストにはすべての ASET タスクが入っています (次の例を参照してください)。タスクを削除するには、そのタスクの設定をファイルから削除します。この場合は、リストから firewall 環境変数を削除することになります。次回に ASET を実行すると、除外したタスクは実行されません。
TASKS="env sysconfig usrgrp tune cklist eeprom firewall"
システムファイルチェックでは、選択したシステムディレクトリ内のファイルの属性がチェックされます。次のチェックリストパス環境変数を使用して、どのディレクトリをチェックするかを定義できます。
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
CKLISTPATH_LOW 変数は、低セキュリティレベルでチェックされるディレクトリを定義します。CKLISTPATH_MED と CKLISTPATH_HIGH 環境変数は、中程度と高度のセキュリティレベルに同じように機能します。
低セキュリティレベルの変数で定義したディレクトリリストは、1 つ上位レベルで定義するディレクトリリストのサブセットにする必要があります。たとえば、CKLISTPATH_LOW に定義したすべてのディレクトリを CKLISTPATH_MED に含め、CKLISTPATH_MED に指定したすべてのディレクトリを CKLISTPATH_HIGH に含めます。
これらのディレクトリに対して実行されるチェックは再帰的ではありません。ASET は変数内に明示的にリストされたディレクトリのみをチェックします。そのサブディレクトリはチェックされません。
これらの変数の定義を編集して、ASET にチェックさせたいディレクトリを追加または削除できます。これらのチェックリストは、一般に毎日変化しないシステムファイルにのみ有効なので注意してください。たとえば、ユーザーのホームディレクトリは動的な変化が大きすぎるので、チェックリストの候補にはならないのが普通です。
ASET を起動するときには、対話形式で起動する方法と、-p オプションを使用して ASET タスクをスケジュール指定した時刻と期間に実行する方法があります。ASET は、システム需要が少ないときに定期的に実行できます。たとえば、ASET は PERIODIC_SCHEDULE を照会して、ASET タスクの実行頻度と実行時刻を判断します。ASET を定期的に実行するように設定する方法については、「ASET を定期的に実行する方法」を参照してください。
PERIODIC_SCHEDULE の形式は、crontab エントリの形式と同じです。詳細は、crontab(1) のマニュアルページを参照してください。
UID_ALIASES 変数は、共有ユーザー ID がリストされる別名ファイルを指定します。デフォルトは /usr/aset/masters/uid_aliases です。
YPCHECK 環境変数は、ASET でシステム構成ファイルテーブルもチェックするかどうかを指定します。YPCHECK はブール型変数なので、true または false しか指定できません。デフォルト値は false で、NIS+ テーブルのチェックは無効になっています。
この変数の機能を理解するために、passwd ファイルに与える影響を考えてみてください。この変数を false に設定すると、ASET はローカルの passwd ファイルをチェックします。true に設定すると、NIS+ の passwd ファイル内でシステムのドメインもチェックされます。
ASET ではローカルテーブルが自動的に修復されますが、NIS+ テーブル内の潜在的な問題はレポートされるだけで変更されません。
ASET は、3 つのマスタ調整ファイル、tune.low、tune.med、tune.high を使用して、重要なシステムファイルへのアクセス制限を緩めたり厳しくしたりします。この 3 つのマスタファイルは /usr/aset/masters ディレクトリに入っており、環境に合わせて調整できます。詳細は、「調整ファイル」を参照してください。
tune.low ファイルは、アクセス権をデフォルトのシステム設定に適した値に設定します。tune.med ファイルは、これらのアクセス権をさらに制限し、tune.low に含まれていないエントリを追加します。tune.high ファイルは、アクセス権をさらに厳しく制限します。
調整ファイル内の設定を変更するには、ファイルのエントリを追加または削除します。アクセス権を現在の設定よりも制限が緩やかになるような値に設定できません。システムセキュリティを下位レベルに下げない限り、ASET はアクセス権の制限を緩和しません。
ASET を初めて実行すると、元のシステムファイルが保存され保管されます。aset.restore ユーティリティは、これらのファイルを復元します。また、ASET を定期的に実行するようにスケジュール指定している場合は、そのスケジュールを解除します。aset.restore ユーティリティは、ASET の動作ディレクトリ /usr/aset に入っています。
システムファイルに対して行われた変更は、aset.restore を実行すると失われます。
次の場合に aset.restore を使用してください。
ASET の変更を削除して元のシステムを復元したい場合。ASET を永久に無効にしたい場合は、以前に root の crontab に aset コマンドが追加されていれば、cron スケジュールから削除できます。cron を使用して自動実行を削除する方法については、「ASET の定期的な実行を中止する方法」を参照してください。
ASET を短期間実行した後に、元のシステム状態を復元する場合
一部の主要なシステム機能が正常に動作せず、ASET が原因だと思われる場合
通常、ネットワークの一部となっているシステム上でも、ASET はスタンドアロンモードで使用されます。スタンドアロンシステムのシステム管理者は、システムのセキュリティとシステムを保護する ASET の実行と管理を担当することになります。
また、ASET は NFS 分散環境でも使用できます。ネットワーク管理者は、すべてのクライアントの各種管理タスクのインストール、実行、管理を担当します。複数のクライアントシステム間で ASET を管理しやすくするために、構成変更を行なってすべてのクライアントに一括して適用すれば、各システムにログインしてプロセスを繰り返す必要がなくなります。
ネットワークシステム上で ASET の設定方法を決めるときには、ユーザーに各自のシステム上でセキュリティをどのように制御させるかと、セキュリティ制御に関する責任をどの程度集中させるかを検討する必要があります。
複数のネットワーク構成を設定したい場合があります。たとえば、低セキュリティレベルに指定したクライアント用に 1 つ、中レベルのクライアント用に 1 つ、さらに高レベルのクライアント用に 1 つというように設定できます。
セキュリティレベルごとに別の ASET ネットワーク構成を作成したい場合は、サーバー上でレベルごとに 1 つずつ合計 3 つの ASET 構成を作成できます。各構成を該当するセキュリティレベルのクライアントにエクスポートすることになります。3 つの構成すべてに共通の ASET 構成要素は、リンクを使用して共有できます。
スーパーユーザー特権を持つか持たないかに関係なく、クライアントにアクセスされるサーバー上に ASET 構成要素を集中できるだけでなく、サーバー上でディレクトリを設定して、各種クライアント上で実行中のタスクによって生成されるすべてのレポートを収集できます。収集機構を設定する方法については、「サーバー上でレポートを収集する方法」を参照してください。
サーバー上でレポートを収集するように設定すると、すべてのクライアントに関するレポートを 1 箇所で検討できます。この方法は、クライアントがスーパーユーザー特権を持っているかどうかに関係なく使用できます。また、ユーザーに各自の ASET レポートを監視させたい場合は、ローカルシステム上にレポートディレクトリを残しておいてもかまいません。
表 54-2 に ASET 環境変数と各変数で指定する値を示します。
表 54-2 環境変数とその意味
環境変数 |
指定内容 |
---|---|
ASETDIR (以下を参照) |
ASET の作業ディレクトリ |
ASETSECLEVEL (以下を参照) |
セキュリティレベル |
PERIOD_SCHEDULE |
定期的なスケジュール |
TASKS |
実行するタスク |
UID_ALIASES |
別名ファイル |
YPCHECK |
チェックを NIS と NIS+ まで拡張する |
CKLISTPATH_LOW |
低セキュリティ用のディレクトリリスト |
CKLISTPATH_MED |
中セキュリティ用のディレクトリリスト |
CKLISTPATH_HIGH |
高セキュリティ用のディレクトリリスト |
次に示す環境変数は、ファイル /usr/aset/asetenv に入っています。ASETDIR 変数と ASETSECLEVEL 変数はオプションで、aset コマンドを使用してシェルからでなければ設定できません。他の環境変数は、ファイルを編集して設定できます。次に、各変数について説明します。
ASETDIR は、ASET の作業ディレクトリを指定します。
% setenv ASETDIR pathname
Bourne シェルまたは Korn シェルからは、次のように入力します。
$ ASETDIR=pathname $ export ASETDIR
pathname を ASET 作業ディレクトリの完全パス名に設定してください。
ASETSECLEVEL は、ASET タスクが実行されるセキュリティレベルを指定します。
C シェルから次のように入力します。
% setenv ASETSECLEVEL level
Bourne シェルまたは Korn シェルから、次のように入力します。
$ ASETSECLEVEL=level export ASETSECLEVEL
上記のコマンドで、level を次のいずれかに設定できます。
low |
低セキュリティレベル |
med |
中セキュリティレベル |
high |
高セキュリティレベル |
PERIODIC_SCHEDULE の値の形式は、crontab ファイルと同じです。変数の値は二重引用符で囲んだ 5 つのフィールドからなる文字列として指定します。各フィールドは空白文字 1 つで区切ってください。
"minutes hours day-of-month month day-of-week"表 54-3 Periodic_Schedule 変数の値
変数 |
値 |
---|---|
minutes hours |
開始時刻を分 (0-59) と時間 (0-23) で指定します。 |
day-of-month |
ASET を実行する日付を 1 から 31 までの値で指定します。 |
month |
ASET を実行する月を 1 から 12 までの値で指定します。 |
day-of-week |
ASET を実行する曜日を 0 から 6 までの値で指定します。この方式では、日曜日の値は 0 です。 |
次の規則が適用されます。
どのフィールドでも、値のリストをコンマで区切って指定できます。
値を数値または範囲として指定できます。範囲とは、1 対の数値をハイフンで結合したものです。範囲は、範囲に含まれるすべての時刻に ASET タスクを実行することを示します。
どのフィールドでも、値としてアスタリスク (*) を指定できます。アスタリスクは、そのフィールドに有効なすべての値を指定します。
PERIODIC_SCHEDULE 変数のデフォルトエントリでは、ASET が毎日午後 12:00 に実行されます。
PERIODIC_SCHEDULE="0 0 * * *"
TASKS 変数は、ASET で実行されるタスクをリストします。デフォルトでは、7 つのタスクがすべてリストされます。
TASKS="env sysconfig usrgrp tune cklist eeprom firewall"
UID_ALIASES 変数は、別名ファイルを指定します。別名ファイルがあると、ASET は使用可能な複数の別名のリストをこのファイル内で照会します。形式は UID_ALIASES=pathname です。pathname は、別名ファイルの完全パス名です。
デフォルトは次のとおりです。
UID_ALIASES=${ASETDIR}/masters/uid_aliases
YPCHECK 変数は、システムテーブルをチェックするタスクを拡張して NIS または NIS+ テーブルを含めます。これはブール変数なので、true または false に設定できます。
デフォルトは false で、ローカルシステムテーブルがチェックされます。
YPCHECK=false
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 は 3 つの調整ファイルを管理します。3 つの調整ファイル内のエントリについては、表 54-4 で説明しています。
表 54-4 調整ファイルのエントリ形式
エントリ |
説明 |
---|---|
pathname |
ファイルのフルパス名 |
mode |
アクセス権の設定を表す 5 桁の数値 |
owner |
ファイルの所有者 |
group |
ファイルのグループ |
type |
ファイルの形式 |
次の規則が適用されます。
パス名には、アスタリスク (*) や疑問符 (?) など、通常のシェルワイルドカード文字を使用して、複数のエントリを指定できます。シェルコマンド sh(1) のマニュアルページを参照してください。
mode は、最も制限が緩やかな値を表します。現在の設定が指定した値よりもすでに厳密な制限を表している場合、ASET はアクセス権の設定を緩和しません。たとえば、指定した値が 00777 の場合、00777 は常に現在の設定よりも緩やかな制限を表すので、アクセス権は変更されません。
セキュリティレベルを下げるか、ASET を削除するのでない限り、ASET ではこの方法でモード設定が処理されます。セキュリティレベルを前回の実行時よりも下げるときや、システムファイルを ASET を最初に実行する前の状態に復元したいときには、ASET は操作の内容を認識して保護レベルを下げます。
owner と group には、数値 ID ではなく名前を使用しなければなりません。
owner、group、type の代わりに疑問符 (?) を使用すると、ASET によってこれらのパラメタの既存の値が変更されるのを防止できます。
type には、symlink (シンボリックリンク)、directory、または file (他のすべて) を指定できます。
セキュリティレベルが高くなるほど、調整ファイルは下位レベルよりも緩やかなファイルアクセス権にリセットされます。また、上位レベルになるほど、リストに多数のファイルが追加されます。
1 つのファイルで複数の調整ファイルエントリを照合できます。たとえば、etc/passwd は etc/pass* エントリと /etc/* エントリに一致します。
2 つのエントリのアクセス権が異なる場合は、ファイルアクセス権は最も厳しいアクセス権を表す値に設定されます。次の例では、/etc/passwd のアクセス権は 00755 に設定されますが、これは 00755 は 00770 よりも厳密な制限であることを表します。
/etc/pass* 00755 ? ? file /etc/* 00770 ? ? file
2 つのエントリの owner 指定または group 指定が異なる場合は、最後のエントリが優先されます。次の例は、tune.low ファイルの最初の数行を示します。
/ 02755 root root directory /bin 00777 root bin symlink /sbin 02775 root sys directory /usr/sbin 02775 root bin directory /etc 02755 root sys directory /etc/chroot 00777 bin bin symlink
別名ファイルには、同じユーザー ID を共有する別名のリストが入っています。
各エントリの書式は次のとおりです。
uid=alias1=alias2=alias3=...
uid |
共有ユーザー ID |
aliasn |
ユーザー ID を共有するユーザーアカウント |
たとえば、次のエントリでは、sysadm と root に共有されるユーザー ID 0 を示しています。
この節では、ASET を対話的にまたは定期的に実行する方法について説明します。
aset コマンドを使用して ASET を対話的に実行します。
# /usr/aset/aset -l level -d pathname
level |
セキュリティレベルを指定する。有効な値は low、medium、または high。デフォルト設定は low。セキュリティレベルについては、「ASET のセキュリティレベル」を参照 |
pathname |
ASET の作業ディレクトリを指定する。デフォルトは /usr/aset |
画面に表示される ASET 実行ログを見て、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
必要であれば、ASET を定期的に実行したい時刻を設定します。
システム需要が少ないときに ASET を実行してください。/usr/aset/asetenv ファイル内の PERIODIC_SCHEDULE 環境変数を使用して、ASET を定期的に実行する時刻を設定します。デフォルトでは、この時刻は 24 時間ごとに真夜中に設定されています。
別の時刻を設定したい場合は、/usr/aset/asetenv ファイル内で PERIODIC_SCHEDULE 変数を編集します。PERIODIC_SCHEDULE 変数の設定の詳細は、「PERIODIC_SCHEDULE 変数」を参照してください。
aset コマンドを使ってエントリを crontab ファイルに追加します。
# /usr/aset/aset -p
-p |
/usr/aset/asetenv ファイル内の PERIODIC_SCHEDULE 環境変数で決めた時刻に ASET の実行を開始する行を crontab ファイルに挿入する |
次のコマンドを実行すると crontab エントリが表示され、ASET の実行スケジュールを確認できます。
# crontab -l root
crontab ファイルを編集します。
# crontab -e root
ASET エントリを削除します。
変更結果を保存して終了します。
crontab エントリを表示して、ASET エントリが削除されていることを確認します。
# crontab -l root
スーパーユーザーになります。
サーバー上でディレクトリを作成します。
/usr/aset ディレクトリに移動します。
mars# cd /usr/aset
rptdir ディレクトリを作成します。
mars# mkdir rptdir
rptdir ディレクトリに移動して、client_rpt ディレクトリを作成します。
mars# cd rptdir mars# mkdir client_rpt
このコマンドによって、クライアント用のサブディレクトリ (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
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
dfstab ファイル内のリソースをクライアントが利用できるようにします。
# shareall
各クライアント上でクライアントのサブディレクトリを、マウントポイント /usr/aset/masters/reports にサーバーからマウントします。
# mount server:/usr/aset/client_rpt /usr/aset/masters/reports
/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 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.
意味 |
対処方法 |
---|---|
ASETDIR 変数または -d コマンド行オプションで指定されたディレクトリ名を完全パス名に展開できない。 |
ディレクトリ名を正しく指定したかどうかと、ユーザーがアクセス権を持っている既存のディレクトリを参照しているかどうかを確認してください。 |
aset: invalid/undefined security level. To specify, set ASETSECLEVEL environment variable or use command line option -l, with argument= low/med/high.
意味 |
対処方法 |
---|---|
セキュリティレベルが定義されていないか、正しく定義されていない。low、med、または high の値以外は定義できない。 |
ASETSECLEVEL 変数または -l コマンド行オプションを使用して、3 つの値のいずれかを指定してください。 |
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_SCHEDULE が asetenv ファイル内で定義されていない。 |
asetenv ファイルの User Configurable セクションをチェックして、変数が定義されていて、正しい書式になっているかどうかを確認してください。 |
Warning! Duplicate ASET execution scheduled. Check crontab file.
意味 |
対処方法 |
---|---|
ASET のスケジュールが複数回指定されている。つまり、スケジュールがまだ有効な間に別のスケジュールを指定するように要求されている。複数のスケジュールはエラーであるとは限らず、複数のスケジュールが必要な場合は crontab(1) のスケジュール書式を使用するので、通常はこの指定が不要であることを示す警告にすぎない。 |
crontab(1) コマンドインタフェースを使って、正しいスケジュールが有効になっているかどうかを検査してください。ASET に関して不要な crontab エントリがないかどうかを確認してください。 |