Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Apr 2002 12:54:32 -0700 (PDT)
From:      "Earl A. Killian" <earl@killian.com>
To:        freebsd-ipfw@freebsd.org
Subject:   question about the FreeBSD 4.5-RELEASE simple entry in rc.firewall
Message-ID:  <200204161954.g3GJsWc04611@gate.killian.com>

next in thread | raw e-mail | index | archive | help
At the end, for reference, I've reproduced the rules you get from
4.5-RELEASE rc.firewall with firewall_type="simple" and
natd_enable="YES", and with some comments simplified.  I tried this
firewall, and I was not able to talk to my gateway machine from the
hosts on the inside.  Looking at the rules below, I see only one rule
that is specific to iif, and that is just to prevent the inside from
pretending to be outside.  Most of the rules are via oif, or to oip
and so don't apply to an inside machine talking to iip via iif.  If I
eliminate those rules, I'm left with:

Rules that apply to inet:imask talking to iip via iif:

    deny all from any to 127.0.0.0/8
    deny ip from 127.0.0.0/8 to any
    deny all from ${onet}:${omask} to any in via ${iif}
    pass tcp from any to any established
    pass all from any to any frag
    pass tcp from any to any setup

So what about icmp and udp?  Do other sites really use this fw and
just not ping or dns/ntp to their gateway from inside?  Shouldn't the
following be added after the stop-spoofing rules or something?:

    # Allow internal hosts complete access
    allow all from ${inet}:${imask} to ${iip} in recv ${iif}
    allow all from ${iip} to ${inet}:${imask} out xmit ${iif}

I also notice there are no rules for icmp at all.  Shouldn't there be a
    # Allow pings out in the world
    pass icmp from ${oip} to any keep-state
down with the dns/ntp rules?

For reference, rc.firewall with firewall_type="simple" and
natd_enable="YES":

    # Localhost interface
    100 pass all from any to any via lo0
    200 deny all from any to 127.0.0.0/8
    300 deny ip from 127.0.0.0/8 to any

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

    # Stop RFC1918 nets on the outside interface
    deny all from any to 10.0.0.0/8 via ${oif}
    deny all from any to 172.16.0.0/12 via ${oif}
    deny all from any to 192.168.0.0/16 via ${oif}

    # Stop draft-manning-dsua-03.txt nets on the outside interface
    deny all from any to 0.0.0.0/8 via ${oif}
    deny all from any to 169.254.0.0/16 via ${oif}
    deny all from any to 192.0.2.0/24 via ${oif}
    deny all from any to 224.0.0.0/4 via ${oif}
    deny all from any to 240.0.0.0/4 via ${oif}

    # Network Address Translation.
    divert natd all from any to any via ${natd_interface}

    # Stop RFC1918 nets on the outside interface
    deny all from 10.0.0.0/8 to any via ${oif}
    deny all from 172.16.0.0/12 to any via ${oif}
    deny all from 192.168.0.0/16 to any via ${oif}

    # Stop draft-manning-dsua-03.txt nets on the outside interface
    deny all from 0.0.0.0/8 to any via ${oif}
    deny all from 169.254.0.0/16 to any via ${oif}
    deny all from 192.0.2.0/24 to any via ${oif}
    deny all from 224.0.0.0/4 to any via ${oif}
    deny all from 240.0.0.0/4 to any via ${oif}

    # Allow TCP through if setup succeeded
    pass tcp from any to any established

    # Allow IP fragments to pass through
    pass all from any to any frag

    # Allow setup of incoming email
    pass tcp from any to ${oip} 25 setup

    # Allow access to our DNS
    pass tcp from any to ${oip} 53 setup
    pass udp from any to ${oip} 53
    pass udp from ${oip} 53 to any

    # Allow access to our WWW
    pass tcp from any to ${oip} 80 setup

    # Reject&Log all setup of incoming connections from the outside
    deny log tcp from any to any in via ${oif} setup

    # Allow setup of any other TCP connection
    pass tcp from any to any setup

    # Allow DNS queries out in the world
    pass udp from ${oip} to any 53 keep-state

    # Allow NTP queries out in the world
    pass udp from ${oip} to any 123 keep-state

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




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