2. 起動時の保護

もしあなたのマシンが、他の人が触ることのできる環境に置かれているなら、あなたの意図しないブートのしかたをされないようにする必要があります。

2.1. BIOS の保護

BIOS をパスワードで保護する、FD や CD-ROM からの起動を BIOS で禁止する、lilo に任意のパラメータを与えられないようパスワードで保護する、などについては JF の Security-HOWTO にありますので、ここでは割愛します。

2.2. lilo の保護 (ix86 only)

lilo に任意のパラメータを与えられないようパスワードで保護する、などについては JF の Security-HOWTO にありますので、ここでは割愛します。

2.3. grub の保護 (ix86 only)

まず、パスワードを md5 暗号化した文字列を取得します。

$ grub-md5-crypt
Password: **********
Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.

つぎに、そうやって得られた文字列を、grub.conf の中で指定します。

password --md5 $1$U$JK7xFegdxWH6VuppCUSIb.

こうしておくと、起動時の grub のメニュー画面で 'p' を押してパスワードを入力しないかぎり、パラメータを変更することができなくなります。

2.4. yaboot (ppc)

yabootでの設定は、 /etc/yaboot.conf

password=hoge

と設定すると、boot 時に設定したパスワードを入力して起動する様になります。 ここで、hoge はパスワードそのまま、もしくは md5 ハッシュの値です。 md5 ハッシュを求める方法はいろいろありますが、たとえば

$ htpasswd -n -m dummy
New password: [パスワード入力]
Re-type new password: [パスワード再入力]
dummy:$apr1$5Ph8v...$qobZITRW/NXRPlXcLEfM61

とすれば、'dummy:' よりあとの部分が md5 ハッシュの値になります。 この設定を行なった場合には、yaboot.conf のパーミッションに注意して下さい。 なお、端末が macos や macosx とのデュアルブートの場合、macos/macosx を起動する為にパスワードは必要になりません。

また、lilo と同様に、

restricted

を指定すると、カーネルパラメータを指定する際のみパスワードが要求されます。

alpha の milo などその他のブートローダについてご存知の方はお知らせください。

2.5. シングルユーザモードの保護

何らかの理由でシングルユーザモードに入ったとしても、いきなり root 権限のシェルが走らないようにパスワード保護しましょう。/etc/inittab の ランレベル 0 の定義を以下のようにします。

0:S:respawn:/sbin/sulogin

2.6. 物理的セキュリティ

上記のような対策をしていても、所詮は HDD を盗まれたらデータの流出は避けられません。 [1] また、壊されたり燃やされたりしたら、犯罪者にとって大した利益がなくても、こちらにとっては十分大きな損失となります。 つまり、「物理的セキュリティをなめるな」ということです。 [2]



[1] 暗号化ファイルシステムを使えば、少なくとも当分の間は読めないようにすることができるかもしれません。

[2] 部屋にカギをかけたり、コードに足をかけてしまわないようにカバーをすることや、落雷にも対応できるよう UPS を設置することも効果があります (犯罪対策だけがセキュリティではありません)。 物理的なセキュリティは、難しいとはいえ、お金をかければある程度は向上させることができるものです。