syslog-ng インストールメモ (2005/1/20)
(1) syslog-ngに必要なlibolをインストールする。
% cd /usr/local/src
% gunzip -cd libol-0.3.1x.tar.gz | tar xvf -
% cd libol-0.3.1x
% ./configure
% make
(2) syslog-ngをインストールする。
% cd /usr/local/src
% gunzip -cd syslog-ng-1.6.x.tar.gz | tar xvf -
% cd syslog-ng-1.6.x
% ./configure --with-libol=/usr/local/src/libol-0.3.1x
% make
# make install
デフォルトでインストールされる場所
/usr/local/sbin/syslog-ng
syslog-ngの設定
case RedHat Linux
/usr/local/etc/syslog-ng/syslog-ng.conf
case Solaris
/etc/syslog-ng/syslog-ng.conf
各OSごとのサンプルファイルは、
/usr/local/src/syslog-ng-1.6.x/contrib/にある。
起動スクリプトのサンプルもここにある。
confファイルのチェックは、
#syslog-ng -s
で行う。
syslog-ngの登録・起動
case RedHat Linux
% cd /usr/local/src/syslog-ng-1.6.x
# cp contrib/init.d.RedHat-7.3 /etc/init.d/syslog-ng
# chmod +x /etc/init.d/syslog-ng
# chkconfig --add syslog-ng
ランレベルの確認
# chkconfig --list syslog-ng
syslog-ng 0:off 1:off 2:on 3:on 4:on 5:on 6:off
syslogdを停止して、syslog-ngを起動する。
# service syslog stop
# service syslog-ng start
次回OS起動時にsyslogdが起動しないようにする。
# chkconfig syslog off
# chkconfig --level 2 syslog off
# chkconfig --list syslog
syslog 0:off 1:off
2:off 3:off 4:off 5:off 6:off
case Solaris8,9
% cd /usr/local/src/syslog-ng-1.6.x
# cp contrib/init.d.solaris /etc/init.d/syslog-ng
# chmod 744 /etc/init.d/syslog-ng
# ln /etc/init.d/syslog-ng /etc/rc0.d/K40syslog-ng
# ln /etc/init.d/syslog-ng /etc/rc1.d/K40syslog-ng
# ln /etc/init.d/syslog-ng /etc/rc2.d/S74syslog-ng
# ln /etc/init.d/syslog-ng /etc/rcS.d/K40syslog-ng
syslog-ngをroot以外で起動する場合、/etc/init.d/syslog-ngの
OPTIONS="-u ユーザ名 -f /etc/syslog-ng/syslog-ng.conf"
として編集する。
syslogdを停止して、syslog-ngを起動する。
# /etc/init.d/syslog stop
# /etc/init.d/syslog-ng start
次回OS起動時にsyslogdが起動しないようにする。
# mv /etc/rc2.d/S74syslog
/etc/rc2.d/disable.S74syslog
ログローテーションの設定変更
case RedHat Linux (RedHat:/etc/logrotate.conf)
case RHEL:/etc/logrotate.d/syslog-ng
(/etc/logrotate.d/syslogをコピーして作るかそのままsyslogを編集する)
..
postrotate
/bin/kill -HUP `cat
/var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true
endscript
..
case Solaris9 (/etc/logadm.conf)
/var/log/ログファイル名 -C 2 -a 'kill -HUP `cat
/var/run/syslog-ng.pid`' -s 512k -t '$file.$N'
syslog-ngのチューニング(syslog-ng.conf)
options { sync (0);
// ログをファイルへ出力する前に、バッファに保持するメッセージ数(行数)。デフォルトは2048。
dir_perm
(0755); // パーミッション(ディレクトリ)
perm
(0644); // パーミッション(ファイル)
owner
(root); // パーミッション(所有者)
group
(root); // パーミッション(グループ)
stats
(3600); // syslog-ngの状態ログの出力間隔
long_hostnames
(off); // s_local@hostnameをhostnameのみにする場合off
keep_hostname
(yes);
use_dns (no);
use_fqdn (no);
create_dirs (no);
};
それぞれのファイルごとのパーミッションは、
destination d_authlog { file("/var/log/authlog"); perm(0600); };
# RedHat Linuxでは、syntax errorになった。
参考URL:
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec09/unix_sec01.html
http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec10/unix_sec01.html
http://www.balabit.com/products/syslog_ng/