# ARM Research Labs Sniffer Plugin for CommuniGate Pro
- Download the Sniffer Plugin
- Installation
  - Installing on a MS Windows 200x/NT/XP/9x system
  - Installing on a Linux system
  - Installing on a FreeBSD system
  - Installing on an OpenBSD system
  - Installing from source
- Upgrading to a newer version
- Configuring the Sniffer Plugin
- Testing the Sniffer Plugin
- Command line options
- Integrating the Sniffer Plugin with CommuniGate Pro
- Updating the spam definitions database

Note: The ARM Research Labs Sniffer Plugin is not available on platforms. Before you order the Sniffer License, make sure that the available versions of the Sniffer Plugin software run on your CommuniGate Pro Server platform.

##

Download the ARM Research Labs Sniffer Plugins

  ARM Research Labs Sniffer antispam plugins are available for certain platforms only.

  Operating System | CPU | Download
  --- | --- | ---
  via http | via ftp
  Microsoft Windows NT/2000/XP Microsoft Windows 95/98 | x86 |  |
  Linux (RedHat/Fedora/CentOS, Ubuntu, SuSE) | x86 |  |
  x86_64 |  |
  FreeBSD 7.x | x86 |  |
  x86_64 |  |
  OpenBSD 4.4 or later | x86 |  |
  x86_64 |  |
  Source for Linux/FreeBSD/OpenBSD | Any |  |

Downloads by ftp are not available

The current version of the Plugin is 0.1.0.

The current version of the ARM Research Labs Sniffer Engine is 3.0.12.

###

Upgrading to a newer version.

When upgrading the Plugin to a newer version, do the following:

- Stop any running copy of the Sniffer Plugin application via CommuniGate Pro WebAdmin interface.
- Install and configure the new version of the Sniffer Plugin as described in this document.

###

Installing on a MS Windows 200x/NT/XP/9x system.

- Open the command-line interface window and change the current directory to the CommuniGate Pro base directory.
- Use any "unzip"-compatible tool to unpack the `CGPSNF-Win32-Intel.zip` file. The `CGPSNF` directory will be created inside the base directory.
- Proceed with Configuring the Sniffer Plugin.

###

Installing on a Linux system.

- Log in as a super-user (root).
- Change the current directory to the CommuniGate Pro base directory.
- Unpack the Plugin archive with the `tar` command:`
  tar -xzf CGPSNF-Linux-Intel.tar.gz`
  The `CGPSNF` directory will be created inside the base directory.
- Proceed with Configuring the Sniffer Plugin.

###

Installing on a FreeBSD system.

- Log in as a super-user (root).
- Change the current directory to the CommuniGate Pro base directory.
- Unpack the Plugin archive with the `tar` command:`
  tar -xzf CGPSNF-FreeBSD-Intel.tar.gz`
  The `CGPSNF` directory will be created inside the base directory.
- Proceed with Configuring the Sniffer Plugin.

###

Installing on an OpenBSD system.

- Log in as a super-user (root).
- Change the current directory to the CommuniGate Pro base directory.
- Unpack the Plugin archive with the `tar` command:`
  tar -xzf CGPSNF-OpenBSD-Intel.tar.gz`
  The `CGPSNF` directory will be created inside the base directory.
- Proceed with Configuring the Sniffer Plugin.

###

Installing from source.

You can build the Sniffer Plugin from source:

- Download the `snf4cgp.tar.gz`.
- Extract the sources with the command:`
  tar -xzf snf4cgptar.gz`
  This creates a directory `snf4cgp-X.Y.Z`, where X.Y.Z is the version of the module.
- Change directory to `snf4cgp-X.Y.Z`:`
  cd snf4cgp-X.Y.Z`
- Configure and build the system:`
  ./configure
  ./make`
- Become super-user (root).
- Create the Sniffer Plugin:`
  make module`
  This creates a Plugin archive named `CGPSNF-X.Y.Z-MODULE.tar.gz`.
- Proceed with Installing the Sniffer Plugin for your system, using the Plugin archive that was created.

###

Configuring the Sniffer Plugin.

Go to the CGPSNF module directory:

> On a typical Linux or Linux-like system `/var/CommuniGate/CGPSNF`
> On a typical Windows system `C:\CommuniGatePro\CGPSNF`
> Note: If these are not correct for your system you will need to customize your snf_engine.xml and getRulebase script accordingly. Be sure you visit the paths and update-script section of snf_engine.xml as well as the SET SNIFFER_PATH= line in your getRulebase script.

- Have your Message Sniffer LicenseID (8 characters) and AuthenticationString (16 characters) ready. You should have received these in your sign-up email or in one of your update notification email's from ARM Research Labs.
- Copy the sample configuration files.

- Copy `snf_engine.xml.sample` to `snf_engine.xml` and Customize as needed.

  > Note: If you modify the location of your rulebase you will also need to modify your getRulebase script accordingly! This is supported, however it is usually best to leave the location of the rulebase (.snf) files in the CGPSNF directory.

- Copy `identity.xml.sample` to `identity.xml`
- Edit `identity.xml` to Configure your LicenseID and AuthenticationString
- Copy `GBUdbIgnoreList.txt.sample` to `GBUdbIgnoreList.txt` and Customize as needed.

- Configure your automated updates script.

- On Windows Systems...

- Copy `getRulebase.cmd.sample` to `getRulebase.cmd`
- Configure the script with your SNF license ID and Authentication string.

- Change the line `LICENSE_ID=licenseid` to `LICENSE_ID=`your_LicenseID
- Change the line `AUTHENTICATION=authenticationxx` to `AUTHENTICATION=`your_AuthenticationString

- On Linux Sysetms...

- Copy `getRulebase.sample` to `getRulebase`
- Configure the script with your SNF license ID and Authentication string.

- Change the line `LICENSE_ID=licenseid` to `LICENSE_ID=`your_LicenseID
- Change the line `AUTHENTICATION=authenticationxx` to `AUTHENTICATION=`your_AuthenticationString

- Make `getRulebase` executable:
  `chmod 755 getRulebase`

- Download the current Message Sniffer rulebase:
  - On Windows systems...
  - Create an `UpdateReady.txt` file:`
    echo . > UpdateReady.txt`
  - Run the `getRulebase` script:`
    getRulebase`
  - Check for a new rulebase (.snf) file
    `dir *.snf`
  - On Linux systems...
  - Create an `UpdateReady.txt` file:`
    touch UpdateReady.txt`
  - Run the `getRulebase` script:`
    ./getRulebase`
  - Check for a new rulebase (.snf) file
    `ls *.snf`

  > Note: The `CGPSNF` program will automatically run the getRulebase script as needed. However there must be a valid rulebase file present before the CGPSNF program will run. This step also helps you verify that the getRulebase script is configured correctly. If it is you will see a new .snf file after running the script

- Proceed with Testing the Sniffer Plugin.

###

Testing the Sniffer Plugin.

On Windows System:

- Change to the module directory:`
  cd C:\CommuniGatePro\CGPSNF`
- Launch the `CGPSNF.exe` application by typing:`
  CGPSNF`
  It will report the Plugin version number and build date.
- Type:
  `1 FILE junkmsg.txt`
  The plugin should report that the file is spam.
- Close the progrm by typing
  `2 QUIT`

On a Unix System:

- Change to the module directory:`
  cd /var/CommuniGate/CGPSNF`
- Launch the `CGPSNF` application by typing:`
  ./CGPSNF`
  It will report the Plugin version number and build date.
- Type:
  `1 FILE junkmsg.txt`
  the plugin should report that the file is spam.
- Close the program by typing
  `2 QUIT`

###

Command Line Options

  The Sniffer Plugin supports the following command-line option (parameters):

  `path_to_config_file`
    This option tells the Plugin to read the configuration from `path_to_config_file`.

###

Integrating the Sniffer Plugin with CommuniGate Pro.

Please check the External Filters section of the CommuniGate Pro manual.

Open the General page in the Settings section of the WebAdmin Interface and click the Helpers link. Create the Helper as follows:

Content Filtering
Log Level: |  | Program Path: |
Time-out: |  | Auto-Restart: |

Note: For Windows system the Program Path shold be `CGPSNF\CGPSNF.exe`
Note: On some versions of FreeBSD system you may need to specify the full path to the program, i.e. `/var/CommuniGate/CGPSNF/CGPSNF`

The recommended Scanning Rule is as follows:

Data | Operation | Parameter
--- | --- | ---
Action | Parameter
| ARM Sniffer