Date: Sat, 2 Mar 2002 08:50:18 -0800 From: "Drew Tomlinson" <drew@mykitchentable.net> To: <questions@freebsd.org> Subject: Firewall Script Fails on Startup Message-ID: <006f01c1c20a$55f84500$1e01a8c0@lc.ca.gov>
next in thread | raw e-mail | index | archive | help
Some time back, I created a firewall script called rc.firewall.current
based on info I found on the web. At that time, I thought everything
was working and was satisfied that it ran at startup. Yesterday, I had
to reboot my box. Today I was reading the daily cron output and I found
that the firewall script failed and (because of my default accept) I was
wide open. Here's the relavent part of the output:
> Flushed all rules.
> 00100
> allow
> ip
> from
> any
> to
> any
> via lo0
>
> 00200
> deny
> ip
> from
> any
> to
> 127.0.0.0
> /8
>
> 00300
> deny
> ip
> from
> 127.0.0.0
> /8
> to
> any
>
> ipfw:
> bad arguments, for usage summary ``ipfw''
>
> Firewall rules loaded, starting divert daemons:
> .
> Firewall logging=YES
I've done some poking around but can't figure out how to determine why
rc.firewall.current fails during startup, yet I can run "sh
/etc/rc.firewall/current" from the command line and everything works
without error. Where is this logged? I found the above stuff is in
/var/log/dmesg.today so I tried adding the -v flag to /bin/sh in
rc.network to see if I get some clues. However, dmesg.today doesn't
change after a reboot. Must be created from periodic.daily?
Anyway, here's the relevent output of rc.firewall.current when run from
the prompt. On startup, it fails at rule 400.
blacksheep# sh -v /etc/rc.firewall.current
# Force a flush of the current firewall rules before we reload
$fwcmd -f flush
Flushed all rules.
# Allow your loop back to work
$fwcmd add allow all from any to any via lo0
00100 allow ip from any to any via lo0
# Prevent spoofing of your loopback
$fwcmd add deny log logamount 0 all from any to 127.0.0.0/8
00200 deny log ip from any to 127.0.0.0/8
# Stop spoofing of your internal network range
$fwcmd add deny log logamount 0 ip from $inwr to any in via $oif
00300 deny log ip from 192.168.1.0/24 to any in recv ed1
# Stop spoofing from inside your private ip range
$fwcmd add deny log logamount 0 ip from not $inwr to any in via
$iif
00400 deny log ip from not 192.168.1.0/24 to any in recv ed0
So what am I missing and where should I look to determine why this
script fails on startup but is OK when invoked from the command line? I
thought maybe the script needed to be mode 755 instead of 644 but
rc.firewall is 644 so I don't think that's it. Help please?
Thanks,
Drew
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?006f01c1c20a$55f84500$1e01a8c0>
