W dniu 2011-08-10 16:22, Freddie Cash pisze:

        The more correct method is to double-NAT the traffic, such
        that the LAN
        clients connect to public IPs, and the DMZ servers see
        connections from
        public IPs.  It's more complicated to wrap your head around
        the first time,
        but it prevents private IPs from "leaking" between the LAN,
        the Internet,
        and the DMZ.  (It took me 10 years of using IPFW to figure
        this one out.)

        # Configure the general natd process for the LAN
        natd -port $port2 -same_ports -use_sockets -alias_address
        x.x.x.171

        # Configure the natd process to NAT from x.x.x.170 to
        192.168.0.10 using
        some port
        natd -port $port1 -same_ports -use_sockets -alias_address
        x.x.x.170
        -redirect_address x.x.x.170 192.168.0.10

        # NAT the traffic coming from the LAN to x.x.x.170
        ipfw add divert $port1 ip from $LAN to x.x.x.170 in recv vr0
        ipfw add allow ip from $LAN to 192.168.0.10 in recv vr0

        # NAT the traffic going to x.x.x.170 from the LAN
        ipfw add divert $port2 ip from $LAN to 192.168.0.10 out xmit vr2
        ipfw add allow ip from x.x.x.171 to 192.168.0.10 out xmit vr2

        # NAT the traffic coming from x.x.x.170 to the LAN
        ipfw add divert $port1 ip from 192.168.0.10 to x.x.x.171 in
        recv vr2
        ipfw add allow ip from 192.168.0.10 to $LAN in recv vr2

        # NAT the traffic going to the LAN from x.x.x.170
        ipfw add divert ip from 192.168.0.10 to $LAN out xmit vr0
        ipfw add allow ip from x.x.x.170 t0 $LAN out xmit vr0

        The general flow of the rules above is (src -->  dest)
        10.0.0.x -->  x.x.x.170
        10.0.0.x -->  192.168.0.10  (after first NAT)
        x.x.x.171 -->  192.168.0.10 (after second NAT)

        192.168.0.10 -->  x.x.x.171
        192.168.0.10 -->  10.0.0.x (after first NAT)
        x.x.x.170 -->  10.0.0.x  (after second NAT)

        Notice how vr3 is never used in any of the rules above, as the
        packets never
        touch the public interface of the router.



Hi,

I set up firewall like this:

$cmd flush

##LAN1 --> PUBLIC
$cmd add divert $NATLANPORT ip from $LAN1 to $MYPUBLICIP via $PUBLICIF
$cmd add allow ip from $LAN1 to $MYPUBLICIP via $PUBLICIF

#NAT for LAN1
natd -port $NATLANPORT -same_ports -use_sockets -alias_address $MYPUBLICIP

#NAT for DMZHOST1
natd -port $DMZHOST1PORT -same_ports -use_sockets -alias_address $DMZHOST1PUBLIC -redirect_address $DMZHOST1PUBLIC $DMZHOST1PRIVATE


##LAN1 --> DMZHOST1
#Traffic from LAN1 to DMZHOST1 - coming from LAN1
$cmd add divert $NATLANPORT ip from $LAN1 to $DMZHOST1PUBLIC in recv $LAN1IF
$cmd add allow ip from $LAN1 to $DMZHOST1PRIVATE in recv $LAN1IF

#Traffic to DMZHOST1 from LAN1 - going to DMZHOST1
$cmd add divert $DMZHOST1PORT ip from $LAN1 to $DMZHOST1PRIVATE out xmit $DMZIF
$cmd add allow ip from $DMZHOST1PUBLIC to $DMZHOST1PRIVATE out xmit $DMZIF

##DMZHOST1 --> LAN1
#Traffic from DMZHOST1 to LAN1 - coming from DMZHOST1
$cmd add divert $DMZHOST1PORT ip from $DMZHOST1PRIVATE to $DMZHOST1PUBLIC in recv $DMZIF
$cmd add allow ip from $DMZHOST1PRIVATE to $LAN1 in recv $DMZIF

#Traffic to LAN1 from DMZHOST1 - going to LAN1
$cmd add divert $NATLANPORT ip from $DMZHOST1PRIVATE to $LAN1 out xmit $LAN1IF
$cmd add allow ip from $DMZHOST1PUBLIC to $LAN1 out xmit $LAN1IF

$cmd add allow ip from any to me
$cmd add allow ip from me to any
$cmd add deny ip from any to any

But in fact it doesn't work - I am not able to connect to DMZ HOST1 public IP from LAN1. When I try to connect, I connect to router, not the DMZ HOST 1

In rc.conf I have only:
natd_enable="YES"
natd_interface="em0"

em0 is my interface connected to public ISP

DMZ HOST1 Public IP is set as an alias for em0

Can you have a look at my issue?

Regards,

--
Marek Salwerowicz


_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to