Raspberry Pi 2でSyslogサーバを構築する

Sat Jan 7, 2017 in server using tags raspberrypi , home-network , homemon1 , homemon2 , homefw01

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。

前回に引き続きhomemon1homemon2を構築していきます。 FortiGate 60Dの通過ログやセキュリティイベントログを記録するためにSyslogサーバを構築します。

rsyslogの設定

ネットワーク機器のSyslogを保存する用の設定

ネットワーク機器のIPアドレスまたはホスト名でディレクトリを作成し、IPアドレスまたはホスト名でログファイルを作成する。 例)/var/log/network-device/ホスト名/ホスト名.log

$ sudo cp -p /etc/rsyslog.conf{,.org}
$ ls -l /etc/rsyslog.conf*
-rw-r--r-- 1 root root 2632 12月 14  2015 /etc/rsyslog.conf
-rw-r--r-- 1 root root 2632 12月 14  2015 /etc/rsyslog.conf.org
$
$ sudo vi /etc/rsyslog.conf
#$ModLoad imudp
#$UDPServerRun 514
$ModLoad imudp
$UDPServerRun 514

$WorkDirectory /var/spool/rsyslog

#
# Queue
#
$MainMsgQueueType LinkedList
#$ActionQueueType Direct

$ diff /etc/rsyslog.conf.org /etc/rsyslog.conf
16,17c16,17
< #$ModLoad imudp
< #$UDPServerRun 514
---
> $ModLoad imudp
> $UDPServerRun 514
46a47,52
> 
> #
> # Queue
> #
> $MainMsgQueueType LinkedList
> #$ActionQueueType Direct
$
$ sudo vi /etc/rsyslog.d/network-device.conf
$template NetworkDeviceFileName,"/var/log/network-device/%hostname:::secpath-replace%/%hostname:::secpath-replace%-%$year%%$month%%$day%.log"
if $fromhost-ip != '127.0.0.1' then ?NetworkDeviceFileName
& ~

rsyslogの再起動

$ sudo systemctl restart rsyslog

ログローテート

ログローテートの設定

$ sudo vi /etc/logrotate.d/network-device
/var/log/network-device/*/*.log
{
	daily
	rotate 1
	maxage 92
	nocreate
	missingok
	ifempty
	compress
	sharedscripts
}

logrotateをテスト実行し、エラーがないことを確認

$ sudo logrotate -dv /etc/logrotate.d/network-device 
reading config file /etc/logrotate.d/network-device

Handling 1 logs

rotating pattern: /var/log/network-device/*/*.log
 after 1 days (92 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/network-device/192.168.30.254/192.168.30.254.log
  log does not need rotating
not running postrotate script, since no logs were rotated

FortiGate 60DのSyslog送信設定

FortiGate 60DからSyslogサーバにsyslog送信を行うように設定

# config log syslogd setting
(setting)# set status enable
(setting)# set server "192.168.30.10"
(setting)# end
#
# config log syslogd setting
(setting)# set status enable
(setting)# set server "192.168.30.20"
(setting)# end
#

FortiGate 60Dのsyslog送信設定の確認

# show log syslogd setting
config log syslogd setting
	set status enable
	set server "192.168.30.10"
end
#
# show log syslogd2 setting
config log syslogd2 setting
	set status enable
	set server "192.168.30.20"
end
#

以上