EPNetFan 的管理者への路シリーズ(??) |
■□■ログの管理とセキュリティ■□■ |
2002/02/01 Manabu YAMADA |
|
|
我々が普段つかうのは プログラムのコンパイルがうまく出来たかのチェック(コンパイラの出力を保存)や, 自作のプログラムの動作確認などです.
一方, OS やサーバプログラムは C),D) の様な情報も書き出しすことで 管理者が以下の項目をチェック出来るようにするのが普通です.
|
|
なお, ファイルの置かれるディレクトリは Debian GNU/Linux 2.2(potato)の 例です. システムによって/var/log/ディレクトリは /var/adm/, /usr/adm などである場合があります.
なし.
/var/run/utmp, /var/log/wtmp, /var/log/lastlog, /var/log/faillog
utmp, wtmp 共にバイナリ形式のファイルなので,
以下のツールを使って記録を調べます.
who(1), whoami(1), w(1), users(1), finger(1),
last(1), lastb(1), ac(1)
一方, lastlog, faillog などは utmp, wtmp をもとに作られた
テキストファイルで lastlog(8), faillog(8)
コマンドを使用します.
詳細は man ページを参照してください.
wtmp ファ イ ルにはすべてのログインとログアウトが記録され る。そのフォーマットはログアウトした端末ではユーザー名がヌ ルであることを除きまったく同じである。それに加え、ユーザー 名として"shutdown" もしくは "reboot" を持っ て い る 端 末 名"~"はシステムの停止(shutdown)または再起動(reboot) を意味 している。またその端末名 が"|"と"}"の 対 で あ る 場 合 は date(1)コ マンドで変更した新/旧のシステム時間を記録してい る。 wtmp ファイルはlogin(1)、init(1)やいくつかのバー ジョ ンのgetty(1)により維持されている。これらのプログラムはいず れもファイルを新たに作成したりしないので、ファイルを削除す る事で情報の記録(record-keeping)を止める事ができる。
wtmp及びbtmpファイルが存在しない可能性もある. システムはこ れらのファイルが存在する場合のみ情報を書き留める. 上 記 の ファイルが存在するか否かは各サイトの設定の問題である。これ らのファイルを使いたい場合は、touchコマンドを使って簡単 に 作る事が出来る(例えば、touch /var/log/wtmp) .
特になし.
/var/account/pacct
lastcomm(1), sa(8), accton(8) コマンドを使用する. 詳細は man ページを参照してください.
Debian GNU/Linux 2.2 (potato)で使用するには kernel を再構築し (General setup の "BSD Process Accounting" を有効にする) acct(2) が使えるようにならなくてはなしません. また acct パッケージが必要です.
エラーログには多くのプログラムからの情報が記録されており, システムの監査に不可欠です. エラーログは汎用ログ採取プログラム syslogd を介して行われ, 記録されるメッセージは少くとも時間の情報とホスト名を持ます. 通常はそれらに加えてプログラム名のフィールドも記録されますが その内容の信頼性はそれぞれのプログラムに依存します. したがって臨機応変にログを見なくてはなりません.
/etc/syslog.conf (syslog.conf(5) 参照)
ログをどこに記録するか種類と優先順位によって選択する
決まり事を記述したファイル.
/var/log/ (制御ファイルに記述された場所)
出力されるログはテキストファイルなので, ページャプログラム, grep, などを駆使して 監査します.
どのようなプログラムでも syslogd を介してイベントの記録が可能です. シェルコマンドインターフェイスとして logger(1) があり, 誰でも syslog に書き込む事ができます. したがって, エラーログに記録された内容を鵜のみにすることは できません.
アプリケーション名 | 制御ファイル名 | Log 置場を決める変数名 | ログのあるディレクトリ(Debian 2.2) |
---|---|---|---|
apache | httpd.conf | CustomLog, ErrorLog | /var/log/apache/ |
アプリケーションによって監査様のツールがあるかもしれません. ネットワークサービスを行う場合, 該当するプロトコルの エラーコードを適度に知っていることが要求されます.
多くのログは放っておくといくらでも大きくなる. したがって定期的にログをリセットする必要があるが, 少しまえのログは取っておきたいものです.
logrotate はログファイルを定期的に更新し, ログが溜らないようにするために 使用するツール. 更新時に古いファイルを番号付きのファイル名に変え, 決まり(いろいろ設定でる)にしたがってある程度古いものを消去していきます. これを cron を使って定期的に起動することで自動的にログを管理します.
/etc/logrotate.conf,
/etclogrotate.d, (logrotate(8) 参照)
logrotate の回転時間間隔や破棄するまでの時間などをこのファイルで
決定します. ファイルサイズの上限で回転させることも可能.
Debian パッケージの場合 wtmp 等接続時間ログに関するものは
logrotate.conf に書かれており,
その他は個々の設定ファイルを作成し /etc/logrotate.d
の下に置く設定に成っています.
.swatchrc
最新の swatch は Perl 5 で書かれており, 以下のモジュールが 必要となります. CPAN
ログを監査する際の注意点
|
コマンドは実際に実行してみればわかるでしょう (時間を見付けて更新する予定).
チェックすべき点はあるユーザに対して,
lastlogファイル, などテキストログを参照しているコマンドと wtmp を直に参照しているコマンドが出す内容を比較してみるのも重要です.
EPNetFan 的自力更生への路 ○プログラムに異変があったら先ずエラー出力やログを調べましょう!! . ×プログラムに異変があったらすぐ誰かに聞く, 騒ぐ, 慌てふためく . |
コード | 説明 | Netscape エラー表示 |
---|---|---|
200 | すべて正常. 転送は正常に実行され, エラーは起こらなかった. | |
201 | POST コマンドが実行され, イベントなしで正常に完了した. | |
202 | POST コマンドが実行され, イベントなしで正常に完了した. | |
301 | クライアントの要求したデータが 一時的に変更された別のURLにあることがわかった |
Moved Permanently The document has moved here. (本来は"here"から変更されたURLへリンクされる) |
400 | クライアントからの要求が不正だったため, 処理は行われなかった. |
Bad Request Your browser sent a request that this server could not understand. |
401 | アクセスする権限のないデータに対してクライアントが アクセスを要求した. | |
402 | 支払方式の調整が行われている. | |
403 | アクセスが全面的に禁止されている.(パーミッションが出ていない) |
Forbidden You don't have permission to access /~hoge/access.log on this server. |
404 | 要求した文書が存在しない. |
Not Found The requested URL /~hoge/index.html was not found on this server. |
405 | 要求したメソッドは許されていない. |
Method Not Allowed The requested method POST is not allowed for the URL /index.html. |
500 | 修復できない内部サーバーエラーが発生した (クライアントが呼び出したCGIスクリプトにバグがある場合に起こるエラー). |
Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@hoge.ep.sci.hokudai.ac.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. |
501 | サーバーで実行できない(あるいはサポートされていない) 操作をクライアントが要求した. | |
502 | サーバに過大な負荷がかかっている. |