Date: Tue, 22 Feb 2000 21:43:22 -0500 (EST) From: John Woodruff <jjw@us.net> To: Juergen Lock <nox@jelal.kn-bremen.de> Cc: freebsd-isp@freebsd.org Subject: Re: `higer level' packet filter rules language/editor to ease maintainance? Message-ID: <200002230243.VAA45061@laurel.us.net> In-Reply-To: <20000219003334.A1117@saturn.kn-bremen.de> from Juergen Lock at "Feb 19, 2000 00:33:34 am"
next in thread | previous in thread | raw e-mail | index | archive | help
> Is there such a thing as in the subject? [...]
> I currently need something for ipfw [...]
I've got 93 lines of Perl I used with 2.2.8's ipfw:
Preprocessor for ipfw(8) rules, or anything else that
uses line-oriented statements. Functionality:
- Removes #-style comments and blank lines
- Compresses all white space
- Replaces macros, which are any line with an = sign, as in:
name = value containing spaces
- Append to macro values using +=, as in
longmacro = A macro with lots of
longmacro += added words.
Note that *no* whitespace is added between parts
- Special multi-line macros. Any input line containing
a macro that was defined with '==' gets generated once
for each word in the macro definition
Note that macros don't have arguments at all.
so you can say something like:
Ifc = ed1 # Card facing outside world
MyNet == 198.240.64.0/18 # List of subnets
MyNet +== 206.225.0.0/19
Any = from any to any
# Branch on direction
add skipto 1000 ip Any recv Ifc # Recieved from outside world
add skipto 4000 ip Any xmit Ifc # Sent to outside world
add permit ip Any
# Recieve rules
add 1000 deny log ip from MyNet to any
It made a 170-line ipfw filter much more understandable and
maintainable, since the critical address ranges could easily
be edited into several different rules.
I also wrote a version of this for Cisco configs; it expanded
CIDR notation addresses in several different ways, like:
PRIVIP == 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
access-list 112 deny ip any PRIVIP # No private nets leaking out
Ask and ye shall recieve.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200002230243.VAA45061>
