Go to main content
Oracle® Solaris 11.3 でのシステムおよび接続されたデバイスのセキュリティー保護

印刷ビューの終了

更新: 2017 年 3 月
 
 

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

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

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

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

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

ハードウェア設定に対する未承認アクセスから SPARC システムを保護できます。eeprom コマンドを使って、パスワードがないと PROM にアクセスできないようにしてください。詳細は、SPARC ハードウェアへのアクセスにパスワードを必要にする方法を参照してください。x86 ハードウェアを保護するには、ベンダーのドキュメントを参照してください。

ログイン制御の管理

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

    ユーザーがシステムにログインすると、login コマンドはネームスイッチサービス svc:/system/name-service/switch 内の情報に従って、該当するネームサービスまたはディレクトリサービスデータベースを確認します。ネームサービスデータベースの値を変更するには、SMF コマンドを使用します。ネームサービスは、ログインに影響を与えるデータベースの場所を示します。

  • files – ローカルシステムの /etc ファイルを指定します

  • ldap – LDAP サーバーの LDAP ディレクトリサービスを指定します

  • nis – NIS マスターサーバーの NIS データベースを指定します

  • dns – ネットワーク上のドメインネームサービスを指定します。

ネームサービスの説明は、nscd(1M) のマニュアルページを参照してください。ネームサービスおよびディレクトリサービスについては、Oracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: DNS と NISおよびOracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAPを参照してください。

login コマンドは、ユーザーによって指定されたユーザー名とパスワードを検証します。ユーザー名がパスワードデータベース内に存在しない場合、login コマンドはシステムへのアクセスを拒否します。あるいは、指定されたユーザー名に対するパスワードが正しくないと、login コマンドはシステムへのアクセスを拒否します。有効なユーザー名とそれに対応するパスワードが入力されれば、システムはシステムへのアクセスをユーザーに認可します。

PAM モジュールには、システムへのログインが正常に完了したあとのアプリケーションへのログインを効率化できます。詳細は、Oracle Solaris 11.3 での Kerberos およびその他の認証サービスの管理 の 第 1 章, プラグイン可能認証モジュールの使用を参照してください。

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

パスワード情報の管理

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

パスワードは、最初にユーザーアカウントを設定するときに作成されます。ユーザーアカウントのセキュリティーを管理するために、パスワード有効期限を設定し、パスワードを定期的に強制変更することができます。また、ユーザーアカウントを無効にして、パスワードをロックすることもできます。パスワードの管理の詳細は、Oracle Solaris 11.3 のユーザーアカウントとユーザー環境の管理 の 第 1 章, ユーザーアカウントとユーザー環境についておよび passwd(1) のマニュアルページを参照してください。

ローカルパスワード

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

NIS パスワード

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

LDAP パスワード

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

パスワードポリシーは Oracle Directory Server Enterprise Edition で適用されます。具体的には、クライアントの pam_ldap モジュールは Oracle Directory Server Enterprise Edition で適用されているパスワードポリシー制御に従います。詳細は、Oracle Solaris 11.3 ディレクトリサービスとネームサービスでの作業: LDAP の LDAP ネームサービスのセキュリティーモデルを参照してください。

パスワードの暗号化

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


注 -  FIPS 140-2 承認にするには、SHA アルゴリズムを使用します。詳細は、Oracle Solaris 11.3 での FIPS 140-2 対応システムの使用 の FIPS 140-2 コンシューマとしての passwd コマンドを参照してください。
パスワードアルゴリズムの識別子

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


注 -  可能な場合は、FIPS 140-2 承認アルゴリズムを使用してください。FIPS 140-2 承認アルゴリズムのリストについては、Oracle Solaris 11.3 での FIPS 140-2 対応システムの使用 の Oracle Solaris システムでの FIPS 140-2 アルゴリズムのリストと証明書のリファレンスを参照してください。
表 1  パスワードの暗号化アルゴリズム
識別子
説明
アルゴリズムのマニュアルページ
1
BSD システムや Linux システムの MD5 アルゴリズムと互換性のある MD5 アルゴリズム。
2a
BSD システムの Blowfish アルゴリズムと互換性のある Blowfish アルゴリズム。

注 -  FIPS 140-2 セキュリティーを向上させるには、/etc/security/policy.conf ファイル内の CRYPT_ALGORITHMS_ALLOW=2a,5,6 エントリから Blowfish アルゴリズム (2a) を削除します。

md5
BSD バージョンや Linux バージョンの MD5 よりも強力とされている Sun MD5 アルゴリズム。
5
SHA256 アルゴリズム。SHA は、Secure Hash Algorithm (セキュアハッシュアルゴリズム) を表します。このアルゴリズムは、SHA-2 ファミリのメンバーです。SHA256 では 255 文字のパスワードがサポートされます。このアルゴリズムがデフォルトです (CRYPT_DEFAULT)
6
SHA512 アルゴリズム。
__unix__
非推奨。従来の UNIX 暗号化アルゴリズム。このアルゴリズムは、古いシステムに接続するときに使用できます。

注 -  そのユーザーの新しいパスワードを生成する際は、ユーザーの初期パスワードに使用されたアルゴリズムが引き続き使用されます (ユーザーの新しいパスワードを生成する前に、別のデフォルトアルゴリズムが選択された場合でも)。このメカニズムは、次の条件で適用されます。
  • アルゴリズムがパスワード暗号化で使用することが許可されているアルゴリズムのリストに含まれている。

  • 識別子が _unix_ 以外である。

パスワード暗号化のアルゴリズムを切り替える方法については、パスワード暗号化のデフォルトアルゴリズムを変更するを参照してください。


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 Oracle Solaris default is a SHA256 based algorithm.  To revert to
# the policy in this Oracle Solaris release sets CRYPT_DEFAULT=__unix__,
# which is not listed in crypt.conf(4) since it is internal to libc.
#
CRYPT_DEFAULT=5
...

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

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

元のパスワード
変更後のパスワード
説明
1 = crypt_bsdmd5
同じアルゴリズムを使用します。
1 識別子は CRYPT_ALGORITHMS_ALLOW リストにあります。ユーザーのパスワードは引き続き 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_DEFAULT の値です。このため、新しいパスワードは引き続き crypt_sha512 アルゴリズムで暗号化されます。
__unix__ = crypt_unix
crypt_sha512 アルゴリズムを使用します。
__unix__ 識別子は CRYPT_ALGORITHMS_ALLOW リストにありません。このため、crypt_unix アルゴリズムを使用することはできません。新しいパスワードは CRYPT_DEFAULT アルゴリズムで暗号化されます。

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

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

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


Caution

注意  -  システムアカウントのパスワード設定は決して変更しないでください。Oracle Solaris からのシステムアカウントは、安全かつ確実な状態で配布されます。UID が 101 以下のシステムファイルは修正したり、作成したりしないでください。


次の表に、一部のシステムアカウントとその使用方法の一覧を示します。システムアカウントは特殊な機能を実行します。この一覧の各アカウントは、100 より小さい UID を持ちます。システムファイルの完全なリストを表示するには、logins –s コマンドを使用します。

表 2  選択されたシステムアカウントとその使用
システムアカウント
UID
用途
root
0
ほぼ無制限です。他の保護および許可をオーバーライドできます。root アカウントはシステム全体へのアクセス権を持ちます。root アカウントのパスワードは、非常に注意深く保護するようにしてください。root アカウントは、ほとんどの Oracle Solaris コマンドを所有しています。
daemon
1
バックグラウンド処理を制御します。
bin
2
一部の Oracle Solaris コマンドを所有します。
sys
3
多数のシステムファイルを所有します。
adm
4
一部のシステム管理ファイルを所有します。
lp
71
プリンタ用のオブジェクトデータファイルとスプールデータファイルを所有します。
uucp
5
UNIX 間のコピープログラム、UUCP 用のオブジェクトデータファイルとスプールデータファイルを所有します。
nuucp
9
システムにログインしてファイル転送を開始するためにリモートシステムで使用されます。

リモートログイン

侵入者にとって、リモートログインは魅力的な手段です。Oracle Solaris は、リモートログインをモニター、制限、および無効にする、いくつかのコマンドを提供します。手順については、表 4を参照してください。

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