Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jul 2000 20:33:27 -0400 (EDT)
From:      Colin <cwass99@home.com>
To:        Doug White <dwhite@resnet.uoregon.edu>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: natd inconsistencies
Message-ID:  <XFMail.000711203327.cwass99@home.com>
In-Reply-To: <Pine.BSF.4.21.0007101647360.23759-100000@resnet.uoregon.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
     I'm still not sure I understand why this works the way it does, but I'm
digging through the code for ipfw and natd, so we'll see where that leads.
     In the meantime, I can't believe I'm the only person who has hit this.  To
that end, I'm proposing a minor change to rc.firewall (diff at the end of the
message).  Specifically, I moved the conditional addition of the divert rule to
after the spoofing and RFC1918 rules.  I don't see how this could reduce
security, and it resolves the issue I saw.
     Any comments on the advisability of this (good or bad) or can I get
someone to move this in for 4.1?  Thanks.


*** rc.firewall.old     Tue Jul 11 20:07:12 2000
--- rc.firewall.new     Tue Jul 11 20:54:23 2000
***************
*** 65,83 ****
  #
  ${fwcmd} -f flush

- ############
- # These rules are required for using natd.  All packets are passed to
- # natd before they encounter your remaining rules.  The firewall rules
- # will then be run again on each packet after translation by natd,
- # minus any divert rules (see natd(8)).
- #
- case ${natd_enable} in
- [Yy][Ee][Ss])
-       if [ -n "${natd_interface}" ]; then
-             ${fwcmd} add divert natd all from any to any via ${natd_interface}
-       fi
-       ;;
- esac

  ############
  # If you just configured ipfw in the kernel as a tool to solve network
--- 65,70 ----
***************
*** 165,171 ****
        imask="255.255.255.240"
        iip="192.0.2.17"

!       # Stop spoofing
        ${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
        ${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}

--- 152,158 ----
        imask="255.255.255.240"
        iip="192.0.2.17"

!       # Stop spoofing.  These rules should preceed the divert rule for natd
if used.
        ${fwcmd} add deny all from ${inet}:${imask} to any in via ${oif}
        ${fwcmd} add deny all from ${onet}:${omask} to any in via ${iif}
***************
*** 176,181 ****
--- 163,183 ----
        ${fwcmd} add deny all from any to 172.16.0.0/12 via ${oif}
        ${fwcmd} add deny all from 192.168.0.0/16 to any via ${oif}
        ${fwcmd} add deny all from any to 192.168.0.0/16 via ${oif}
+
+
+         ############
+         # These rules are required for using natd.  All packets are passed to
+         # natd before they encounter your remaining rules.  The firewall rules
+         # will then be run again on each packet after translation by natd,
+         # minus any divert rules (see natd(8)).
+         #
+         case ${natd_enable} in
+         [Yy][Ee][Ss])
+               if [ -n "${natd_interface}" ]; then
+               ${fwcmd} add divert natd all from any to any via
${natd_interface}
+               fi
+               ;;
+         esac

        # Stop draft-manning-dsua-01.txt nets on the outside interface
        ${fwcmd} add deny all from 0.0.0.0/8 to any via ${oif}





On 10-Jul-00 Doug White wrote:
> On Mon, 10 Jul 2000, Colin wrote:
> 
>>      I found this rule was the problem using ipfw show (a very useful
>>      command
>> when you're building a ruleset to see what is blocking you) which is why I
>> moved it.  My concern is that it shouldn't block packets from an external
>> source (eg www.FreeBSD.org ;) to 192.168.0.0/24.  It should only block
>> packets
>> from that network incoming on the external interface.  I understood natd
>> would
>> alter the dest addr on the inbound packet if it was in the table but not
>> touch
>> the source addr.  Is this not the case?  Or am I missing something obvious
>> in
>> the operation?
> 
> Don't forget about the return packets :)
> 
> Doug White                    |  FreeBSD: The Power to Serve
> dwhite@resnet.uoregon.edu     |  www.FreeBSD.org

Cheers,
Colin




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.000711203327.cwass99>