Solaris のシステム管理 (第 2 巻)

システムのセキュリティ

この節では、侵入者がシステムにログインするのを防ぐ方法、パスワードファイルを管理する方法、重要なシステムファイルとプログラムに対する許可されていないスーパーユーザーアクセスを防ぐ方法など、システムを許可されていないアクセスから保護する方法について説明します。

システム上で 2 つのセキュリティバリアを設定できます。第 1 のセキュリティバリアはログインプログラムです。このバリアをクリアしてシステムにアクセスするには、ローカルシステムまたはネームサービス (NIS または NIS+) で認識されるユーザー名と対応するパスワードを入力しなければなりません。

第 2 のセキュリティバリアは、システムファイルとプログラムをスーパーユーザーしか変更または削除できないように設定することです。root になろうとするユーザーは、スーパーユーザーのユーザー名とその正しいパスワードを入力しなければなりません。

ログインアクセスの制限

ユーザーがシステムにログインすると、ログインプログラムは /etc/nsswitch.conf ファイル内の情報に従って、該当するデータベースを照会します。このファイル内のエントリには、files (/etc 内のファイルを示す)、nis (NIS データベースを示す)、nisplus (NIS+ データベースを示す) を含めることができます。このファイルについては、『Solaris ネーミングの管理』または nsswitch.conf(4) のマニュアルページを参照してください。

ログインプログラムは、入力されたユーザー名とパスワードを確認します。ユーザー名がパスワードファイルに入っていない場合や、パスワードがユーザー名と一致していない場合は、システムへのアクセスが拒否されます。ユーザーがパスワードファイルから名前を入力し、パスワードがその名前の正しいパスワードであるときは、そのユーザーにシステムへのアクセス権が与えられます。

特別なログイン

システムにアクセスするには、従来のユーザーログインを使用する方法と、root ログインを使用する方法の 2 つが一般的です。また、多数の特別な「システム」ログインを使用すると、ユーザーは root アカウントを使用しなくても管理コマンドを実行できます。管理者は、これらのログインアカウントにパスワードを割り当てます。

表 12-3 に、システムのログインアカウントとその用途を示します。システムログインは特殊な機能を実行し、それぞれに固有のグループ識別子番号 (GID) が付いています。これらの各ログインには固有のパスワードを設定し、必要のある人だけに知らせるようにしてください。

表 12-3 システムログイン

ログインアカウント 

GID 

用途 

root

0

ほぼ無制限で、他のすべてのログイン、保護、アクセス権より優先する。root アカウントはシステム全体へのアクセス権を持つ。root ログインのパスワードはきわめて厳密に保護する必要がある 

daemon

1

バックグラウンド処理を制御する 

bin

2

ほとんどのコマンドを所有する 

sys

3

多数のシステムファイルを所有する 

adm

4

特定の管理ファイルを所有する 

lp

71

プリンタ用のオブジェクトとスプールデータファイルを所有する 

uucp

5

UNIX 間のコピープログラム、UUCP 用のオブジェクトとスプールデータファイルを所有する 

nuucp

9

システムにログインしてファイル転送を開始するためにリモートシステムで使用される 

また、パスワードが必要な eeprom のセキュリティも設定する必要があります。詳細は、eeprom(1M) のマニュアルページを参照してください。

パスワード情報の管理

ユーザーはシステムにログインするときに、ユーザー名とパスワードの両方を入力しなければなりません。ログイン名は公開されますが、パスワードは秘密にしてユーザー以外には知られないようにします。また、ユーザーが各自のパスワードを慎重に選択し、頻繁に変更するようにしなければなりません。

パスワードは、最初にユーザーアカウントを設定するときに作成されます。ユーザーアカウントの機密性を保つために、パスワードの有効期間を設定し、ユーザーに各自のパスワードを定期的に変更させたり、パスワードをロックしてユーザーアカウントを使用できないようにすることもできます。パスワードの設定と管理については、『Solaris のシステム管理 (第 1 巻)』の「ユーザーアカウントとグループの管理の概要」を参照してください。

NIS+ パスワードファイル

ネットワークで NIS+ を使用している場合、パスワード情報は NIS+ データベースに格納されます。NIS+ データベース内の情報は、アクセス権を許可されたユーザーを制限することによって保護できます。ユーザーアカウントマネージャまたは passwd(1) コマンドを使用すると、ユーザーの NIS+ パスワードを変更できます。

NIS パスワードファイル

ネットワークで NIS を使用している場合、パスワードは NIS パスワードマップに格納されます。NIS では、パスワードの有効期間を指定できません。Solstice ユーザーマネージャまたは passwd(1) コマンドを使用すると、ユーザーの NIS パスワードを変更できます。

/etc ディレクトリ内のファイル

ネットワークで /etc 内のファイルを使用している場合、パスワード情報はシステムの /etc/passwd ファイルと /etc/shadow ファイルに格納されます。ユーザー名と他の情報は別の「シャドウ」ファイル /etc/shadow に格納されます。これは、ユーザーが暗号化されたパスワードにアクセスするのを防ぐセキュリティ上の手段です。/etc/passwd ファイルは、マシンにログインするユーザーであれば誰でも使用できますが、/etc/shadow ファイルを読み取ることができるのはスーパーユーザーだけです。Solstice AdminSuite のユーザーマネージャ、Admintool、または passwd(1) コマンドを使用すると、ローカルシステム上でユーザーのパスワードを変更できます。

制限付きシェルの使用

標準シェルを使用すると、ユーザーはファイルを開く、コマンドを実行するなどの操作を行うことができます。制限付きセルを使用すると、ユーザーによるディレクトリの変更やコマンドの実行を制限できます。制限付きシェル (rsh) は、ディレクトリ /usr/lib に入っています (これはリモートシェル /usr/sbin/rsh ではないので注意してください)。制限付きシェルには、通常のシェルに比べて次のような違いがあります。

制限付きシェルを使用すると、システム管理者はユーザーによるシステムファイルの操作を制限できます。このシェルは、主として特定の作業を実行しなければならないユーザーを設定するためのものです。ただし、rsh は完全にセキュリティ保護されてはおらず、あくまでも経験の少ないユーザーが問題を起こさないようにするために使用します。

制限付きシェルについては、sh(1) のマニュアルページを参照してください。

スーパーユーザー (root) ログインの追跡

システムには、スーパーユーザーモードに対して root パスワードが必要です。デフォルトの構成では、ユーザーはリモートのシステムに root としてログインできません。リモートログインするとき、ユーザーは自分のユーザー名でログインしてから、su コマンドを使用してスーパーユーザーにならなければなりません。これによって、管理者は、システム上でスーパーユーザー特権を使用している人を追跡できます。

スーパーユーザーまたは他のユーザーに切り替えようとするユーザーの監視

スーパーユーザーになりたい場合などは、su コマンドを使用して別のユーザーに変更する必要があります。セキュリティ上の理由から、su コマンドを使用中のユーザー、特にスーパーユーザーのアクセス権を取得しようとしているユーザーを監視する必要があります。

詳細は、su コマンドを使用中のユーザーを監視する方法」を参照してください。