my lame attempt at a shell script...

Paul Schmehl pauls at
Mon Jan 3 14:40:23 PST 2005

--On Monday, January 03, 2005 04:21:41 PM -0600 Eric F Crist 
<ecrist at> wrote:

> I believe this is my last question.  I need to do some math.  Anyone
> familiar with ipfw knows that you can add a rule with:
> ipfw add [num] my firewall rule
> What I'm trying to do is have that number auto-computed.  So, my command
> *should* look something like:
> $ipfwcmd add [rulenum1 + 50] my firewall rule $other $variables
> Make sense?  I just want to add a new rule, let it figure out the rule
> number.  That way, I can leave a space of 48 rules (for minor, on-the-fly
> tweaking, etc.

First answer a question.  Are you wanting to write these rules on the fly? 
Or have them available for the next restart of the firewall?  Or both?

You have a problem, because you want to use one, generic script to set up 
multiple, varied firewalls.  In order for the script to work, you'll have 
to be able to calculate what number to use next based on what number was 
*last used* on *that* server.

There's several ways to solve that problem.  You could write a placemarker 
to a file.  (Silly, but easy.)  You could use rulesets, and just write a 
new line to a ruleset and let ipfw figure it out.  (Much better I think.) 
If you also want to add the rule on the fly, you can just reload that 
ruleset.  That way you use a fixed name and number (e.g. on-the-fly_rules, 
set 2) and just add rules to the ruleset, unload and reload the ruleset 
(ipfw set 2 disable; write the new rule to the ruleset; ipfw set 2 enable)

Paul Schmehl (pauls at
Adjunct Information Security Officer
The University of Texas at Dallas
AVIEN Founding Member

More information about the freebsd-questions mailing list