netspoc-3.0
New features:
- IPSec encryption is supported now. A powerful syntax was added to easily
define a large number of crypto tunnels of either a hub and spoke topology or
a fully meshed topology. Crypto configuration for Cisco IOS routers and PIX
firewalls is generated.
- Improved optimization by automatically joining rules with adjacent port
ranges if possible.
- No restrictions on overlapping port ranges any longer.
- Unenforceable rules with no managed device between source and destination
have been silently ignored in previous versions. Now there is a command line
switch to enable a check for unenforceable rules.
- Netspoc may now read from stdin and write to stdout.
- The new program 'cut-netspoc' is used to cut a large netspoc configuration
into small self-contained parts. cut-netspoc gets the location of a netspoc
configuration and one or more policy names as arguments. It generates a
minimal configuration that contains only the given policies and enough
elements from the topology to get all references intact.
Language:
- New concept of areas was introduced. An area denotes a part of the
topology which is delimited by a set of interfaces. Areas are a convenient
means to access all networks or security domains of some part of the topology.
- Syntax was extended to individually define an interface as full or
secondary filter.
- IP address and mask of networks may alternatively be declared as IP
address and prefix length. For example ip = 1.2.3.0/24.
- New optional attribute 'owner' for network objects of type 'host',
'network', 'any' and 'area'. It takes a comma separated list of strings as
value. This isn't used by netspoc but can be used for documentation purposes.
Bug fixes:
- Made code 64 bit clean. This was necessary when applying complement and
left-shift to 32 bit IP addresses.
- Improved error handling to prevent unhandled internal errors.
netspoc-2.6
Bug fixes:
- There was a bug in local optimization which was introduced in version
2.2. Some deny rules could inadvertently be marked as redundant, leading to
missing ACLs for these rules in generated code. This bug has been fixed.
- NetSPoC automatically generates reverse rules for stateless packet
filters if protocol is of type TCP, UDP or IP. For TCP, a reverse rule is
generated which matches any packet that doesn't request a new connection. This
was wrong for deny rules, because it would prevent answer packets for any
port, not only for the port of the original rule. Therefore no reverse rules
will be generated for deny rules of protocol TCP.
netspoc-2.5
New features:
- PIX commands like "icmp" and "telnet", which filter traffic for the
device itself, are generated now.
Bug fixes:
- There was a syntax error with IOS routers when applying an access-list to
an interface.
netspoc-2.4
New features:
- Access lists for multicast packets of redundancy protocols are generated
now.
- Thighter check of src address and protocol for multicast packets of
routing protocols.
Language:
- Syntax for virtual interfaces of redundancy protocols has been changed and
extended.
Other:
- Better handling of path traversal for a special case with
interfaces inside a loop as src or dst. (See ChangeLog for details.)
netspoc-2.3
Bug fixes:
- Fixed a bug in internal handling of NAT. This could lead to missing
optimization of subnets and possibly to wrong code.
netspoc-2.2
New features:
- Support 'chains' of iptables and 'object-groups' of Cisco PIX. Generates
much shorter and more efficient code for rule sets, where one of source or
destination is unchanged.
- Support masquerading, i.e dynamic NAT of multiple networks to a single
address range.
- Generates NAT code for PIX ('static' and 'global') for both directions:
inside - outside and vice versa.
Language:
- Global NAT definition. This is used to declare masquerading for a large
part of the topology.
- any:[local] denotes the security domain connected to an interface.
- Hyphen may now be used in names.
- New attribute 'no_group_code' for routers. This disables generation of
object-groups and chains.
- Removed attribute 'static_manual' for routers.
Other:
- New local optimization step for each router.
- Improved handling of subnets to get better results from optimization.
- Options may be changed from command line. No need for altering the source
code any longer.
- Interfaces referenced in pathrestriction must be managed.
- Code for 'any' rules is now inserted at top of ACLs, following deny
rules. This usually gives better performance, because 'any' rules match many
packets.
- No automatically inserted deny rules any longer. Instead, 'any' rules are
checked for global rule semantics and router semantics to be equivalent.
Bug fixes:
- PIX code: Added missing 'interface' keyword in 'access-group'.
netspoc-2.1
New features:
- Routing protocol EIGRP is supported.
Language:
- Trailing comma is allowed at end of lists now.
netspoc-2.0
New features:
- Virtual IP addresses for supporting VRRP / HSRP are introduced.
- Code for linux iptables and ip route is generated.
- Network address translation (NAT) is supported.
- Groups of all routers and all managed routers are implicitly defined.
- New syntax for denoting an interface at "the right side" of a router.
- General cyclic graphs are supported. Restriction to simple loops
has gone.
- "Path restrictions" are introduced to restrict the use to some of multiple
paths inside cyclic subgraphs.
Other:
- Improved optimization.
- Use of short interfaces (without an IP address) is much less
restricted.
- When expanding a router to its interfaces, unnumbered interfaces are
left out now.
- Rules outside of policies aren't supported any longer.
Bug fixes:
- Code for OSPF was incomplete.
- Removed minor bug with 'any' objects and routers with more than 2
interfaces.
netspoc-1.7
Fixed bugs:
- ACLs for secondary packet filter were too permissive
for rules having an interface of a full packet filter as source or destination.
netspoc-1.6
New features:
- Introduced policies: A policy is a named group of related rules, which
all refer to the same network objects in their source or
destination.
- The functionality of NetSPoC is available as a perl module now.
netspoc-1.5
New features:
- Topology allows simple loops now which must be neither nested nor
adjacent.
- Secondary packet filters are introduced, which have much shorter
access lists for traffic which is already filtered by a full packet
filter.
- New option $auto_default_route to optimize the number of routing
entries per router.
- Attribute 'routing=OSPF' for interfaces: disables generation of
static routes and generates access lists which automatically permit
OSPF packets.
- NetSPoC warns if different interfaces have an identical IP address.
Fixed bugs:
- Routing entries were missing for traffic back from dst to src if
there was no other rule which allowed traffic from dst to src.
- It was possible to link an 'any' object to an undefined router object.
- Script 'newpolicy' now uses 'update -d'.
Other:
- Option $strict_subnets now may have values 0, 'warn' or 1.
netspoc-1.4
Fixed bugs:
- Some valid configuration was rejected for certain combinations of
services with port ranges.
- Some traffic was rejected even if the traffic was explicitly
allowed by another rule. See examples/auto-any-deny for an example.
netspoc-1.3
Language:
- Source port may be specified for tcp and udp services
Other:
- Changed code generation for stateless IOS routers:
Answer packets for tcp and udp connections are no longer restricted to
ports > 1023 for two reasons:
- This didn't work for services like IKE with source port < 1024.
- It was too difficult to handle correctly during optimization.
netspoc-1.2
New features:
- Preliminary support for stateless Cisco IOS routers
(without Firewall Feature Set)
This is untested until now.
- Interfaces of managed IOS routers are automatically protected from
unwanted access. Permitting access to a network which is directly
attached to the interface of an managed router, no longer implicitly
gives access to the interface. If desired, access to an interface has
to be stated explicitly by a rule. (This feature isn't implemented for
PIX firewalls, because they protect themselves.)
Language:
- Switched names for Cisco IOS routers:
- 'IOS' is used now for stateless IOS routers,
- 'IOS_FW' is used for stateful IOS routers.
Fixed bugs:
- Routing to unnumbered networks now works
- Hosts aren't allowed any longer in unnumbered networks
- Unnumbered networks must be connected to at most two interfaces
- Script 'newpolicy': home directory; quotes in messages
Other:
- added some small examples
netspoc-1.1
Optimization:
- Hosts with successive IP addresses are converted to ranges.
- Duplicate ACL entries are no longer generated for rules with an 'any'
object as src or dst
Language:
- Overlapping networks are rejected unless this relation is declared
explicitly using new attributes 'route_hint' or 'subnet_of'.
This may be useful for a large topology, where a network may easily be
redefined by mistake.
Use option 'strict_subnets' to (de)active this new behavior.
Other:
- Warning messages are shown for unused groups and servicegroups.
This may be switched off using option 'warn_unused_groups'.
- NetSPoC doesn't accept rules with an 'any' object both as src and dst
any longer.
Fixed bugs:
- pix security levels: all interfaces except inside and outside got
level 1.
- For rules with an 'any' object as dst, too few deny rules for
intermediate networks were generated in some cases.
- Routing entries were generated for disabled networks in some cases.
netspoc-1.0
Initial public release.