1.1.4.1. rsyslogを設定する¶
journald.confでRateLimitの制限を無限になるようパラメーターを編集します。
# vi /etc/systemd/journald.conf RateLimitIntervalSec=0 RateLimitBurst=0
/etc/rsyslog.dの配下にrsyslog.confを作成します。
# vi /etc/rsyslog.d/rsyslog.conf # Ratelimitを無限にする $imjournalRatelimitInterval 0 $imjournalRatelimitBurst 0 # UDP syslog module(load="imudp") input(type="imudp" port="514") # TCP syslog module(load="imtcp") input(type="imtcp" port="514") # Defaultログ # ログ保管パス /var/log/rsyslog/xxx/xxx/yyyy/yyyymmdd/xxx.log template (name="default_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/%syslogfacility-text%.%syslogseverity-text%/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/%syslogfacility-text%.%syslogseverity-text%.log") # トラフィックログ # ログ保管パス /var/log/rsyslog/xxx/traffic/yyyy/yyyymmdd/traffic.log template (name="traffic_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/traffic/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/traffic.log") # 脅威ログ # ログ保管パス /var/log/rsyslog/xxx/threat/yyyy/yyyymmdd/threat.log template (name="threat_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/threat/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/threat.log") # URLフィルタリングログ # ログ保管パス /var/log/rsyslog/xxx/url/yyyy/yyyymmdd/url.log template (name="url_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/url/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/url.log") # DATAフィルタリングログ # ログ保管パス /var/log/rsyslog/xxx/data/yyyy/yyyymmdd/data.log template (name="data_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/data/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/data.log") # WildFire送信ログ # ログ保管パス /var/log/rsyslog/xxx/wildfire/yyyy/yyyymmdd/wildfire.log template (name="wildfire_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/wildfire/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/wildfire.log") # IPアドレスとユーザー名のマッピングログ # ログ保管パス /var/log/rsyslog/xxx/userid/yyyy/yyyymmdd/userid.log template (name="userid_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/userid/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/userid.log") # Captive Portalを用いたユーザー認証のログ # ログ保管パス /var/log/rsyslog/xxx/authentication/yyyy/yyyymmdd/authentication.log template (name="authentication_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/authentication/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/authentication.log") # HIPマッチログ # ログ保管パス /var/log/rsyslog/xxx/hip/yyyy/yyyymmdd/hip.log template (name="hip_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/hip/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/hip.log") # GlobalProtectログ # ログ保管パス /var/log/rsyslog/xxx/globalprotect/yyyy/yyyymmdd/globalprotect.log template (name="globalprotect_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/globalprotect/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/globalprotect.log") # 復号ログ # ログ保管パス /var/log/rsyslog/xxx/decryption/yyyy/yyyymmdd/decryption.log template (name="decryption_fileformat" type="string" string="/var/log/rsyslog/%fromhost%/decryption/%timestamp:::date-year%/%timestamp:::date-year%%timestamp:::date-month%%timestamp:::date-day%/decryption.log") # ログメッセージ logformat template (name="rsyslog_logformat" type="list") { property(name="rawmsg" droplastlf="on") constant(value="\n") } # Flexible Secure Gatewayのログ収集 if ($fromhost-ip startswith '192.168.0.x') then { # *.* @@192.168.0.x:514 #受け取ったログを他システムへsyslogとして転送 # トラフィックログ if ($msg contains ',TRAFFIC,') then { *.* ?traffic_fileformat;rsyslog_logformat # URLフィルタリングログ } else if ($msg contains ',THREAT,url,') then { *.* ?url_fileformat;rsyslog_logformat # DATAフィルタリングログ } else if ($msg contains ',THREAT,data,' or $msg contains ',THREAT,file,') then { *.* ?data_fileformat;rsyslog_logformat # WildFire送信ログ } else if ($msg contains ',THREAT,wildfire,' or $msg contains ',THREAT,wildfire-virus,') then { *.* ?wildfire_fileformat;rsyslog_logformat # 脅威ログ } else if ($msg contains ',THREAT,') then { *.* ?threat_fileformat;rsyslog_logformat # IPアドレスとユーザー名のマッピングログ } else if ($msg contains ',USERID,') then { *.* ?userid_fileformat;rsyslog_logformat # Captive Portalを用いたユーザー認証のログ } else if ($msg contains ',AUTHENTICATION,') then { *.* ?authentication_fileformat;rsyslog_logformat # HIPマッチログ } else if ($msg contains ',HIP-MATCH,') then { *.* ?hip_fileformat;rsyslog_logformat # GlobalProtectログ } else if ($msg contains ',GLOBALPROTECT,') then { *.* ?globalprotect_fileformat;rsyslog_logformat # 復号ログ } else if ($msg contains ',DECRYPTION,') then { *.* ?decryption_fileformat;rsyslog_logformat # Defaultログ } else { *.* ?default_fileformat;rsyslog_logformat } }
注釈
- FSGのログメッセージはPalo Alto Networks PAN-OSが定義するログフォーマットで送付されるのでrsyslogの区分設定は「表: ログフォーマット」のType, Threat/Content Type情報を参考に設定いただくとログタイプ別に区分して保管が可能です。
表: ログフォーマット¶ ログタイプ
Type
Threat/Content Type
ネットワークサービス
Traffic
TRAFFIC
FSG、FRA
Threat
THREAT
FSG、FRA
URLフォルタリング
THREAT
url
FSG、FRA
DATAフォルタリング
THREAT
data、file
FSG、FRA
WildFire
THREAT
wildfire、wildfire-virus
FSG、FRA
User-ID
USERID
FSG、FRA
認証
AUTHENTICATION
FSG、FRA
HIP
HIP-MATCH
FRA
GlobalProtect
GLOBALPROTECT
FRA
復号ログ
DECRYPTION
FRA
<ログ検索サーバーからも収集したい場合> /etc/rsyslog.dの配下にrsyslog-alog.confを作成します。
# vi /etc/rsyslog.d/rsyslog-alog.conf # Defaultログ # ログ保管パス /var/log/rsyslog-alog/xxx/xxx/xxx.log template (name="default_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/%syslogfacility-text%.%syslogseverity-text%/%syslogfacility-text%.%syslogseverity-text%.log") # トラフィックログ # ログ保管パス /var/log/rsyslog-alog/xxx/traffic/traffic.log template (name="traffic_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/traffic/traffic.log") # 脅威ログ # ログ保管パス /var/log/rsyslog-alog/xxx/threat/threat.log template (name="threat_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/threat/threat.log") # URLフィルタリングログ # ログ保管パス /var/log/rsyslog-alog/xxx/url/url.log template (name="url_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/url/url.log") # DATAフィルタリングログ # ログ保管パス /var/log/rsyslog-alog/xxx/data/data.log template (name="data_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/data/data.log") # WildFire送信ログ # ログ保管パス /var/log/rsyslog-alog/xxx/wildfire/wildfire.log template (name="wildfire_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/wildfire/wildfire.log") # IPアドレスとユーザー名のマッピングログ # ログ保管パス /var/log/rsyslog-alog/xxx/userid/userid.log template (name="userid_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/userid/userid.log") # Captive Portalを用いたユーザー認証のログ # ログ保管パス /var/log/rsyslog-alog/xxx/authentication/authentication.log template (name="authentication_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/authentication/authentication.log") # HIPマッチログ # ログ保管パス /var/log/rsyslog-alog/xxx/hip/hip.log template (name="hip_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/hip/hip.log") # GlobalProtectログ # ログ保管パス /var/log/rsyslog-alog/xxx/globalprotect/globalprotect.log template (name="globalprotect_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/globalprotect/globalprotect.log") # 復号ログ # ログ保管パス /var/log/rsyslog-alog/xxx/decryption/decryption.log template (name="decryption_alog_fileformat" type="string" string="/var/log/rsyslog-alog/%fromhost%/decryption/decryption.log") # ログメッセージ logformat template (name="rsyslog_logformat" type="list") { property(name="rawmsg" droplastlf="on") constant(value="\n") } # Flexible Secure Gatewayのログ収集 if ($fromhost-ip startswith '192.168.0.x') then { # トラフィックログ if ($msg contains ',TRAFFIC,') then { *.* ?traffic_alog_fileformat;rsyslog_logformat # URLフィルタリングログ } else if ($msg contains ',THREAT,url,') then { *.* ?url_alog_fileformat;rsyslog_logformat # DATAフィルタリングログ } else if ($msg contains ',THREAT,data,' or $msg contains ',THREAT,file,') then { *.* ?data_alog_fileformat;rsyslog_logformat # WildFire送信ログ } else if ($msg contains ',THREAT,wildfire,' or $msg contains ',THREAT,wildfire-virus,') then { *.* ?wildfire_alog_fileformat;rsyslog_logformat # 脅威ログ } else if ($msg contains ',THREAT,') then { *.* ?threat_alog_fileformat;rsyslog_logformat # IPアドレスとユーザー名のマッピングログ } else if ($msg contains ',USERID,') then { *.* ?userid_alog_fileformat;rsyslog_logformat # Captive Portalを用いたユーザー認証のログ } else if ($msg contains ',AUTHENTICATION,') then { *.* ?authentication_alog_fileformat;rsyslog_logformat # HIPマッチログ } else if ($msg contains ',HIP-MATCH,') then { *.* ?hip_alog_fileformat;rsyslog_logformat # GlobalProtectログ } else if ($msg contains ',GLOBALPROTECT,') then { *.* ?globalprotect_alog_fileformat;rsyslog_logformat # 復号ログ } else if ($msg contains ',DECRYPTION,') then { *.* ?decryption_alog_fileformat;rsyslog_logformat # Defaultログ } else { *.* ?default_alog_fileformat;rsyslog_logformat } }
/etc/hostsに対象リソースのIPとホスト名を追記します。
# vi /etc/hosts 192.168.0.1 [hostname]
journaldとrsyslogのサービスを再起動します。
# systemctl restart systemd-journald # systemctl restart rsyslog
rsyslogの設定内容を事前チェックします。
# rsyslogd -N1 rsyslogd: End of config validation run. Bye.