@@ -0,0 +1,62 @@ | |||
.WebAdmin { | |||
font-size: smaller; font-family:Helvetica, Geneva, Arial, SunSans-Regular, sans-serif; | |||
color:#448; | |||
} | |||
body.inner {margin: 1pt;} | |||
.WebAdmin.TT {font-size: 100%;} | |||
.WebAdmin.A {color: black } | |||
.warning {color: red;} | |||
.button {color: #069; font-weight:bold;} | |||
.settingsBox {background-color: #F8F8FF; border: 1pt solid #069; border-collapse: collapse; } | |||
.settingsBox caption {color: #069; font-weight:bold; background-color: #CCD; border: 1px solid #069;} | |||
.settingsBox caption TH {font-weight:bold;} | |||
.settingsBox TR TH {background-color: #DDE; font-weight:bold;} | |||
.settingsBox THEAD TR, | |||
.settingsBox TFOOT TR {background-color: #DDF;} | |||
.settingsCaption {color: #069; background-color: #CCD; border: 1pt solid #069; border-collapse: collapse;} | |||
.settingsCaption TH {font-weight:bold;} | |||
.arrow {font-weight:bold;} | |||
.arrow A, | |||
.arrow A:active {color: #06A; text-decoration: underscore;} | |||
.arrow A:hover {color: #F93; text-decoration: underscore blink;} | |||
.logView {font-family:Monaco, Courier, serif; color: black; background-color: white;} | |||
.logViewInline {font-family:Monaco, Courier, serif; color: black; background-color: #F0F8F8; border: 1pt solid #069;} | |||
.histoBar {background-color: #069; } | |||
.tabSet {padding: 0pt; spacing: 0pt;} | |||
.tab {padding: 1pt 2pt 0pt 2pt; border-bottom: solid 1pt #444; font-weight: bold;} | |||
.tab DIV {background-color: #CCC; border: solid 1pt #AAA; border-bottom-width: 0px;} | |||
.tabName {padding: 1pt 2pt 0pt 2pt; border-bottom: solid 1pt #444; font-weight: bold; font-family: monospace; color: #444; text-transform: uppercase;} | |||
.tabActive {background-color: #DDD; border: solid 1pt #444; border-bottom-width: 0px; font-weight: bold; color: #F93;} | |||
.tabDataOuter {border: solid 1pt #444; border-top-width: 0pt; padding: 5pt 2pt 2pt 3pt; background-color: #DDD;} | |||
.tabData {border: solid 2pt #EEE; border-width: 5pt 2pt 2pt 4pt; padding: 0pt; background-color: #EEE;} | |||
.tab A, | |||
.tab A:active {color: #069; text-decoration: none;} | |||
.tab A:hover {color: #F93; text-decoration: blink;} | |||
.tabActive A, | |||
.tabActive A:active {color: #F93; text-decoration: underline;} | |||
.tabActive A:hover {color: #F93; text-decoration: blink;} | |||
.helpLink {font-weight: bolder;} | |||
.helpLink A, | |||
.helpLink A:active {color: #069; text-decoration: none;} | |||
.helpLink A:hover {color: #F93; text-decoration: blink;} | |||
.directoryValue {font-family: monospace; color: black; word-wrap: break-word;} | |||
.serviceName {font-family: monospace; color: black;} | |||
.settingFixed {background-color: white; border: solid 1pt #069; font-family: monospace; color: Black; padding:1pt;} |
@@ -0,0 +1,72 @@ | |||
body {font-family: serif; color:black;} | |||
tt {font-size: 100%;} | |||
.tabLeftSet {padding: 0pt; font-family: sans-serif;} | |||
.tabLeftSet td {padding: 2pt 0pt 2pt 1pt; border-right: solid 1pt #444; font-weight: bold;} | |||
.tabLeftSet td div {background-color: #CCC; border: solid 1pt #AAA; border-right-width: 0px; padding: 2pt;} | |||
.tabLeftSet th {background-color: #DDD; border: solid 1pt #444; border-right-width: 0px; font-weight: bold; color: #F93; text-align: left;} | |||
.tabLeftSet td a, | |||
.tabLeftSet td a:active {color: #069; text-decoration: none;} | |||
.tabLeftSet td a:hover {color: #F93; text-decoration: blink;} | |||
.tabLeftSet th a, | |||
.tabLeftSet th a:active {color: #F93; text-decoration: underline;} | |||
.tabLeftSet th a:hover {color: #F93; text-decoration: blink;} | |||
.tabTopOuter {border: solid 1pt #444; border-left-width: 0pt; padding: 2pt 2pt 2pt 5pt; background-color: #DDD;} | |||
.tabTopData {border: solid 2pt #EEE; border-width: 2pt 2pt 2pt 4pt; padding: 0pt; background-color: #EEE;} | |||
.tabTopSet {padding: 0pt; font-family: sans-serif;} | |||
.tabTopSet td {padding: 1pt 2pt 0pt 2pt; border-bottom: solid 1pt #444; font-weight: bold;} | |||
.tabTopSet td div {background-color: #CCC; border: solid 1pt #AAA; border-bottom-width: 0px;} | |||
.tabTopSet th {background-color: #DDD; border: solid 1pt #444; border-bottom-width: 0px; font-weight: bold; color: #F93;} | |||
.tabTopSet td a, | |||
.tabTopSet td a:active {color: #069; text-decoration: none;} | |||
.tabTopSet td a:hover {color: #F93; text-decoration: blink;} | |||
.tabTopSet th a, | |||
.tabTopSet th a:active {color: #F93; text-decoration: underline;} | |||
.tabTopSet th a:hover {color: #F93; text-decoration: blink;} | |||
.tabBodyOuter {border: solid 1pt #444; border-top-width: 0pt; padding: 5pt 2pt 3pt 3pt; background-color: #DDD;} | |||
.tabBody {border: solid 2pt #EEE; border-width: 5pt 2pt 2pt 4pt; padding: 0pt; background-color: #FFF;} | |||
h1 {color: white; background-color: #069; font-family: sans-serif; text-indent: 5pt; border: 0pt; margin: 0pt;} | |||
.guideTOC {border: solid 2pt #069; background-color: #EEF; } | |||
.guideTOC ul {list-style: square outside;} | |||
.guideTOC li a, | |||
.guideTOC li a:active {color: #069; text-decoration:none; font-family: sans-serif; font-weight: bold;} | |||
.guideTOC li a:hover {color: #F93;} | |||
h2 {color: #069; font-family: sans-serif;} | |||
h3 {color: #069; font-family: sans-serif;} | |||
hr {color: #069;} | |||
.guideCopyright {color: #069; font-size: smaller;} | |||
.guideVersion {color: #069; font: bold italic smaller sans-serif;} | |||
.guideSection {margin-left: 20;} | |||
.guideTable {background-color: #F8F8FF; border: 1pt solid #069; border-collapse:collapse; } | |||
.guideTable th {background-color: #E0E0FF; border: 1pt solid #069; color:Navy; } | |||
.guideTable td {border: 1pt solid #069; } | |||
.sampleCode {color: Navy; font-family: monospace;} | |||
.sampleData {color: Blue; font-family: monospace;} | |||
.sampleMarkup {color: #250; border: solid 1px #069; padding: 1px; font-family: monospace;} | |||
.sampleProgram {color: Navy; background-color: #F4F4F4; border-style: double; border-color: #888; padding: 2px; font-family: monospace;} | |||
.sampleMIME {background-color: #F4F4F4; border-style: dashed; border-color: #888; padding: 2px; font-family: monospace; font-size:smaller; color: Blue;} | |||
.sampleProto {background-color: #F4F4F4; border-style: double; border-color: #888; padding: 2px; font-family: monospace; font-size:smaller; } | |||
.sampleProtoC {color: Navy;} | |||
.sampleProtoS {color: Blue;} | |||
.syntax {color: Black; background-color: white; padding: 2px; font-family: monospace;} | |||
.syntaxTable td {color: Black; background-color: white; padding: 5px; font-family: monospace;} | |||
.spacedList dd {border-bottom: solid 1em white; } |
@@ -0,0 +1,340 @@ | |||
<HTML> | |||
<HEAD> | |||
<TITLE>CommuniGate Pro: ARM Research Labs Sniffer Antispam Plugin</TITLE> | |||
<link rel="stylesheet" href="GuideStyle.css" type="text/css" /> | |||
<link rel="stylesheet" href="AdminStyle.css" type="text/css" /> | |||
</HEAD> | |||
<BODY BGCOLOR=white> | |||
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%"> | |||
<td><img src="CGPLogo.gif" alt="CommuniGate Pro" /></td> | |||
<tr><td class="tabBodyOuter"> | |||
<table width="100%" cellspacing="0" cellpadding="0" class="tabBody"><tr><td> | |||
<h1>ARM Research Labs Sniffer Plugin for CommuniGate Pro</h1> | |||
<div class="guideTOC"><ul> | |||
<TABLE width="100%" cellspacing="0" cellpadding="0" class="tabBody" > | |||
<LI><A href="#Download">Download the Sniffer Plugin</A> | |||
<LI><A href="#Install">Installation</A> | |||
<UL> | |||
<LI><A href="#WIN32">Installing on a MS Windows 200x/NT/XP/9x System</A> | |||
<LI><A href="#Linux">Installing on a Linux System</A> | |||
<LI><A href="#FreeBSD">Installing on a FreeBSD or OpenBSD System</A> | |||
</UL> | |||
<LI><A href="#Upgrading">Upgrading to a newer version</A> | |||
<LI><A href="#Config">Configuring the Sniffer Plugin</A> | |||
<LI><A href="#Test">Testing the Sniffer Plugin</A> | |||
<LI><A href="#Options">Command line options</A> | |||
<LI><A href="#Integrate">Integrating the Sniffer Plugin with CommuniGate Pro</A> | |||
<LI><A href="#Update">Updating the spam definitions database</A> | |||
</ul></div> | |||
</TD></TR></TABLE> | |||
</table> | |||
</TABLE> | |||
<P><B>Note:</B> The ARM Research Labs Sniffer Plugin is available only | |||
for <I>some</I> platforms supported with the CommuniGate Pro server | |||
software. Before you order the Sniffer Plugin License, make sure that | |||
the available versions of the Sniffer Plugin software run on your | |||
CommuniGate Pro Server platform. | |||
<P><B>Note:</B> The ARM Research Labs Sniffer Plugin requires | |||
CommuniGatePro version 5.2.3 or later. | |||
<H2><HR><A NAME="Download"></A>Download the ARM Research Labs Sniffer Plugins</H2> | |||
<DL><DD> | |||
<P>ARM Research Labs Sniffer antispam plugins are available for certain platforms only. | |||
<TABLE class="guideTable" BORDER=1 CELLSPACING=0 CELLPADDING=1> | |||
<TR BGCOLOR="#cccccc"> | |||
<TH NOWRAP rowspan=2 width=50%>Operating System</TH> | |||
<TH NOWRAP rowspan=2>CPU</TH> | |||
<TH NOWRAP colspan=2>Download</TH> | |||
</TR> | |||
<TR BGCOLOR="#cccccc"> | |||
<TH NOWRAP>via<BR>http</TH> | |||
<TH NOWRAP>via<BR>ftp</TH> | |||
</TR> | |||
<TR> | |||
<TD ALIGN=CENTER>Microsoft Windows NT/2000/XP<BR>Microsoft Windows 95/98</TD> | |||
<TD ALIGN=CENTER>x86</TD> | |||
<TD ALIGN=CENTER><A HREF="http://www.armresearch.com/pub/plugins/SNF4CGP-Win32-Intel.zip"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
<TD ALIGN=CENTER><A HREF="ftp://ftp.armresearch.com/pub/plugins/SNF4CGP-Win32-Intel.zip"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
</TR> | |||
<TR> | |||
<TD ALIGN=CENTER>Linux<BR>Kernel 2.6 (stdc++ library version = 6.0)</TD> | |||
<TD ALIGN=CENTER>x86</TD> | |||
<TD ALIGN=CENTER><A HREF="http://www.armresearch.com/pub/plugins/SNF4CGP-Linux-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
<TD ALIGN=CENTER><A HREF="ftp://ftp.armresearch.com/pub/plugins/SNF4CGP-Linux-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
</TR> | |||
<TR> | |||
<TD ALIGN=CENTER>FreeBSD 7.x</TD> | |||
<TD ALIGN=CENTER>x86</TD> | |||
<TD ALIGN=CENTER><A HREF="http://www.armresearch.com/pub/plugins/SNF4CGP-FreeBSD7-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
<TD ALIGN=CENTER><A HREF="ftp://ftp.armresearch.com/pub/plugins/SNF4CGP-FreeBSD7-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
</TR> | |||
<TR> | |||
<TD ALIGN=CENTER>OpenBSD 4.3</TD> | |||
<TD ALIGN=CENTER>x86</TD> | |||
<TD ALIGN=CENTER><A HREF="http://www.armresearch.com/pub/plugins/SNF4CGP-OpenBSD4.3-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
<TD ALIGN=CENTER><A HREF="ftp://ftp.armresearch.com/pub/plugins/SNF4CGP-OpenBSD4.3-Intel.tar.gz"> | |||
<IMG SRC="DownLoad.gif" BORDER=0 WIDTH=16 HEIGHT=16></A></TD> | |||
</TR> | |||
</TABLE> | |||
</DL> | |||
<P>The current version of the Plugin is 0.1.0. | |||
<P>The current version of the ARM Research Labs Sniffer Engine is 3.0.11. | |||
<H3><HR><A name=Upgrading></A>Upgrading to a newer version.</H3> | |||
<P>When upgrading the Plugin to a newer version, do the following steps: | |||
<UL> | |||
<LI>Stop the current copy of the plugin application via CommuniGate Pro WebAdmin interface. | |||
<LI>Install and configure the new version of the Plugin as described above in this document. | |||
</UL> | |||
<H3><HR><A name="WIN32"></A>Installing on a MS Windows 200x/NT/XP/9x System.</H3> | |||
<UL> | |||
<LI>Open the command-line interface window and | |||
change the current directory to the CommuniGate Pro <I>base directory</I>. | |||
<LI>Use any "unzip"-type tool to unpack the | |||
<TT>SNF4CGP-Win32-Intel.zip</TT> file. The <TT>SNF4CGP</TT> directory will be created inside the <I>base directory</I>. | |||
<LI>Proceed with <A HREF="#Config">Configuring the Sniffer Plugin</A>. | |||
</UL> | |||
<H3><HR><A name=Linux></A>Installing on a Linux System.</H3> | |||
<UL> | |||
<LI>Log in as a super-user (root). | |||
<LI>Change the current directory to the CommuniGate Pro <I>base directory</I>. | |||
<LI>Unpack the Plugin archive with the <TT>gtar</TT> command (or | |||
with the <TT>gunzip</TT> and <TT>tar</TT> commands):<TT><BR> | |||
gunzip SNF4CGP-Linux-Intel.tar.gz<BR> | |||
tar -xf SNF4CGP-Linux-Intel.tar</TT><BR> | |||
The <TT>SNF4CGP</TT> directory will be created inside the <I>base directory</I>. | |||
<LI>Proceed with <A HREF="#Config">Configuring the Sniffer Plugin</A>. | |||
</UL> | |||
<H3><HR><A name=FreeBSD></A>Installing on a FreeBSD or OpenBSD System.</H3> | |||
<UL> | |||
<LI>Log in as a super-user (root). | |||
<LI>Change the current directory to the CommuniGate Pro <I>base directory</I>. | |||
<LI>Unpack the Plugin archive with the <TT>gtar</TT> command (or | |||
with the <TT>gunzip</TT> and <TT>tar</TT> commands):<TT><BR> | |||
gunzip SNF4CGP-FreeBSD-Intel.tar.gz<BR> | |||
tar -xf SNF4CGP-FreeBSD-Intel.tar</TT><BR> | |||
The <TT>SNF4CGP</TT> directory will be created inside the <I>base directory</I>. | |||
<LI>Proceed with <A HREF="#Config">Configuring the Sniffer Plugin</A>. | |||
</UL> | |||
<H3><HR><A name=Config></A>Configuring the Sniffer Plugin.</H3> | |||
<P>In the module directory (<TT>/var/CommuniGate/SNF4CGP</TT> on a | |||
Linux or Linux-like system): | |||
<UL> | |||
<LI>Copy the configuration file <TT><BR> | |||
snf_engine.xml.sample</TT><BR> to <TT><BR> | |||
snf_engine.xml</TT><BR> and customize as | |||
needed. Please see the <A href="http://www.armresearch.com">ARM | |||
Research Labs web site</A> for documentation on | |||
the <TT>snf_engine.xml</TT> configuration file.<BR> | |||
<LI>Copy <TT><BR> | |||
identity.xml.sample</TT><BR> to <TT><BR> | |||
identity.xml</TT><BR> and edit to include the | |||
license ID and authentication attributes of | |||
the <TT><identity> element</TT>.<BR> | |||
<LI>Copy <TT><BR> | |||
getRulebase.sample</TT><BR> to <TT><BR> | |||
getRulebase.xml</TT><BR> and edit to include the | |||
license ID and authentication: | |||
<UL> | |||
<LI>Change the line <TT><BR> | |||
AUTHENTICATION=authenticationxx</TT><BR> | |||
to <TT><BR> | |||
AUTHENTICATION=YOUR_AUTHENTICATION</TT><BR> | |||
where <TT>YOUR_AUTHENTICATION</TT> is authentication code | |||
obtained from ARM Research Labs.</LI> | |||
<LI>Change the line <TT><BR> | |||
LICENSE_ID=licenseid</TT><BR> to <TT><BR> | |||
LICENSE_ID=YOUR_LICENSE_ID</TT><BR> | |||
where <TT>YOUR_LICENSE_ID</TT> is license ID obtained from | |||
ARM Research Labs.</LI> | |||
</UL> | |||
<BR> | |||
<LI>Copy <TT><BR> | |||
GBUdbIgnoreList.txt.sample</TT><BR> to <TT><BR> | |||
GBUdbIgnoreList.txt</TT><BR> and customize as | |||
needed. Please see the | |||
<A href="http://www.armresearch.com">ARM Research Labs web | |||
site</A> for documentation on the <TT>GBUdbIgnoreList.txt</TT> | |||
file.<BR> | |||
<LI>Download the Sniffer database: | |||
<UL> | |||
<LI>Create the file <TT>UpdateReady.txt</TT> in the plugin directory:<TT><BR> | |||
touch UpdateReady.txt</TT><BR> | |||
</LI> | |||
<LI>Run the <TT>getRulebase</TT> script in the plugin | |||
directory:<TT><BR> | |||
./getRulebase</TT><BR> | |||
This downloads the Sniffer database to the plugin directory. | |||
</UL> | |||
The <B><TT>SNF4CGP</TT></B> program automatically updates the | |||
Sniffer database as needed. | |||
<LI>Proceed with <A HREF="#Test">Testing the Sniffer Plugin</A>. | |||
</UL> | |||
<H3><HR><A name=Test></A>Testing the Sniffer Plugin.</H3> | |||
<P>On Windows System: | |||
<!-- | |||
<UL> | |||
<LI>Launch the <TT>SNF4CGP.exe</TT> application by typing:<TT><BR> | |||
SNF4CGP\SNF4CGP.exe SNF4CGP\snf_engine.xml</TT><BR> | |||
It will report the Plugin version number and build date.<BR> | |||
<LI>Type:<TT><BR> | |||
1 FILE SNF4CGP\junkmsg.msg</TT><BR> | |||
The plugin should report that the file is spam. | |||
<LI>Quit <TT>SNF4CGP.exe</TT> by typing Ctrl-Z. | |||
</UL> | |||
--> | |||
<P>On a Unix System: | |||
<UL> | |||
<LI> Change to the module directory:<TT><BR> | |||
cd /var/CommuniGate/SNF4CGP</TT><BR> | |||
<LI>Launch the <TT>SNF4CGP</TT> application by typing:<TT><BR> | |||
./SNF4CGP snf_engine.xml</TT><BR> | |||
It will report the Plugin version number and build date.<BR> | |||
<LI>Type:<TT><BR> | |||
1 FILE junkmsg.txt</TT><BR> | |||
the plugin should report that the file is spam. | |||
<LI>Quit <TT>SNF4CGP</TT> by typing Ctrl-D. | |||
</UL> | |||
<H3><HR><A NAME="Options"></A>Command Line Options</H3> | |||
<DL><DD> | |||
The Sniffer Plugin supports the following command-line option (parameters):<DL> | |||
<P><DT><TT>snf_engine.xml</TT> | |||
<DD>This option tells the Plugin to read the <TT>snf_engine.xml</TT> | |||
configuration file. | |||
</DL> | |||
</DL> | |||
<H3><HR><A name=Integrate></A>Integrating the Sniffer Plugin with CommuniGate Pro.</H3> | |||
Please check the <A | |||
HREF="http://www.communigate.com/CommuniGatePro/VirusScan.html#Launch">External | |||
Filters</A> section of the CommuniGate Pro manual. | |||
<P>Open the General page in the Settings section of the WebAdmin Interface and click the Helpers link. | |||
Create the Helper as follows: | |||
<center class="WebAdmin"><form action="Null.html"> | |||
<TABLE class="settingsBox" cellpadding="3" width="90%"> | |||
<caption>Content Filtering</caption> | |||
<TR><TD BGCOLOR="#EEEEEE"> | |||
<TABLE class="settingsBox" WIDTH="100%" BORDER="0" CELLSPACING=1 CELLPADDING=0> | |||
<TR> | |||
<td align="right"><select name="U3"><option value="0">Disabled</option><option value="1" selected="selected">Enabled</option></select></td> | |||
<td><input name="N3" value="ARM Sniffer" size="15" maxlength="200" type="text" /></td> | |||
<TD colspan=2 ALIGN=center></TD> | |||
</TR><TR> | |||
<td align="right" width="25%">Log Level:</td><td><select name="L3"><option value="0">Crashes Only</option><option value="1">Failures</option><option value="2">Major & Failures</option><option value="3">Problems</option><option value="4" selected="selected">Low Level</option><option value="5">All Info</option></select></td> | |||
<td align="right" width="25%">Program Path:</td><td><input name="P3" | |||
value="SNF4CGP/SNF4CGP /var/CommuniGate/SNF4CGP/snf_engine.xml" size="30" maxlength="255" type="text" /></td> | |||
</TR><TR> | |||
<TD ALIGN=RIGHT>Time-out:</TD><TD><SELECT NAME="T0"><OPTION VALUE=0>disabled<OPTION VALUE="15">15 seconds<OPTION VALUE="30">30 seconds<OPTION VALUE="60">minute<OPTION VALUE="120">2 minutes<OPTION VALUE="180">3 minutes<OPTION VALUE="300" SELECTED>5 minutes<OPTION VALUE="600">10 minutes<OPTION VALUE="900">15 minutes<OPTION VALUE="1800">30 minutes<OPTION VALUE="3600">hour</SELECT></TD> | |||
<TD ALIGN=RIGHT>Auto-Restart:</TD><TD><SELECT NAME="A0"><OPTION VALUE=0>disabled<OPTION VALUE="5">5 seconds<OPTION VALUE="7">7 seconds<OPTION VALUE="10">10 seconds<OPTION VALUE="15">15 seconds<OPTION VALUE="30">30 seconds<OPTION VALUE="60" SELECTED>minute<OPTION VALUE="120">2 minutes<OPTION VALUE="180">3 minutes<OPTION VALUE="300">5 minutes<OPTION VALUE="600">10 minutes<OPTION VALUE="900">15 minutes<OPTION VALUE="1800">30 minutes<OPTION VALUE="3600">hour<OPTION VALUE="7200">2 hours<OPTION VALUE="10800">3 hours<OPTION VALUE="21600">6 hours</SELECT></TD> | |||
</TR> | |||
</TABLE></TD></TR> | |||
</TABLE></FORM></center> | |||
<B>Note:</B> For Windows system the Program Path shold be | |||
<TT>SNF4CGP\SNF4CGP.exe SNF4CGP\snf_engine.xml</TT><BR> | |||
<B>Note:</B> On some versions of FreeBSD system you may need to | |||
specify the full path to the program, | |||
i.e. <tt>/var/CommuniGate/SNF4CGP/SNF4CGP /var/CommuniGate/SNF4CGP/snf_engine.xml</tt> | |||
<P>The recommended Scanning Rule is as follows:</P> | |||
<center class="WebAdmin"><form action="Null.html"> | |||
<TABLE class="settingsBox" cellpadding="3" width="90%"> | |||
<tr align="left"> | |||
<th>Data</th> | |||
<th>Operation</th> | |||
<th>Parameter</th> | |||
</tr> | |||
<TR> | |||
<TD> | |||
<SELECT NAME="c2"><OPTION VALUE="0" SELECTED>---<OPTION VALUE="12">Message Size</SELECT> | |||
</TD><TD> | |||
<SELECT NAME="o2"><OPTION VALUE="0" SELECTED>is<OPTION VALUE="4">greater than</SELECT> | |||
</TD><TD> | |||
<INPUT TYPE="text" NAME="p2" VALUE="" SIZE="20" MAXLENGTH="1024"> | |||
</TD> | |||
</TR> | |||
<tr align="left"> | |||
<th>Action</th> | |||
<th colspan="2">Parameter</th> | |||
</tr> | |||
<TR VALIGN=TOP> | |||
<TD><SELECT NAME="a0"><OPTION VALUE="0">---<OPTION VALUE="6">Stop Processing<OPTION VALUE="17" SELECTED>ExternalFilter</SELECT> | |||
</TD><TD><TEXTAREA NAME="r0" ROWS="4" COLS="40">ARM Sniffer</TEXTAREA> | |||
</TD> | |||
</TR> | |||
<TR VALIGN=TOP> | |||
<TD><SELECT NAME="a1"><OPTION VALUE="0" SELECTED>---<OPTION VALUE="7">Stop Processing</SELECT></TD> | |||
<TD colspan="2"><TEXTAREA NAME="r1" ROWS="4" COLS="40"></TEXTAREA></TD> | |||
</TR> | |||
</TABLE></FORM></center> | |||
<hr/><div align="right" class="guideCopyright">CommuniGate® Pro Guide. Copyright © 1998-2009, Stalker Software, Inc.</div> | |||
</BODY> | |||
</HTML> |
@@ -0,0 +1,11 @@ | |||
# List of IPs to Ignore on startup | |||
# THIS FILE MUST BE PRESENT FOR SNF TO START! | |||
# Each IP in this list is set to Ignore in GBUdb when | |||
# The configuration is loaded. | |||
# Hash mark on the beginning of a line indicates a comment. | |||
# Comments after an IP are also ignored. | |||
# One line per IP. Sorry, no CIDR yet. | |||
# Note that you can also use Drilldown directives to achieve CIDR like results automatically. | |||
# Be sure to list ALL of your gateways :-) | |||
127.0.0.1 # ignore localhost, of course. |
@@ -0,0 +1,2 @@ | |||
<snf><identity licenseid='licensid' authentication='authenticationxx'/></snf> | |||
@@ -0,0 +1,162 @@ | |||
<!-- SNFMulti V3.0 Configuration File, Setup: Typical of SNF4CGP --> | |||
<!-- http://www.armresearch.com/support/articles/software/snfServer/config/snfEngine.jsp --> | |||
<snf> | |||
<node identity='C:\CommuniGate Files\CGPSNF\identity.xml'> | |||
<paths> | |||
<log path='C:\CommuniGate Files\CGPSNF\'/> | |||
<rulebase path='C:\CommuniGate Files\CGPSNF\'/> | |||
<workspace path='C:\CommuniGate Files\CGPSNF\'/> | |||
</paths> | |||
<logs> | |||
<rotation localtime='no'/> | |||
<status> | |||
<second log='yes' append='no'/> | |||
<minute log='yes' append='no'/> | |||
<hour log='no' append='no'/> | |||
</status> | |||
<scan> | |||
<identifier force-message-id='no'/> | |||
<classic mode='api' rotate='yes' matches='unique'/> | |||
<xml mode='file' rotate='yes' matches='all' performance='yes' gbudb='yes'/> | |||
<xheaders> | |||
<output mode='api'/> | |||
<version on-off='off'>X-MessageSniffer-Version</version> | |||
<license on-off='off'>X-MessageSniffer-License</license> | |||
<rulebase on-off='off'>X-MessageSniffer-RulebaseUTC</rulebase> | |||
<identifier on-off='off'>X-MessageSniffer-Identifier</identifier> | |||
<gbudb on-off='on'>X-GBUdb-Analysis</gbudb> | |||
<result on-off='on'>X-MessageSniffer-Scan-Result</result> | |||
<matches on-off='on'>X-MessageSniffer-Rules</matches> | |||
<black on-off='on'>X-MessageSniffer-Spam: Yes</black> | |||
<white on-off='off'>X-MessageSniffer-White: Yes</white> | |||
<clean on-off='off'>X-MessageSniffer-Clean: Yes</clean> | |||
<symbol on-off='off' n='0'>X-MessageSniffer-SNF-Group: OK</symbol> | |||
<symbol on-off='off' n='20'>X-MessageSniffer-SNF-Group: Truncated</symbol> | |||
<symbol on-off='off' n='40'>X-MessageSniffer-SNF-Group: Caution</symbol> | |||
<symbol on-off='off' n='63'>X-MessageSniffer-SNF-Group: Black</symbol> | |||
<symbol on-off='off' n='62'>X-MessageSniffer-SNF-Group: Obfuscation</symbol> | |||
<symbol on-off='off' n='61'>X-MessageSniffer-SNF-Group: Abstract</symbol> | |||
<symbol on-off='off' n='60'>X-MessageSniffer-SNF-Group: General</symbol> | |||
<symbol on-off='off' n='59'>X-MessageSniffer-SNF-Group: Casinos-Gambling</symbol> | |||
<symbol on-off='off' n='58'>X-MessageSniffer-SNF-Group: Debt-Credit</symbol> | |||
<symbol on-off='off' n='57'>X-MessageSniffer-SNF-Group: Get-Rich</symbol> | |||
<symbol on-off='off' n='56'>X-MessageSniffer-SNF-Group: Ink-Toner</symbol> | |||
<symbol on-off='off' n='55'>X-MessageSniffer-SNF-Group: Malware</symbol> | |||
<symbol on-off='off' n='54'>X-MessageSniffer-SNF-Group: Porn-Dating-Adult</symbol> | |||
<symbol on-off='off' n='53'>X-MessageSniffer-SNF-Group: Scam-Phishing</symbol> | |||
<symbol on-off='off' n='52'>X-MessageSniffer-SNF-Group: Snake-Oil</symbol> | |||
<symbol on-off='off' n='51'>X-MessageSniffer-SNF-Group: Spamware</symbol> | |||
<symbol on-off='off' n='50'>X-MessageSniffer-SNF-Group: Media-Theft</symbol> | |||
<symbol on-off='off' n='49'>X-MessageSniffer-SNF-Group: AV-Push</symbol> | |||
<symbol on-off='off' n='48'>X-MessageSniffer-SNF-Group: Insurance</symbol> | |||
<symbol on-off='off' n='47'>X-MessageSniffer-SNF-Group: Travel</symbol> | |||
</xheaders> | |||
</scan> | |||
</logs> | |||
<network> | |||
<sync secs='30' host='sync.messagesniffer.net' port='25'/> | |||
<update-script on-off='on' call='C:\CommuniGate Files\CGPSNF\getRulebase.cmd' guard-time='180'/> | |||
</network> | |||
<xci on-off='on' port='9001'/> | |||
<gbudb> | |||
<database> | |||
<condense minimum-seconds-between='600'> | |||
<time-trigger on-off='on' seconds='86400'/> | |||
<posts-trigger on-off='off' posts='1200000'/> | |||
<records-trigger on-off='off' records='600000'/> | |||
<size-trigger on-off='on' megabytes='150'/> | |||
</condense> | |||
<checkpoint on-off='on' secs='3600'/> | |||
</database> | |||
<regions> | |||
<white on-off='on' symbol='0'> | |||
<edge probability='-1.0' confidence='0.4'/> | |||
<edge probability='-0.8' confidence='1.0'/> | |||
<panic on-off='on' rule-range='1000'/> | |||
</white> | |||
<caution on-off='on' symbol='40'> | |||
<edge probability='0.4' confidence='0.0'/> | |||
<edge probability='0.8' confidence='0.5'/> | |||
</caution> | |||
<black on-off='on' symbol='63'> | |||
<edge probability='0.8' confidence='0.2'/> | |||
<edge probability='0.8' confidence='1.0'/> | |||
<truncate on-off='on' probability='0.9' peek-one-in='5' symbol='20'/> | |||
<sample on-off='on' probability='0.8' grab-one-in='5' passthrough='no' passthrough-symbol='0'/> | |||
</black> | |||
</regions> | |||
<training on-off='on'> | |||
<bypass> | |||
<!-- <header name='To:' find='spam@example.com'/> --> | |||
<!-- <header name='Received:' ordinal='1' find='friendlyhost.com'/> --> | |||
</bypass> | |||
<drilldown> | |||
<!-- <received ordinal='0' find='[12.34.56.'/> where we want to ignore 12.34.56.0/24 --> | |||
<!-- <received ordinal='0' find='mixed-source.com'/> --> | |||
<!-- <received ordinal='1' find='mixed-source-internal.com'/> --> | |||
</drilldown> | |||
<source> | |||
<!-- <header name='X-Use-This-Source:' received='mixedsource.com [' ordinal='0' /> --> | |||
<!-- <header name='X-Originating-IP:' received='hotmail.com [' ordinal='0' /> --> | |||
</source> | |||
<white> | |||
<result code='1'/> | |||
<!-- <header name='Received:' ordinal='0' find='.friendlyhost.com'/> --> | |||
</white> | |||
</training> | |||
</gbudb> | |||
<rule-panics> | |||
<!-- | |||
<rule id='123456'/> | |||
<rule id='123457'/> | |||
--> | |||
</rule-panics> | |||
<platform> | |||
<snf4cgp> | |||
<ham action='Allow' reason='Message OK' comment='Message OK' headers='yes' xml='yes'> | |||
<result code='0' comment='(0) Not Spam/Malware' /> | |||
<result code='1' comment='(1) White Rule/IP-Range' /> | |||
</ham> | |||
<spam action='Allow' reason='Spam/Malware' comment='Spam/Malware' headers='yes' classic='no' xml='no' hold-path='quarantine'> | |||
<result code='40' comment='(40) Caution' /> | |||
<result code='63' action='Reject' reason='Source IP black listed (GBUdb/black)' comment='(63) Black' /> | |||
<result code='20' action='Reject' reason='Source IP black listed (GBUdb/truncate)' comment='(20) Truncate' /> | |||
</spam> | |||
</snf4cgp> | |||
</platform> | |||
<msg-file type='cgp'/> | |||
</node> | |||
</snf> | |||
@@ -1,127 +0,0 @@ | |||
20090324_M First stab at describing the structures and dev rules | |||
we will employ on our SVN server. I'm sure this will evolve ;-) | |||
This is the repository startup readme. When we create a new SVN | |||
repository on the svn.microneil.com server we populate it with | |||
this ReadMe file so there is something useful to check out the | |||
first time. | |||
This ReadMe should be replaced when the repository is populated. | |||
There probably should be a ReadMe file in the root of /trunk/ | |||
so that folks using the repository understand what is there and | |||
what rules apply to the project. | |||
Projects (repositories) should be structured according to the | |||
following rules: | |||
** In general the root of /trunk/ for any project should be as | |||
empty as possible containing at most the ReadMe file and possibly | |||
the most current "golden version" of the project's goal. | |||
All rules have exceptions and the exception to this rule is the | |||
first project type (below) - source libraries. | |||
__________________________________________ | |||
For Source Code Modules / Source Libraries: | |||
The /trunk/ should contain just the source code, data, ReadMe, | |||
and other parts that are considered part of the module. Modules | |||
are meant to be re-used and so they will be imported as external | |||
SVN references in other projects where they are consumed. | |||
We would expect to see something like: | |||
/trunk/source.h | |||
/trunk/source.cpp | |||
/trunk/ReadMe | |||
In general, source modules are imported by external reference and | |||
are never manipulated directly for themselves. For example, while | |||
developing a source library the repository for that source would be | |||
externally referenced by a Test module (below). The developer would | |||
build the test application while exercising the source library and | |||
making changes to that library (presumably in a branch). When they | |||
are satisfied that their updates are working correctly according | |||
to the test application they would commit the Test module project | |||
and the imported source module project. | |||
_______________________ | |||
For Test (DEV-) Modules: | |||
Test modules are special applications that exercise other modules. | |||
They are also, essentially, applications so they share the application | |||
model. The /trunk/ should contain a sub directory that holds the | |||
source code specific to the test application. Other modules that are | |||
under testing and development are referenced as svn:external so that | |||
they reside under /trunk/ as additional source directories. | |||
We should expect to see something like: | |||
svn:external /Module/trunk Module | |||
/trunk/Tester/source.h | |||
/trunk/Tester/source.cpp | |||
/trunk/Tester/docs/stuff-to-read | |||
/trunk/Tester/data/stuff-to-input | |||
/trunk/tester/data/stuff-to-output | |||
/trunk/ReadMe | |||
In the above example interpret Module to be the appropriate name for | |||
a source library. There can be as many of these re-usable components | |||
as needed. Note that they don't actually appear in the SVN server but | |||
since they are a property of the repository they will be checked out | |||
when this repository is checked out so they will appear in the local | |||
file system at the same level as Tester. | |||
______________________________________ | |||
For Applications or Compiled Libraries: | |||
Similarly to Test Modules (above) the root of /trunk/ should contain | |||
ReadMe describing what is there and how it works. ALSO, however the | |||
final product of the build will be at the root of /trunk/. This will | |||
represent the current state-of-the-art for the application. It may be | |||
a .DLL file, a .o, a .a etc. | |||
Subdirectories under /trunk/ contain the source directories, test | |||
application sources (in the case of a binary or library type project | |||
such as a DLL, .o, .a, .exe or other binary). | |||
Presumably the developer would create a workspace on their local | |||
file system where they would then import the repository's /trunk/ and | |||
along with it the associated external references. Then in a different | |||
directory in their workspace they would build various debug and | |||
production versions of the final product for testing. When they were | |||
happy with the results then they would place the new "golden" version | |||
in their local copy of the repository and commit (repository, and | |||
externals with any changes, and new golden version). | |||
Develpers of applications or binary libraries should avoid the urge | |||
to make direct updates to source libraries. That work should be done | |||
separately where it can be well focused. | |||
________________________________ | |||
For Distribution (PKG-) Pakages: | |||
Distribution packages are used to build distributions that are released | |||
to customers. The package includes everything that is needed to build | |||
the final distribution (tarball, zip) and/or installer (.msi, .exe) | |||
file that will be delivered to customers. | |||
Distribution pakages follow a similar methodology to Applications | |||
except that they most likely reference specific revisions of libraries, | |||
projects, and documentation, and then combine that with subdirectories | |||
that contain package specific content such as documentation, build | |||
scripts, and other "glue". | |||
In the top directory we expect to find the usual ReadMe for the project | |||
as well as the latest golden version of the distribution. | |||
The build process and structure here is much the same as for other | |||
applications except that what is tested is the ability to deliver and / | |||
or install the application on the various target platforms with the | |||
desired results. The applications themselves are always built elsewehere | |||
in their own projects even though the repositories for those projects | |||
might be imported in their entirety via external references. | |||
Developers of distribution packages should avoid the urge to make | |||
updates to the applications or other imported content directly. That | |||
work should be handled seperately where it can be focused. | |||
@@ -0,0 +1,43 @@ | |||
PKG-SNF4CGP-WIN | |||
20091113_M | |||
This repository contains the root folder and various .zip'd distributions | |||
of the Message Sniffer for CommuniGate plugin. | |||
CGPSNF-Win32-Intel | |||
becomes | |||
CGPSNF-Win32-Intel.zip | |||
CGPSNF-Win32-Intel/CGPSNF is modeled after the structure observed in other | |||
CommuniGate plugins. | |||
CGPSNF-Win32-Intel/CGPSNF/Doc is copied from PKG-SNF4CGP-NIX from time to | |||
time as that version is updated. That version should always be considered | |||
the "master" -- it is to be revised in that project and copied here when | |||
revisions are made so that those revisions are then "officially" included | |||
in this distribution. | |||
Specifically: | |||
PKG-SNF4CGP-NIX/trunk/SNF4CGP_Developer_Package/Doc | |||
Presumably the -NIX and -WIN distributions will always be updated together | |||
when there is any change to the software. | |||
--- | |||
The CGPSNF.exe is copied from the most current official release version of | |||
SNF4CGP built from the SNF4CGP project. | |||
The remaining configuration files are maintained in this repository as they | |||
are specific to CGPSNF. | |||
Borrowing a page from the -NIX distributions the -WIN distibution will | |||
include configuration files with the .sample extension and instructions | |||
for modifying them during the installation process. This allows folks to | |||
upgrade simply by expanding the .zip file in the correct location -- which | |||
is the paradigm for CommuniGate plugins. | |||