Logging to cPanel/WHM server



  • Hello,

    Right now, I have our pfSense hardware device connected to a switch on the WAN interface, with a single cPanel server connected to the switch.  The pfSense LAN interface isn't connected to anything yet, we need to get another switch for that.  Yesterday pfSense died (no VPN, no access to servers, etc), but after restarting it I couldn't see anything in the logs, but I noticed that I could send the logs to another server.  The cPanel server is running CentOS 7.2.

    I'm having a hard time getting this to work.  I don't want to interfere with the local logs on the other server, I just want to allow it to accept and save the pfSense logs also.

    On the pfSense settings page for the logs, for the source address I've tried any, WAN, and DMZ.  I use IPv4, enter the WAN IP of the cPanel server, and check the boxes for system and firewall events.  When I chose any or DMZ, I didn't see anything, but when I chose WAN I did see those packets on UDP 514 getting blocked, so I added a pass rule for them.  I'm still not seeing anything saved on the cPanel server though.

    On the server, I'm using the following for rsyslog.conf.  I uncommented the UDP module and filled in those settings, and added the 3 if statements at the top of the rules section (I added the LAN IP of pfSense even though I know that's not going to work yet):

    # rsyslog configuration file
    
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
    
    #### MODULES ####
    
    # The imjournal module bellow is now used as a message source instead of imuxsock.
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imjournal # provides access to the systemd journal
    #$ModLoad imklog # reads kernel messages (the same are read from journald)
    #$ModLoad immark  # provides --MARK-- message capability
    
    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    $UDPServerAddress <this server's="" wan="" ip=""># Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    
    #### GLOBAL DIRECTIVES ####
    
    # Where to place auxiliary files
    $WorkDirectory /var/lib/rsyslog
    
    # Use default timestamp format
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    
    # File syncing capability is disabled by default. This feature is usually not required,
    # not useful and an extreme performance hit
    #$ActionFileEnableSync on
    
    # Include all config files in /etc/rsyslog.d/
    $IncludeConfig /etc/rsyslog.d/*.conf
    
    # Turn off message reception via local log socket;
    # local messages are retrieved through imjournal now.
    $OmitLocalLogging on
    
    # File to store the position in the journal
    $IMJournalStateFile imjournal.state
    
    #### RULES ####
    
    if $fromhost-ip == '<pfsense dmz="" ip="">' then {
      action(type="omfile" file="/var/log/pfsense.log")
      stop
    }
    if $fromhost-ip == '<pfsense wan="" ip="">' then {
      action(type="omfile" file="/var/log/pfsense.log")
      stop
    }
    if $fromhost-ip == '<pfsense lan="" ip="">' then {
      action(type="omfile" file="/var/log/pfsense.log")
      stop
    }
    
    # Log all kernel messages to the console.
    # Logging much else clutters up the screen.
    #kern.*                                                 /dev/console
    
    # Log anything (except mail) of level info or higher.
    # Don't log private authentication messages!
    *.info;mail.none;authpriv.none;cron.none                /var/log/messages
    
    # The authpriv file has restricted access.
    authpriv.*                                              /var/log/secure
    
    # Log all the mail messages in one place.
    mail.*                                                  -/var/log/maillog
    
    # Log cron stuff
    cron.*                                                  /var/log/cron
    
    # Everybody gets emergency messages
    *.emerg                                                 :omusrmsg:*
    
    # Save news errors of level crit and higher in a special file.
    uucp,news.crit                                          /var/log/spooler
    
    # Save boot messages also to boot.log
    local7.*                                                /var/log/boot.log
    
    # ### begin forwarding rule ###
    # The statement between the begin ... end define a SINGLE forwarding
    # rule. They belong together, do NOT split them. If you create multiple
    # forwarding rules, duplicate the whole block!
    # Remote Logging (we use TCP for reliable delivery)
    #
    # An on-disk queue is created for this action. If the remote host is
    # down, messages are spooled to disk and sent when it is up again.
    #$ActionQueueFileName fwdRule1 # unique name prefix for spool files
    #$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
    #$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
    #$ActionQueueType LinkedList   # run asynchronously
    #$ActionResumeRetryCount -1    # infinite retries if host is down
    # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
    #*.* @@remote-host:514
    # ### end of the forwarding rule ###</pfsense></pfsense></pfsense></this> 
    

    Does anyone know what I'm doing wrong?

    Thanks



  • I've been able to use tcpdump to verify that the server is receiving traffic from pfSense, but I'm still not able to get it written to a file.  This is what I've got in the rsyslog.conf file (I've changed the first 3 octets in the IP, and I removed the other rules that wouldn't match):

    # rsyslog configuration file
    
    # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
    # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
    
    #### MODULES ####
    
    # The imjournal module bellow is now used as a message source instead of imuxsock.
    $ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
    $ModLoad imjournal # provides access to the systemd journal
    #$ModLoad imklog # reads kernel messages (the same are read from journald)
    #$ModLoad immark  # provides --MARK-- message capability
    
    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    $UDPServerAddress 10.10.10.130
    
    # Provides TCP syslog reception
    #$ModLoad imtcp
    #$InputTCPServerRun 514
    
    #### GLOBAL DIRECTIVES ####
    
    # Where to place auxiliary files
    $WorkDirectory /var/lib/rsyslog
    
    # Use default timestamp format
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    
    # File syncing capability is disabled by default. This feature is usually not required,
    # not useful and an extreme performance hit
    #$ActionFileEnableSync on
    
    # Include all config files in /etc/rsyslog.d/
    $IncludeConfig /etc/rsyslog.d/*.conf
    
    # Turn off message reception via local log socket;
    # local messages are retrieved through imjournal now.
    $OmitLocalLogging on
    
    # File to store the position in the journal
    $IMJournalStateFile imjournal.state
    
    #### RULES ####
    
    if $fromhost-ip == '10.10.10.129' then /var/log/pfsense.log
    & ~
    
    # Log all kernel messages to the console.
    # Logging much else clutters up the screen.
    #kern.*                                                 /dev/console
    
    # Log anything (except mail) of level info or higher.
    # Don't log private authentication messages!
    *.info;mail.none;authpriv.none;cron.none                /var/log/messages
    
    # The authpriv file has restricted access.
    authpriv.*                                              /var/log/secure
    
    # Log all the mail messages in one place.
    mail.*                                                  -/var/log/maillog
    
    # Log cron stuff
    cron.*                                                  /var/log/cron
    
    # Everybody gets emergency messages
    *.emerg                                                 :omusrmsg:*
    
    # Save news errors of level crit and higher in a special file.
    uucp,news.crit                                          /var/log/spooler
    
    # Save boot messages also to boot.log
    local7.*                                                /var/log/boot.log
    


  • This is becoming a critical issue for us, can anyone tell what I've got wrong?