1.1.4.1. rsyslogを設定する

  1. journald.confでRateLimitの制限を無限になるようパラメーターを編集します。

    # vi /etc/systemd/journald.conf
    RateLimitIntervalSec=0
    RateLimitBurst=0
    
  2. /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

  3. <ログ検索サーバーからも収集したい場合> /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
      }
    }
    
  4. /etc/hostsに対象リソースのIPとホスト名を追記します。

    # vi /etc/hosts
    192.168.0.1 [hostname]
    
  5. journaldとrsyslogのサービスを再起動します。

    # systemctl restart systemd-journald
    # systemctl restart rsyslog
    
  6. rsyslogの設定内容を事前チェックします。

    # rsyslogd -N1
    rsyslogd: End of config validation run. Bye.