JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Solaris のシステム管理 (セキュリティサービス)     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I セキュリティーの概要

1.  セキュリティーサービス (概要)

パート II システム、ファイル、およびデバイスのセキュリティー

2.  マシンセキュリティーの管理 (概要)

Solaris 10 リリースにおけるマシンセキュリティーの向上

コンピュータシステムへのアクセスを制御する

物理的なセキュリティーの管理

ログイン制御の管理

パスワード情報の管理

パスワードの暗号化

特殊なシステムアカウント

遠隔ログイン

ダイヤルアップログイン

デバイスアクセスの制御

デバイスポリシー (概要)

デバイス割り当て (概要)

マシンリソースへのアクセス制御

スーパーユーザーの制限と監視

役割によるアクセス制御を構成してスーパーユーザーを置き換える

マシンリソースの意図しない使用の防止

PATH 変数の設定

ユーザーに制限付きシェルを割り当てる

ファイル内のデータへのアクセス制限

setuid 実行可能ファイルの制限

自動セキュリティー拡張ツールの使用

Oracle Solaris Security Toolkit の使用

デフォルトでのセキュリティー強化 (Secure By Default) 構成の使用

リソース管理機能の使用

Oracle Solaris ゾーンの使用

マシンリソースの使用状況の監視

ファイルの整合性の監視

ファイルアクセスの制御

暗号化によるファイルの保護

アクセス制御リストの使用

マシン間でのファイルの共有

共有ファイルへの root アクセスの制限

ネットワークアクセスの制御

ネットワークセキュリティー機構

遠隔アクセスの認証と承認

ファイアウォールシステム

暗号化システムとファイアウォールシステム

セキュリティー問題の報告

3.  システムアクセスの制御 (作業)

4.  デバイスアクセスの制御 (作業)

5.  基本監査報告機能の使用方法 (作業)

6.  ファイルアクセスの制御 (作業)

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

パート III 役割、権利プロファイル、特権

8.  役割と特権の使用 (概要)

9.  役割によるアクセス制御の使用 (手順)

10.  役割によるアクセス制御 (参照)

11.  特権 (手順)

12.  特権 (参照)

パート IV 暗号化サービス

13.  Oracle Solaris の暗号化フレームワーク (概要)

14.  Oracle Solaris の暗号化フレームワーク (手順)

15.  Oracle Solaris 鍵管理フレームワーク

パート V 認証サービスと安全な通信

16.  認証サービスの使用 (手順)

17.  PAM の使用

18.  SASL の使用

19.  Oracle Solaris Secure Shell の使用 (手順)

20.  Oracle Solaris Secure Shell (参照)

パート VI Kerberos サービス

21.  Kerberos サービスについて

22.  Kerberos サービスの計画

23.  Kerberos サービスの構成 (手順)

24.  Kerberos エラーメッセージと障害追跡

25.  Kerberos 主体とポリシーの管理 (手順)

26.  Kerberos アプリケーションの使用 (手順)

27.  Kerberos サービス (参照)

パート VII Oracle Solaris 監査

28.  Oracle Solaris 監査 (概要)

29.  Oracle Solaris 監査の計画

30.  Oracle Solaris 監査の管理 (手順)

31.  Oracle Solaris 監査 (参照)

用語集

索引

コンピュータシステムへのアクセスを制御する

ワークスペースでは、サーバーに接続されたすべてのマシンを 1 つの大規模多重システムと見なすことができます。システム管理者は、この大規模なシステムのセキュリティー管理に責任があります。システム管理者は、ネットワークの外部からの侵入を防ぐ必要があります。また、ネットワーク内部のコンピュータ上のデータの完全性を確保する必要もあります。

ファイルレベルにおいて、Oracle Solaris には標準セキュリティー機能が組み込まれており、ファイル、ディレクトリ、およびデバイスを保護するために使用できます。システムレベルとネットワークレベルでは、セキュリティーの内容はほぼ同じです。セキュリティー防御の第一線は、システムへのアクセスを制御することです。

次の方法でシステムへのアクセスを制御または監視できます。

物理的なセキュリティーの管理

システムへのアクセスを制御するには、コンピュータ環境の物理的なセキュリティーを管理する必要があります。たとえば、システムにログインしたままこれを放置することは未承認アクセスを招く原因になります。侵入者がオペレーティングシステムやネットワークにアクセスしないとも限らないからです。コンピュータの周辺環境やコンピュータハードウェアは、不当なアクセスから物理的に保護される必要があります。

システム管理者は、ハードウェア設定に対する不当なアクセスから SPARC システムを保護することができます。eeprom コマンドを使って、パスワードがないと PROM にアクセスできないようにしてください。詳細は、「ハードウェアアクセスのパスワードを必須にする方法」を参照してください。

ログイン制御の管理

システムやネットワークへの無許可のログインも防止する必要があります。この制限は、パスワード割り当てとログイン制御によって行うことができます。システム上のすべてのアカウントには、パスワードが必要です。パスワードはシンプルな認証メカニズムです。アカウントにパスワードを設定しないと、ユーザー名を推測できる侵入者であれば誰でもネットワーク全体にアクセスできることになります。力ずくの野蛮な攻撃を許さないためには、強力なパスワードアルゴリズムが必要です。

ユーザーがシステムにログインすると、login コマンドは /etc/nsswitch.confファイル内の情報に従って、該当するネームサービスまたはディレクトリサービスのデータベースを照会します。このファイルには次のエントリを含めることができます。

nsswitch.conf ファイルの詳細は、nsswitch.conf(4) のマニュアルページを参照してください。ネームサービスおよびディレクトリサービスについては、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』または『Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)』を参照してください。

login コマンドは、指定されたユーザー名とパスワードを検証します。ユーザー名がパスワードファイルにないと、login コマンドはシステムへのアクセスを拒否します。あるいは、指定されたユーザー名に対するパスワードが正しくないと、login コマンドはシステムへのアクセスを拒否します。有効なユーザー名とそれに対応するパスワードが入力されれば、システムはシステムへのアクセスをユーザーに認可します。

PAM モジュールには、システムへのログインが正常に完了したあとでアプリケーションへのログインをスムーズに行わせる効果があります。詳細は、第 17 章PAM の使用を参照してください。

Oracle Solaris システムには、精巧な認証メカニズムと承認メカニズムが備わっています。ネットワークレベルでの認証メカニズムや承認メカニズムについては、「遠隔アクセスの認証と承認」を参照してください。

パスワード情報の管理

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

パスワードは、最初にユーザーアカウントを設定するときに作成されます。ユーザーアカウントのセキュリティーを管理するために、パスワード有効期限を設定し、パスワードを定期的に強制変更することができます。また、ユーザーアカウントを無効にして、パスワードをロックすることもできます。パスワードの管理の詳細は、『Solaris のシステム管理 (基本編)』の第 4 章「ユーザーアカウントとグループの管理 (概要)」と、passwd(1) のマニュアルページを参照してください。

ローカルパスワード

ネットワークでローカルファイルを使用してユーザーの認証を行なっている場合、パスワード情報はシステムの /etc/passwd ファイルと /etc/shadow ファイルに保持されます。ユーザー名などの情報は、/etc/passwd ファイルに保持されます。暗号化されたパスワードは、/etc/shadow という「シャドウ」ファイルに保持されます。このセキュリティー方式によって、暗号化されたパスワードにアクセスされることを防ぎます。/etc/passwd ファイルは、システムにログインするユーザーであれば誰でも使用できますが、/etc/shadow ファイルを読み取ることができるのはスーパーユーザー、またはスーパーユーザーと同等の役割だけです。passwd コマンドを使用すると、ローカルシステム上のユーザーのパスワードを変更できます。

NIS パスワードおよび NIS+ パスワード

ネットワークで NIS を使用してユーザーの認証を行なっている場合、パスワード情報は NIS パスワードマップに保持されます。NIS では、パスワードの有効期間を指定できません。NIS パスワードマップに保持されているユーザーのパスワードを変更するには、コマンド passwd -r nis を使用します。

ネットワークで NIS+ を使用してユーザーの認証を行っている場合、パスワード情報は NIS+ データベースに保持されます。NIS+ データベース内の情報は、承認されたユーザーだけにアクセスを制限することによって保護できます。NIS+ データベースに保持されているユーザーのパスワードを変更するには、passwd -r nisplus コマンドを使用します。

LDAP パスワード

Oracle Solaris の LDAP ネームサービスは、パスワード情報とシャドウ情報を LDAP ディレクトリツリーの ou=people コンテナに格納します。Oracle Solaris LDAP ネームサービスクライアントでユーザーのパスワードを変更するには、passwd -r ldap コマンドを使用します。LDAP ネームサービスは、パスワードを LDAP リポジトリに格納します。

パスワードポリシーは、Sun Java System Directory Server 上で適用されます。つまり、クライアントの pam_ldap モジュールは、Sun Java System Directory Server で適用されているパスワードポリシー制御に従います。詳細は、『Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)』の「LDAP ネームサービスのセキュリティーモデル」を参照してください。

パスワードの暗号化

パスワードの強力な暗号化は攻撃に対する最初の障壁になります。Oracle Solaris ソフトウェアには 6 つのパスワード暗号化アルゴリズムが提供されています。BlowfishMD5、 および SHA アルゴリズムは、UNIX アルゴリズムよりも強力なパスワード暗号化を提供します。

パスワードアルゴリズムの識別子

サイトのアルゴリズムの構成は、/etc/security/policy.conf ファイルに指定します。policy.conf ファイルには、次の表に示す識別子でアルゴリズムを指定します。識別子とアルゴリズムのマッピングについては、/etc/security/crypt.conf ファイルを参照してください。

表 2-1 パスワードの暗号化アルゴリズム

識別子
説明
アルゴリズムのマニュアルページ
1
BSD システムや Linux システムの MD5 アルゴリズムと互換性のある MD5 アルゴリズム。
2a
BSD システムの Blowfish アルゴリズムと互換性のある Blowfish アルゴリズム。
md5
BSD バージョンや Linux バージョンの MD5 よりも強力とされている Sun MD5 アルゴリズム。
5
SHA256 アルゴリズム。SHA は、Secure Hash Algorithm (セキュアハッシュアルゴリズム) を表します。このアルゴリズムは、SHA-2 ファミリのメンバーです。SHA256 では 255 文字のパスワードがサポートされます。
6
SHA512 アルゴリズム。
__unix__
従来の UNIX 暗号化アルゴリズム。policy.conf ファイルのデフォルトモジュールはこのアルゴリズムです。
policy.conf ファイルのアルゴリズム構成

次に、policy.conf ファイルに指定されたデフォルトのアルゴリズム構成を示します。

#
…
# crypt(3c) Algorithms Configuration
#
# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed to
# be used for new passwords.  This is enforced only in crypt_gensalt(3c).
#
CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6

# To deprecate use of the traditional unix algorithm, uncomment below
# and change CRYPT_DEFAULT= to another algorithm.  For example,
# CRYPT_DEFAULT=1 for BSD/Linux MD5.
#
#CRYPT_ALGORITHMS_DEPRECATE=__unix__

# The Solaris default is the traditional UNIX algorithm.  This is not
# listed in crypt.conf(4) since it is internal to libc.  The reserved
# name __unix__ is used to refer to it.
#
CRYPT_DEFAULT=__unix__
…

CRYPT_DEFAULT の値を変更すると、新しいユーザーのパスワードは、新しい値に対応するアルゴリズムを使って暗号化されます。

既存のユーザーがパスワードを変更したときに新しいパスワードがどのアルゴリズムで暗号化されるかは、古いパスワードがどのように暗号化されているかによって異なります。たとえば、CRYPT_ALGORITHMS_ALLOW=1,2a,md5,5,6 かつ CRYPT_DEFAULT=1 であるとします。次の表は、パスワードの暗号化にどのアルゴリズムが使用されるかを示します。

識別子 = パスワードアルゴリズム
意味
元のパスワード
変更後のパスワード
1 = crypt_bsdmd5
同じアルゴリズムを使用します。
1 識別子は CRYPT_DEFAULT の値でもあります。ユーザーのパスワードは引き続き crypt_bsdmd5 アルゴリズムで暗号化されます。
2a = crypt_bsdbf
同じアルゴリズムを使用します。
2a 識別子は CRYPT_ALGORITHMS_ALLOW リストにあります。このため、新しいパスワードは crypt_bsbdf アルゴリズムで暗号化されます。
md5 = crypt_md5
同じアルゴリズムを使用します。
md5 識別子は CRYPT_ALGORITHMS_ALLOW リストにあります。このため、新しいパスワードは crypt_md5 アルゴリズムで暗号化されます。
5 = crypt_sha256
同じアルゴリズムを使用します。
5 識別子は CRYPT_ALGORITHMS_ALLOW リストにあります。このため、新しいパスワードは crypt_sha256 アルゴリズムで暗号化されます。
6 = crypt_sha512
同じアルゴリズムを使用します。
6 識別子は CRYPT_ALGORITHMS_ALLOW リストにあります。このため、新しいパスワードは crypt_sha512 アルゴリズムで暗号化されます。
__unix__ = crypt_unix
crypt_bsdmd5 アルゴリズムを使用します。
__unix__ 識別子は CRYPT_ALGORITHMS_ALLOW リストにありません。このため、crypt_unix アルゴリズムを使用することはできません。新しいパスワードは CRYPT_DEFAULT アルゴリズムで暗号化されます。

選択したアルゴリズムの構成の詳細については、policy.conf(4) のマニュアルページを参照してください。パスワード暗号化アルゴリズムを指定する場合は、「パスワードアルゴリズムの変更 (作業マップ)」を参照してください。

特殊なシステムアカウント

root アカウントは特殊なシステムアカウントの 1 つです。これらのアカウントのうち、root アカウントにのみパスワードが割り当てられ、ログインできます。nuucp アカウントはファイル転送用にログインできます。他のシステムアカウントは、ファイルを保護したり、または root の完全な権限を使用せずに管理プロセスを実行したりします。


注意

注意 - システムアカウントのパスワード設定は決して変更しないでください。shadow ファイルの 2 番目のフィールドが NP または *LK*sys で送信されるアカウントは、システムアカウントを示します。


次の表に、一部のシステムアカウントとその使用方法の一覧を示します。システムアカウントは特殊な機能を実行します。各アカウントは、100 より小さい UID を持ちます。

表 2-2 システムアカウントとその用途

システムアカウント
GID
用途
root
0
ほぼ無制限です。他の保護および許可より優先されます。root アカウントはシステム全体へのアクセス権を持ちます。root ログインのパスワードはきわめて厳密に保護する必要があります。root アカウント (スーパーユーザー) は、Oracle Solaris コマンドを所有します。
デーモン
1
バックグラウンド処理を制御します。
bin
2
一部の Oracle Solaris コマンドを所有します。
sys
3
多数のシステムファイルを所有します。
adm
4
一部のシステム管理ファイルを所有します。
lp
71
プリンタ用のオブジェクトデータファイルとスプールデータファイルを所有します。
uucp
5
UNIX 間のコピープログラム、UUCP 用のオブジェクトデータファイルとスプールデータファイルを所有します。
nuucp
9
システムにログインしてファイル転送を開始するために遠隔システムで使用されます。

遠隔ログイン

侵入者にとって、遠隔ログインは魅力的な手段です。Oracle Solaris は、リモートログインを監視、制限、および無効にする、いくつかのコマンドを提供します。手順については、「ログインとパスワードの保護 (作業マップ)」を参照してください。

デフォルトでは、システムのマウスやキーボード、フレームバッファー、オーディオデバイスなど、特定のシステムデバイスを、遠隔ログインを通して制御したり読み取ったりすることはできません。詳細は、logindevperm(4) のマニュアルページを参照してください。

ダイヤルアップログイン

モデムやダイヤルアップポートを通してアクセスされうるコンピュータには、セキュリティー層をもう 1 つ追加できます。つまり、モデムやダイヤルアップポートを通してシステムにアクセスするユーザーには「ダイヤルアップパスワード」を要求することができます。ユーザーがシステムにアクセスできるようになるには、この追加パスワードを入力する必要があります。

ダイヤルアップパスワードを作成または変更できるのはスーパーユーザーのみです。システムの完全性を確保するために、月に一度はパスワードを変更する必要があります。この機能のもっとも有効な使用方法は、ゲートウェイシステムへのアクセス権を取得するためのダイヤルアップパスワードを要求することです。ダイヤルアップパスワードの設定方法については、「ダイヤルアップパスワードを作成する方法」を参照してください。

ダイヤルアップパスワードの作成には、/etc/dialups/etc/d_passwd という 2 つのファイルが必要です。dialups ファイルには、ダイヤルアップパスワードを必要とするポートのリストを含みます。d_passwd ファイルには、追加のダイヤルアップパスワードとして暗号化パスワードを必要とするシェルプログラムのリストを含みます。これら 2 つのファイルの情報は次のように処理されます。