このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

25.9.10 ファイル・システムのマウント、ファイル権限およびファイル所有権の構成

オペレーティング・システムとユーザー・データに別個のディスク・パーティションを使用して、ファイル・システム・フルの問題がサーバーの操作に影響を与えるのを防ぎます。 たとえば、/home/tmpp/oracleなどに別個のパーティションを作成できます。

ディスク割当てを作成することで、ユーザーが誤ってまたは意図的にファイル・システムをすべて使用し、他のユーザーへのアクセスを拒否するのを防ぎます。

オペレーティング・システム・ファイルおよびユーティリティが攻撃時に変更されるのを防ぐには、/usrファイル・システムを読取り専用でマウントします。 ファイル・システム上のRPMを更新する必要がある場合は、-o remount,rwオプションを指定してmountコマンドを使用し、読取りおよび書込みアクセスの両方で/usrを再マウントします。 更新の実行後、-o remount,roオプションを使用して/usrファイル・システムを読取り専用モードに戻します。

/tmpなどの非rootローカル・ファイル・システムまたはリムーバル・ストレージ・パーティションへのユーザー・アクセスを制限するには、mount-o noexec、nosuid, nodevオプションを指定します。 これらのオプションは、バイナリ(スクリプトではなく)の実行を防ぎ、setuidビットがなんらかの影響を及ぼすのを防ぎ、デバイス・ファイルの使用を防ぎます。

findコマンドを使用して、各ファイル・システム上の所有されていないファイルおよびディレクトリをチェックします。次に例を示します。

# find mount_point -mount -type f -nouser -o -nogroup -exec ls -l {} \;
# find mount_point -mount -type d -nouser -o -nogroup -exec ls -l {} \;

所有されていないファイルおよびディレクトリは、削除されたユーザー・アカウントに関連付けられている可能性があるため、ソフトウェアのインストール・エラーまたは削除エラー、あるいはシステムへの侵入を示している可能性があります。 見つかったファイルおよびディレクトリの権限と所有権を修正するか、これらを削除します。 可能な場合は、これが作成される原因となった問題を調査して修正してください。

findコマンドを使用して、各ファイル・システム上のあらゆるユーザーが書込み可能なディレクトリをチェックします。次に例を示します。

# find mount_point -mount -type d -perm /o+w -exec ls -l {} \;

システム・ユーザー以外のユーザーによって所有される、あらゆるユーザーが書込み可能なディレクトリを調査します。 ユーザーは、他のユーザーがこのディレクトリに書き込んだファイルを削除または変更できます。 見つかったディレクトリの権限と所有権を修正するか、これらを削除します。

findを使用してsetuidおよびsetgid実行可能ファイルをチェックすることもできます。

# find path -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;

setuidおよびsetgidビットが設定されている場合、root権限などの権限を必要とするタスクを実行可能ファイルで実行できます。 ただし、バッファ・オーバーラン攻撃によってこれらの実行可能ファイルが悪用され、利用されたプロセスの権限を使用して不正コードが実行される可能性があります。

setuidおよびsetgid実行可能ファイルが非rootユーザーに使用されるのを阻止するには、次のコマンドを使用してsetuidまたはsetgidビットを設定解除します。

# chmod u-s file
# chmod g-s file

たとえば、chmodコマンドを使用して/bin/ping6コマンドのsetuidビットを設定解除できます。

# ls -al /bin/ping6
-rwsr-xr-x. 1 root root 36488 May 20  2011 /bin/ping6
# chmod u-s /bin/ping6
# ls -al /bin/ping6
-rwxr-xr-x. 1 root root 36488 May 20  2011 /bin/ping6

次の表に、setuidおよびsetgidの設定解除を検討できるプログラムを示します。

プログラム・ファイル

設定ビット

使用方法の説明

/bin/ping

setuid

ICMP ECHO_REQUESTをネットワーク・ホストに送信します。

/bin/ping6

setuid

ICMPv6 ECHO_REQUESTをネットワーク・ホストに送信します。

/bin/cgexec

setgid

制御グループでタスクを実行します。

/sbin/mount.nfs

setuid

NFSファイルシステムをマウントします。

ノート

/sbin/mount.nfs4/sbin/umount.nfsおよび/sbin/umount.nfs4は、このファイルへのシンボリック・リンクです。

/sbin/netreport

setgid

ネットワーク・インタフェースに対する変更の通知をリクエストします。

/usr/bin/chage

setuid

パスワード・エージング情報を(-lオプションを使用して)見つけます。

/usr/bin/chfn

setuid

finger情報を変更します。

/usr/bin/chsh

setuid

ログイン・シェルを変更します。

/usr/bin/crontab

setuid

crontabファイルを編集、リストまたは削除します。

/usr/bin/wall

setgid

システム全体にメッセージを送信します。

/usr/bin/write

setgid

他のユーザーにメッセージを送信します。

/usr/bin/Xorg

setuid

X Windowsサーバーを起動します。

/usr/libexec/openssh/ssh-keysign

setuid

ホストベースの認証のためのSSHヘルパー・プログラムを実行します。

/usr/sbin/suexec

setuid

外部CGIおよびSSIプログラムを実行する前に、ユーザーを切り替えます。 このプログラムは、Apache HTTPサーバーで使用されます。 詳細は、http://httpd.apache.org/docs/2.2/suexec.htmlを参照してください。

/usr/sbin/usernetctl

setuid

ネットワーク・インタフェースを制御します。 ユーザーがネットワーク・インタフェースの状態を変更する権限で、インタフェース・ファイルでUSERCTL=yesも設定する必要があります。 /etc/sudoersファイルに適切なエントリを作成して、ユーザーとグループにipコマンドを実行する権限を付与することもできます。

ノート

setuidおよびsetgidプログラムは多くのオプション・パッケージに含まれるため、このリストは完全ではありません。