PIX Logging Architecture version 2.00


PIX Logging Architecture v2.00: Installation, Configuration and Usage Guide
[Author: Kris Philipsen - kris@logging-architecture.net] [Sun, Mar 25, 2007] [version #2.00/2]



Table of Contents

1. Introduction
2. Features
3. Deployment Options
    3.1 PLA Infrastructure Layout
    3.2 PLA Centralized Deployment
    3.3 PLA Distributed Deployment
    3.4 PLA Traffic Requirements
4. PLA Installation
   4.1 Installation Requirements
   4.2 Installlation Matrix
   4.3 Installing Parsing Scripts
   4.4 Installing Web-based Front End
   4.5 Upgrading from PIX Logging Architecture v2.00 Beta 1
5. PLA Configuration
   5.1 Configuring MySQL Database
   5.2 Configuring Syslog
   5.3 Configuring PIX Firewall
         5.3.1 Configuring System Logging
         5.3.2 Configuring IDS Logging
   5.4 Configuring Apache
   5.5 Configuring PLA Parsing Daemon
         5.5.1 Configure Required Variables
         5.5.2 Configure Recommended Variables
         5.5.3 Configure Optional Variables
         5.5.4 Configure Automatic Startup
   5.6 Configuring PLA Web-based Front End
6. Using PIX Logging Architecture v2.00
   6.1 Basic Usage
   6.2 Overview of PLA Menus
   6.3 PLA Security Dashboard
   6.4 Log Viewing
         6.4.1 PIX Traffic Logs Viewing
         6.4.2 PIX IDS Logs Viewing
         6.4.3 PIX Informatinal Logs Viewing
   6.5 Log Searching
         6.5.1 PIX Traffic Logs Search
         6.5.2 PIX IDS Logs Search
         6.5.3 PIX Informatinal Logs Search
   6.6 Configuring Display Filtering
         6.6.1 Creating a Display Filter Manually
         6.6.2 Creating a Display Filter With Cloning
         6.6.3 Creating a Display Filter from PIX Log Entry
   6.7 Configuring Traffic Descriptions
         6.7.1 Creating a Traffic Description Manually
         6.7.2 Creating a Traffic Description With Cloning
         6.7.3 Creating a Traffic Description from PIX Log Entry
   6.8 Configuring Traffic Queries
         6.8.1 Creating a Traffic Query Manually
         6.8.2 Creating a Traffic Query With Cloning
         6.8.3 Creating a Traffic Query from PIX Log Entry
   6.9 Running Traffic Queries
   6.10 Configuring Parse Filtering
         6.10.1 Creating a Parse Filter Manually
         6.10.2 Creating a Parse Filter With Cloning
         6.10.3 Creating a Parse Filter from PIX Log Entry
   6.11 Executing Log Purges
7. PIX Logging Architecture Best Practices
   7.1 Scaling the Deployment
   7.2 Recommended Deployment Strategy
   7.3 Parsing Fun!
         7.3.1 Parsing Message Types 1 and 2
         7.3.2 Parsing Message Type 0
8. Additional Information
   8.1 The People Behind PLA
   8.2 Acknowledgements and Kudos
   8.3 Support The PLA Project
   8.4 PLA Resources






1. Introduction

The PIX Logging Architecture [PLA] provides a centralized method for correlating and displaying logs generated by Cisco PIX Firewalls. Cisco PIX supports logging to a syslog host. PLA uses this feature in order to parse these logs, based on their type (traffic, ids or informational) and then push them into a MySQL database. A web-based frontend queriesthe MySQL database for the entries and then displays them according to the various options available in the PLA web-based frontend.


PIX Logging Architecture v2.00 is the second release of PLA, being released about 3 years after the original release, many changes and improvements have been made to the original code and many new features have been introduced in order to make PLA more suitable for different infrastructures. For those who were familiar with PLA v1.01, you'll get a whole realm of new features with this release whilst still maintaining the same look and feel. However, I've come along way with this project since 2003 so you'll find that some things have been changed since the original PLA v1.01 release. Amongst the major changes you'll find the following:

  • Log Parsing is done using a Perl-written daemon (no longer need to stop/start syslogd)
  • Log Message Parsing criteria are no longer defined in parsing scripts but stored within a table in the PLA database called "syslog_message"
  • Informational messages (i.e. PPPoE establishment, SSH/PDM logins, etc..) can now also be logged.
  • PLA Database has been modified. More fields are now logged (i.e. xlate[translations])
  • PLA web based front end has seen the "statistics" section removed and replaced with a configuration section which allows you to set up traffic filters, traffic descriptions, user-defined search queries, parse filtering, database log purging and others. All these features are described in the features section and surely you'll explore and find out as you start using PIX Logging Architecture. Moreover, the addition of the Security Dashboard as well as the graphing features, log paging and log sorting greatly enhance the analysis capabilities and efficiency of PIX Logging Architecture v2.00.
The PIX Logging Architecture project can be found at: http://www.logging-architecture.net/






2. Features

The main purpose of PIX Logging Architecture is to provide a framework for treating, correlating and consulting logs of different devices.

I've done successful PLA testing with the following components:

  • Cisco PIX OS 6.x
  • Cisco PIX OS 7.x
  • Cisco (FWSM) FireWall Services Module 2.x
  • Cisco (FWSM) FireWall Services Module 3.1(3)
However, PLA should also work correctly with Cisco ASA versions.

Parsing/Database Highlights:
  • Parsing of Cisco FWSM and PIX OS logs from the syslog files into the PLA database.
  • System Log message criteria used for parsing are stored in a table in the PLA database.
  • Parse filters can be defined using the web-based front end for traffic which should not be logged in the database.
  • Database entries can be purged based on certain criteria using the log purging option in the web-based front end.

Web-based Front-end Highlights:
  • Web based front-end allows viewing of Traffic, IDS and Informational Logs.
  • Display details on Traffic, IDS and Informational logs and allow cross-searching in the database for similar logs as well as graphic statistical analysis providing matches across the last 24 hours, last 7 days, last 30 days and last 12 months.
  • The Security Dashboard features provides a clear overview of 24-hour traffic patterns and top anomalies and traffic.
  • Whois and DNS lookup of logged traffic.
  • PLA database can be searched based on various criteria for Traffic, IDS and informational logs.
  • User-defined queries can be created to define saved search criteria.
  • Traffic Display Filters can be created to filter out pre-defined traffic while displaying and searching traffic logs.
  • Traffic Descriptions can be created to identify traffic based on certain values.
  • Parse filters can be created to prevent certain traffic from being logged into the PLA database.
  • Log purging ensures that the database doesn't get too big.
  • On-the-fly Queries, Display Filters, Parse Filters and Traffic descriptions can be created from a log entry.
  • Paging and sorting across all log display and search pages allows for a more efficient method of analyzing logged data.






3. Deployment Options

3.1 PLA Infrastructure Layout

As previously mentioned, the PLA Infrastructure parses logs sent by a Cisco PIX Firewall, and then pushes them to a MySQL database. The parsing is done on the system defined as the syslog host for the Cisco PIX Firewall, the parsing script then uses the Perl DBI module to enter the logging information into the MySQL database.

Two deployment infrastructures can be considered:

  • Centralized Deployment: all PLA components are located on the same system.
  • Distributed Deployment: various PLA components are located on different systems.



3.2 PLA Centralized Deployment

When using the PLA Centralized Deployment option, all PLA components are located on the same systems. This deployment could be used for various reasons, such as shortage of machines, centralized management policy. The following components are centralized on a single component:

  • syslog (with remote log reception activated)
  • MySQL database (with PLA database installed)
  • Apache Web Server
  • PLA Parsing Script
  • PLA Web-based Frontend
The PLA Centralized Deployment architecture looks as follows:


       +---+   syslog    +------------------------+
       |PIX| ----------> | PLA Centralized System |
       +---+             +------------------------+
                         | (1) Parse Syslog       |
                         | (2) Populate Database  |
                         | (3) Provide Web-based  |
                         |     frontend           |
                         +------------------------+
       



3.3 PLA Distributed Deployment

When using the PLA Distributed Deployment option, each PLA component or a group of PLA components are located on various systems.

The PLA Distributed Deployment architecture looks as follows:


       +---+   syslog    +------------------------+               +------------------------+
       |PIX| ----------> | PLA Distributed System |               | PLA Distributed System |
       +---+             | Logging Host           |               | DB + Web Frontend      |
                         +------------------------+  Perl::DBI    +------------------------+
                         | (1) Parse Syslog       | ----------->  | (2) Populate Database  |
                         +------------------------+               | (3) Provide Web-based  |
                                                                  |     frontend           |
                                                                  +------------------------+
        

Note: Similarly, the database component can be seperated from the web-based front-end so that each component runs on a dedicated device. Such configurations may be optimal if you want to optimize the device resource utilisation. Moreover, certain security considerations may opt for such a distributed approach ensuring that DMZ devices are seperated from Internal systems and traffic only moves in a certain direction.



3.4 PLA Traffic Requirements

As for traffic requirements, depending on your deployment strategy, certain openings may need to be made to your firewall rules to allow traffic between the various PLA components. The following traffic patterns exist:

Status Source Destination Protocol/Service Description
(Mandatory) PIX Firewall PLA Logging Host Syslog (UDP/514) PIX Syslog to Log Parser
(Mandatory) PLA Logging Host PLA Database Host MySQL (TCP/3306) PIX Log Entries into Database
(Mandatory) PLA Web Front End PLA Database Host MySQL (TCP/3306) PIX Log Queries from Database
(Optional) PLA Web Front End DNS Server DNS (UDP/53) DNS Name Lookups
(Optional) PLA Web Front End ANY Whois (TCP/43) Whois Lookups
(Mandatory) PLA Clients (Browsers) PLA Web Frontend HTTP (TCP/80) or
HTTPS(TCP/443)
PLA Web Based Front End Access






4. PLA Installation

4.1 Installation Requirements

The PLA Infrastructure requires certain components to be installed in order to function properly. The following components must be installed:

  • Syslogd
  • Perl (version >= 5.6.0)
    --> Perl is used to run the scripts associated with PLA.
  • Perl Modules
    --> Perl::DBI (version >= 1.20)
    --> Perl::CGI (version >= 1.19)
    --> DBD::Mysql (version >= 3.0008)
    --> Net::Whois::IP (version >= 0.50)
    --> Date::Manip (version >= 5.44)
    --> File::Tail (version >= 0.99.3)
    --> GD::Graph (version >= 1.4308)
    --> Socket (This should be standard in Perl)
    --> POSIX (This should be standard in Perl)
  • MySQL Database Server (version >= 3.23.42)
  • Apache Web Server
I have not listed the exact installation steps for Perl, Perl Modules, MySQL Database Server and Apache. Information relative to these topics can be found at the following locations:

  • For Perl installations: http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_source
  • For Perl Module installations: http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules
  • For MySQL Database Server installations: http://dev.mysql.com/doc/
  • For Apache Web Server Installations: http://httpd.apache.org/docs/


  • The PLA scripts are written in Perl, and should therefore work on any system supporting Perl. I'm personnally running this infrastructure on Linux, and I've had no problems so far. If you run this on any other platforms, i.e. ActivePerl on Windows or so, please send me an email (kris@logging-architecture.net) so I can add your platform to the compatibility list.

    You can obtain a copy of the latest PIX Logging Architecture v2.00 software at http://www.logging-architecture.net/pla2/



    4.2 Installation Matrix

    If you're opting for the distributed installation, it's important to know which components need to be installed where:

    Logging Host:

    • Syslogd
    • Perl
    • Perl Modules
      --> Perl::DBI
      --> DBD::Mysql
      --> File::Tail
      --> Socket (This should be standard in Perl)
      --> POSIX (This should be standard in Perl)
    Database Host:
    • MySQL Database Server
    Web Front-End Host:
    • Apache Web Server
    • Perl
    • Perl Modules
      --> Perl::DBI
      --> DBD::Mysql
      --> Perl::CGI
      --> Net::Whois::IP
      --> Date::Manip
      --> GD::Graph



    4.3 Installing Parsing Scripts

    The parsing script is located in the "scripts/parsing/" directory of the PLA Software Package (the "tar.gz" file). This script must be installed on the system which received the system logs (syslog) and is used to identify which log entries should be pushed to the database, this script requires both Perl and Perl::DBI. Personally, I've put this script in an "/usr/sbin" directory.

    # chmod +x /usr/sbin/pla_parsed

    The parsing script is called "pla_parsed" and is a Perl script which runs in daemon mode so you just need to start it and it keeps running in the background. I've also included the "rc.pla_parsed" script which needs to be put into the /etc/init.d to automatically start the PLA Parse Daemon (pla_parsed) on system startup. If you move the pla_parsed script to another directory than "/usr/sbin" the "rc.pla_parsed" script will need to be updated.

    The script will need to be linked to the correct runlevel for it to started and stopped automatically.

    # chmod +x /etc/init.d/rc.pla_parsed
    # ln -s /etc/init.d/rc.pla_parsed /etc/rc3.d/S99pla_parsed

    This script also requires a specific syslog configuration, which is shown in the Configuration section of this document. The "pla_parsed" script works as follows:

      1. Connect to the Database and extract the syslog_message table (for identifying parsing criteria)
      2. Connect to the Database and extract the parse_filter table (for identifying parsing filters)
      3. Start reading the syslog messages file to which the PIX/FWSM logs are logged.
      4. Match incoming message with syslog_message table extract and determine if a match exists.
      5. If a match exists, check whether the traffic matches a parse filter and if not, log the data to the PLA database.
      6. If no match exists, determine whether to log the data to a flat temporary undefined traffic file.



    4.4 Installing Web-based Front End

    The web-based frontend is a collection of Perl/CGI scripts located in the "scripts/frontend/" directory of the PLA software package. These scripts query the MySQL database for information and entries pertaining to the Cisco PIX/FWSM logs. These scripts should be copied to a scripts executable directory on your web server. For example the "/cgi-bin/" directory on many web servers. In the configuration section of this document I've explained how to configure a directory to be script executable within Apache. For example, on my web server I've created a "pla2" directory in the main Apache HTML documents directory (DirectoryRoot - "/usr/local/apache2/htdocs") and set this to scripts executable.

    Please refer to the "Configuring Apache" section for more information on how to configure Apache and the Executable Scripts directories.



    4.5 Upgrading from PIX Logging Architecture v2.00 Beta 1

    If you're upgrading to PIX Logging Architecture v2.00 from PIX Logging Architecture v2.00 Beta 1, the transition is quite smooth and will only involve a few minutes work.

    Because PIX Logging Architecture v2.00 has introduced the Security Dashboard and statistics graphs (which was not available in Beta 1), the Perl Module "GD::Graph" will need to be installed. Chances are that the installation will also require you to install libgd if it's not installed by default on the system.

    Upgrading from PIX Logging Architecture v2.00 Beta 1 to PIX Logging Architecture v2.00 involves:

  • Download PIX Logging Architecture v2.00
  • Install the GD::Graph Perl Module
    • You'll need this to properly run the PLA Security Dashboard and graphing features.
  • Import the latest version of the "syslog_message" table
    • In order to stay current with the latest log messages, it is recommended you obtain the latest version of the syslog_message table from the http://www.logging-architecture.net/pla2/release/supportedmessages.html.

      This file can easily be imported into the PLA database using the following method (please note that this will scratch the current syslog message parsing table so if you created your own entries be sure to back these up beforehand and create them later!):

      root@mysql-host# mysql < syslog_message-YYYYMMDD.sql.txt
  • Copy New PLA Web Based Front-End
    • Many important changes have been made to the PLA Web Based Front-End, including new pages which have been introduced. Therefore you'll have to copy across all files and subdirectories in the "scripts/frontend" directory of the PIX Logging Architecture v2.00 Package to the directory where your current PLA Web Based Front-End resides.

      root@pla_frontend_host# cp -R <PLA_PACKAGE_DIRECTORY>/scripts/frontend/* <PLA_Web_FrontEnd_Directory>


      Note: Don't forget to configure the PLA v2.00 "conf.pl" file in the PLA Web Based Front-End directory with the same settings as you were using with PLA v2.00 Beta 1.
  • Copy New PLA Parsing Daemon
    • Copy the PLA Parsing Daemon (pla_parsed) v2.00 to the /usr/sbin directory as follows:

      root@pix_parse_host# cp <PLA_PACKAGE_DIRECTORY>/scripts/parsing/pla_parsed /usr/sbin


      Note: Don't forget to configure the PLA v2.00 Parsing Daemon (pla_parsed) with the same settings as you were using with PLA v2.00 Beta 1.






    5. Configuration

    5.1 Configuring MySQL

    Since MySQL (the database) is the principal component empowering the PLA infrastructure, it needs to be configured properly.

    First of all, the PIX logging database needs to be created. A template for this database is located in the "scripts/" directory of the PLA Package and is called pla_database.sql. This file can easily be imported into the MySQL database as follows:

    root@mysql-host# cd <PLA-Package-Directory>/scripts
    root@mysql-host# mysql < pla_database.sql

    Secondly, a user must be created that is allowed full access only to the "pix" database. This user will be used both by the PLA Parsing script to push data into the database, and by the PLA Web-based Frontend to retrieve information from the database. The user can be created in the following manner:

    root@mysql-host# mysql -u root mysql
    mysql> GRANT ALL ON pix.* TO '<user>'@'<hostname>' IDENTIFIED BY '<password>';

    Note: Remember your user and password, you'll need to use these as variables in the PLA scripts.

    Note: Whenever a series of newly supported log messages have been added to PLA and properly tested, they are added to what is known as the Supported System Log Messages page. This web page contains a list of all supported log messages along with a link to an SQL file which contains a series of statements which recreates the "syslog_message" table. It is recommended to update this table regularly as it will increase the number of supported logged events. At the time of this writing, the latest version of this file is dating back to November 12, 2006 (syslog_message-20061112.sql.txt) and is available at http://www.logging-architecture.net/pla2/release/supportedmessages.html under the "Latest Syslog Messages File" section. The format of this file is "syslog_message-YYYYMMDD.sql.txt".

    This file can easily be imported into the PLA database using the following method (please note that this will scratch the current syslog message parsing table so if you created your own entries be sure to back these up beforehand and create them later!):

    root@mysql-host# mysql < syslog_message-YYYYMMDD.sql.txt



    5.2 Configuring Syslog

    The syslog host will receive the alerts sent by the Cisco PIX/FWSM Firewall(s).

    First of all, the syslog daemon will need to be configured to listen for syslog messages from other hosts, in our case the Cisco PIX Firewall(s) on port 514/udp, this can be done by starting the syslogd in the following manner: "syslogd -m 0 -r" -> the "-r" option specified remote listening.

    Secondly, Syslog will need to be configured to redirect system log messages received from the Cisco PIX Firewall(s) to a separate file (I'm using "/var/log/<firewall-name>.log").

    In order to do this you'll have to reconfigure syslogd by adding the following line to /etc/syslog.conf:

    local6.*                        /var/log/<firewall-name>.log


    The "local6.*" facility is used here because I chose "logging facility 22" on the Cisco PIX Firewall, therefore this may need to be changed if you're using a different logging facility. The following table shows the mapping between Unix and Cisco Logging Facilities:

    Unix Logging Facility Cisco Logging Facility
    local0 16
    local1 17
    local2 18
    local3 19
    local4 20
    local5 21
    local6 22
    local7 23


    Note: The "/var/log/<firewall-name>.log" file may also be different in your configuration, but do note that you will need to define this file as a variable ($pix_log_file) in the PLA parsing script (pla_parsed).

    Note: Don't forget to restart syslogd after you've made these changes!



    5.3 Configuring Cisco PIX Firewall

    In order to get a Cisco PIX Firewall to be compatible with the PIX Logging Architecture, several configuration statements will have to be added on the Cisco PIX Firewall:

    5.3.1 Configuring System Logging

    The following commands should be used to set up system logging on the Cisco PIX Firewall:

    pix(config)# logging on
    pix(config)# logging timestamp
    pix(config)# logging trap debugging
    pix(config)# logging facility <logging facility>
    pix(config)# logging host inside <logging host>


  • "logging trap" defines the level of detail that will be provided in the log messages sent. I've currently got debugging configured which means that all log messages will be sent to the logging facility. However, if you have a network with high loads of traffic this may cause a lot of overhead messages which may not necessarily be of any use to be logged. You can always decrease the logging level to informational or notification.
  • "logging facility" defines the syslog facility to which systems messages will be logged on the system host, I've set it to "22", which corresponds to logging facility local6 on a UNIX Syslog System. For more information about setting up PIX System Logging and Logging Facilities, refer to the following URL: http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/products_tech_note09186a0080094030.shtml
  • "logging host inside" defines where to send the syslog messages; this should be the IP address of the system running the PLA Parsing Daemon (pla_parsed).


  • Notes:
    • If there are certain messages which you don't want to log, you can exclude them using the "no logging message <msg_id>" command.

    5.3.2 Configuring IDS Logging

    The following commands should be used to set up IDS logging on the Cisco PIX Firewall:

    pix(config)# ip audit name info info action alarm
    pix(config)# ip audit name attack attack action alarm drop reset
    pix(config)# ip audit interface outside info
    pix(config)# ip audit interface outside attack
    pix(config)# ip audit info action alarm
    pix(config)# ip audit attack action drop


    Notes:
    • The above configuration enables PIX firewall to match IDS signatures and perform a drop action on them. In the above configuration, the interface is named "outside"; In your infrastructure, this interface may have another name.
    • It may be a good idea to synchronize the time on the Cisco PIX/FWSM using NTP.
    • Verify that your Cisco PIX/FWSM is correctly logging to your syslog server by checking the syslog's server's log messages file (i.e. "tail -f /var/log/<firewall-name>.log" considering you've used the same nomenclature as the one described in the syslog configuration of this document).



    5.4 Configuring Apache

    The Apache web server is used to house the scripts which power the PLA web-based front end. Whether you run Apache 1.x, 2.0.x or 2.2.x is your choice, however you may have to make some changes to the configuration in order to allow the scripts to correctly execute (in other words, the Apache needs to know that these scripts are executable and should thus show you the output of the scripts rather than the scripts code itself).

    If you're not very accustomed to the Apache web server, I suggest you install the PLA web-based frontend in the main Apache HTML documents directory which is usually located at the "<APACHE_INSTALL_PATH>/htdocs" directory. So you'll have to ensure all the contents of the PLA web based frontend "scripts/frontend/" (in the PLA package, including the "images" and "stats" subdirectories) is copied over to the Apache htdocs part. For the purpose of example we will create a "pla2" directory in the Apache default HTML documents directory (which we assume is located at "/usr/local/apache2/htdocs"):

    pla_webserver_host# mkdir -p /usr/local/apache2/htdocs/pla2
    pla_webserver_host# cp -R pla_v2.00b1/scripts/frontend/* /usr/local/apache2/htdocs/pla2


    Next, we'll configure Apache as follows:

  • /usr/local/apache2/htdocs/pla2 (EXECUTABLE DIRECTORY)
  • /usr/local/apache2/htdocs/pla2/images (NON-EXECUTABLE DIRECTORY)


  • The following lines will need to be added to the "httpd.conf" file following the <Directory /usr/local/apache2/htdocs> section. For example:

    <Directory /usr/local/apache2/htdocs>
       ..
       ..
    </Directory>

    # Define Executable Scripts directory for "/usr/local/apache2/htdocs/pla2" and subsequent lower level directories. <Directory /usr/local/apache2/htdocs/pla2>
       Options ExecCGI
       SetHandler cgi-script
    </Directory>

    # Exclude "/usr/local/apache2/htdocs/pla2" from being an Executable Scripts Directory. <Directory /usr/local/apache2/htdocs/pla2>
       Options MultiViews -ExecCGI
       SetHandler default-handler
    </Directory>




    5.5 Configuring PLA Parsing Daemon

    The PLA Parsing Daemon (pla_parsed) script, located on the syslog host, will need to be configured with several parameters before PLA can work correctly.

    5.5.1 Configure Required Variables

    Several variables will need to be configured in the "pla_parsed" (PLA Parsing Daemon - /usr/sbin/pla_parsed) script:

    ##
    ## PLA REQUIRED Variables
    ##

    $mysql_db_host = "<mysql_logging_host>"; # Host running MySQL Database
    $mysql_db_port = "<mysql_logging_port>"; # Port on which MySQL is running (usually: 3306)
    $mysql_db_user = "<mysql_logging_user>"; # Username you configured in the MySQL database
    $mysql_db_pass = "<mysql_logging_pass>"; # Password you configured in the MySQL database
    $mysql_db_name = "<mysql_database_name>"; # MySQL PIX Logging Architecture Database Name (default: pix)
    $pix_log_file = "<mysql_logging_file>"; # PIX Logging file you configured in /etc/syslog.conf


    In theory, at this point the PLA Parsing Daemon should work, however you may need to edit your configuration a little bit more in order to ensure all works correctly.

    5.5.2 Configure Recommended Variables

    ### PIX Firewall Logs
    ### DEFINE YOUR SYSLOG LAYOUT HERE!
    ###

    $regex_log_begin = "(.*):(.*) (.*) (.*) (.*) (.*) (.*)";
    $var_pixhost=3;
    $var_pixmonth=4;
    $var_pixdate=5;
    $var_pixyear=6;
    $var_pixtime=7;


    This basically defines what your syslog layout looks like. The "$regex_log_begin" variable looks at everything before the PIX/FWSM log message. For example in the following PIX system log entry:

    Oct 21 23:59:23 fwext-dmz-01 Oct 21 2006 23:58:23: %PIX-6-305011: Built dynamic TCP translation from inside:1.1.1.1/2244 to outside:2.2.2.2/3387


    The "$regex_log_begin" is only concerned with anything before the ": %PIX-6-305011", so in other words:

    Oct 21 23:59:23 fwext-dmz-01 Oct 21 2006 23:58:23


    The variables starting with "$var_" match certain criteria which are parsed in order to push them into the database and would look as follows if I filled them out:

    $var_pixhost="fwext-dmz-01";
    $var_pixmonth="Oct";
    $var_pixdate="21";
    $var_pixyear="2006";
    $var_pixtime="23:58:23";


    However all you'll need to do is fill out the position starting from the beginning of the "$regex_log_begin" variable. This may all look a bit complicated if you're not used to regular expressions but if usually the standard format defined in the pla_parsed script should work for all. The reason I've added this section is because I've noticed that different syslog daemons sometimes display a slightly different log format.

    Please note if you're using FWSM with context's enabled, the log format is somewhat different because they've added a "CONTEXT" field to their logs, so you'll need to define the syslog section as follows (and replace the "<CONTEXT>" variable by the name of your context ofcourse!):

    ### FWSM Logs
    ### DEFINE YOUR SYSLOG LAYOUT HERE!
    ###

    $regex_log_begin = "(.*):(.*) (.*) (.*) (.*) (.*) ((.*):(.*):(.*)) <CONTEXT>";
    $var_pixhost=3;
    $var_pixmonth=4;
    $var_pixdate=5;
    $var_pixyear=6;
    $var_pixtime=7;
    $var_pixcontext=8;


    The following is what an FWSM 3.x log entry looks like:

    .
    Sep 05 09:00:03 fwsm-pla-01 Sep 05 2006 09:01:30 PLACONTEXT : "%FWSM-4-106100: access-list inbound_access permitted tcp external_if/1.1.1.1(22366) -> dmz_01/2.2.2.2(443) hit-cnt 1 (first hit) [0x91wasc80, 0x49dfsffdf]


    So the $regex_log_begin for the FWSM 3.x logs would look like:

    Sep 05 09:00:03 fwsm-pla-01 Sep 05 2006 09:01:30 PLACONTEXT


    5.5.3 Configure Optional Variables

    Several optional variables can be configured in the "pla_parsed" (PLA Parsing Daemon - /usr/sbin/pla_parsed) script:

    ##
    ## PLA Optional Variables
    ##
    $pla_suppress_unknown = "0"; # Defines whether to suppress unknown (not matching those in DB) Log Messages [ 0 - Do not suppress | 1 - Suppress ]
    $pla_unknown_writetofile = "1"; # Only applies when setting $pla_suppress_unkwown to "0". Determines whether to write the output to a file
    $pla_unknown_filename = "/var/log/pla_unknown_msgs.log"; # Sets the filename to write the unknown messages to.
    $pla_unknown_writetodb = "0"; # Only applies when setting $pla_suppress_unkwown to "0". Determines whether to write the output to the db (will be sent to the info_log table)


    5.5.4 Configure Automatic Startup

    The PLA Parse Daemon (pla_parsed) is a daemonized script thus it runs in the background. It can be started automatically at Operating System startup using the runlevel (rc) script "rc.pla_parsed". You just need to ensure that the pla_parsed script is started when the MySQL database server has already been started to ensure the PLA Parse Daemon can retrieve data from and write data to the PLA database.

    You'll have to link the startup script (i.e. "/etc/init.d/rc.pla_parsed) to a runlevel and set it to be executable as follows:

    pix_parse_host# ln -s /etc/init.d/rc.pla_parsed /etc/rc3.d/S99pla_parsed
    pix_parse_host# chmod +x /etc/init.d/rc.pla_parsed


    Note: It is recommended that at this time you do not yet start the PLA Parsing Daemon. Please refer to section "7.2 Recommended Deployment Strategy" for more information on recommended steps for deploying PIX Logging Architecture.

    If you'd like to manually start the PLA Parsing Daemon:

    pix_parse_host# /etc/init.d/rc.pla_parsed start

    -- [pla_parsed/2.00] - PIX Logging Architecture 2.00
    -- [pla_parsed/2.00] - [kris@logging-architecture.net]
    -- [pla_parsed/2.00] -
    -- [pla_parsed/2.00] - Parse Daemon Started / Daemonized


    If you'd like to manually stop the PLA Parsing Daemon:

    pix_parse_host# /etc/init.d/rc.pla_parsed stop
    Terminated
    pix_parse_host#



    5.6 Configuring Web-Based Front End

    First of all, make sure the scripts in the "scripts/frontend/" directory of the PLA Package are copied to a directory configured to execute Perl/CGI scripts. This is the same directory you defined when configuring Apache.

    Secondly, several variables need to be configured to allow the frontend to connect to the MySQL database. These variables can be found in the "conf.pl", which is also located within this directory:

    $mysql_db_host = "<MYSQL_DB_HOST>"; # Host running MySQL DB
    $mysql_db_port = "<MYSQL_DB_PORT>"; # Port running MySQL DB
    $mysql_db_user = "<MYSQL_DB_USER>"; # MySQL DB Username
    $mysql_db_pass = "<MYSQL_DB_PASS>"; # MySQL DB Password







    6. Using PIX Logging Architecture v2.00

    6.1 Basic Usage

    The PIX Logging Architecture web based front-end can be reached by typing in the URL as defined on the web server with the "pix_traffic_logs" extension. So consider the application is installed on the 127.0.0.1 IP address in the pla2 directory then the browser needs to point to:

    http://127.0.0.1/pla2/pix_traffic_logs

    Using this URL, PIX Logging Architecture will open the main traffic logs page which display a resume of the PIX traffic logged events.



    6.2 Overview of PLA Menus

    PIX Logging Architecture consists of a hierachical structure of menus allowing for easy navigation, use and configuration of the PLA web-based front-end. The following structure is used for the web-based front-end:

      +--+ Security Dasbhoard (main menu)
      |      +--- Drops and Accepts Statistics
      |      +--- Protocol Redistribution Statistics
      |      +--- Cumulative Logged Traffic Statistics
      |
      +--+ PIX Traffic Logs (main menu)
      |      +--- PIX Traffic Log Details
      |
      +--+ PIX IDS Logs (main menu)
      |      +--- PIX IDS Log Details
      |
      +--+ PIX Informational Logs (main menu)
      |
      +--+ PIX Search Logs (main menu)
      |      +--- PIX Search Traffic Logs (sub menu)
      |      +--- PIX Search IDS Logs (sub menu)
      |      +--- PIX Search Informational Logs (sub menu)
      |
      +--+ PIX Traffic Queries (main menu)
      |
      +--+ PLA Configuration (main menu)
      |      +--+ PIX Traffic Log Configuration (sub menu)
      |              +--- Display Filter Configuration (sub menu choice)
      |              +--- Description Configuration (sub menu choice)
      |              +--- Traffic/User-defined Query Configuration (sub menu choice)
      |      +--+ PIX IDS Logs Configuration (sub menu)
      |              +--- Display Filter Configuration (not active yet)
      |      +--+ PLA Global Configuration (sub menu)
      |              +--- Objects Configuration (not active yet)
      |              +--- Log Message Parsing Configuration (not active yet)
      |              +--- Incident Management (sub menu choice)
      |              +--- Log Purging Configuration (sub menu choice)
      |              +--- Parse Filter Configuration (sub menu choice)
      |
      +--+ PLA About (main menu)



    6.3 PLA Security Dashboard

    Menu Item: (Main Menu) > "Security Dasbboard"

    6.3-1: Main Menu View
    Security Dashboard menu
    PLA Security Dashboard is a new feature which has been added to PIX Logging Architecture v2.00 after Beta 1 was released. The purpose of the security dashboard is to get a summarized overview of the situation based on the logged events for a specific date. The PLA Security Dashboard main page consists of two main views; the left side with listed statistics and the right side with graphed statistics. The following are the details for each of these views:

    List View (Left Side):

    • List of Top 5 Dropped Sources
    • List of Top 5 Dropped Destinations
    • List of Top 5 Dropped Services
    • List of Top 5 Accepted Sources
    • List of Top 5 Accepted Destinations
    • List of Top 5 Accepted Services

    Graph View (Right Side):
    • 24-hour Time Period Graph of Drops and Accepts (1 hour interval)
    • 24-hour Time Period Graph of Protocol Redistribution [TCP,UDP,ICMP] (1 hour interval)
    • 24-hour Time Period Graph of Cumulative Traffic for a Specific Firewall (1 hour interval)
    6.3-2: Security Dashboard Main View
    Security Dashboard Main View

    You can easily select a date by clicking on the "Date" link which will pop up a calendar where you can select your Security Dashboard display date. However please note that after the date selection has been made, you have to choose to which view you want to apply this, you can do this by either selecting "Global View" or any of the firewall names/IP's from the "-customize view-" drop down menu.

    6.3-3: Security Dashboard Calendar - Date Selection
    Security Dashboard Calendar

    In order to get a more detailed view into the data presented on the Security Dasbhoard page, you can click on the red and green links under the Top Dropped and Top Accepted items. These will show you all the logs matching the count which is depicted in the List View. It is also possible to click on the Graphs in the Graph View on the right hand side in order to get a global picture of the Drops and Accepts, Protocol Redistribution and Cumulative Logged Traffic over a 24-hour, 7 day, 30 day and 12 month time period.



    6.4 Log Viewing

    The main functionality of PIX Logging Architecture is to allow logs to be parsed, correlated and available for viewing. PLA currently distinguishes between 3 types of logs; PIX Traffic Logs, PIX IDS Logs and PIX Informational Logs. Each of these logs has a dedicated log viewing page which allows the logged data to be consulted.


    6.4.1 PIX Traffic Logs Viewing

    Menu Item: (Main Menu) > "Traffic Logs"

    6.4.1-1: Main Menu View
    Traffic Logs menu

    The PIX Traffic Logs view is used to display the PIX Traffic Logs. The general view shows the following columns in a list format:

    • Time
    • Logging Resource (Firewall)
    • Log Action
    • Log Protocol
    • Source IP
    • Source Port
    • Destination IP
    • Destination Port
    • Log Flags
    6.4.1-2: PIX Traffic Logs Page View
    Traffic Logs Columns List

    On this page it is possible to select a few criteria including the date, log resource (firewall) and whether the displayed information should contain the plain IP information or whether the addresses need to be resolved. Please note that traffic which has been filtered using a traffic display filter will not be shown in the "Traffic Logs" windows.

    You can easily select a date by clicking on the "Date" link which will pop up a calendar where you can select you log date as shown in the following screenshot:

    6.4.1-3: PIX Traffic Logs Calendar - Date Selection
    Traffic Logs Calendar

    When opening the PIX Traffic Logs page, PLA will by default only show the first 50 matching logs, allowing you to navigate through the subsequent logs with the "Next" and "Previous" links. However it is possible to change this "paging" feature to allow for more logs to be shown on a single page. At present you can choose between 50, 100, 250, 500 and 1000 logs per page. In order to change the number of logs which are displayed per page, you can modify the paging option with the dropdown in the top righthand corner:

    6.4.1-4: PIX Traffic Logs Paging
    Traffic Logs Paging

    When opening the PIX Traffic Logs page, PLA will by default sort on the log time (Ascending) starting with the oldest records for the selected date and ending with the newest records. It is possible to change this view by applying a sorting selection. Currently the following sorting selections are available:

    • Log Time (Ascending)
    • Log Time (Descending)
    • Logging Resource (Ascending)
    • Logging Resource (Descending)
    • Log Action (Ascending)
    • Log Action (Descending)
    • Log Protocol (Ascending)
    • Log Protocol (Descending)
    • Source IP (Ascending)
    • Source IP (Descending)
    • Source Port (Ascending)
    • Source Port (Descending)
    • Destination IP (Ascending)
    • Destination IP (Descending)
    • Destination Port (Ascending)
    • Destination Port (Descending)
    The following screenshot shows how to modify the sorting selection:

    6.4.1-5: PIX Traffic Logs Sorting
    Traffic Logs Sorting

    In order to get more information about a certain log entry, click on the table row to display the "PIX Traffic Log Detail" page, which contains more specific information such as Xlate (Translation) information, Database Matches, and several Options. These options allow you to create filters, queries and descriptions on the fly. More information can be found later on in the traffic filters section of this document.

    The following screenshot shows an example of the PIX Traffic Log Detail page:

    6.4.1-6: PIX Traffic Log Detail
    Traffic Log Detail

    Two noteworthy features on the PIX Traffic Log Detail page require some additional elaboration:

  • The "WHOIS" link, which will show you Whois Lookup information for the specified IP address.


  • The "PLA Graphs" link, which will provide you with the last 24 hour, 7 days, 30 days and 12 months statistics for a given parameter.


  • The following parameters on the PIX Traffic Log Detail page support the PLA Graphs feature:

    • Source IP Address
    • Source Port
    • Destination IP Address
    • Destination Port
    • Translated Source IP Address
    • Translated Source Port
    • Translated Destination IP Address
    • Translated Destination Port

    The following screenshot shows an example of the PLA Graph for the Destination Port (10000) in the previous screenshot:

    6.4.1-7: PLA Graphs
    Traffic Log Detail Graphs


    6.4.2 PIX IDS Logs Viewing

    Menu Item: (Main Menu) > "IDS Logs"

    6.4.2-1: Main Menu View
    IDS Logs menu

    The PIX IDS Logs view is used to display the PIX IDS Logs. The general view shows the following columns in a list format:

    • Time
    • Logging Resource (Firewall)
    • Log Protocol
    • Source IP
    • Destination IP
    • IDS Signature
    6.4.2-2: PIX IDS Logs Page View
    IDS Logs Columns List

    On this page it is possible to select a few criteria including the date, log resource and whether the displayed information should contain the plain IP information or whether the addresses need to be resolved. The date selection calendar as well as paging features on this page are identical to those of the PIX Traffic Logs page so please refer to the PIX Traffic Logs section of this chapter.

    However, the PIX IDS Logs sorting feature is somewhat different from the PIX Traffic Logs in that the column names are different and thus the sorting selection varies slightly. By default, the PIX IDS Logs page will sort based on log time in an ascending manner starting with the oldest records for the selected date and ending with the newest records. It is possible to change this view by applying a sorting selection. Currently the following sorting selections are available:

    • Log Time (Ascending)
    • Log Time (Descending)
    • Logging Resource (Ascending)
    • Logging Resource (Descending)
    • Log Protocol (Ascending)
    • Log Protocol (Descending)
    • Source IP (Ascending)
    • Source IP (Descending)
    • Destination IP (Ascending)
    • Destination IP (Descending)
    • IDS Signature (Ascending)
    • IDS Signature (Descending)

    In order to get more information about a certain log entry, click on the table row to display the "PIX IDS Log Detail" page, which contains more specific information such as Database Matches, and several Options. At the time of this writing the only options available for the PIX IDS Log Detail is to link the Log ID to an incident.


    6.4.3 PIX Informational Logs Viewing

    Menu Item: (Main Menu) > "Informational Logs"

    6.4.3-1: Main Menu View
    Informational Logs menu

    The PIX Informational Logs view is used to display the PIX Informational Logs. Informational Logs include items such as SSH logins, configuration modifications, interfaces ups/downs and the like. The general view shows the following columns in a list format:

    • Time
    • Logging Resource (Firewall)
    • Log Message
    • Log Description
    6.4.3-2: PIX Informational Logs Page View
    Informational Logs Columns List

    On this page it is possible to select a few criteria including the date, log resource and whether the displayed information should contain the plain IP information or whether the addresses need to be resolved. The date selection calendar as well as paging features on this page are identical to those of the PIX Traffic Logs page so please refer to the PIX Traffic Logs section of this chapter.

    However, the PIX Informational Logs sorting feature is somewhat different from the PIX Traffic and IDS Logs in that the column names are different and thus the sorting selection varies slightly. By default, the PIX Informational Logs page will sort based on log time in an ascending manner starting with the oldest records for the selected date and ending with the newest records. It is possible to change this view by applying a sorting selection. Currently the following sorting selections are available:

    • Log Time (Ascending)
    • Log Time (Descending)
    • Logging Resource (Ascending)
    • Logging Resource (Descending)
    • Log Protocol (Ascending)
    • Log Protocol (Descending)
    • Log Message (Ascending)
    • Log Message (Descending)
    • Log Description (Ascending)
    • Log Description (Descending)



    6.5 Log Searching

    Besides showing a general view of the logs, it is also possible to carry out specific and granular searches against the database for entries which match the search criteria. PIX Logging Architecture v2.00 allows searching of PIX Traffic, IDS and Informational logs.

    6.5.1 PIX Traffic Logs Search

    Menu Item: (Main Menu) > "Search"
    Menu Item: (Sub Menu) > "Traffic Logs"


    6.5.1-1: Main Menu View
    Search Traffic Logs

    PIX Traffic Logs can be searched based on a set of defined criteria. Within these searches a number of wildcards can be used with the "%" (percentage) character, which is the default SQL wildcard.

    The following lists all the fields which are allowed as search input:

    • Logging Resource
    • Traffic Action
    • Log Message
    • Source IP [wildcard allowed!]
    • Source Port [wildcard allowed!]
    • Destination IP [wildcard allowed!]
    • Destination Port [wilcard allowed!]
    • Log Protocol
    • Time Criteria:
      - Today
      - Specific Time Range
      - All Dates

    Note: When you want to use an "ANY" wildcard, please leave the field blank (in other words; you don't need to fill in the "%" to match the Any condition).

    Below are some examples to clarify these searches and the usage of wildcards:

    Example 1 - One ANY Wildcard

    Condition:

     You want to search all traffic from source 1.1.1.1 from any source port to destination 2.2.2.2 on destination port 80.

    Pseudo-Search:

     Source_IP=1.1.1.1 Source_Port=<leave_blank> Destination_IP=2.2.2.2 Destination_Port=80

    Actual Search:



    Example 2 - One ANY Wildcard and One SPECIFIC Wildcard

    Condition:

     You want to search all traffic from source 1.1.1.x from any source port to destination 2.2.2.2 on port 80.

    Pseudo-Search:

     Source_IP=1.1.1.% Source_Port=<leave_blank> Destination_IP=2.2.2.2 Destination_Port=80

    Actual Search:



    Example 3 - Multiple ANY Wildcards

    Condition:

     You want to search all traffic from any source from any source port to destination 2.2.2.2 on port 80.

    Pseudo-Search:

     Source_IP=<leave_blank> Source_Port=<leave_blank> Destination_IP=2.2.2.2 Destination_Port=80

    Actual Search:



    In addition to the criteria listed above, it is also possible to resolve the hostnames and services when performing the search, in order to do this, please select "Yes" on the "Resolve Hostnames" section of the search page. The default behavior is not to resolve hostnames.

    PLA Traffic Logs search by default do not take into account Traffic Log Display filters, which means that even if you've defined a traffic log display filter for some or all of the results in your search query, they will still appear. It is possible to change this behavior and tell the PIX Traffic Logs search to take into account the Display Filters by selecting "Yes" in the "Enable Display Filters" section.

    The following screenshot shows all available options on the PIX Traffic Logs Search page:

    6.5.1-2: PIX Traffic Log Search
    Search Traffic Logs

    6.5.2 PIX IDS Logs Search

    Menu Item: (Main Menu) > "Search"
    Menu Item: (Sub Menu) > "IDS Logs"


    6.5.2-1: Main Menu View
    Search IDS Logs

    PIX IDS Logs can be searched based on a set of defined criteria. Within these searches a number of wildcards can be used with the "%" (percentage) character, which is the default SQL wildcard.

    The following lists all the fields which are allowed as search input:
    • Logging Resource
    • Log Signature
    • Source IP [wildcard allowed!]
    • Destination IP [wildcard allowed!]
    • Log Protocol
    • Time Criteria:
      - Today
      - Specific Time Range
      - All Dates

    Note: when you want to use an "ANY" wildcard, please leave the field blank (in other words; you don't need to fill in the "%" to match the Any condition).

    In addition to the criteria listed above, it is also possible to resolve the hostnames and services when performing the search, in order to do this, please select "Yes" on the "Resolve Hostnames" section of the search page. The default behavior is not to resolve hostnames.

    The following screenshot shows all available options on the PIX IDS Logs Search page:

    6.5.2-2: PIX IDS Log Search
    Search IDS Logs

    6.5.3 PIX Informational Logs Search

    Menu Item: (Main Menu) > "Search"
    Menu Item: (Sub Menu) > "Info Logs"


    6.5.3-1: Main Menu View
    Search Info Logs

    PIX Informational Logs can be searched based on a set of defined criteria. Within these searches a number of wildcards can be used with the "%" (percentage) character, which is the default SQL wildcard.

    The following lists all the fields which are allowed as search input:
    • Logging Resource
    • Log Message
    • Informational Message Relation to a User-defined String [wildcard allowed!]
      - equals
      - does not equal
      - contains
      - does not contain
      - starts with
      - does not start with
      - ends with
      - does not end with
    • Time Criteria:
      - Today
      - Specific Time Range
      - All Dates

    The following screenshot shows all available options on the PIX Informational Logs Search page:

    6.5.3-2: PIX Informational Log Search
    Search Informational Logs



    6.6 Configuring Display Filtering

    Sometimes you may have legal requirements from the governing industry bodies to log certain types of traffic, however you may not want them to show up when you're displaying your traffic logs because they're considered overhead traffic. Examples of such traffic may be outbound DNS, SMTP, HTTP requests which may "pollute" your log files since they are usually overall present in high numbers.

    The way a traffic filter works is by defining the criteria for traffic which should be filtered and matching it against traffic which would normally be displayed. If there is a match, it means the traffic should be filtered and not shown in the view. For example:

    Example 1 - Multiple ANY Wildcards

    Condition:

     all outbound UDP DNS requests from your DNS server (10.10.10.10) should be filtered from the view.

    Pseudo-Filter:

     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:<leave_blank> Destination_Port:53 Protocol:UDP



    Example 2 - One ANY Wildcard and One SPECIFIC Wildcard

    Condition:

     all outbound UDP DNS requests from your DNS server (10.10.10.10) to a range of DNS servers (192.168.1.X) should be filtered from the view

    Pseudo-Filter:

     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:192.168.1.% Destination_Port:53 Protocol:UDP



    Of course you don't have to worry about writing these filters in the text based form like I just did here, you'll have the web interface to configure them, but I'm just showing you how the evaluation of the criteria works and how you can use wildcards (either by leaving the fields blank for an "Any" match or by using the "%" wildcard character for partial matches).

    There's three ways of creating a traffic display filter:

    6.6.1 Creating a Display Filter Manually

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Display Filters"


    6.6.1-1: Main Menu View
    Configure Display Filters

    The page you get when you click on the "Configure Display Filters" link represents the main menu for the Traffic Display Filter configuration.

    6.6.1-2: Main Display Filter Configuration
    Main Display Filters Configuration

    The page lists all your traffic filters and gives you a little menu on the top when you click on the plus-sign in front of the "Traffic Filter Options" link on the top. Using this menu you can create a new filter, search for certain variables within existing filters and show filters based on certain criteria. These latter two I'll let you find out later since they're quite trivial to use, so I'll focus on the Creation part.

    Creating a Traffic Display Filter manually involves several steps:

      Step 1 - On the Traffic Display Filter configuration page, expand the "Traffic Filter Options" and click on the "Create" button

      6.6.1-3: Expanding and Creating Title Menu
      Expanding and Creating Title Menu

      Step 2 - You'll now get a page with all blank form fields, some of which are input boxes, others are drop down menus. The following lists all the required form criteria and whether wildcards can be used:

      • Filter Name [Required] (Short description of the filter) (input text box)
      • Logging Resource (Allows you to select which firewalls logs the display filter should be active for) (choose one)
        + All Firewalls
        + <name of firewall>
      • Logging Action (Allows you to select which traffic action the display filter should be active for) (choose one)
        + Any
        + Accept
        + Drop
      • Protocol (Allows you to select which protocol the display filter should be active for) (choose one)
        + TCP
        + UDP
        + ICMP
      • Source IP (Source IP for which the display filter should be active) [wildcards allowed!] (input text box)
      • Source Port (Source Port for which the display filter should be active) [wildcards allowed!] (input text box)
      • Destination IP (Destination IP for which the display filter should be active)[wildcards allowed!] (input text box)
      • Destination Port (Destination Port for which the display filter should be active) [wildcards allowed!] (input text box)
      • Filter Description (Longer description of the filter) (input text box)

      Click on the "Create" button to create the filter or on the "Reset" button to reset the form

      The following screenshot shows a Display Filter which filters all TCP traffic from 10.10.10.x to any destination on destination port 445 (basically MS DCE traffic).

      6.6.1-4: Creating a Traffic Filter
      Creating a Traffic Filter

      Step 3 - Once you've created the filter you'll get a page with the summary of the filter you've just created. You've got three options from this page:

      • Clone This Filter (I'll come back to this later)
      • Edit This Filter (Allows you to modify the filter you just created)
      • Go Back to the Display Filter configuration page.

      The following screenshot shows a successful Display Filter creation for the above defined criteria:

      6.6.1-5: Successful Display Filter Creation
      Successful Display Filter Creation

      Step 4 - When you click on the "Back to the Display Filter" configuration page, you should see the list of all created traffic filters including the one you just created. When you create a filter it is enabled by default, which means that any traffic which matches the filter will not be displayed in the traffic logs view (and traffic logs searches if selecting "Enable Display Filters"). However, it is possible to disable the filter temporarily by clicking on the "disable" button in the options section of the traffic display filter main page. Other options include "clone" (which will be discussed shortly), edit (which allows you to edit the specific filter) and remove (which will permanently remove the traffic display filter). You can view the filter details by clicking on the filter name column (first column starting from the left).

      The following screenshot shows the Main Display Filter Configuration after we've created our display filter:

      6.6.1-6: Main Display Filter Configuration after Creation
      Main Display Filter Configuration after Creation

    6.6.2 Creating a Display Filter With Cloning

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Display Filters"
    Menu Item: (Options Choice) > "[ clone ]" (within a selected traffic display filter in the "options" column)


    6.6.2-1: Main Menu View
    Clone List

    The purpose of Traffic Display Filter Cloning is to re-use criteria entered within another filter and cloning them in order to create a new filter. So basically if we have a filter "A" which has DNS traffic defined between a specific source and destination IP pair and you want to add another destination for that same source IP and same traffic (DNS), you can clone filter "A" to create filter "B". Using the process of cloning you don't have to create an entirely new filter because you can just copy over the criteria from another filter. Basically what a clone does is it gives you the same page as you would have for creating a new filter, however several of the parameters are already filled in according to a pre-defined template, being the traffic display filter you're cloning from. In addition, a clone will add the "CLONED:" keyword in front of the Filter Name and Filter Description fields so that you don't create filters with duplicate names. Once you've got the cloned filter create window open, you can edit any variables you want in order to create the new filter, in the same manner as you would edit an existing filter.

    The following screenshot shows the Cloned Traffic Display Filter Configuration after we've created our display filter:

    6.6.2-2: Cloned Traffic Display Filter Configuration
    Cloned Traffic Display Filter Configuration

    Note: The same wildcards apply as for the "Creating a New Traffic Filter" section.

    Since creating a cloned traffic display filter involves mainly similar steps to creating a new filter, I will not repeat the entire process, however it is important to know that you can clone a traffic filter at three locations:
    • General Traffic Display Filter Configuration Page
      -> Under the "Options" column, click on "[ clone ]" for the desired row matching the traffic display filter you want to clone.
    • Specific Traffic Display Filter Viewing Page
      -> When you're at to the General Traffic Display Filter Configuration page, you can click on the Filter Name to open the specific details for the traffic display filter. At the Options tab on the bottom of the specific traffic display filter page you can select the "Clone Traffic Filter" option.
    • Specific Traffic Display Filter Creation Page
      -> When you've created a display filter you will get a summary with the details of the filter which has just been created. At the Options tab on the bottom of the specific traffic display filter page you can select the "Clone Traffic Filter" option.


    6.6.3 Creating a Display Filter From PIX Log Entry

    Menu Item: (Main Menu) > "Traffic Logs"
    Menu Item: (Select) > Select a Traffic Log which has been logged by the firewall.
    Menu Item: (Expand) > "Options"
    Menu Item: (Select) > "Display Filter" - "Create a display filter from PIX Log ID."


    6.6.3-1: Main Menu View
    Create Traffic Log from PIX Log ID

    While it is useful to be able to create Traffic Display Filters manually or cloning them. You're most likely creating the traffic display filters because of certain log entries you've seen. Therefore I've added the option to create a Traffic Display Filter straight from a PIX Traffic Log entry. This saves a lot of time since you don't have to worry about copy/pasting information across and it works in a similar way as cloning a Traffic Display filter in that it takes the information from the specific PIX Log Entry and allows you to edit it as you see fit.

    Note: The same wildcards apply as for the "Creating a New Traffic Filter" section.



    6.7 Configuring Traffic Descriptions

    Oftentimes you may come across traffic which may at first sight be unknown, especially some of the TCP/UDP high ports which are often used for Trojans as well as several legitimate applications (especially those very useful backup applications and the likes;). However, whilst traffic on port 80 and port 25 are well known services, an incoming scan on UDP/17500 may not be for example. That's why I've added the Traffic Descriptions functionality to PIX Logging Architecture, which is a feature that allows a user to define a description for a certain type of traffic. When the user clicks on the traffic details for this unknown traffic, each time it matches a traffic description, the description will be shown. Traffic Descriptions are accumulative, which means you can define multiple traffic descriptions for the same type of traffic and PIX Logging Architecture will then show you all of them. Traffic Descriptions are configured in a similar manner as Traffic Display Filters.

    Note: Wildcards can be used for Traffic Descriptions in exactly the same way as for Display Filters.

    There's three ways of creating a traffic description:

    6.7.1 Creating a Traffic Description Manually

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Descriptions"


    6.7.1-1: Main Menu View
    Configure Traffic description

    The page you get when you click on the "Configure Descriptions" link represents the main menu for the Traffic Description configuration.

    6.7.1-2: Main Traffic Description Configuration
    Main Traffic Description Configuration

    The page lists all your traffic descriptions and gives you a little menu on the top when you click on the plus-sign in front of the "Description Options" link on the top. Using this menu you can create a new traffic description and search for certain variables within existing descriptions.

    Creating a Traffic Description manually involves several steps:

      Step 1 - On the Traffic Description configuration page, expand the "Description Options" and click on the "Create" button

      6.7.1-3: Expanding and Creating Title Menu
      Expanding and Creating Title Menu

      Step 2 - You'll now get a page with all blank form fields, some of which are input boxes, others are drop down menus. The following lists all the required form criteria and whether wildcards can be used:

      • Description Name [Required] (Short name of the description) (input text box)
      • Logging Resource (Allows you to select which firewalls logs the description should be active for) (choose one)
        + All Firewalls
        + <name of firewall>
      • Logging Action (Allows you to select which traffic action the traffic description should be active for) (choose one)
        + Any
        + Accept
        + Drop
      • Protocol (Allows you to select which protocol the description should be active for) (choose one)
        + TCP
        + UDP
        + ICMP
      • Traffic Type / Priority( Allows you to select what kind of traffic this is - just used for reference) (choose one)
        + Normal / Low
        + Normal / Medium
        + Normal / High
        + Anomalous / Low
        + Anomalous / Medium
        + Anomalous / High
      • Source IP (Source IP for which the description should be active) [wildcards allowed!] (input text box)
      • Source Port (Source Port for which the description should be active) [wildcards allowed!] (input text box)
      • Destination IP (Destination IP for which the description should be active)[wildcards allowed!] (input text box)
      • Destination Port (Destination Port for which the description should be active) [wildcards allowed!] (input text box)
      • Description Detail (Detailed information of the traffic description) (input text box) (input text box)

      Click on the "Create" button to create the description or on the "Reset" button to reset the form.

      The following screenshot shows a Description which triggers on all TCP traffic from 10.10.10.x to any destination on destination port 445 (basically MS DCE traffic).

      6.7.1-4: Creating a Traffic Description
      Creating a Traffic Description

      Step 3 - Once you've created the description you'll get a page with the summary of the Traffic Description you've just created. You've got three options from this page:

      • Clone This Description (I'll come back to this later)
      • Edit This Description (Allows you to modify the description you just created)
      • Go Back to the Traffic Description configuration page.

      The following screenshot shows a successful Description creation for the above defined criteria:

      6.7.1-5: Successful Traffic Description Creation
      Successful Traffic Description Creation

      Step 4 - When you click on the "Back to the Traffic Description" configuration page, you should see the list of all created traffic description including the one you just created. Options on this page include "clone" (which will be discussed shortly), edit (which allows you to edit the selected description) and remove (which will permanently remove the traffic description). You can view the description details by clicking on the Description Name column (first column starting from the left).

      The following screenshot shows the Main Traffic Description Configuration after we've created our Traffic Description:

      6.7.1-6: Main Traffic Description Configuration after Creation
      Main Description Configuration after Creation

    6.7.2 Creating a Traffic Description With Cloning

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Descriptions"
    Menu Item: (Options Choice) > "[ clone ]" (within a selected traffic description in the "options" column)


    6.7.2-1: Main Menu View
    Clone List

    The purpose of Traffic Description Cloning is to re-use criteria entered within another description and cloning them in order to create a new query. So basically if we have a description "A" which has DNS traffic defined between a specific source and destination IP pair and you want to add another destination for that same source IP and same traffic (DNS), you can clone query "A" to create description "B". Using the process of cloning you don't have to create an entirely new description because you can just copy over the criteria from another description. Basically what a clone does is it gives you the same page as you would have for creating a new description, however several of the parameters are already filled in according to a pre-defined template, being the traffic description you're cloning from. In addition, a clone will add the "CLONED:" keyword in front of the Description Name and Description Detail fields so that you don't create descriptions with duplicate names. Once you've got the cloned description create window open, you can edit any variables you want in order to create the new description, in the same manner as you would edit an existing description.

    The following screenshot shows the Cloned Traffic Description Configuration after we've created our display filter:

    6.7.2-2: Cloned Traffic Description Configuration
    Cloned Traffic Description Configuration

    Note: The same wildcards apply as for the "Creating a New Traffic Description" section.

    Since creating a cloned traffic description involves mainly similar steps to creating a new description, I will not repeat the entire process, however it is important to know that you can clone a traffic description at three locations:
    • General Traffic Description Configuration Page
      -> Under the "Options" column, click on "[ clone ]" for the desired row matching the traffic description you want to clone.
    • Specific Traffic Description Viewing Page
      -> When you're at to the General Traffic Description Configuration page, you can click on the Description Name to open the specific details for the traffic description. At the Options tab on the bottom of the specific traffic description page you can select the "Clone Traffic Description" option.
    • Specific Traffic Description Creation Page
      -> When you've created a Traffic Description you will get a summary with the details of the description which has just been created. At the Options tab on the bottom of the specific traffic description page you can select the "Clone Traffic Description" option.


    6.7.3 Creating a Traffic Description From a PIX Log Entry

    Menu Item: (Main Menu) > "Traffic Logs"
    Menu Item: (Select) > Select a Traffic Log which has been logged by the firewall.
    Menu Item: (Expand) > "Options"
    Menu Item: (Select) > "Descriptions" - "Create a description from PIX Log ID."


    6.7.3-1: Main Menu View
    Create Traffic Description from PIX Log ID

    While it is useful to be able to create Traffic Descriptions manually or cloning them. You're most likely creating the traffic description because of certain log entries you've seen when looking through the PIX Traffic logs. Therefore I've added the option to create a Traffic Description straight from a PIX Traffic Log entry. This saves a lot of time since you don't have to worry about copy/pasting information across and it works in a similar way as cloning a Traffic Description in that it takes the information from the specific PIX Log Entry and allows you to edit it as you see fit.

    Note: The same wildcards apply as for the "Creating a New Traffic Description" section.



    6.8 Configuring Traffic Queries

    Sometimes there's recurring traffic which you look for on a daily basis and you would like to run recurring searching for this type of traffic. While running a traffic logs search is not a bad idea, it requires you to input the parameters every time. Therefore I've created a Traffic Query, which is basically "Set of Saved Search Parameters" which can then be given a name and ran at a later time. The advantage of using queries is that you do not need to re-type the parameters all ovah again with each recurring seach you do for similar traffic. Traffic Queries are configured in a similar manner as Traffic Display Filters.

    Note: Wildcards can be used for Traffic Queries in exactly the same way as for Display Filters.

    There's three ways of creating a traffic query:

    6.8.1 Creating a Traffic Query Manually

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Queries"


    6.8.1-1: Main Menu View
    Configure Traffic Queries

    The page you get when you click on the "Configure Queries" link represents the main menu for the Traffic Description configuration.

    6.8.1-2: Main Traffic Queries Configuration
    Main Traffic Queries Configuration

    The page lists all your traffic queries and gives you a little menu on the top when you click on the plus-sign in front of the "Query Options" link on the top. Using this menu you can create a new traffic queries and search for certain variables within existing queries.

    Creating a Traffic Query manually involves several steps:

      Step 1 - On the Traffic Query configuration page, expand the "Query Options" and click on the "Create" button

      6.8.1-3: Expanding and Creating Title Menu
      Expanding and Creating Title Menu

      Step 2 - You'll now get a page with all blank form fields, some of which are input boxes, others are drop down menus. The following lists all the required form criteria and whether wildcards can be used:

      • Query Name [Required] (Short name of the query) (input text box)
      • Logging Resource (Allows you to select which firewalls logs the query should be active for) (choose one)
        + All Firewalls
        + <name of firewall>
      • Logging Action (Allows you to select which traffic action the query should be active for) (choose one)
        + Any
        + Accept
        + Drop
      • Protocol (Allows you to select which protocol the query should be active for) (choose one)
        + TCP
        + UDP
        + ICMP
      • Log Message (Allow you to select which log message matches the query) (choose one)
        + Any
        + (i.e. PIX-3-313100,..)
      • Source IP (Source IP for which the query should be active) [wildcards allowed!] (input text box)
      • Source Port (Source Port for which the query should be active) [wildcards allowed!] (input text box)
      • Destination IP (Destination IP for which the query should be active)[wildcards allowed!] (input text box)
      • Destination Port (Destination Port for which the query should be active) [wildcards allowed!] (input text box)
      • Query Detail (Detailed information of the traffic query) (input text box) (input text box)

      Click on the "Create" button to create the Traffic Query or on the "Reset" button to reset the form.

      The following screenshot shows a Query which matches all TCP traffic from 10.10.10.x to any destination on destination port 445 (basically MS DCE traffic).

      6.8.1-4: Creating a Traffic Query
      Creating a Traffic Query

      Step 3 - Once you've created the description you'll get a page with the summary of the Traffic Query you've just created. You've got three options from this page:

      • Clone This Query (I'll come back to this later)
      • Edit This Query (Allows you to modify the query you just created)
      • Go Back to the Traffic Queries configuration page.

      The following screenshot shows a successful Traffic Query creation for the above defined criteria:

      6.8.1-5: Successful Traffic Query Creation
      Successful Traffic Query Creation

      Step 4 - When you click on the "Back to the Traffic Query" configuration page, you should see the list of all created traffic queries including the one you just created. Options on this page include "clone" (which will be discussed shortly), edit (which allows you to edit the selected query) and remove (which will permanently remove the traffic query). You can view the query details by clicking on the Query Name column (first column starting from the left).

      The following screenshot shows the Main Traffic Query Configuration after we've created our Traffic Query:

      6.8.1-6: Main Traffic Query Configuration after Creation
      Main Query Configuration after Creation

    6.8.2 Creating a Traffic Query With Cloning

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Traffic Logs"
    Menu Item: (Sub Menu Choice) > "Configure Queries"
    Menu Item: (Options Choice) > "[ clone ]" (within a selected traffic queries in the "options" column)


    6.8.2-1: Main Menu View
    Clone List

    The purpose of Traffic Query Cloning is to re-use criteria entered within another query and cloning them in order to create a new query. So basically if we have a Traffic Query "A" which has DNS traffic defined between a specific source and destination IP pair and you want to add another destination for that same source IP and same traffic (DNS), you can clone Traffic Query "A" to create Traffic Query "B". Using the process of cloning you don't have to create an entirely new query because you can just copy over the criteria from another query. Basically what a clone does is it gives you the same page as you would have for creating a new query, however several of the parameters are already filled in according to a pre-defined template, being the traffic query you're cloning from. In addition, a clone will add the "CLONED:" keyword in front of the Query Name and Query Detail fields so that you don't create traffic queries with duplicate names. Once you've got the cloned query create window open, you can edit any variables you want in order to create the new query, in the same manner as you would edit an existing query.

    The following screenshot shows the Cloned Traffic Query Configuration after we've created our display filter:

    6.8.2-2: Cloned Traffic Query Configuration
    Cloned Traffic Query Configuration

    Note: The same wildcards apply as for the "Creating a New Traffic Query" section.

    Since creating a cloned traffic query involves mainly similar steps to creating a new query, I will not repeat the entire process, however it is important to know that you can clone a traffic dquery at three locations:
    • General Traffic Query Configuration Page
      -> Under the "Options" column, click on "[ clone ]" for the desired row matching the traffic query you want to clone.
    • Specific Traffic Query Viewing Page
      -> When you're at to the General Traffic Query Configuration page, you can click on the Query Name to open the specific details for the traffic query. At the Options tab on the bottom of the specific traffic query page you can select the "Clone Traffic Query" option.
    • Specific Traffic Query Creation Page
      -> When you've created a Traffic Query you will get a summary with the details of the query which has just been created. At the Options tab on the bottom of the specific traffic query page you can select the "Clone Traffic Query" option.


    6.8.3 Creating a Traffic Query From a PIX Log Entry

    Menu Item: (Main Menu) > "Traffic Logs"
    Menu Item: (Select) > Select a Traffic Log which has been logged by the firewall.
    Menu Item: (Expand) > "Options"
    Menu Item: (Select) > "Queries" - "Create a query from PIX Log ID."


    6.8.3-1: Main Menu View
    Create Traffic Query from PIX Log ID

    While it is useful to be able to create Traffic Queries manually or cloning them. You're most likely creating the traffic query because of certain log entries you've seen when looking through the PIX Traffic logs and would like to set up a recurring query. Therefore I've added the option to create a Traffic Query straight from a PIX Traffic Log entry. This saves a lot of time since you don't have to worry about copy/pasting information across and it works in a similar way as cloning a Traffic Query in that it takes the information from the specific PIX Log Entry and allows you to edit it as you see fit.

    Note: The same wildcards apply as for the "Creating a New Traffic Query" section.



    6.9 Running Traffic Queries

    Menu Item: (Main Menu) > "Queries"

    6.9-1: Main Menu View
    Query Menu

    Once the Traffic Queries have been created, they can be executed using at the "Queries" menu from the top menu bar. In order to execute the Traffic Query, you have to select the data for which the traffic query applies, then select the Query Name of the Traffic Query you wish to execute and select whether or not you would like to resolve the hostnames (by default no resolution is done). Click on the "GO" button in order to execute the query.

    The following screenshot shows a Query being executed for some Gmail Update Traffic on port (995):

    6.9-2: Running Traffic Query
    Running a Query

    When the Traffic Query has been executed, it will return a list of matching log entries and from this point on you can continue to use this PIX Logging Architecture page in the same way as you do with the Search Results or the Traffic Logs page, including the same paging and sorting functions which exist in the other pages.



    6.10 Configuring Parse Filtering

    In addition to Traffic Display filtering which filters out logged data from being displayed to the user, it is possible to also filter out traffic before it gets logged to the PLA database. There may be certain types of traffic which are overhead and you may not way to see logged, such as Nokia VRRP traffic, Multicast traffic, bulk HTTP, HTTPS, DNS and other type of traffic. Filtering out this traffic at the parsing stage ensures that the PLA database does not get "polluted" with unnecessarily logged traffic and helps maintain the database in keeping its size smaller. I've added Parse Filters exactly for this purpose. The way a parse filter works is by defining the criteria for traffic which should be filtered. For example:

    Example 1 - Multiple ANY Wildcards (1)

    Condition:

     all outbound UDP DNS requests from your DNS server (10.10.10.10) should be filtered from being logged to the database

    Pseudo-Filter:

     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:<leave_blank> Destination_Port:53 Protocol:UDP



    Example 2 - Multiple ANY Wildcards (2)

    Condition:

     all outbound UDP DNS requests from your DNS server (10.10.10.10) to 192.168.1.1 and 192.168.1.2 and 192.168.1.3 should be filtered from being logged to the database

    Pseudo-Filter:

     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:192.168.1.1 Destination_Port:53 Protocol:UDP
     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:192.168.1.2 Destination_Port:53 Protocol:UDP
     Source_IP: 10.10.10.10 Source_Port:<leave_blank> Destination_IP:192.168.1.3 Destination_Port:53 Protocol:UDP



    As you can see in the above example, only a <leave_blank> wildcard may be used by leaving the field blank and matching the entire field. Partial matching wildcards using the "%" (percentage) character are NOT ALLOWED in the parse filters.

    Notes:

  • Parse filters, unlike traffic filters, cannot use the "%" wildcard. Either the entire field needs to be "wildcarded" by leaving it blank or an exact and specific match needs to be defined. The reason I've done this is to ensure that all traffic excluded from the database is definitely the traffic you want to exclude. It's always safer to log more and think you're logging less than logging less while you think you're logging more ;)


  • Once a new parse filter has been created it is not taken into account until the PLA Parse Daemon (pla_parsed) is restarted!



  • There's three ways of creating a parse filter:

    6.10.1 Creating a Parse Filter Manually

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Global Configuration"
    Menu Item: (Sub Menu Choice) > "Configure Parse Filter"


    6.10.1-1: Main Menu View
    Configure Parse Filters

    The page you get when you click on the "Configure Parse Filter" link represents the main menu for the Parse Filter configuration.

    6.10.1-2: Main Parse Configuration
    Main Parse Filters Configuration

    The page lists all your parse filters and gives you a little menu on the top when you click on the plus-sign in front of the "Parse Filter Options" link on the top. Using this menu you can create a new filter, search for certain variables within existing filters and show filters based on certain criteria. These latter two I'll let you find out later since they're quite trivial to use, so I'll focus on the Creation part.

    Creating a Parse Filter manually involves several steps:

      Step 1 - On the Parse Filter configuration page, expand the "Parse Filter Options" and click on the "Create" button

      6.10.1-3: Expanding and Creating Title Menu
      Expanding and Creating Title Menu

      Step 2 - You'll now get a page with all blank form fields, some of which are input boxes, others are drop down menus. The following lists all the required form criteria and whether wildcards can be used:

      • Filter Name [Required] (Short description of the filter) (input text box)
      • Logging Resource (Allows you to select which firewalls logs the parse filter should be active for) (choose one)
        + All Firewalls
        + <name of firewall>
      • Logging Action (Allows you to select which traffic action the parse filter should be active for) (choose one)
        + Any
        + Accept
        + Drop
      • Protocol (Allows you to select which protocol the parse filter should be active for) (choose one)
        + TCP
        + UDP
        + ICMP
      • Source IP (Source IP for which the parse filter should be active) [wildcards allowed!] (input text box)
      • Source Port (Source Port for which the parse filter should be active) [wildcards allowed!] (input text box)
      • Destination IP (Destination IP for which the parse filter should be active)[wildcards allowed!] (input text box)
      • Destination Port (Destination Port for which the parse filter should be active) [wildcards allowed!] (input text box)
      • Filter Description (Longer description of the filter) (input text box)

      Click on the "Create" button to create the filter or on the "Reset" button to reset the form

      The following screenshot shows a Display Filter which filters all TCP traffic from 10.10.10.1 to any destination on destination port 445 (basically MS DCE traffic).

      6.10.1-4: Creating a Parse Filter
      Creating a Parse Filter

      Step 3 - Once you've created the filter you'll get a page with the summary of the filter you've just created. You've got three options from this page:

      • Clone This Filter (I'll come back to this later)
      • Edit This Filter (Allows you to modify the filter you just created)
      • Go Back to the Parse Filter configuration page.

      The following screenshot shows a successful Parse Filter creation for the above defined criteria:

      6.10.1-5: Successful Parse Filter Creation
      Successful Parse Filter Creation

      Step 4 - When you click on the "Back to the Parse Filter" configuration page, you should see the list of all created parse filters including the one you just created. When you create a filter it is enabled by default, which means that any traffic which matches the filter will not be logged into the database. However, it is possible to disable the filter temporarily by clicking on the "disable" button in the options section of the parse filter main page. Other options include "clone" (which will be discussed shortly), edit (which allows you to edit the specific filter) and remove (which will permanently remove the tparse filter). You can view the filter details by clicking on the filter name column (first column starting from the left).

      The following screenshot shows the Main Parse Filter Configuration after we've created our display filter:

      6.10.1-6: Main Parse Filter Configuration after Creation
      Main Parse Filter Configuration after Creation

    6.10.2 Creating a Parse Filter With Cloning

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Global Configuration"
    Menu Item: (Sub Menu Choice) > "Configure Parse Filter"
    Menu Item: (Options Choice) > "[ clone ]" (within a selected parse filter in the "options" column)


    6.10.2-1: Main Menu View
    Clone List

    The purpose of Parse Filter Cloning is to re-use criteria entered within another filter and cloning them in order to create a new filter. So basically if we have a filter "A" which has DNS traffic defined between a specific source and destination IP pair and you want to add another destination for that same source IP and same traffic (DNS), you can clone filter "A" to create filter "B". Using the process of cloning you don't have to create an entirely new filter because you can just copy over the criteria from another filter. Basically what a clone does is it gives you the same page as you would have for creating a new filter, however several of the parameters are already filled in according to a pre-defined template, being the traffic display filter you're cloning from. In addition, a clone will add the "CLONED:" keyword in front of the Filter Name and Filter Description fields so that you don't create filters with duplicate names. Once you've got the cloned filter create window open, you can edit any variables you want in order to create the new filter, in the same manner as you would edit an existing filter.

    The following screenshot shows the Cloned Parse Filter Configuration after we've created our display filter:

    6.10.2-2: Cloned Parse Filter Configuration
    Cloned Parse Filter Configuration

    Note: The same wildcards apply as for the "Creating a New Parse Filter" section. Only <leave_blank> wildcards are allowed within the Parse Filter creation.

    Since creating a cloned Parse Filter involves mainly similar steps to creating a new filter, I will not repeat the entire process, however it is important to know that you can clone a Parse filter at three locations:
    • General Parse Filter Configuration Page
      -> Under the "Options" column, click on "[ clone ]" for the desired row matching the parse filter you want to clone.
    • Specific Parse Filter Viewing Page
      -> When you're at to the General Parse Filter Configuration page, you can click on the Filter Name to open the specific details for the parse filter. At the Options tab on the bottom of the specific parse filter page you can select the "Clone Parse Filter" option.
    • Specific Parse Filter Creation Page
      -> When you've created a parse filter you will get a summary with the details of the filter which has just been created. At the Options tab on the bottom of the specific parse filter page you can select the "Clone Parse Filter" option.


    6.10.3 Creating a Parse Filter From a PIX Log Entry

    Menu Item: (Main Menu) > "Traffic Logs"
    Menu Item: (Select) > Select a Traffic Log which has been logged by the firewall.
    Menu Item: (Expand) > "Options"
    Menu Item: (Select) > "Parse Filter" - "Create a parse filter from PIX Log ID."


    6.10.3-1: Main Menu View
    Create Traffic Log from PIX Log ID

    While it is useful to be able to create Parse Filters manually or cloning them. You're most likely creating the parse filters because of certain log entries you've seen. Therefore I've added the option to create a Parse Filter straight from a PIX Traffic Log entry. This saves a lot of time since you don't have to worry about copy/pasting information across and it works in a similar way as cloning a Parse filter in that it takes the information from the specific PIX Log Entry and allows you to edit it as you see fit.

    Note: The same wildcards apply as for the "Creating a New Parse Filter" section. Only <leave_blank> wildcards are allowed within the Parse Filter creation.



    6.11 Executing Log Purges

    When running PLA in an environment with a high amount of traffic you can easily start filling up the PLA database. In order to keep tabs on the size of the PLA database, I've added the Log Purging feature, which allows users to delete PLA log entries older than a certain date. While it is not possible to manually specify a log purging policy, several policies have been pre-defined which can be used to purge the PLA database.

    Menu Item: (Main Menu) > "Configuration"
    Menu Item: (Sub Menu) > "Global Configuration"
    Menu Item: (Sub Menu Choice) > "Configure Log Purging"


    6.11-1: Main Menu View
    Purging

    The General Log Purging page can be found when clicking on the "Configure Log Purging" link under the "Global Configuration" section of the "Configuration" menu. The "Configure Log Purging" page lists the various log purging policies which can be selected by clicking on them. The following log purging policies exist for Traffic, IDS and Informational logs:

    • Older than 7 days
    • Older than 14 days
    • Older than 21 days
    • Older than 1 month
    • Older than 2 months
    • Older than 3 months
    • Older than 6 months
    • Older than 1 year
    • Older than 2 years
    • Older than 3 years

    The following screenshot shows the Log Purging Main Page:

    6.11-2: Main Log Purging Page
    Main Log Purging Page

    Once you've clicked on one of the log purging policies, you will be taken to the log purging confirmation page, which shows various details such as the date prior to which logs will be purged, the number of records that will be purged and which require you to confirm two check boxes before being able to successfully carry out the purging of the logs.

    The following information is provided on the log purging confirmation page:
    • Purging Policy Name
    • Purging Policy Description
    • Purging Policy Target (traffic_log, ids_log or info_log)
    • Purging All Logs Newer Than: <start_date>
    • Purging All Logs Older Than: <end_date>
    • Number of Log Records Matching the Purging Criteria: <number_of_records_to_be_purged>

    The following check boxes need to be checked in order to allow the log purging to take place:
    • I wish to purge the PLA Database according to the Purge Policy "<Purging_Policy_Name>".
    • I accept the responsibility for the permanent deletion of certain records from within the PLA Database.
    Note: I just added these confirmation check boxes so that someone wouldn't accidentally purge lets say.. the entire PLA database ;)

    The following screenshot shows the Log Purging Policy Validation Page:

    6.11-3: Log Purging Policy Validation Page
    Log Purging Policy Validation Page

    After these check boxes have been checked, you can click on the "Purge Logs" button to start the log purging process, which will take you to the "Log Purging Execution" Page. The "Log Purging Execution" page contains the following elements:

    • Total Number of Records in Table before Purge
    • Total Number of Records being Purged in accordance with the selected policy
    • SQL statement used to purge the logs
    • Total Number of Records remaining after the Purge has taken place

    The following screenshot shows the execution of a Log Purging Policy:

    6.11-4: Log Purging Policy Execution
    Log Purging Policy Execution

    Note: Purging the logs may take a while and eventually time out (HTTP timeout to the PLA web-based front end) due to the size of the database, however the purging jobs will keep running on the PLA system.




    7. PIX Logging Architecture Best Practices


    7.1 Scaling The Deployment

    When considering a PIX Logging Architecture deployment (which you most likely are since you've read all this way through the document;) it is important to properly scale the machines running the infrastructure. Of course the usage of the machines depends a great deal on the number of logs you're going to have, the number of queries you're gonna throw at the database and so-forth. However here's some general considerations regarding the deployment of PIX Logging Architecture v2.00:

  • PLA Parsing Daemon
    • The PLA Parsing Daemon is responsible for extracting the log entries from the system log messages file and push them to the database. A lot of the work of the PLA Parsing Daemon is performed in memory so you'll have to ensure that the system running the PLA Parsing Daemon has an adequate amount of memory. For medium to large deployments I'd recommend between 256MB and 1024MB of memory. As for the CPU, I've had it running on P3 and P4 machines without much of a problem. Disk space is not necessarily a concern on the PLA Parsing Daemon since you can set up a log rotation policy for syslog which will "remove" the old system log files.

  • PLA Database
    • The PLA Database is the most resource intensive and demanding component of the PLA infrastructure, it goes without say that enough disk space needs to be on the PLA Database server in order to house the database. To create an average statistic, each log entry takes up about 0.25Kb. So if you've got a network with 1.000.000 daily log entries into the PLA database then you're looking at a daily growth of the PLA database of +/- 400MB. So if you're willing to retain your logs for 90 days you're looking at 36GB of data. So ensure that whatever the capacity of your disk, it is enough to sustain the growth of the used disk space introduced by the traffic logged into the PLA database. Moreover, the PLA Database server is also in charge of handling the SQL queries, which can oftentimes be quite resource-intensive depending on the granularity of the request. You'll have to forsee a good amount of memory on this server anywhere between 512MB and 1-2GB depending on the types of the queries. As for CPU, I'd recommend a P4 or Dual Core CPU.

  • PLA Web-Based Front End
    • The PLA Web-based Front End Server is the least resource intensive component out of all of 3 PLA components and does not have any special requirements.

    Note: Rather than separating each of these components on a dedicated server, you can also install all of these components on the same system.


    7.2 Recommended Deployment Strategy

    Whilst it is perfectly possible to install the different components of the PIX Logging Architecture infrastructure and let the logs come in, this may not be the most efficient approach. You may have traffic logged that you don't want to log. You may be logging certain log messages which are not necessarily useful to you, etc.. etc.. I've done several PIX Logging Architecture v2.00 deployments, both on small as well as on large networks and it's sometimes a very painful thing to find out that you're getting 100+ log entries a second into the database and then need to start figuring out what logs you should be filtering. Thus to minimize such "nightmares", out of my experience I'd like to share the following recommended deployment steps with you:

      1. Install all 3 PLA components (PLA Parsing Daemon, PLA Database, PLA Web-Based Front End) and their required supporting software (Apache/MySQL/Perl/Perl Modules)

      2. Download the latest version of the syslog_message table which you can find on the PLA website at http://www.logging-architecture.net/pla2/release/supportedmessages.html

      3. Start running the PLA Database and the PLA web-based front end - DO NOT activate the PLA Parsing Daemon yet!

      4. If you already know which specific traffic you do not want to log, start creating Parse Filters for this traffic.

      5. If you already know which specific traffic you want to log but not display, start creating Traffic Display Filters for this traffic.

      6. If available, a trending of network traffic top services and top connections would be a plus, if not you'll have to handle in a "best effort" methodology, but try and find out what overhead traffic may be transitting your networks, and create very broad (display and/or parse) filters for these types of traffic. Typical "high overhead traffic filters" are:

        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 80
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 443
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 8080
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 25
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 110
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 53
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 139 (that's always an evil one;)
        - Source_IP: ANY | Source_Port: ANY | Destination_IP: Any | Destination_Port: 445 (another evil one perhaps?;)

      7. Activate Syslogd Remote Log reception on the Logging Host and configure the PIX/FWSM to log to this host - DO NOT activate the PLA Parsing Daemon yet!

      8. Let Syslogd run for a predefined time period (1 hour is usually always a good sampling already) and look through the log file, ensure that the log messages which are indicated in the log file match those defined as parsing criteria in the "syslog_messages" table of the PLA database. For a list of all log messages which are logged or specifically excluded, please refer to the PIX Logging Architecture v2.00 web site. Also create traffic display filters and parse filters for any traffic which you may have noticed in the log file and do not want to log or display.

      9. Create Traffic Queries for known and unknown traffic so you can easily identify these types of traffic.

      10. Activate Syslogd Remote Log reception once more and start running the PLA Parsing Daemon (pla_parsed).

      11. Connect to the PLA web-based front end and ensure that messages are entered correctly into the database.

      12. Continue configuring Traffic Display Filters and Parse Filters as you see the accumulation of log traffic.



    7.3 Parsing Fun

    The PIX Logging Architecture Parsing Daemon (pla_parsed) uses a predefined set of criteria to be able to match incoming logs to known parsing formats and thus extrapolate the required information from the log file. The way this is done is using a "syslog_message" table within the PLA database which contains all the known log formats and defines what should be logged and should not be logged. The purpose of this section is to explain how parsing is done so that if you need to change anything to the PLA database parsing you'll know what to look for. No web-based front end is available for editing the syslog_messages table and thus you'll have to get your hands dirty inside the PLA database to be able to create some new log messages. I've provided this chapter for a good understanding how the PIX Logging Architecture's Parsing Daemon (pla_parsed) evaluates the log messages and to understand the construction of the "syslog_message" table so you can start added your own log messages which may not yet included in the default set of PLA supported log messages.

    The "syslog_message" table consists of the following fields, as shown in the following "describe syslog_message" output:

    		+--------------------+-----------------+------+-----+---------+----------------+
    		| Field              | Type            | Null | Key | Default | Extra          |
    		+--------------------+-----------------+------+-----+---------+----------------+
    		| field_id           | int(8) unsigned |      | PRI | NULL    | auto_increment |		
    		| message_id         | varchar(20)     | YES  |     | NULL    |                |
    		| message_type       | int(8)          | YES  |     | NULL    |                |
    		| message_regex      | varchar(255)    | YES  |     | NULL    |                |
    		| message_time       | varchar(32)     | YES  |     | NULL    |                |
    		| message_action     | varchar(32)     | YES  |     | NULL    |                |
    		| regex_src_ip       | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_dst_ip       | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_src_pt       | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_dst_pt       | int(8) unsigned | YES  |     | NULL    |                |	
    		| regex_xlate_src_ip | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_xlate_dst_ip | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_xlate_src_pt | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_xlate_dst_pt | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_idsmsg       | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_proto        | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_flags        | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_time         | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_sig          | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_msg          | int(8) unsigned | YES  |     | NULL    |                |
    		| regex_iface        | int(8) unsigned | YES  |     | NULL    |                |
    		+--------------------+-----------------+------+-----+---------+----------------+
    		21 rows in set (0.00 sec)
    	   


    PLA basically supports 3 types of log messages ("message_type" field) defined by the adjacent message types:
    • Traffic Logs (Message Type: 1)
    • IDS Logs (Message Type: 2)
    • Informational Logs (Message Type: 0)
    The PLA message types 1 (Traffic) & 2 (IDS) work quite straightforward and require most of all fields within the syslog_message table to be filled out with the correct information for parsing the messages. For PLA message type 0 things works slightly different but we'll come back on this later on.


    7.3.1 Parsing Message Types 1 and 2

    The following happens when Parsing Message Types 1 (Traffic Logs) & 2 (IDS Logs):
    • The PLA Parsing Daemon connects to the PLA database upon startup and downloads the entire syslog_message table into memory.
    • For each new incoming message, the PLA parsing daemon will match the message_id (i.e. PIX-6-302015) of the incoming log entry with the ones it has extracted from the database.
    • If it matches the database it's going to check the value for message_type, if it's 1 (Traffic Logs) or 2 (IDS Logs), the PLA parsing daemon will continue to parse all the information in accordance with the regular expressions (RegEx) condition specified in the "message_regex" field of the syslog_message table.

    Just to give an idea on how this works, I'll give a practical example. Lets say a log message comes in of with the message_id PIX-6-302015. Below is the message followed by a table which lists the syslog_message field name, syslog_message field value for this log message as defined in the database.

    Oct 28 20:31:29 fwext-dmz-01.dmz.counterstrike.mil Oct 28 2006 20:30:21: %PIX-6-302015: Built outbound UDP connection 6914 for outside:82.131.5.64/1254 (82.131.5.64/1254) to inside:10.1.10.8/48733 (80.200.224.122/2159)

    The following table lists the parsing record that the PLA database has for the "PIX-6-302015" log message:

    		+--------------------+------------------------------------------------------------------------------------------------+
    		| Field              | Value                                                                                          |
    		+--------------------+------------------------------------------------------------------------------------------------+
    		| field_id           | 4                                                                                              |	
    		| message_id         | PIX-6-302015                                                                                   |
    		| message_type       | 1                                                                                              | 
    		| message_regex      | Built outbound (.*) connection .* for .*:(.*)/(.*) .(.*)/(.*). to .*:(.*)/(.*) .(.*)/(.*)..    | 
    		| message_time       | %b %d %Y %H:%M:%S                                                                              |
    		| message_action     | ACCEPT                                                                                         |
    		| regex_src_ip       | 6                                                                                              |   
    		| regex_dst_ip       | 2                                                                                              |  
    		| regex_src_pt       | 7                                                                                              |
    		| regex_dst_pt       | 3                                                                                              |  
    		| regex_xlate_src_ip | 8                                                                                              |  
    		| regex_xlate_dst_ip | 4                                                                                              |  
    		| regex_xlate_src_pt | 9                                                                                              | 
    		| regex_xlate_dst_pt | 3                                                                                              |   
    		| regex_idsmsg       | 0                                                                                              |    
    		| regex_proto        | 1                                                                                              |  
    		| regex_flags        | 0                                                                                              | 
    		| regex_time         | 0                                                                                              |  
    		| regex_sig          | 0                                                                                              | 
    		| regex_msg          | 0                                                                                              | 
    		| regex_iface        | 0                                                                                              |   
    		+--------------------+------------------------------------------------------------------------------------------------+
    	   

    So if we were to take the log message shown above and fill in the variables, i.e. when evaluating the log message using the regular expression, we come up with the following results:

    message_regex = "Built outbound UDP connection 6914 for outside:82.131.5.64/1254 (82.131.5.64/1254) to inside:10.1.10.8/48733 (80.200.224.122/2159)"
    message_action = ACCEPT
    regex_src_ip (position #4 in message_regex) = 10.1.10.8
    regex_dst_ip (position #2 in message_regex) = 82.131.5.64
    regex_src_pt (position #7 in message_regex) = 48733
    regex_dst_pt (position #3 in message_regex) = 1254
    regex_xlate_src_ip (position #8 in message_regex) = 80.200.224.122
    regex_xlate_dst_ip (position #4 in message_regex) = 82.131.5.64
    regex_xlate_src_pt (position #9 in message_regex) = 2159
    regex_xlate_dst_pt (position #3 in message_regex) = 1254
    regex_proto (position #1 in message_regex) = UDP


    Based on this extrapolated information, the PLA Parsing Daemon then generates a log entry which it will push to the database, unless the specific log entry matches a known parse filter. So if you wish to write your own parsing criteria you can write them as shown above and thus keep PLA up to date. I myself will do my best to keep the PLA database as up to date as possible. At the time of this writing, I've got a total number of 51 Traffic and IDS log formats defined for PIX and FWSM together.

    Note: Remember that when you want to define Traffic or IDS log criteria, be specific and include the Regex statement followed by the proper positions for the different variables.


    7.3.2 Parsing Message Type 0

    Message Type 0 serves a double purpose:
    • Define what should be logged into the Informational Logs table.
    • Define what should not be logged at all.

    Two conditions exist:

    1. IF (message_type = 0 and message_action = 1) then the log should be included as an informational log entry.
      For example: PIX log message PIX-6-603109 (which informs about PPPoE status) - adheres to this condition (message_type=0 / message_action=1)

      Thus the following message:

      Oct 29 06:55:15 fwext-dmz-01.dmz.counterstrike.mil Oct 29 2006 06:54:07: %PIX-6-603109: Teardown PPPOE Tunnel, tunnel_id = 0, remote_peer_ip = 80.200.224.1

      Will be logged as an informational log message with the following information field:

      "Teardown PPPOE Tunnel, tunnel_id = 0, remote_peer_ip = 80.200.224.1"

    2. IF (message_type = 0 and message_action = 0) then the log should be excluded and not even considered by PLA Parse Daemon.
      This condition is valid for ALL message types (Traffic Logs, IDS Logs, Informational Logs) regardless of their nature. This has been added to provide the ability to users to exclude certain log messages from being logged based on the message id (i.e. PIX-6-305011). Excluding specific log entries can be a critical part of keeping the PLA database down to a reasonable size.

      For example, PIX Log Message PIX-6-305011 (which describes Port Address Translation) for dynamic port openings is not logged to the PLA database because it creates a lot of overhead information and thus has been excluded with the excluded log message (message_type = 0 and message_action = 0) setting.

      Thus the following message:

      Mar 11 13:19:15 fwext-dmz-01.dmz.counterstrike.mil Mar 11 2007 13:14:22: %PIX-6-305011: Built dynamic TCP translation from inside:10.10.10.8/4292 to outside:147.64.50.89/1243

      Will be discarded by the PLA Parsing Daemon because it matches an excluded log message id (PIX-6-305011) with the (message_type = 0 and message_action = 0) setting.






    8. Additional Information


    8.1 The People Behind PIX Logging Architecture

    I'd like to take this opportunity to introduce the people who have worked on making PIX Logging Architecture a reality and are continuing efforts on making this a great and useful piece of software!

  • Kris Philipsen - PLA Author / Developer [Email: kris@logging-architecture.net] [Website: http://kris.sequenced.org]

    • Just a quick intro.. I'm Kris Philipsen, Senior Security Consultant at Cybertrust, Inc. [http://www.cybertrust.com] and based in their Luxembourg, Europe office but I basically travel all over the world for my job. My interest in Cisco PIX, FWSM and everything that has to do with Cisco has started a long time ago now which is the reason why I'm running a PIX firewall here at my house and was having, like many other people, tremendous problems with Cisco's log strategy so I decided to change some things and make my (and hopefully everybody elses) life a little easier by bringing the PIX Logging Architecture project to life. As far as Cisco goes, I'm currently CCNP, CCSP and am working towards my CCIE Security for which I've passed the written exam so far.

  • Peter Boutzev - PLA Developer [Website: http://airfair.dnsalias.org]

    • I'm gonna take this opportunity to introduce Peter. A great friend and colleague for many years already! Peter Boutzev is Senior Security Consultant at Cybertrust, Inc. [http://www.cybertrust.com] and based in their Luxembourg, Europe office. Peter, just like Kris, is also very interested in everything that has to do with Cisco stuff as well as open source software. I definitely want to thank Peter for all of the great efforts and time he's put into helping me co-develop PLA and coming up with new and exciting features! It's an honor to work with you Peter. I'd also like to give mad kudos to Peter for passing the CCIE Security lab exam in mid-2006.. so Peter's now officially part of the CCIE Security club.. congrats dude and hope to follow you there soon!




    8.2 Acknowledgements and Kudos

    Thanks to all people who have been wonderful in helping improve PIX Logging Architecture and making it into what it is today.

    I'd like to especially thank my friend Christophe who's extensively tested PIX Logging Architecture v2.00 in the corporate infrastructure of the company he works for and has been great in giving me feedback on the FWSM testing and has come up with some ideas for new features which have currently been integrated into PLA v2.00.

    I'd also like to thank and give special attention to Viviane, the woman of my life who has put up with me while I've been working on designing, coding and improving PIX Logging Architecture (and of course writing this insanely long document). I love you!




    8.3 Support The PIX Logging Architecture Project

    If you like the PIX Logging Architecture project and would like to support us there's several ways of doing this:

  • Help Improve PIX Logging Architecture

    • Help us improve PIX Logging Architecture by giving us your feedback, comments and bug reports so we can get on making PLA a better piece of software.

  • Link to the http://www.logging-architecture.net website.

    • We've got a small logo which you can use to link to us using the following HTML code:

      <a href="http://www.logging-architecture.net"><img src="http://www.logging-architecture.net/pla_banner_small.jpg" alt="PIX Logging Architecture" border="0"></a>

  • Keep The PIX Logging Architecture Project Running
    • PIX Logging Architecture is a software which is being provided for free and can be used without any obligations or monetary compensation. Nevertheless, costs (such as hosting as well as hardware investments) are involved in running the PIX Logging Architecture project and keeping it as up to date as possible and support the latest software and hardware technologies which we try to maintain through the means of donations and sponsored ads clicks. Your click to our sponsors as well as your donations to this project can make the difference in keeping the site and it's project up and running!

      Please refer to the http://www.logging-architecture.net/pla2/ website for more information on this.




    8.4 PIX Logging Architecture Resources

    Besides this Installation, Configuration and Usage guide for PIX Logging Architecture, I've also put 5 mailing lists up regarding various topics relating to PIX Logging Architecture:

    • pixla-announce
    • pixla-bugs
    • pixla-comments
    • pixla-logs
    • pixla-support
    Please refer to the following page if you're interested in subscribing to these mailing lists: http://www.logging-architecture.net/pla2/.









    PIX Logging Architecture Banner: PIX Logging Architecture    Last Update: 25-Mar-2007    SourceForge.net Logo

    Thanks to Viviane and Carlos Eduardo for helping me out with the design of this site!