実際に Snort が検出した不正パケットを出力するデータベースを準備します。 初めての方のために、先に MySQL について少し補足しておきます。
MySQL DBサーバ構築、mysql コマンドについてはここでは割愛します。MySQL ユーザに関する理解、権限など一定の知識は必要です。
はじめて MySQL を利用する場合は、必ず root パスワードを設定するようにして下さい。これは、Linux のスーパーユーザの root ではなく、MySQL ユーザの root の事です。MySQL 内で MySQL ユーザを管理しています。Linux ユーザと混同しないで下さい。
参照 => MySQL 4.1 リファレンスマニュアル :: 4.4 MySQL のユーザ管理
MySQL root パスワードは以下のように設定します。
root ユーザのパスワードを変更するには mysqladmin コマンドを使用します。
MySQL を利用する CMS も多く、データベースをちょくちょく作成する必要もあるかと思います。MySQL ユーザの管理やデータベース作成、権限に関する設定は、ブラウザ(GUI)で行える phpMyAdmin が便利です。
MySQL構文を知らなくても、簡単にセットアップに必要なデータベースを用意できます。このような用途では、SSH を使用しなくても Apache 側で https (SSL)に限定する、クライアント認証を導入するといった Web サーバ側でセキュリティを確保できるのでお勧めです。
phpMyAdmin のセットアップについては、以下で紹介しています。
関連 => MySQL を GUI で操作する (phpMyAdminを導入)
また、phpMyAdmin を利用したユーザ作成、データベース作成は、phpBB2 のセットアップで具体的な利用方法を紹介しています。併せて参考にして下さい。
関連 => ユーザー参加型高機能フォーラム phpBB2 を導入する
Snort が検出した不正パケットを出力するデータベースを作成します。ここでは、Snort 専用のMySQL ユーザ snort を新規に作成し、MySQL ユーザ snort のみにデータベース権限を与えるケースを例に説明しています。
ここでは新規に 2つのデータベースを作成します。
非常に多くのパケットを検出します。Snort の運用を始めてしばらくは、不要パケットの選別とチューニング作業になります。ACID がサポートしているアーカイブ用のデータベースを作っておくと何かと便利です。
以下は、MySQL サーバに全ての権限を持つ MySQL 内の root ユーザが、snort_db という名前の新しいデータベースを作成しています。
ちなみに -p はパスワードを要求するオプションで、これがない状態で作業できるという事は、MySQL の root ユーザパスワードが設定されていない危険な常態にあります。かならず、root パスワードは設定するようにして下さい。
このデータベースを使用するには、Snort がMySQL 対応でコンパイルされている事、設定ファイル "snort.conf" でこのデータベースが出力先に指定されている必要があります。
既に、管理用のMySQLアカウントがあるのであれば、それを利用しても結構です。 作成した snort_db にのみ権限を持つ MySQL アカウント snort を作成します。 特権を与えるには、 grant 構文を使用します。
snort_db (データベース、テーブル)に対して、特権 (select,insert,update.delete) を持つユーザー snort を 任意のパスワード ********* で作成します。
この任意のパスワード、アカウントは設定ファイルで指定する必要があります。
ここで特権をリロードしておきます。
これら一連の手順は、phpMyAdmin で簡単に行えます。 検討してみて下さい。
同じ要領で、snort_archives データベースも作成し、テーブルを作成してください。こちらは、ACID がアーカイブ用に利用するデータベースです。必須ではありませんが、運用にあった方が何かと便利なので、ここで一緒に作成しておくと作業に無駄がありません。
作成したデータベース snort_db に、snort に必要なテーブルを作成する必要があります。テーブル情報は提供されていますので、これを利用します。
注意
snort-2.6.0 から src.rpm が提供されていますが、rpmでインストールを行った場合、このテーブル作成コマンドは付属していませんでした。ソースを入手する必要があります。ソースからインストールした場合は、展開ディレクトリにテーブル作成コマンドが用意されています。
ソースを入手します。
schemas ディレクトリにテーブル情報があります。以下のコマンドで 用意した snort_db データベースにテーブル情報を書き込みます。以下は root ユーザ(mysql)権限で操作しています。適切な特権が与えられていれば 作成した snort ユーザで行なっても構いません。
同じく作成したアーカイブ用のデータベースにもテーブル情報を書き込んでおきます。
これで Snort に必要なデータベースが準備できました。まだ IDS 構築の入り口に立ったばかりです。道のりは長いです。ここいらで一息ついてください。