2011年5月26日木曜日

パーティションを分ける理由について

Cです。

パーティションを分ける理由。
クライアントPCとして、いわゆるデスクトップ用途であれば、
「/」だけにHDDの容量全部割り当てて、
1個のパーティションにしてしまうこともあるだろう。

サーバ用途であれば、
システム領域がログやWebコンテンツで圧迫されないように
/varなどを分けたり、バックアップをとりやすいように、
データ領域を分けたりするのだが、
パーティションを分ける理由はもう1つある。

あまり意識されることは無いけど、セキュリティ的な要素も含んでいる。
キーワードは「マウントオプション」だ。

知っている通り、マウントオプションは
ファイルシステムへのアクセス方法を制御するためのオプションだ。

マウントオプションはファイルシステムがマウントされるタイミングで、
OSカーネルに引き渡される。

nodevを渡せばデバイスファイルを無効にできたり、
nosuidオプションでSUIDビットを無効にしたりできる。
roオプションは良く使う、読み出し専用でマウントできる。

■例 -o でマウントオプションを渡す。
# mount -o nodev,noexec,nosuid /dev/sda3 /tmp

モチロン、/etc/fstab に記載して起動時に
自動的にマウントオプションを指定してやることもできる。

使用目的(機能)別にパーティションを分割し、
それぞれのパーティションに適切なマウントオプションを設定する。

読み出し専用にしたいパーティションは/usrとかかな、
サーバの用途にもよるけど、/homeは読み出し専用にしたらだめだが、
SUIDのついたプログラムを実行したり、デバイスファイルを作成したりする事は
許可しなくても問題ないはずである。

こういう風に、マウントオプションを正しく設定してやることによって、
攻撃者が侵入した後の活動の邪魔をすることができる。

ただ、root権限をとられちゃったら -o remount されちゃうことで、
マウントオプション無しで再マウントされてしまう。

以上。

0 件のコメント:

コメントを投稿