1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2026-03-23 19:57:21 +01:00

refs #1893 fixes #1882 "inspect ip options in pix8". Added support for

"policy-map type inspect ip-options" command in PIX v8.2 and later.
At this time, of all possible types of "policy-map type inspect"
command only "ip-options" is implemented.
This commit is contained in:
Vadim Kurland 2011-01-04 17:05:43 -08:00
parent 8fb64f10eb
commit b9a9d7a2c9
44 changed files with 1231 additions and 401 deletions

View File

@ -1,5 +1,11 @@
2011-01-04 vadim <vadim@netcitadel.com>
* OSConfigurator_pix_os_inspectors_pix8.cpp (_printPolicyMapTypeInspect):
refs #1893 fixes #1882 "inspect ip options in pix8". Added support for
"policy-map type inspect ip-options" command in PIX v8.2 and later.
At this time, of all possible types of "policy-map type inspect"
command only "ip-options" is implemented.
* PIX8ObjectGroup.cpp (toString): refs #1882 "Mixed service groups
in PIX8". Added pix versions 8.0 and 8.3; added support for mixed
servcie groups in pix 8.0 and later.

View File

@ -79,8 +79,9 @@ namespace fwcompiler {
int arg2,
bool ov);
std::string _printFixups();
std::string _printMPF();
std::string _printPolicyMapGlobalPolicy();
std::string _printPolicyMapTypeInspect();
public:
virtual ~OSConfigurator_pix_os() {};

View File

@ -122,15 +122,14 @@ string OSConfigurator_pix_os::_printFixupCommand(const string &fixup_name,
string OSConfigurator_pix_os::_printFixups()
{
ostringstream res;
string platform=fw->getStr("platform");
string version=fw->getStr("version");
FWOptions *options=fw->getOptionsObject();
string platform = fw->getStr("platform");
string version = fw->getStr("version");
FWOptions *options = fw->getOptionsObject();
assert(options!=NULL);
string lst=Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/version_"+version+"/fixups/list");
string lst = Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/version_" + version +
"/fixups/list");
string::size_type i,j, k;
i=0;
@ -167,283 +166,22 @@ string OSConfigurator_pix_os::_printFixups()
}
/* ********************************************************************
*
* Generating class-map, class and match commands instead of fixups
* for PIX 7.0
*
* ********************************************************************/
class InspectionProtocol;
typedef enum { FIXUP_ENABLE=0, FIXUP_DISABLE=1, FIXUP_SKIP=2 } FixupTypes;
std::map<std::string,InspectionProtocol*> protocols;
FixupTypes fixupStatus;
/*
* par1 and par2 are parameters for the inspection protocol. These are
* port numbers most of the time, but for some protocols the meaning
* may be different. For example for dns it is "maximum-length".
*/
class InspectionProtocol {
public:
string name;
string printable_name;
string ip_proto;
int par1,par2;
InspectionProtocol(const string &fn,
const string &prn,
const string &pn,
int p1,
int p2)
{
name=fn; printable_name=prn; ip_proto=pn; par1=p1; par2=p2;
if (protocols.count(fn)==0) protocols[fn]=this;
}
};
/*
* Default ports are defined here jsut like they are filled in the
* options by the GUI. If the GUI allows for port range, we specify
* port range here, and vice versa. Some of the cases seem to differ
* from what Cisco doc specify in the table of the default ports here
* http://www.cisco.com/en/US/products/sw/secursw/ps2120/products_upgrade_guides09186a0080369ee2.html
* I suppose this is ok since we always can use port range map with
* "match" command even if they did not intend it to be like that by
* default. However if the GUI returned port numbers that match those
* defined in protocolDefinitions, we do not generate 'match' commands
* at all and put everything in the "inspection_default" class-map
*
* Here is how this works: constructor of the class InspectionProtocols
* adds object to map 'protocols'. Every initialization of an object
* of this class in array protocolDefinitions calls constructor and
* therefore creates an entry in the map 'protocols'. It is done this
* way because we can statically initialize an array but cant initialize
* std::map (at least I do not know how)
*
* Note: in PIX 7.0 inspector that corresponds to fixup 'smtp' is
* called 'esmtp'
*/
InspectionProtocol protocolDefinitions[] =
{
InspectionProtocol("ctiqbe", "ctiqbe", "tcp", 2748, 0 ),
InspectionProtocol("dns", "dns", "udp", 53, 0 ),
InspectionProtocol("ftp", "ftp", "tcp", 21, 0 ),
InspectionProtocol("gtp", "gtp", "udp", 2123, 3386 ),
InspectionProtocol("h323_h225", "h323 h225", "tcp", 1720, 1720 ),
InspectionProtocol("h323_ras", "h323 ras", "udp", 1718, 1719 ),
InspectionProtocol("http", "http", "tcp", 80, 80 ),
InspectionProtocol("icmp_error","icmp", "icmp", 0, 0 ),
InspectionProtocol("ils", "ils", "tcp", 389, 389 ),
InspectionProtocol("mgcp", "mgcp", "udp", 2427, 2727 ),
InspectionProtocol("netbios", "netbios", "udp", 137, 138 ),
InspectionProtocol("rpc", "rpc", "udp", 111, 0 ),
InspectionProtocol("rsh", "rsh", "tcp", 514, 0 ),
InspectionProtocol("rtsp", "rtsp", "tcp", 554, 0 ),
InspectionProtocol("sip", "sip", "tcp", 5060, 5060 ),
InspectionProtocol("sip_udp", "sip", "udp", 5060, 0 ),
InspectionProtocol("skinny", "skinny", "tcp", 2000, 2000 ),
InspectionProtocol("smtp", "esmtp", "tcp", 25, 25 ),
InspectionProtocol("sqlnet", "sqlnet", "tcp", 1521, 1521 ),
InspectionProtocol("tftp", "tftp", "udp", 69, 0 ),
InspectionProtocol("xdmcp", "xdmcp", "udp", 177, 0 ),
};
/*
* status:
* 0: enable
* 1: disable
* 2: skip
*/
class InspectionClassMap {
public:
string class_map_name;
string fixup_name;
string inspect_name;
int status;
int port1,port2;
string arg_name;
int arg_val;
InspectionClassMap(const string &fn,int s,int p1,int p2,const string &a,int v)
{
status=s; port1=p1; port2=p2; arg_name=a; arg_val=v;
string ss = fn;
string::size_type k;
while ( (k=ss.find(" "))!=string::npos )
ss.replace(k,1,1,'_');
inspect_name = ss;
fixup_name = fn;
class_map_name = string("custom_")+ss+string("_inspection");
}
bool isDefault();
string getIPProtocol();
string getPrintableName();
string getMatchCommand();
};
std::list<InspectionClassMap> defaultClassMaps;
std::list<InspectionClassMap> customClassMaps;
std::map<std::string,int> DefaultInspectionInspectStatements;
std::map<std::string,int> CustomInspectionInspectStatements;
bool InspectionClassMap::isDefault()
{
InspectionProtocol *ip = protocols[fixup_name];
if (ip!=NULL) return (ip->par1==port1 && ip->par2==port2);
return false;
}
string InspectionClassMap::getIPProtocol()
{
InspectionProtocol *ip = protocols[fixup_name];
if (ip!=NULL) return ip->ip_proto;
return "";
}
string InspectionClassMap::getPrintableName()
{
InspectionProtocol *ip = protocols[fixup_name];
if (ip!=NULL) return ip->printable_name;
return "";
}
string InspectionClassMap::getMatchCommand()
{
ostringstream res;
res << "match port " << getIPProtocol() << " ";
if (port1!=0 && port2==0)
res << "eq " << port1;
if (port1!=0 && port1==port2)
res << "eq " << port1;
if (port1!=0 && port2!=0 && port1!=port2)
res << "range " << port1 << " " << port2;
res << endl;
return res.str();
}
string OSConfigurator_pix_os::_printMPF()
{
ostringstream res;
string platform=fw->getStr("platform");
string version=fw->getStr("version");
FWOptions *options=fw->getOptionsObject();
assert(options!=NULL);
string lst=Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/version_"+version+"/fixups/list");
defaultClassMaps.clear();
customClassMaps.clear();
DefaultInspectionInspectStatements.clear();
CustomInspectionInspectStatements.clear();
string::size_type i,j;
i=0;
while ( i<lst.size() )
{
j=lst.find(",",i);
string fixup_xml_element=lst.substr(i,j-i);
i=j+1;
string f=options->getStr(fixup_xml_element);
if (!f.empty())
{
string fixup_name=fixup_xml_element.substr(0, fixup_xml_element.find("_fixup") );
int status;
int p1,p2;
string an;
int av;
istringstream str(f);
str >> status >> p1 >> p2 >> an >> av;
/* We should really fix this in the GUI and pass max length parameter
* as an/av rather than as port p1
*/
if (fixup_name=="dns" && p1!=0) { an="maximum-length"; av=p1; p1=53; }
InspectionClassMap cm(fixup_name,status,p1,p2,an,av);
if (cm.isDefault()) defaultClassMaps.push_back(cm);
else customClassMaps.push_back(cm);
}
if (j==string::npos) break;
}
res << "class-map inspection_default" << endl;
res << " match default-inspection-traffic" << endl;
res << endl;
std::list<InspectionClassMap>::iterator i1;
if (customClassMaps.size()>0)
{
for (i1=customClassMaps.begin(); i1!=customClassMaps.end(); i1++)
{
res << "class-map " << i1->class_map_name << endl;
res << " " << i1->getMatchCommand() << endl;
}
res << endl;
}
res << "policy-map global_policy" << endl;
if (defaultClassMaps.size()>0)
{
res << " class inspection_default" << endl;
for (i1=defaultClassMaps.begin(); i1!=defaultClassMaps.end(); i1++)
{
string pn = i1->getPrintableName();
if (i1->status!=FIXUP_SKIP &&
DefaultInspectionInspectStatements[pn]!=1)
{
res << " ";
if (i1->status==FIXUP_DISABLE) res << "no ";
res << "inspect " << pn << endl;
DefaultInspectionInspectStatements[pn]=1;
}
}
}
if (customClassMaps.size()>0)
{
for (i1=customClassMaps.begin(); i1!=customClassMaps.end(); i1++)
{
string pn = i1->getPrintableName();
if (i1->status!=FIXUP_SKIP &&
CustomInspectionInspectStatements[pn]!=1)
{
res << " class " << i1->class_map_name << endl;
res << " ";
if (i1->status==FIXUP_DISABLE) res << "no ";
res << "inspect " << i1->getPrintableName() << endl;
CustomInspectionInspectStatements[pn]=1;
}
}
}
res << endl;
res << "service-policy global_policy global" << endl;
return res.str();
}
string OSConfigurator_pix_os::getProtocolInspectionCommands()
{
string platform=fw->getStr("platform");
string version=fw->getStr("version");
string platform = fw->getStr("platform");
string version = fw->getStr("version");
if (Resources::platform_res[platform]->getResourceBool(
"/FWBuilderResources/Target/options/version_"+version+"/fixups/use_mpf"))
return _printMPF();
"/FWBuilderResources/Target/options/version_" + version +
"/fixups/use_policy_map_global_policy"))
return _printPolicyMapGlobalPolicy();
if (Resources::platform_res[platform]->getResourceBool(
"/FWBuilderResources/Target/options/version_" + version +
"/fixups/use_policy_map_type_inspect"))
return _printPolicyMapTypeInspect();
return _printFixups();
}

View File

@ -0,0 +1,177 @@
/*
Firewall Builder
Copyright (C) 2002-2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "OSConfigurator_pix_os.h"
#include "inspectionProtocol.h"
#include "inspectionClassMap.h"
#include "fwbuilder/Resources.h"
#include "fwbuilder/Firewall.h"
#include "fwbuilder/FWOptions.h"
#include "fwbuilder/Interface.h"
#include "fwbuilder/Management.h"
#include "fwbuilder/Resources.h"
#include <QStringList>
#include <QtDebug>
#include <list>
#include <algorithm>
#include <functional>
#include <assert.h>
#include <iostream>
using namespace libfwbuilder;
using namespace fwcompiler;
using namespace std;
/* ********************************************************************
*
* Generating class-map, class and match commands instead of fixups
* for PIX 7.0
*
* ********************************************************************/
string OSConfigurator_pix_os::_printPolicyMapGlobalPolicy()
{
ostringstream res;
string platform = fw->getStr("platform");
string version = fw->getStr("version");
string vers = "version_" + version;
FWOptions *options = fw->getOptionsObject();
assert(options!=NULL);
std::list<InspectionClassMap> defaultClassMaps;
std::list<InspectionClassMap> customClassMaps;
std::map<std::string,int> DefaultInspectionInspectStatements;
std::map<std::string,int> CustomInspectionInspectStatements;
QStringList allowed_fixups =
QString(Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/" + vers +
"/fixups/list").c_str()).split(",");
defaultClassMaps.clear();
customClassMaps.clear();
DefaultInspectionInspectStatements.clear();
CustomInspectionInspectStatements.clear();
foreach (QString fixup_xml_element, allowed_fixups)
{
string f = options->getStr(fixup_xml_element.toAscii().constData());
if (!f.empty())
{
QString fixup_name = fixup_xml_element.replace("_fixup", "");
int status;
int p1,p2;
string an;
int av;
istringstream str(f);
str >> status >> p1 >> p2 >> an >> av;
/* We should really fix this in the GUI and pass max length parameter
* as an/av rather than as port p1
*/
if (fixup_name == "dns" && p1 != 0)
{
an = "maximum-length";
av = p1;
p1 = 53;
}
if (fixup_name.startsWith("ip_options"))
{
continue;
}
InspectionClassMap cm(fixup_name.toAscii().constData(),
status, p1, p2, an, av);
if (cm.isDefault()) defaultClassMaps.push_back(cm);
else customClassMaps.push_back(cm);
}
}
res << "class-map inspection_default" << endl;
res << " match default-inspection-traffic" << endl;
res << endl;
std::list<InspectionClassMap>::iterator i1;
if (customClassMaps.size()>0)
{
for (i1=customClassMaps.begin(); i1!=customClassMaps.end(); i1++)
{
res << "class-map " << i1->class_map_name << endl;
res << " " << i1->getMatchCommand() << endl;
}
res << endl;
}
res << "policy-map global_policy" << endl;
if (defaultClassMaps.size()>0)
{
res << " class inspection_default" << endl;
for (i1=defaultClassMaps.begin(); i1!=defaultClassMaps.end(); i1++)
{
string pn = i1->getPrintableName();
if (i1->status!=FIXUP_SKIP &&
DefaultInspectionInspectStatements[pn]!=1)
{
res << " ";
if (i1->status==FIXUP_DISABLE) res << "no ";
res << "inspect " << pn << endl;
DefaultInspectionInspectStatements[pn]=1;
}
}
}
if (customClassMaps.size()>0)
{
for (i1=customClassMaps.begin(); i1!=customClassMaps.end(); i1++)
{
string pn = i1->getPrintableName();
if (i1->status!=FIXUP_SKIP &&
CustomInspectionInspectStatements[pn]!=1)
{
res << " class " << i1->class_map_name << endl;
res << " ";
if (i1->status==FIXUP_DISABLE) res << "no ";
res << "inspect " << i1->getPrintableName() << endl;
CustomInspectionInspectStatements[pn]=1;
}
}
}
res << endl;
res << "service-policy global_policy global" << endl;
return res.str();
}

View File

@ -0,0 +1,135 @@
/*
Firewall Builder
Copyright (C) 2002-2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "OSConfigurator_pix_os.h"
#include "Helper.h"
#include "inspectionProtocol.h"
#include "inspectionClassMap.h"
#include "fwbuilder/Resources.h"
#include "fwbuilder/Firewall.h"
#include "fwbuilder/FWOptions.h"
#include "fwbuilder/Interface.h"
#include "fwbuilder/Management.h"
#include "fwbuilder/Resources.h"
#include <QStringList>
#include <QtDebug>
#include <list>
#include <algorithm>
#include <functional>
#include <assert.h>
#include <iostream>
using namespace libfwbuilder;
using namespace fwcompiler;
using namespace std;
/* ********************************************************************
*
* Generating policy-map type inspect commands for PIX 8.0
*
* ********************************************************************/
string OSConfigurator_pix_os::_printPolicyMapTypeInspect()
{
ostringstream res;
string platform = fw->getStr("platform");
string version = fw->getStr("version");
string vers = "version_" + version;
FWOptions *options = fw->getOptionsObject();
assert(options!=NULL);
// first, generate commands for ip-options
QStringList allowed_fixups =
QString(Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/" + vers +
"/fixups/list").c_str()).split(",");
list<InspectionClassMap> ip_options_matches;
foreach (QString fixup_xml_element, allowed_fixups)
{
string f = options->getStr(fixup_xml_element.toAscii().constData());
if (!f.empty())
{
QString fixup_name = fixup_xml_element.replace("_fixup", "");
int status;
int p1,p2;
string an;
int av;
istringstream str(f);
str >> status >> p1 >> p2 >> an >> av;
if (fixup_name.startsWith("ip_options") && status != FIXUP_SKIP)
{
InspectionClassMap cm(fixup_name.toAscii().constData(),
status, p1, p2, an, av);
ip_options_matches.push_back(cm);
}
}
}
if (ip_options_matches.size() > 0)
{
res << "policy-map type inspect ip-options ip-options-map" << endl;
res << "parameters" << endl;
for(list<InspectionClassMap>::iterator i=ip_options_matches.begin();
i!=ip_options_matches.end(); ++i)
{
switch (i->status)
{
case FIXUP_ENABLE:
res << " " << i->getPrintableName() << " action ";
res << "allow" << endl;
break;
case FIXUP_CLEAR:
res << " " << i->getPrintableName() << " action ";
res << "clear" << endl;
break;
default:
break;
}
}
}
res << endl;
// now generate class-map and "policy-map global_policy" commands
res << _printPolicyMapGlobalPolicy();
return res.str();
}

View File

@ -11,6 +11,8 @@ SOURCES = PolicyCompiler_cisco.cpp \
RoutingCompiler_cisco_writers.cpp \
ACL.cpp \
Helper.cpp \
inspectionProtocol.cpp \
InspectionClassMap.cpp \
OSConfigurator_ios.cpp \
CompilerDriver_iosacl.cpp \
CompilerDriver_iosacl_run.cpp \
@ -24,6 +26,8 @@ SOURCES = PolicyCompiler_cisco.cpp \
NATCompiler_pix_writers.cpp \
OSConfigurator_pix_os.cpp \
OSConfigurator_pix_os_fixups.cpp \
OSConfigurator_pix_os_inspectors.cpp \
OSConfigurator_pix_os_inspectors_pix8.cpp \
CompilerDriver_procurve_acl.cpp \
CompilerDriver_procurve_acl_run.cpp \
OSConfigurator_procurve.cpp \
@ -44,6 +48,8 @@ SOURCES = PolicyCompiler_cisco.cpp \
HEADERS = ../../config.h \
ACL.h \
Helper.h \
inspectionProtocol.h \
InspectionClassMap.h \
PolicyCompiler_cisco.h \
RoutingCompiler_cisco.h \
CompilerDriver_iosacl.h \

View File

@ -0,0 +1,65 @@
/*
Firewall Builder
Copyright (C) 2002-2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "inspectionClassMap.h"
#include "inspectionProtocol.h"
#include <sstream>
using namespace std;
bool InspectionClassMap::isDefault()
{
InspectionProtocol *ip = InspectionProtocol::protocols[fixup_name];
if (ip!=NULL) return (ip->par1==port1 && ip->par2==port2);
return false;
}
string InspectionClassMap::getIPProtocol()
{
InspectionProtocol *ip = InspectionProtocol::protocols[fixup_name];
if (ip!=NULL) return ip->ip_proto;
return "";
}
string InspectionClassMap::getPrintableName()
{
InspectionProtocol *ip = InspectionProtocol::protocols[fixup_name];
if (ip!=NULL) return ip->printable_name;
return "";
}
string InspectionClassMap::getMatchCommand()
{
ostringstream res;
res << "match port " << getIPProtocol() << " ";
if (port1!=0 && port2==0)
res << "eq " << port1;
if (port1!=0 && port1==port2)
res << "eq " << port1;
if (port1!=0 && port2!=0 && port1!=port2)
res << "range " << port1 << " " << port2;
res << endl;
return res.str();
}

View File

@ -0,0 +1,67 @@
/*
Firewall Builder
Copyright (C) 2002-2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef INSPECTION_CLASS_MAP_HH
#define INSPECTION_CLASS_MAP_HH
#include <string>
/*
* status:
* 0: enable
* 1: disable
* 2: skip
*/
class InspectionClassMap {
public:
std::string class_map_name;
std::string fixup_name;
std::string inspect_name;
int status;
int port1,port2;
std::string arg_name;
int arg_val;
InspectionClassMap(const std::string &fn,int s,int p1,int p2,
const std::string &a,int v)
{
status=s; port1=p1; port2=p2; arg_name=a; arg_val=v;
std::string ss = fn;
std::string::size_type k;
while ( (k=ss.find(" ")) != std::string::npos )
ss.replace(k,1,1,'_');
inspect_name = ss;
fixup_name = fn;
class_map_name = std::string("custom_") + ss + std::string("_inspection");
}
bool isDefault();
std::string getIPProtocol();
std::string getPrintableName();
std::string getMatchCommand();
};
#endif

View File

@ -0,0 +1,77 @@
/*
Firewall Builder
Copyright (C) 2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "inspectionProtocol.h"
std::map<std::string,InspectionProtocol*> InspectionProtocol::protocols;
/*
* Default ports are defined here jsut like they are filled in the
* options by the GUI. If the GUI allows for port range, we specify
* port range here, and vice versa. Some of the cases seem to differ
* from what Cisco doc specify in the table of the default ports here
* http://www.cisco.com/en/US/products/sw/secursw/ps2120/products_upgrade_guides09186a0080369ee2.html
* I suppose this is ok since we always can use port range map with
* "match" command even if they did not intend it to be like that by
* default. However if the GUI returned port numbers that match those
* defined in protocolDefinitions, we do not generate 'match' commands
* at all and put everything in the "inspection_default" class-map
*
* Here is how this works: constructor of the class InspectionProtocols
* adds object to map 'protocols'. Every initialization of an object
* of this class in array protocolDefinitions calls constructor and
* therefore creates an entry in the map 'protocols'. It is done this
* way because we can statically initialize an array but cant initialize
* std::map (at least I do not know how)
*
* Note: in PIX 7.0 inspector that corresponds to fixup 'smtp' is
* called 'esmtp'
*/
InspectionProtocol protocolDefinitions[] =
{
InspectionProtocol("ctiqbe", "ctiqbe", "tcp", 2748, 0 ),
InspectionProtocol("dns", "dns", "udp", 53, 0 ),
InspectionProtocol("ftp", "ftp", "tcp", 21, 0 ),
InspectionProtocol("gtp", "gtp", "udp", 2123, 3386 ),
InspectionProtocol("h323_h225", "h323 h225", "tcp", 1720, 1720 ),
InspectionProtocol("h323_ras", "h323 ras", "udp", 1718, 1719 ),
InspectionProtocol("http", "http", "tcp", 80, 80 ),
InspectionProtocol("icmp_error","icmp", "icmp", 0, 0 ),
InspectionProtocol("ils", "ils", "tcp", 389, 389 ),
InspectionProtocol("mgcp", "mgcp", "udp", 2427, 2727 ),
InspectionProtocol("netbios", "netbios", "udp", 137, 138 ),
InspectionProtocol("rpc", "rpc", "udp", 111, 0 ),
InspectionProtocol("rsh", "rsh", "tcp", 514, 0 ),
InspectionProtocol("rtsp", "rtsp", "tcp", 554, 0 ),
InspectionProtocol("sip", "sip", "tcp", 5060, 5060 ),
InspectionProtocol("sip_udp", "sip", "udp", 5060, 0 ),
InspectionProtocol("skinny", "skinny", "tcp", 2000, 2000 ),
InspectionProtocol("smtp", "esmtp", "tcp", 25, 25 ),
InspectionProtocol("sqlnet", "sqlnet", "tcp", 1521, 1521 ),
InspectionProtocol("tftp", "tftp", "udp", 69, 0 ),
InspectionProtocol("xdmcp", "xdmcp", "udp", 177, 0 ),
InspectionProtocol("ip_options_eool", "eool","", 0, 0 ),
InspectionProtocol("ip_options_nop", "nop", "", 0, 0 ),
InspectionProtocol("ip_options_rtralt", "router-alert", "", 0, 0 ),
};

View File

@ -0,0 +1,64 @@
/*
Firewall Builder
Copyright (C) 2011 NetCitadel, LLC
Author: Vadim Kurland vadim@fwbuilder.org
This program is free software which we release under the GNU General Public
License. You may redistribute and/or modify this program under the terms
of that license as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To get a copy of the GNU General Public License, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef INSPECTION_PROTOCOL_HH
#define INSPECTION_PROTOCOL_HH
#include <string>
#include <map>
typedef enum { FIXUP_ENABLE=0, FIXUP_DISABLE=1, FIXUP_SKIP=2, FIXUP_CLEAR=3 } FixupTypes;
/*
* par1 and par2 are parameters for the inspection protocol. These are
* port numbers most of the time, but for some protocols the meaning
* may be different. For example for dns it is "maximum-length".
*/
class InspectionProtocol {
public:
std::string name;
std::string printable_name;
std::string ip_proto;
int par1,par2;
static std::map<std::string,InspectionProtocol*> protocols;
InspectionProtocol(const std::string &fn,
const std::string &prn,
const std::string &pn,
int p1,
int p2)
{
name = fn;
printable_name = prn;
ip_proto = pn;
par1 = p1;
par2 = p2;
if (protocols.count(fn)==0) protocols[fn] = this;
}
};
extern InspectionProtocol protocolDefinitions[];
#endif

View File

@ -473,19 +473,43 @@ pixAdvancedDialog::pixAdvancedDialog(QWidget*parent, FWObject *o)
NULL,
"tftp_fixup", "tftp", 18));
string lst=Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/"+vers+"/fixups/list");
allFixups.push_back(fixupControl(
m_dialog->pix_ip_options_eool_switch,
NULL,
NULL,
NULL,
"ip_options_eool_fixup", "IP options", 19));
allFixups.push_back(fixupControl(
m_dialog->pix_ip_options_nop_switch,
NULL,
NULL,
NULL,
"ip_options_nop_fixup", "IP options", 20));
allFixups.push_back(fixupControl(
m_dialog->pix_ip_options_rtralt_switch,
NULL,
NULL,
NULL,
"ip_options_rtralt_fixup", "IP options", 21));
QStringList allowed_fixups =
QString(Resources::platform_res[platform]->getResourceStr(
"/FWBuilderResources/Target/options/" + vers +
"/fixups/list").c_str()).split(",");
if (fwbdebug)
qDebug("pixAdvancedDialog::pixAdvancedDialog lst = %s",lst.c_str());
qDebug() << "pixAdvancedDialog::pixAdvancedDialog allowed_fixups:"
<< allowed_fixups;
for (list<fixupControl>::iterator fi=allFixups.begin();
fi!=allFixups.end(); fi++)
{
if (fwbdebug)
qDebug("pixAdvancedDialog::pixAdvancedDialog fwopt = %s",
fi->fwoption.toAscii().constData());
qDebug() << "pixAdvancedDialog::pixAdvancedDialog fwopt:"
<< fi->fwoption;
if (fi->switch_widget!=NULL)
connect( fi->switch_widget, SIGNAL(activated(int)),
@ -500,22 +524,11 @@ pixAdvancedDialog::pixAdvancedDialog(QWidget*parent, FWObject *o)
if (fi->arg3!=NULL) connect( fi->arg3, SIGNAL(clicked()),
this, SLOT(fixupCmdChanged()));
string::size_type i,j;
i=0;
bool present=false;
while ( i<lst.size() )
{
j=lst.find(",",i);
if (QString(lst.substr(i,j-i).c_str())==fi->fwoption)
{ present=true; break; }
if (j==string::npos) break;
i=j+1;
}
if (!present)
{
fi->active=false;
m_dialog->fixup_notebook->setTabEnabled( fi->page, false);
}
bool active = allowed_fixups.contains(fi->fwoption);
fi->active = active;
m_dialog->fixup_notebook->setTabEnabled( fi->page, active);
}
/* page Logging */
@ -605,11 +618,13 @@ pixAdvancedDialog::pixAdvancedDialog(QWidget*parent, FWObject *o)
m_dialog->fragguard->setEnabled(
Resources::platform_res[platform]->getResourceBool(
"/FWBuilderResources/Target/options/"+vers+"/pix_security_fragguard_supported"));
"/FWBuilderResources/Target/options/" + vers +
"/pix_security_fragguard_supported"));
m_dialog->route_dnat->setEnabled(
Resources::platform_res[platform]->getResourceBool(
"/FWBuilderResources/Target/options/"+vers+"/pix_route_dnat_supported"));
"/FWBuilderResources/Target/options/" + vers +
"/pix_route_dnat_supported"));
data.registerOption( m_dialog->fragguard, fwoptions, "pix_fragguard");
data.registerOption( m_dialog->route_dnat, fwoptions, "pix_route_dnat");
@ -617,10 +632,13 @@ pixAdvancedDialog::pixAdvancedDialog(QWidget*parent, FWObject *o)
data.registerOption( m_dialog->resetinbound, fwoptions, "pix_resetinbound");
data.registerOption( m_dialog->resetoutside, fwoptions, "pix_resetoutside");
data.registerOption( m_dialog->connection_timewait, fwoptions, "pix_connection_timewait");
data.registerOption( m_dialog->connection_timewait, fwoptions,
"pix_connection_timewait");
data.registerOption( m_dialog->floodguard, fwoptions, "pix_floodguard");
data.registerOption( m_dialog->nodnsalias_inbound, fwoptions, "pix_nodnsalias_inbound");
data.registerOption( m_dialog->nodnsalias_outbound, fwoptions, "pix_nodnsalias_outbound");
data.registerOption( m_dialog->nodnsalias_inbound, fwoptions,
"pix_nodnsalias_inbound");
data.registerOption( m_dialog->nodnsalias_outbound, fwoptions,
"pix_nodnsalias_outbound");
data.registerOption( m_dialog->max_conns, fwoptions, "pix_max_conns");
data.registerOption( m_dialog->emb_limit, fwoptions, "pix_emb_limit");
@ -639,22 +657,27 @@ pixAdvancedDialog::~pixAdvancedDialog()
}
/*
* items in the switch_widget (QComboBox) are layed out as follows:
* items in the switch_widget (QComboBox) | values in FirewallOptions object
* |
* Skip (item 0) | 2
* Enable (item 1) | 0
* Disable (item 2) | 1
*
* Skip - item 0
* Enable - item 1
* Disable - item 2
* this strange mapping is historical.
*
* values in the attribute in the FirewallOptions object are as follows:
* ip options switch has the following items:
*
* 0 - enable
* 1 - disable
* 2 - skip
* skip
* allow
* drop
* clear
*
* this is historical.
* The last item is just added at the bottom and is mapped to FirewallOptions
* value "3"
*
*/
static int fixupOpt2Widget[] = { 1, 2, 0 };
static int fixupWidget2Opt[] = { 2, 0, 1 };
static int fixupOpt2Widget[] = { 1, 2, 0, 3 };
static int fixupWidget2Opt[] = { 2, 0, 1, 3 };
int pixAdvancedDialog::translateFixupSwitchFromOptionToWidget(int o)
{
@ -690,7 +713,7 @@ void pixAdvancedDialog::loadFixups()
for (list<fixupControl>::iterator fi=allFixups.begin(); fi!=allFixups.end(); fi++)
{
if (!fi->active) continue;
string f=options->getStr(fi->fwoption.toLatin1().constData());
string f = options->getStr(fi->fwoption.toLatin1().constData());
if (!f.empty())
{
// "0" means "fixup" or "enable" in a pop-down menu (historical)
@ -710,13 +733,15 @@ void pixAdvancedDialog::loadFixups()
fi->switch_widget->setCurrentIndex(
translateFixupSwitchFromOptionToWidget(sw) );
/* if values are 0 in the data file, we stick with defaults. Defaults are preconfigured
* in the GUI (via appropriate settings in pix.glade file */
/* if values are 0 in the data file, we stick with defaults. Defaults
* are preconfigured in the GUI
*/
if (fi->arg1 && p1!=0) fi->arg1->setValue(p1);
if (fi->arg2 && p2!=0) fi->arg2->setValue(p2);
if (fi->arg3) fi->arg3->setChecked(arg3v);
} else {
} else
{
fi->switch_widget->setCurrentIndex(0);
}
}

View File

@ -44,22 +44,29 @@ namespace libfwbuilder {
};
struct fixupControl {
class QComboBox *switch_widget;
class QSpinBox *arg1;
class QSpinBox *arg2;
class QCheckBox *arg3;
QString fwoption;
QString fixup_cmd;
int page; // number of the notebook page in fixup_notebook widget
bool active; // if false, then this fixup is not supported on the given version of PIX OS
fixupControl(QComboBox *s,
QSpinBox *w1,
QSpinBox *w2,
QCheckBox *w3,
const QString &o,
const QString &f,
int p)
{ switch_widget=s; arg1=w1; arg2=w2; arg3=w3; fwoption=o; fixup_cmd=f; page=p; active=true; }
class QComboBox *switch_widget;
class QSpinBox *arg1;
class QSpinBox *arg2;
class QCheckBox *arg3;
QString fwoption;
QString fixup_cmd;
int page; // number of the notebook page in fixup_notebook widget
bool active; // if false, then this fixup is not supported on the given
// version of PIX OS
fixupControl(QComboBox *s,
QSpinBox *w1,
QSpinBox *w2,
QCheckBox *w3,
const QString &o,
const QString &f,
int p)
{
switch_widget=s;
arg1=w1; arg2=w2; arg3=w3;
fwoption=o; fixup_cmd=f; page=p;
active=true;
}
};

View File

@ -13,7 +13,7 @@
<x>0</x>
<y>0</y>
<width>829</width>
<height>592</height>
<height>596</height>
</rect>
</property>
<property name="windowTitle">
@ -82,7 +82,7 @@
<enum>QTabWidget::Rounded</enum>
</property>
<property name="currentIndex">
<number>0</number>
<number>4</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
@ -1486,7 +1486,7 @@
<item row="0" column="0">
<widget class="QLabel" name="textLabel1_4">
<property name="text">
<string>Policy compiler generates 'fixup' commands for PIX v6.1-6.3 and FWSM v2.3. For PIX 7.0 it generates 'class-map' and 'inspect' commands assigned to the 'policy-map' under either default or custom inspection classes.</string>
<string>Policy compiler generates 'fixup' commands for PIX/ASA v6.1-6.3 and FWSM v2.3. For v7.x and v8.x it generates 'class-map' and 'inspect' commands assigned to the 'policy-map' under either default or custom inspection classes.</string>
</property>
<property name="alignment">
<set>Qt::AlignVCenter</set>
@ -1536,7 +1536,7 @@
<enum>QTabWidget::Triangular</enum>
</property>
<property name="currentIndex">
<number>18</number>
<number>19</number>
</property>
<property name="elideMode">
<enum>Qt::ElideNone</enum>
@ -1549,7 +1549,16 @@
<string>ctiqbe</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
@ -1636,7 +1645,16 @@
<string>dns</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -1723,7 +1741,16 @@
<string>esp ike</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="2">
@ -1781,7 +1808,16 @@
<string>ftp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="4">
@ -1888,7 +1924,16 @@
<string>h323 h225</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -2001,7 +2046,16 @@
<string>h323 ras</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -2114,7 +2168,16 @@
<string>http</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -2227,7 +2290,16 @@
<string>icmp error</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="2">
@ -2285,7 +2357,16 @@
<string>ils</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -2398,7 +2479,16 @@
<string>mgcp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="3" column="0" colspan="3">
@ -2527,7 +2617,16 @@
<string>pptp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -2614,7 +2713,16 @@
<string>rsh</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -2698,7 +2806,16 @@
<string>rtsp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -2785,7 +2902,16 @@
<string>sip</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -2898,7 +3024,16 @@
<string>sip udp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -2982,7 +3117,16 @@
<string>skinny</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -3095,7 +3239,16 @@
<string>smtp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -3208,7 +3361,16 @@
<string>sqlnet</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="6">
@ -3321,7 +3483,16 @@
<string>tftp</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>10</number>
</property>
<property name="topMargin">
<number>10</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item row="1" column="0" colspan="4">
@ -3403,6 +3574,125 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>IP options</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<property name="horizontalSpacing">
<number>20</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>End of Options List (EOOL) </string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="pix_ip_options_eool_switch">
<item>
<property name="text">
<string>skip</string>
</property>
</item>
<item>
<property name="text">
<string>allow</string>
</property>
</item>
<item>
<property name="text">
<string>drop</string>
</property>
</item>
<item>
<property name="text">
<string>clear</string>
</property>
</item>
</widget>
</item>
<item row="0" column="2" rowspan="2">
<widget class="QLabel" name="label_8">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>IP Options analysis is only available in PIX 8.2 and later and olnly EOOL, NOP and RTRALT options can be inspected. The firewall can allow IP packet with one of the options through or clear the option and then forward the packet, or drop the packet. Packets with any other option are always dropped.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>No Operation (NOP) </string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="pix_ip_options_nop_switch">
<item>
<property name="text">
<string>skip</string>
</property>
</item>
<item>
<property name="text">
<string>allow</string>
</property>
</item>
<item>
<property name="text">
<string>drop</string>
</property>
</item>
<item>
<property name="text">
<string>clear</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Router Alert (RTRALT)</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="pix_ip_options_rtralt_switch">
<item>
<property name="text">
<string>skip</string>
</property>
</item>
<item>
<property name="text">
<string>allow</string>
</property>
</item>
<item>
<property name="text">
<string>drop</string>
</property>
</item>
<item>
<property name="text">
<string>clear</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="3" column="0">

View File

@ -10,7 +10,7 @@
<diff>fwb_pix_diff</diff>
<supported_os>pix_os</supported_os>
<versions>6.1,6.2,6.3,7.0,8.0,8.3</versions>
<versions>6.1,6.2,6.3,7.0,8.0,8.2,8.3</versions>
<options>
<default>
@ -104,7 +104,8 @@
<fixups>
<list>ftp_fixup,http_fixup,h323_h225_fixup,h323_ras_fixup,rsh_fixup,rtsp_fixup,sip_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup</list>
<use_mpf>false</use_mpf>
<use_policy_map_global_policy>false</use_policy_map_global_policy>
<use_policy_map_type_inspect>false</use_policy_map_type_inspect>
</fixups>
</version_6.1>
@ -184,7 +185,8 @@
<fixups>
<list>ftp_fixup,http_fixup,h323_h225_fixup,h323_ras_fixup,ils_fixup,rsh_fixup,rtsp_fixup,sip_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup</list>
<use_mpf>false</use_mpf>
<use_policy_map_global_policy>false</use_policy_map_global_policy>
<use_policy_map_type_inspect>false</use_policy_map_type_inspect>
</fixups>
</version_6.2>
@ -264,7 +266,8 @@
<fixups>
<list>ctiqbe_fixup,dns_fixup,espike_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,pptp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup</list>
<use_mpf>false</use_mpf>
<use_policy_map_global_policy>false</use_policy_map_global_policy>
<use_policy_map_type_inspect>false</use_policy_map_type_inspect>
</fixups>
</version_6.3>
@ -344,7 +347,9 @@
<fixups>
<list>ctiqbe_fixup,dns_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup</list>
<use_mpf>true</use_mpf>
<use_policy_map_global_policy>true</use_policy_map_global_policy>
<use_policy_map_type_inspect>false</use_policy_map_type_inspect>
</fixups>
</version_7.0>
@ -425,11 +430,97 @@
<fixups>
<list>ctiqbe_fixup,dns_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup</list>
<use_mpf>true</use_mpf>
<use_policy_map_global_policy>false</use_policy_map_global_policy>
<use_policy_map_type_inspect>true</use_policy_map_type_inspect>
</fixups>
</version_8.0>
<version_8.2>
<pix_emulate_out_acl>true</pix_emulate_out_acl>
<pix_include_comments>true</pix_include_comments>
<pix_use_acl_remarks>true</pix_use_acl_remarks>
<pix_add_clear_statements>true</pix_add_clear_statements>
<pix_assume_fw_part_of_any>true</pix_assume_fw_part_of_any>
<pix_floodguard_supported>false</pix_floodguard_supported>
<pix_floodguard>true</pix_floodguard>
<pix_default_logint>300</pix_default_logint>
<pix_emblem_log_format>true</pix_emblem_log_format>
<pix_rule_syslog_settings>true</pix_rule_syslog_settings>
<pix_syslog_device_id_supported>true</pix_syslog_device_id_supported>
<pix_security_fragguard_supported>false</pix_security_fragguard_supported>
<pix_route_dnat_supported>false</pix_route_dnat_supported>
<pix_outbound_acl_supported>true</pix_outbound_acl_supported>
<pix_timeout_rpc_is_sunrpc>true</pix_timeout_rpc_is_sunrpc>
<supports_mixed_service_groups>True</supports_mixed_service_groups>
<pix_commands>
<clear_acl>clear config access-list</clear_acl>
<clear_og>clear config object-group</clear_og>
<clear_icmp>clear config icmp</clear_icmp>
<clear_telnet>clear config telnet</clear_telnet>
<clear_ssh>clear config ssh</clear_ssh>
<clear_xlate>clear xlate</clear_xlate>
<clear_static>clear config static</clear_static>
<clear_global>clear config global</clear_global>
<clear_nat>clear config nat</clear_nat>
</pix_commands>
<timeouts>
<xlate_hh>3</xlate_hh>
<xlate_mm>0</xlate_mm>
<xlate_ss>0</xlate_ss>
<conn_hh>1</conn_hh>
<conn_mm>0</conn_mm>
<conn_ss>0</conn_ss>
<udp_hh>0</udp_hh>
<udp_mm>2</udp_mm>
<udp_ss>0</udp_ss>
<rpc_hh>0</rpc_hh>
<rpc_mm>10</rpc_mm>
<rpc_ss>0</rpc_ss>
<h323_hh>0</h323_hh>
<h323_mm>5</h323_mm>
<h323_ss>0</h323_ss>
<sip_hh>0</sip_hh>
<sip_mm>30</sip_mm>
<sip_ss>0</sip_ss>
<sip_media_hh>0</sip_media_hh>
<sip_media_mm>2</sip_media_mm>
<sip_media_ss>0</sip_media_ss>
<half-closed_hh>0</half-closed_hh>
<half-closed_mm>10</half-closed_mm>
<half-closed_ss>0</half-closed_ss>
<uauth_hh>2</uauth_hh>
<uauth_mm>0</uauth_mm>
<uauth_ss>0</uauth_ss>
<uauth_abs>True</uauth_abs>
<uauth_inact>False</uauth_inact>
<telnet_timeout>5</telnet_timeout>
<ssh_timeout>5</ssh_timeout>
</timeouts>
<fixups>
<list>ctiqbe_fixup,dns_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup,ip_options_eool_fixup,ip_options_nop_fixup,ip_options_rtralt_fixup</list>
<use_policy_map_global_policy>false</use_policy_map_global_policy>
<use_policy_map_type_inspect>true</use_policy_map_type_inspect>
</fixups>
</version_8.2>
<version_8.3>
<pix_emulate_out_acl>true</pix_emulate_out_acl>
<pix_include_comments>true</pix_include_comments>
@ -505,8 +596,8 @@
</timeouts>
<fixups>
<list>ctiqbe_fixup,dns_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup</list>
<use_mpf>true</use_mpf>
<list>ctiqbe_fixup,dns_fixup,ftp_fixup,h323_h225_fixup,h323_ras_fixup,http_fixup,icmp_error_fixup,ils_fixup,mgcp_fixup,rsh_fixup,rtsp_fixup,sip_fixup,sip_udp_fixup,skinny_fixup,smtp_fixup,sqlnet_fixup,tftp_fixup,ip_options_eool_fixup,ip_options_nop_fixup,ip_options_rtralt_fixup</list>
<use_policy_map_global_policy>true</use_policy_map_global_policy>
</fixups>
</version_8.3>

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:59 2011 PST by vadim
! Generated Tue Jan 4 17:00:29 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:59 2011 PST by vadim
! Generated Tue Jan 4 17:00:29 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:59 2011 PST by vadim
! Generated Tue Jan 4 17:00:28 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:59 2011 PST by vadim
! Generated Tue Jan 4 17:00:29 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:41 2011 PST by vadim
! Generated Tue Jan 4 17:00:10 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:41 2011 PST by vadim
! Generated Tue Jan 4 17:00:11 2011 PST by vadim
!
! Compiled for pix 6.1
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:42 2011 PST by vadim
! Generated Tue Jan 4 17:00:12 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:43 2011 PST by vadim
! Generated Tue Jan 4 17:00:12 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:43 2011 PST by vadim
! Generated Tue Jan 4 17:00:13 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:44 2011 PST by vadim
! Generated Tue Jan 4 17:00:13 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:44 2011 PST by vadim
! Generated Tue Jan 4 17:00:14 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:45 2011 PST by vadim
! Generated Tue Jan 4 17:00:15 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:46 2011 PST by vadim
! Generated Tue Jan 4 17:00:15 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:47 2011 PST by vadim
! Generated Tue Jan 4 17:00:16 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:46 2011 PST by vadim
! Generated Tue Jan 4 17:00:16 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:47 2011 PST by vadim
! Generated Tue Jan 4 17:00:17 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:48 2011 PST by vadim
! Generated Tue Jan 4 17:00:18 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:49 2011 PST by vadim
! Generated Tue Jan 4 17:00:19 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:50 2011 PST by vadim
! Generated Tue Jan 4 17:00:19 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:50 2011 PST by vadim
! Generated Tue Jan 4 17:00:20 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:51 2011 PST by vadim
! Generated Tue Jan 4 17:00:21 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:52 2011 PST by vadim
! Generated Tue Jan 4 17:00:21 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:53 2011 PST by vadim
! Generated Tue Jan 4 17:00:22 2011 PST by vadim
!
! Compiled for pix 6.2
! Outbound ACLs: not supported

View File

@ -3,9 +3,9 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:53 2011 PST by vadim
! Generated Tue Jan 4 17:00:23 2011 PST by vadim
!
! Compiled for pix 8.0
! Compiled for pix 8.2
! Outbound ACLs: supported
! Emulate outbound ACLs: yes
! Generating outbound ACLs: no
@ -51,13 +51,13 @@ timeout udp 0:2:0
timeout sunrpc 0:10:0
timeout h323 0:5:0
timeout sip 0:30:0
timeout sip_media 0:0:0
timeout half-closed 0:0:0
timeout uauth 2:0:0 absolute
telnet timeout -1
clear config ssh
aaa authentication ssh console LOCAL
ssh timeout -1
clear config snmp-server
no snmp-server enable traps
@ -72,10 +72,16 @@ no sysopt nodnsalias inbound
no sysopt nodnsalias outbound
policy-map type inspect ip-options ip-options-map
parameters
eool action allow
router-alert action clear
class-map inspection_default
match default-inspection-traffic
policy-map global_policy
class inspection_default
service-policy global_policy global

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:54 2011 PST by vadim
! Generated Tue Jan 4 17:00:23 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:55 2011 PST by vadim
! Generated Tue Jan 4 17:00:24 2011 PST by vadim
!
! Compiled for fwsm 2.3
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:55 2011 PST by vadim
! Generated Tue Jan 4 17:00:25 2011 PST by vadim
!
! Compiled for fwsm 4.x
! Outbound ACLs: supported

View File

@ -16907,7 +16907,7 @@ no sysopt nodnsalias outbound
</Option>
</FirewallOptions>
</Firewall>
<Firewall id="id18865X29796" host_OS="pix_os" inactive="False" lastCompiled="0" lastInstalled="0" lastModified="1294171726" platform="pix" version="8.0" name="firewall80" comment="testing rules with broadcasts" ro="False">
<Firewall id="id18865X29796" host_OS="pix_os" inactive="False" lastCompiled="0" lastInstalled="0" lastModified="1294189027" platform="pix" version="8.2" name="firewall80" comment="testing rules with broadcasts" ro="False">
<NAT id="id18933X29796" name="NAT" comment="" ro="False" ipv4_rule_set="False" ipv6_rule_set="False" top_rule_set="True">
<RuleSetOptions/>
</NAT>
@ -17118,24 +17118,46 @@ no sysopt nodnsalias outbound
<Option name="accept_established">True</Option>
<Option name="accept_new_tcp_with_no_syn">True</Option>
<Option name="action_on_reject">ICMP net unreachable</Option>
<Option name="admUser"></Option>
<Option name="altAddress"></Option>
<Option name="check_shading">False</Option>
<Option name="clamp_mss_to_mtu">False</Option>
<Option name="cmdline"></Option>
<Option name="compiler"></Option>
<Option name="conn_hh">1</Option>
<Option name="conn_mm">0</Option>
<Option name="conn_ss">0</Option>
<Option name="ctiqbe_fixup">2 2748 0 nil 0</Option>
<Option name="debug">False</Option>
<Option name="dns_fixup">2 65535 0 nil 0</Option>
<Option name="dyn_addr">False</Option>
<Option name="espike_fixup">2 0 0 nil 0</Option>
<Option name="filesystem"></Option>
<Option name="firewall_dir"></Option>
<Option name="firewall_is_part_of_any">True</Option>
<Option name="firewall_is_part_of_any_and_networks">True</Option>
<Option name="ftp_fixup">2 21 0 strict 0</Option>
<Option name="h323_h225_fixup">2 1720 1720 nil 0</Option>
<Option name="h323_hh">0</Option>
<Option name="h323_mm">5</Option>
<Option name="h323_ras_fixup">2 1718 1719 nil 0</Option>
<Option name="h323_ss">0</Option>
<Option name="half-closed_hh">0</Option>
<Option name="half-closed_mm">0</Option>
<Option name="half-closed_ss">0</Option>
<Option name="http_fixup">2 80 80 nil 0</Option>
<Option name="icmp_error_fixup">2 0 0 nil 0</Option>
<Option name="ignore_empty_groups">False</Option>
<Option name="ils_fixup">2 389 389 nil 0</Option>
<Option name="in_out_code">True</Option>
<Option name="inst_cmdline"></Option>
<Option name="inst_script"></Option>
<Option name="install_script"></Option>
<Option name="ip_options_eool_fixup">0 0 0 nil 0</Option>
<Option name="ip_options_nop_fixup">1 0 0 nil 0</Option>
<Option name="ip_options_rtralt">2 0 0 nil 0</Option>
<Option name="ip_options_rtralt_fixup">3 0 0 nil 0</Option>
<Option name="ipv4_6_order">ipv4_first</Option>
<Option name="limit_suffix">/day</Option>
<Option name="limit_value">0</Option>
<Option name="linux24_ip_forward">0</Option>
@ -17151,38 +17173,90 @@ no sysopt nodnsalias outbound
<Option name="log_tcp_opt">False</Option>
<Option name="log_tcp_seq">False</Option>
<Option name="manage_virtual_addr">True</Option>
<Option name="mgcp_fixup">2 2427 2727 nil 0</Option>
<Option name="mgmt_addr"></Option>
<Option name="mgmt_ssh">False</Option>
<Option name="modulate_state">False</Option>
<Option name="no_iochains_for_any">False</Option>
<Option name="no_optimisation">False</Option>
<Option name="output_file"></Option>
<Option name="pass_all_out">False</Option>
<Option name="pix_acl_basic">True</Option>
<Option name="pix_acl_no_clear">False</Option>
<Option name="pix_acl_substitution">False</Option>
<Option name="pix_acl_temp_addr"></Option>
<Option name="pix_add_clear_statements">True</Option>
<Option name="pix_assume_fw_part_of_any">True</Option>
<Option name="pix_check_duplicate_nat">False</Option>
<Option name="pix_check_overlapping_global_pools">True</Option>
<Option name="pix_check_overlapping_global_statics">True</Option>
<Option name="pix_check_overlapping_statics">True</Option>
<Option name="pix_check_rule_shading">False</Option>
<Option name="pix_connection_timewait">False</Option>
<Option name="pix_emb_limit">0</Option>
<Option name="pix_emblem_log_format">False</Option>
<Option name="pix_emulate_out_acl">True</Option>
<Option name="pix_epilog_script"></Option>
<Option name="pix_floodguard">False</Option>
<Option name="pix_fragguard">False</Option>
<Option name="pix_generate_out_acl">False</Option>
<Option name="pix_include_comments">True</Option>
<Option name="pix_ip_address">False</Option>
<Option name="pix_logging_buffered">False</Option>
<Option name="pix_logging_buffered_level">0</Option>
<Option name="pix_logging_console">False</Option>
<Option name="pix_logging_console_level">0</Option>
<Option name="pix_logging_timestamp">False</Option>
<Option name="pix_logging_trap_level">0</Option>
<Option name="pix_max_conns">0</Option>
<Option name="pix_nodnsalias_inbound">False</Option>
<Option name="pix_nodnsalias_outbound">False</Option>
<Option name="pix_optimize_default_nat">False</Option>
<Option name="pix_prolog_script"></Option>
<Option name="pix_regroup_commands">False</Option>
<Option name="pix_replace_natted_objects">True</Option>
<Option name="pix_resetinbound">False</Option>
<Option name="pix_resetoutside">False</Option>
<Option name="pix_route_dnat">False</Option>
<Option name="pix_set_host_name">False</Option>
<Option name="pix_ssh_timeout">0</Option>
<Option name="pix_syslog_device_id_opt"></Option>
<Option name="pix_syslog_device_id_val"></Option>
<Option name="pix_syslog_facility"></Option>
<Option name="pix_syslog_host"></Option>
<Option name="pix_syslog_queue_size">0</Option>
<Option name="pix_telnet_timeout">0</Option>
<Option name="pix_use_acl_remarks">False</Option>
<Option name="pix_use_manual_commit">False</Option>
<Option name="platform">iptables</Option>
<Option name="pptp_fixup">2 1723 0 nil 0</Option>
<Option name="proxy_arp">False</Option>
<Option name="rpc_hh">0</Option>
<Option name="rpc_mm">10</Option>
<Option name="rpc_ss">0</Option>
<Option name="rsh_fixup">2 514 0 nil 0</Option>
<Option name="rtsp_fixup">2 554 0 nil 0</Option>
<Option name="scpArgs"></Option>
<Option name="script_env_path"></Option>
<Option name="short_script">False</Option>
<Option name="sip_fixup">2 5060 5060 nil 0</Option>
<Option name="sip_hh">0</Option>
<Option name="sip_media_hh">0</Option>
<Option name="sip_media_mm">0</Option>
<Option name="sip_media_ss">0</Option>
<Option name="sip_mm">30</Option>
<Option name="sip_ss">0</Option>
<Option name="sip_udp_fixup">2 5060 0 nil 0</Option>
<Option name="skinny_fixup">2 2000 2000 nil 0</Option>
<Option name="smtp_fixup">2 25 25 nil 0</Option>
<Option name="snmp_contact"></Option>
<Option name="snmp_description"></Option>
<Option name="snmp_location"></Option>
<Option name="sqlnet_fixup">2 1521 1521 nil 0</Option>
<Option name="sshArgs"></Option>
<Option name="ssh_timeout">5</Option>
<Option name="telnet_timeout">5</Option>
<Option name="tftp_fixup">2 69 0 nil 0</Option>
<Option name="uauth_abs">True</Option>
<Option name="uauth_hh">2</Option>
<Option name="uauth_inact">False</Option>
@ -17193,6 +17267,7 @@ no sysopt nodnsalias outbound
<Option name="udp_ss">0</Option>
<Option name="use_ip_tool">False</Option>
<Option name="use_numeric_log_levels">False</Option>
<Option name="use_scp">False</Option>
<Option name="xlate_hh">3</Option>
<Option name="xlate_mm">0</Option>
<Option name="xlate_ss">0</Option>

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:56 2011 PST by vadim
! Generated Tue Jan 4 17:00:26 2011 PST by vadim
!
! Compiled for pix 7.0
! Outbound ACLs: supported

View File

@ -3,7 +3,7 @@
!
! Firewall Builder fwb_pix v4.2.0.3425
!
! Generated Tue Jan 4 12:09:57 2011 PST by vadim
! Generated Tue Jan 4 17:00:27 2011 PST by vadim
!
! Compiled for pix 6.3
! Outbound ACLs: not supported