インストール方法
今回はサーバ構築をansibleで行っているので、パッケージでのインストールを実施。
参考サイト
パッケージの検索方法
pkgs.orgにてlogcheck
を検索
EPELにてパッケージを発見
パッケージでのインストール
EPELリポジトリがあるか確認
$ yum list installed | grep epel
epel-release.noarch 6-8.9.amzn1 installed
EPELリポジトリを指定してパッケージを検索
$ yum list --enablerepo=epel | grep logcheck
logcheck.noarch1.3.13-5.el6 epel
今回はansibleでの構築のためインストール用のrolesを作成
---
- name: be sure logcheck is installed
yum: name={{item}} state=installed enablerepo=epel
with_items:
- logcheck
tags: logcheck
ansibleを実行後インストール確認
$ yum list installed | grep logcheck
logcheck.noarch 1.3.13-5.el6 @epel
logcheckの設定
logcheckコマンド
$ ls -l /usr/sbin/logcheck
-rwxr-xr-x 1 root root 21438 8月 26 2011 /usr/sbin/logcheck
設定ファイル群(/etc/logcheck)
drwxr-xr-x 2 root root 4096 3月 17 16:49 cracking.d クラッキングの試行として分類するメッセージのルール
drwxr-xr-x 2 root root 4096 3月 17 16:49 ignore.d.paranoid
drwxr-xr-x 2 root root 4096 3月 17 16:49 ignore.d.server
drwxr-xr-x 2 root root 4096 3月 17 16:49 ignore.d.workstation
-rw-r--r-- 1 root root 2625 8月 26 2011 logcheck.conf 設定ファイル
-rw-r--r-- 1 root root 133 8月 26 2011 logcheck.logfiles 監視対象ファイルのリスト
drwxr-xr-x 2 root root 4096 3月 17 16:49 violations.d セキュリティ警告として分類するメッセージのルール
drwxr-xr-x 2 root root 4096 3月 17 16:49 violations.ignore.d セキュリティ警告として分類されたメッセージの分類を解除するメッセージのルール
参考サイト
cron(/etc/cron.d/logcheck)
# /etc/cron.d/logcheck: crontab entries for the logcheck package
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
@reboot logcheckif [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck -R; fi
2 * * * * logcheckif [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi
# EOF
logcheck.shの設定を確認
今回は既存環境から移行のため、現行での設定をまずは確認する。
既存のlogcheck.shの設定内容
項目 | 内容 |
---|---|
SYSADMIN | メールの送信先アドレス |
GREP | egrepコマンドのパス |
メールコマンド | |
NKF | NKFコマンドのパス |
TMPDIR [/usr/local/etc/tmp] | |
HACKING_FILE [logcheck.hacking] | システムに対する攻撃と認識されるキーワードを格納する。※通知したい文字列 |
HACKING_IGNORE_FILE[logcheck.hacking.ignore] | logcheck.hacking のキーワードに合致しても、例外的に報告しないようにするためのキーワードを格納する。 ※通知したくない文字列 |
VIOLATIONS_FILE[logcheck.violations] | システムに何らかの害を及ぼす可能性があると認識されるキーワードを格納する。※通知したい文字列 |
VIOLATIONS_IGNORE_FILE[logcheck.violations.ignore] | logcheck.violations のキーワードに合致しても、例外的に報告しないようにするためのキーワードを格納する。※通知したくない文字列 |
IGNORE_FILE[logcheck.ignore] | 無視すべきキーワードを格納する。※通知したくない文字列 |
コマンドオプション
$ sudo -u logcheck /usr/sbin/logcheck -h
usage: logcheck [-c CFG] [-d] [-h] [-H HOST] [-l LOG] [-L CFG] [-m MAIL] [-o]
[-r DIR] [-s|-p|-w] [-R] [-S DIR] [-t] [-T] [-u]
-c CFG = override default configuration file
-d = debug mode
-h = print this usage information and exit
-H HOST = use this hostname in the subject of any generated mail
-l LOG = check the specified logfile
-L CFG = override default logfiles list
-m MAIL = send the report to the specified recipient
-o = send the report to stdout, no mail will be sent
-p = use the "paranoid" runlevel
-r DIR = override default rules directory
-R = adds "Reboot:" to email subject
-s = use the "server" runlevel
-S DIR = override default state directory
-t = testing mode, don't update the logfile offsets
-T = do not remove the TMPDIR
-u = enable syslog-summary
-v = print version
-w = use the "workstation" runlevel
まずはデフォルトの状態で動作を確認
logcheckユーザにてlogcheckコマンドを実行
sudo -u logcheck /usr/sbin/logcheck
以下のエラーメールが通知
エラー1
System Events
=-=-=-=-=-=-=
File /var/log/messages cannot be read: µö²Ä¤¬¤¢¤ê¤Þ¤»¤ó
エラー2
/usr/sbin/logcheck: 100 行: kill: (14711) - そのようなプロセスはありません
とりあえずエラー1は/var/log/messagesが読めないエラーっぽい。
権限を確認してみる。
$ ls -l /var/log/messages
-rw------- 1 root root 129996 3月 18 12:44 /var/log/messages
そりゃそうだ。。 logcheckユーザで動いてるから当たり前。
読み込み権限644
を付与したら上記エラー2つが解消。