カスタマイズ可能なUSB bootのFreeNASができあがったので、試しにルーターのログをFreeNASで動作しているsyslog serverに転送してみます
- コンソールshellかsshでroot login
- /etc/rc.d/syslogdのバックアップ
- /etc/rc.d/syslogdの編集
- 外部から送信されてくるログの受信を許可する
- ルーターからのログを保存するファイル等の設定
- log file作成
- syslogdの再起動
- ルーター側設定
freenas:~# cp /etc/rc.d/syslogd /root
変更内容としては
syslogd_flags=”-a 192.168.1.0/24″がその部分になります。通常は/etc/rc.confに記述すればいいのですが、何故か起動スクリプトに埋め込まれていますのでこちらを修正します
これも /etc/syslog.confへの記述で大丈夫だろうと思っていると再起動すると消えてしまいます。起動スクリプトの/etc/rc.d/syslogdの中で/etc/syslog.confをechoで作成しているので、この部分の修正を行います。192.168.1.1はルーターのIPアドレスです
freenas:~# vi /etc/rc.d/syslogd
[変更前]
(snip)
# Check if syslog’ing to remote syslog server is disabled
if ! configxml_isset //syslogd/remote/enable; then
syslogd_flags=”-ss”
command_args=”-f ${syslogd_config}”
fisyslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *” > ${syslogd_config}
(snip)[変更後]
(snip)
# Check if syslog’ing to remote syslog server is disabled
if ! configxml_isset //syslogd/remote/enable; then
syslogd_flags=”-a 192.168.1.0/24″
command_args=”-f ${syslogd_config}”
fisyslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *
+192.168.1.1
*.* /var/log/router.log” > ${syslogd_config}
(snip)
freenas:~# touch /var/log/router.log
freenas:~# chmod 600 /var/log/router.log
freenas:~# /etc/rc.d/syslogd restart
Stopping syslogd.
Starting syslogd.
freenas:~# ps ax | grep syslog
1812 ?? Ss 0:00.01 /usr/sbin/syslogd -a 192.168.1.0/24 -f /var/etc/syslog.conf
ルーター側の設定でsyslog serverの設定を行います。ログレベル, syslog serverのIPを指定すれば大丈夫と思います
さて、テストでルーターのログレベルをinfoにして暫く様子をみます
ルーターからログが流れてくると/var/log/router.logに記録されていきます
freenas:~# cat /var/log/router.log
Apr 30 13:08:27 192.168.1.1 [INSPECT] PP[03][out][202098] TCP 192.168.1.199:50301 > xxx.xxx.xxxx.xxx:443 (2012/04/30 13:06:25)
Apr 30 13:08:38 192.168.1.1 LAN2 Rejected at IN(default) filter: next header=103 fe80::21f:6dff:fe90:dc1a > ff02::d
Apr 30 13:08:40 192.168.1.1 [INSPECT] PP[03][out][202081] UDP 192.168.1.254:43647 > xxx.xxx.xxx.xxx:53 (2012/04/30 13:08:38)
取り敢えずルーターのログが記録されていますが、同じものが/var/log/system.logにも記録されています。これをsystem.logには記録されないようにします
ルーターから流れてくるログのfacilityはuserでしたので
freenas:~# vi /etc/rc.d/syslogd
[変更前]
syslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *
+192.168.1.1
*.* /var/log/router.log” > ${syslogd_config}[変更後]
syslogd_mkconf()
{
echo “local3.* %${clog_logdir}/sshd.log
local4.* %${clog_logdir}/rsyncd.log
local5.* %${clog_logdir}/smartd.log
ftp.* %${clog_logdir}/ftp.log
daemon.* %${clog_logdir}/daemon.log
*.notice;kern.debug;lpr.info;mail.crit;mail.info;news.err;local0.none;local7.none;user.none %${clog_logdir}/system.log
security.* %${clog_logdir}/system.log
auth.info;authpriv.info %${clog_logdir}/system.log
*.emerg *
+192.168.1.1
user.* /var/log/router.log” > ${syslogd_config}
これでルーターのログは/var/log/router.logのみに記録されます
でもlogrotateは行わないのでログの肥大化が発生します。注意!
What a very informative site, I have found alot of very useful information here and still have a lot more to read. Thank you very much for the time and effort you have put in….