Palo Alto Syslog via TLS

As we have just set up a TLS capable syslog server, let’s configure a Palo Alto Networks firewall to send syslog messages via an encrypted channel. While it was quite straightforward to configure I ran into a couple of (unresolved) problems as I added and deleted some syslog servers and their certificates. Uhm.

Syslog & Certificate Configuration

I am using a PA-220 with PAN-OS 10.0.7 for this setup. My syslog-ng server with version 3.25.1 is running on a Ubuntu 20.04.3 LTS.

Basically, you just have to set the transport of a syslog server to “SSL”. (For whatever reason it’s still named SSL. It should read TLS since a couple of years.) I am using the “IETF” format nowadays. This seems to be the more modern standard, refer to RFC 5424 Appendix A.1. Though I don’t see any obvious differences between the BSD and the IETF type.

If you’re doing an immediate commit you will see these system logs:

Screenshot:

–> This is because I am using a self-signed x.509 certificate on my syslog-ng server which is not trusted indeed. Good so far!

The same errors are appearing at the /var/log/syslog log file on the syslog-ng server itself:

You have to import the certificate of the syslog-ng server into the Palo as well:

Now it’s working. ;)

Note that for some reason the Palo does NOT use IPv6 for this outgoing syslog connection, though my FQDN had an AAAA record at the time of writing and the syslog server itself was accessible.

This is what the legacy IP TLS connection looks like with Wireshark:

Some maloperations?!?

Since I wanted to use IPv6, I configured the IPv6 address of the syslog-ng server manually:

The TCP handshake to the syslog server worked, but no TLS connection was established. I got the same errors in the system log:

And this is it in Wireshark:

After trying that I decided to go back to the FQDN of my syslog-ng server to let the Palo use it with legacy IP. However, I was not able to get it working again at all! I tried the following:

  1. without certificate -> not working
  2. imported certificate -> working
  3. deleted certificate -> still working (!!!???)
  4. change of the syslog server to a dummy
  5. change back to my real one -> not working (ok)
  6. imported certificate again -> still not working (not ok!)
  7. reboot of the whole device -> still not working

Hence I suppose some kind of bugs here. :(

Anyway, lessons learned:

For every new logging device you MUST verify that log messages arrive at the destined syslog server correctly.

Photo by Claudio Testa on Unsplash.

7 thoughts on “Palo Alto Syslog via TLS

  1. I have this same problem. We got 10.1 working with IPv4 and secure syslog to an external destination but were using the identity cert. Tried to swap to using the typical root CA or even intermediate so we would not have to upload the new identity cert every year but….. once we tried something new. It broke and did not ever connect even when we went back to known good. We have a ticket open with PA and I will provide an update here if I get a fix.

    Reboot did not fix but now all the syslogs say successful even though it is failing. The cap shows our PAN resets after the ServerDone HS.

    1. For Secure Syslog a few items not in PA docs…yet:

      * Syslog Server Profile -> Syslog Server: MUST be FQDN to match cert. ( They should add SNI support with IPv4/IPv6 addresses in config IMHO)
      * The “syslogng-ssl-conn-validation” must be set to skip at this time(no bug/feature ID known at this time)
      —-
      set syslogng-ssl-conn-validation explicit OCSP skip CRL skip EKU skip
      set syslogng-ssl-conn-validation all-cons skip
      —-
      * Secure Syslog does NOT seem to work at Root or Intermediate CA validation. MUST have Identity Cert installed in store.

      Confirmed this on PANOS 10.1.3-h1. Asked for PA to update Docs and add solution to community.

      Johannes,
      You could try setting to IPv6 address with a DNS entry and if needed disabling the validation checks for syslogng on PA.

      1. We have the exact same problem as well. We got TLS syslog to work WITHOUT client authentication with the commands Johannes suggested:

        set syslogng-ssl-conn-validation explicit OCSP skip CRL skip EKU skip
        set syslogng-ssl-conn-validation all-cons skip

        The message logs were complaining about our intermediate cert not having OCSP/CRL EKUs (which violate the RFC).

        We can’t get Panorama to send a client certificate under any circumstances. We’ve tried many permutations on our rsyslog server. We have an existing Panorama 9.x installation that works perfectly, even with client cert auth.

        We have a case open with Palo, but no joy. We’ve suggested that their TLS syslog implementation is broken.

  2. The Syslog Server setting must match the case CN of the certificate even thought the RFCs say it should not matter. This is something I could not find in any documentation. I was able to replicate this on multiple versions over 9.x and 10.x. If you issue a certificate to CN=LogStash.mydomain.com and you put logstash.mydomain.com in the Syslog Server field the connection will fail. We still had to turn on all of the skip settings above. Change the Syslog Server field to LogStash.mydomain.com and it connects w/o issue.

  3. Hey Johannes,

    I’m trying to get TLS Syslog working, but to verify that my Syslog was working I tried to get TCP working first. At first I wasn’t getting any log file created so wasn’t sure what was going on. A TCPdump showed traffic arriving. I configured for UDP and all works, get a log file and “tail -f $HOST” shows logs being written. As soon as I go back to TCP, TCPdump shows logs arriving, but nothing written. Anything to look for further before moving to TLS?

Leave a Reply

Your email address will not be published. Required fields are marked *