0

I want to foward syslog from my FortiGate 40F firewall to Python script. I need firstly to setup logging for all traffic on the firewall.

I have created a Python script that I have tested with my Asus Router. It can receive syslog from my rotuer, so the script it self works.

I cannot get any traffic from the FortiGate 40F. Do I have to make more configurations on the firewall it self? This is the setup on my firewall:

Log Settings: enter image description here

Firewall Policy: enter image description here

Python code:

#!/usr/bin/env python

## Tiny Syslog Server in Python.
##
## This is a tiny syslog server that is able to receive UDP based syslog
## entries on a specified port and save them to a file.
## That's it... it does nothing else...
## There are a few configuration parameters.

LOG_FILE = 'youlogfile.log'
HOST, PORT = "0.0.0.0", 514

#
# NO USER SERVICEABLE PARTS BELOW HERE...
#

import logging
import socketserver

logging.basicConfig(level=logging.INFO, format='%(message)s', datefmt='', filename=LOG_FILE, filemode='a')


class SyslogUDPHandler(socketserver.BaseRequestHandler):

    def handle(self):
        data = bytes.decode(self.request[0].strip())
        socket = self.request[1]
        print("%s : " % self.client_address[0], str(data))
        logging.info(str(data))


if __name__ == "__main__":
    try:
        server = socketserver.UDPServer((HOST, PORT), SyslogUDPHandler)
        server.serve_forever(poll_interval=0.5)
    except (IOError, SystemExit):
        raise
    except KeyboardInterrupt:
        print("Crtl+C Pressed. Shutting down.")

0

You must log in to answer this question.

Browse other questions tagged .