さて, システムのチェックが終わり, 安全かつ使いやすいものになり, ネット ワークに接続する準備ができました. ここでは, 実際に侵入された場合に備え ての準備のためにすべきことをいくつか挙げます. これを行っておけば, 侵入 者をすぐに追い払い, システムを復旧, 稼働させることができます.
バックアップの方法や保存媒体についての議論は本ドキュメントの範囲外です が, バックアップとセキュリティについて簡単に触れておきます:
1 つのパーティションに入っているデータが 650MB 以下であれば, CD-R にデー タをコピーすると良いでしょう(改竄が困難ですし, きちんと保管すれば長期 間保存できます). テープなどの読み書き可能なメディアは, バックアップが 終わり次第書き込み禁止にし, 改竄できないようにすべきです. バックアップ はオンラインでアクセスできない場所に置きましょう. 良いバックアップを作っ ておけば, 何かあった時にシステムをその時点に復旧させることができます.
6 本のテープを使い回すと管理が楽です. 4 本のテープを平日に使い, 残りの 2 本は 1 本ずつ金曜日に隔週で使います. 毎日インクリメンタルバックアップ を実行し, 金曜日のテープ(適切な方)にはフルバックアップを取ります. 特に重要な変更がシステムにあった場合や, 重要なデータを加えた場合には, バックアップを行うのが適切でしょう.
システムに侵入された時に RPM データベースを tripwire
代わりに
使うことができますが, これはデータベースが改竄されていないことが確実な
場合だけです. ですから, RPM データベースをフロッピーディスクにコピーし
ておき, コンピュータから取り出して保管しておきましょう. Debian ディス
トリビューションについても同様です.
ファイル /var/lib/rpm/fileindex.rpm
や
/var/lib/rpm/packages.rpm
は大抵フロッピーディスク 1 枚には収まらないでしょう.
ですが圧縮すれば別々のフロッピーディスクに収めることができるはずです.
仮にシステムに侵入されてしまったときには, 次のコマンドを実行してシステ ムの各ファイルを検査します:
root# rpm -Va
rpm
のオンラインマニュアルを参照すれば, 出力を少なくするオプ
ションに関する説明があります. RPM のバイナリ自体が改竄されていないこと
も確認すべきである点は忘れないでください.
この方法を使う場合には, 新しい RPM パッケージを追加するごとに RPM デー タベースのバックアップを取らなければなりません. この方法を使うかどうか は利点と欠点を考え合わせて決めてください.
syslog
から得られる情報が改竄されないようにするのはとても重要です.
まず, /var/log
を
特定のユーザしか読み書きできないようにしておきましょう.
ログに出力されていること, 特に auth
の項目には目を通しましょ
う. 例えばログイン失敗が続いていると, これは侵入の試みの痕跡かもしれま
せん.
ログがどこにあるかは ディストリビューションによって異なります. Red Hat
のように "Linux Filesystem Standard" に準拠しているシステムであれば,
/var/log
に messages
ファイルや mail.log
等
があるはずです.
自分が使っているディストリビューションがどこにログを出力しているのかは,
/etc/syslog.conf
ファイルを見ればわかります. これは
syslogd
(システムのログを取るためのデーモン)に, メッセージの
出力の仕方を指示するファイルです.
ログが長くなり過ぎないようにし, 検査もしやすくするために, ログをローテー
トさせるスクリプトやデーモンを設定することもできます. 最近の Red Hat ディ
ストリビューションでは logrotate
パッケージを調べてみましょう.
他のディストリビューションにも同様の仕組みがあるはずです.
ログファイルが改竄されてしまっても, いつ, どんな種類の改竄が行われたの かを調べましょう. 長期間記録されていない項目はありませんか? (もしある ならば)バックアップのテープで, 改竄されていないログをチェックすること もできます.
侵入の痕跡を消すため, 侵入者は一般的にログファイルを改竄しますが, それでも思わぬところでチェックに引っかかることもあります. 入口を見つけようとしていたり, root 権限を得るためプログラムを不正使用しようとしている 侵入者に気づくかもしれません. 侵入者がログを改竄するより前に, ログを見ましょう.
su
によるユーザ変更やログインの試み等のユーザアカウント情報を
含む auth
の項目は, 他のログから分離すべきでしょう.
可能ならば, 重要なデータのコピーを安全なシステムに送るように
syslog
を設定しましょう. これにより, login/su/ftp 等の記録を
消して侵入者が足跡を消してしまうことを防げます. syslog.conf
のオンラインマニュアルの @
オプションを参照してください.
高機能版の syslogd
がいくつかあります. 例えば
http://www.core-sdi.com/ssyslog/ にある Secure Syslog をご覧く
ださい. Secure Syslog を使うと syslog のエントリを暗号化して誰も改竄で
きないようにします.
別の高機能 syslogd
としては
syslog-ng があります.
これを用いるとログの記録をより柔軟に行うことができ,
またリモートの syslog のストリームを改竄できないようにします.
最後になりますが, 誰も読んでいないようなログは役に立ちません. 適当に間 隔を取ってログを読み, いつもはどんな感じであるのかを感覚的に知っておき ましょう. そうしておけば, 異常があった場合にすぐに見つけることができます.
ほとんどのユーザは Linux を CD-ROM からインストールします. しかし, セ キュリティのためのシステム修正は速いペースで行われているので, 新しい (修正済みの)プログラムが常にリリースされています. マシンをネットワーク に接続する前には, お使いのディストリビューションの FTP サイトをチェッ クし, インストールに使った CD-ROM より新しいパッケージを全て手に入れま しょう. これらのパッケージにはセキュリティ関連の重要な修正が入っている ことが多いので, これをインストールするのは良い考えです.