ファイル・システムのマウント、ファイル権限およびファイル所有権の構成
OSおよびユーザー・データに別個のディスク・パーティションを使用すると、"ファイル・システム・フル"のエラーがサーバーの操作に影響を与えるのを防ぎます。たとえば、/home
、/tmp
、/oracle
などに別個のパーティションを作成できます。
ディスク割当てを設定すると、ユーザーはファイル・システムに(意図的かどうかにかかわらず)入力できなくなるため、他のユーザーへのアクセスを拒否できます。
侵入時にOSファイルおよびユーティリティが変更されないようにするには、/usr
ファイル・システムを読取り専用権限でマウントします。ファイル・システム上のRPMを更新する必要がある場合は、-o remount,rwオプションを指定してmountコマンドを使用し、読取りおよび書込みアクセスの両方で/usr
を再マウントします。更新の実行後、-o remount,roオプションを使用して/usr
ファイル・システムを読取り専用モードに戻すことができます。
/tmp
などの非root
ローカル・ファイル・システム、またはリムーバル・ストレージ・パーティションへのユーザー・アクセスを制限するには、mountに-o noexec、nosuid、nodevオプションを指定します。これらのオプションは、スクリプトではなくバイナリの実行を防止し、setuid
ビットがなんらかの影響を及ぼすのを防止し、デバイス・ファイルの使用を防止します。
各ファイル・システム上の所有されていないファイルおよびディレクトリをチェックするには、findコマンドを使用します:
sudo find mount_point -mount -type f -nouser -o -nogroup -exec ls -l {} \;
所有されていないファイルおよびディレクトリは、削除されたユーザー・アカウントに関連付けられている可能性があるため、ソフトウェアのインストール・エラーまたは削除エラー、あるいはシステムへの侵入を示している可能性があります。見つかったファイルおよびディレクトリの権限と所有権を修正するか、これらを削除します。作成につながった問題を調査して修正することは、適切なセキュリティ・プラクティスとみなされます。
各ファイル・システム上のあらゆるユーザーが書込み可能なディレクトリをチェックするには、findコマンドを使用します:
sudo find mount_point -mount -type d -perm /o+w -exec ls -l {} \;
システム・ユーザー以外のユーザーによって所有される、あらゆるユーザーが書込み可能なディレクトリを調査することは、適切なセキュリティ・プラクティスとみなされます。ユーザーが、他のユーザーがディレクトリに書き込むファイルを削除または変更できる場合は、検出または削除したディレクトリのアクセス権と所有権を修正できます。
findコマンドを使用してsetuid
およびsetgid
実行可能ファイルをチェックすることもできます。
sudo find path -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
setuid
およびsetgid
ビットが設定されている場合、root
権限などの権限を必要とするタスクを実行可能ファイルで実行できます。ただし、バッファ・オーバーラン攻撃によってこれらの実行可能ファイルが悪用され、利用されたプロセスの権限を使用して不正コードが実行される可能性があります。