
【連載】
止められないUNIXサーバのセキュリティ対策
第7回 UNIXサーバの運用管理で欠かせないログ管理
三井物産GTI (現:三井物産セキュアディレクション株式会社)
木村 靖
2004/1/21
| ※ご注意 本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。 |
前回までは4回にわたり、サービスの利用制限について説明した。今回からはログの運用管理および監査方法について説明する。
|
運用管理で欠かせないログ管理 |
UNIXでは、システムが出力したメッセージやアプリケーションの動作状況などを、ログとしてファイルなどに記録する。記録される内容には、正常な動作を示すメッセージから緊急事態を示すエラーメッセージまで、さまざまな事象が含まれることから、ログはUNIXサーバを運用管理するうえで欠かせない存在となっている。
本稿では、UNIXログシステムの大半を担うsyslogを中心に、現状の把握と見直しを行う。
●ログの種類と出力方法
UNIXのログには、システムの異常を示すログ、ユーザーのログイン履歴や認証時のログ、メールシステムの送信ログ、さらにはサーバプログラムの動作ログなど、その用途に応じてさまざまな種類が存在する。そして、それらのログは、syslogなどのログ制御システムを介して出力される場合もあれば、プログラム自身が出力する場合もある。
UNIXサーバにおいて、一般的なログの種類と格納先を表1に示す。
|
||||||||||||||||||||||||||||||||||||||||||||||||
| 表1 UNIXの主なログ |
| ※注 login(1)、syslog(3)の(1)や(3)は、オンラインマニュアルの番号を表している。manコマンドを使って参照する場合は、man 1 login、man 3 syslogのようにする。 |
●syslogとプログラムの出力するログ
前述のとおり、UNIXのログの出力方法は、ログ制御システム(syslog)を介して出力する方法と、プログラム自身が出力する方法に大別される。
前者のsyslogは、もともとはメールサーバプログラムのsendmail用として開発されたものだが、それが広く浸透し、いまではUNIXにおいて当たり前のように利用されるまでになった。表1でも示したとおり、UNIXログの大半は、このsyslogによって制御・出力されている。
後者は、前者のsyslogのようなログ専用サービスに出力を任せるのではなく、自分自身でログをファイルに保存する。この方法は、syslogとは異なる形式でログに保存したい場合や、WebサーバのApache*1など、ログファイルへの書き込みが頻発する、処理数の多いサービスで用いられている。
| *1 設定によりApacheもsyslogに出力することは可能だが、アクセスが頻発するサイトの場合はあまりお勧めできない。 |
本稿では、前者のsyslogを中心に説明する。
|
syslogの設定内容を理解する |
UNIXサーバ管理者は、syslogが、どういった内容を、どこに出力するのかを把握しておく必要がある。そのためには、まずsyslogで設定されている内容自体を理解することから始める。
●syslogの仕組み
前述のとおり、syslog(RFC3196)は、もともとsendmail用のログ制御システムとして開発されたもので、現在広く浸透しているsyslogは、BSD版がオリジナルとなっている。
syslogのおおまかなデータの流れを図1に示す。
|
| 図1 syslogのデータの流れ |
図1に示すとおり、外部サーバからのログデータの受け取りは、514/udp*2のインターネットドメインソケット*3を使って行われる。自分自身のログデータは、UNIXドメインソケットの/dev/logを使う。ただし、カーネルの出力メッセージの場合は、/dev/klogが使用されることになる*4。syslogは、これらすべてのログデータのやりとりを、syslogサーバプログラムのsyslogdで行い、その動作は、/etc/syslog.confの内容に基づき決定される。
| *2 syslogの種類の中には、TCPを使えるものもある。 |
| *3 UNIXでは、データのやり取りを行う場合に、ソケットと呼ばれる情報の伝達手段が用いられる。syslogのログデータ送受信も例外ではない。 |
| *4 システムによって異なる。例えば、Linuxではklogdが担当する場合もある。 |
●syslogの設定(syslog.confの書式)
syslogに関する設定は、/etc/syslog.confの値で決まる。syslogdは、このsyslog.confの設定内容を読み込み、実際の運用に適用する。
基本的なsyslog.confの記述形式は、以下のとおりとなる。なお、「facility」「priority」「ログの出力先」の詳細については後述する。
| syslog.confの記述形式 |
|
facility.priority 1個以上のタブ(TAB) ログの出力先 |
左辺のfacilityとpriorityは、ドット(.)で区切る。1つの出力先に、facilityとpriorityを複数指定する場合は、セミコロン(;)で区切る必要がある。
facility.priority;facility.priority;…… |
また、「facility.priority」と「ログの出力先」は、必ずタブ(TAB)で区切る必要がある。最近では、空白も指定可能なsyslogdもあるが、いらぬトラブルを招かないためにも、“syslog.confはタブ(TAB)で区切る”と覚えておくとよいだろう。
●facility(機能)とpriority(重要度)を理解する
syslogを理解するうえで必ず避けて通れないのが、facilityとpriorityの設定項目だ。このfacilityとpriorityの値を調整することで、意図したログの内容を、特定の出力先に出力することが可能になる。
- facility(機能)
facilityの代表的な値は、表2のとおりとなる。機能(項目)別に設定すべき値があらかじめ定義されている。また、複数のfacilityを指定したい場合は「,」(カンマ)で接続して使用する。
値意味auth login、su、gettyなどの認証やセキュリティ authpriv authと同じだが、ログファイルの読み取り権限が特定ユーザーのみに限られている必要がある cron クロックデーモン(cronやatなど)
daemon facility値に存在しない、そのほかのデーモン ftp ftpデーモン kern カーネルメッセージ lpr プリンタ mail メール news USERNET(NetNews) syslog syslogdが出力するメッセージ user ユーザープロセスが生成するメッセージ(デフォルト) uucp UUCP local0 拡張用のfacility。local0からlocal7までが予約されている * すべてのfacility 表2 syslogのfacility
※注
設定する値は、UNIXシステムによって異なる場合があるので、詳細は、オンラインマニュアル(syslog(3))で確認すること。例えば、Solarisの場合、authprivがないので注意が必要だ。
- priority(重要度)
priorityの代表的な値は、表3のとおりとなる。上にいくほど緊急度が高くなり、条件として、設定した値またはそれよりも緊急度が高い場合に限り、ログメッセージが出力される。
値意味emerg 緊急事態。通常、すべてのユーザーに一斉通知される alert システムの破壊など、緊急に対処すべき状態
crit ハードウェアのデバイスエラーなど、危険な状態 err 一般的なエラー warning 警告レベルの場合 notice エラーではないが、対処した方がよい状態 info 通常のメッセージ debug 詳細メッセージ。プログラムのデバッグなどで利用する * すべてのpriority none 指定したfacilityを除外(例:mailのfacilityを除外する場合は、mail.noneを指定) 表3 syslogのpriority
※注
設定する値は、UNIXシステムによって異なる場合があるので、詳細は、オンラインマニュアル(syslog(3))で確認すること。
- ログの出力先
syslog.confの右辺では、facilityとpriorityで定義したログの内容を、どこに出力するかを定義する。出力先は表4のとおりとなる。
出力先意味ファイル 指定ファイルに保存 /dev/console コンソール画面に表示
ユーザー ログイン中の指定ユーザーに通知 * ログイン中の全ユーザーに一斉通知 | プログラム名 ログメッセージを指定したプログラムに渡す @ログサーバ 別のログサーバにログを転送 表4 syslogの出力先
●設定内容を反映させる
/etc/syslog.confに設定した内容を反映させるには、syslogdにHUP(ハングアップ)シグナルを送り込めばよい(kill -HUP syslogdのプロセスID)。
# ps -ax | grep syslogd |
または、
# kill -HUP `cat /var/run/syslogd.pid` |
のように実行する。なお、正しく反映されたかどうかは、後述の「設定内容の確認(loggerコマンド)」で確認するとよいだろう。
●syslogの設定例
それでは、実際にsyslog.confの代表的な設定例をいくつか紹介する。
なお、設定を変更した場合は、前述の「設定内容を反映させる」の手順が必要になる。
例:メールに関するすべてのログ(mail.*)は、/var/log/maillogに格納する。
mail.* /var/log/maillog |
例:警告レベルのすべてのログ(*.alert)は、ユーザーrootおよびkimuに通知する。
*.alert root,kimu
|
例:緊急事態のすべてのログ(*.emerg)は、ログイン中のすべてのユーザーに一斉通知する。
*.emerg * |
例:すべてのエラーログ(*.err)、およびカーネルに関するすべてのログ(kernel.*)は、コンソール画面(/dev/console)に表示する。
*.err;kernel.* /dev/console |
例:すべての警告レベル以上のログ(*.alert)は、任意のプログラム(例では/usr/local/bin/logscript)に渡す。
*.alert |/usr/local/bin/logscript |
例:認証関連のすべてのログ(auth,authpriv.*)は、ログサーバloghost.example.co.jpに転送する。
auth,authpriv.* @loghost.example.co.jp |
なお、ログサーバへの転送については、次回説明する。
次ページでは、syslogの設定について見直すことにする(続く
)。
| 1/2 |
| index | |
| 第1回 不要なサービスの停止こそ管理の第一歩 | |
| 第2回 ソフトウェアの現状確認とアップグレード | |
| 第3回 サービスをセキュアにするための利用制限(1) | |
| 第4回 サービスをセキュアにするための利用制限(2) | |
| 第5回 サービスをセキュアにするための利用制限(3) | |
| 第6回 特権ユーザーの安全性向上を行うsudoの設定例 | |
| 第7回 UNIXサーバの運用管理で欠かせないログ管理 | |
| 運用管理で欠かせないログ管理 | |
| syslogの設定内容を理解する | |
| syslogの設定を見直す | |
| 設定内容の確認(loggerコマンド) | |
| 第8回 syslogによるログの一元管理 | |
| 関連記事 | |
| 連載:Webアプリケーションに潜むセキュリティホール | |
| 特集:クロスサイトスクリプティング対策の基本 | |
| 連載:インシデントレスポンスはじめの一歩〜rootkitを検出するために |
| Security&Trust記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- 「脆弱性根絶なんてできっこない」と嘆く前に (2010/2/2)
バグをなくせ、脆弱性を作るな――そんな精神論はもう飽き飽き。でもあきらめる前に、この現状でもできることを考えよう - データ保護と暗号化はイコールではない? (2010/1/27)
暗号化だけが保護の方法ではありません。要件として設定されている「保存されたカード会員データを保護すること」の真意を解説します - OpenID/SAMLのつなぎ方とその課題 (2010/1/22)
1つのベン図からスタートしたID管理技術の相互運用。OpenIDとSAMLを例に、実際の運用方式とその課題を解説します - 新春早々の「Gumblar一問一答」 (2010/1/20)
一躍メジャーになってしまったトロイの木馬、ガンブラー。何が脅威でどう対策すべきか、もう一度確認してみましょう
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






