| 
 #!/bin/sh  
## File: rc.firewall.nat  ## Set up iptables NAT rules.  
IPTABLES="/usr/local/sbin/iptables"  EXTERNAL1="eth0"  EXTERNAL2="eth0"  INTERNAL="eth1"  DMZ_IF="eth2"  
EXT_IP1="216.162.197.10/32"  EXT_IP2="216.162.197.11/32"  
$IPTABLES -F -t nat  $IPTABLES -t nat -X  
#####################################################################################  ## Sentry.net EXTERNAL DNAT  
$IPTABLES -t nat -N SENTRY_DNAT  $IPTABLES -t nat -F SENTRY_DNAT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 20 -j DNAT --to-destination 192.168.2.69:20  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 21 -j DNAT --to-destination 192.168.2.69:21  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 22 -j DNAT --to-destination 192.168.2.69:22  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 23 -j DNAT --to-destination 192.168.2.69:23  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 25 -j DNAT --to-destination 192.168.2.69:25  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 80 -j DNAT --to-destination 192.168.2.69:80  $IPTABLES -t nat -A SENTRY_DNAT -i $EXTERNAL1 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP1 --dport 110 -j DNAT --to-destination 192.168.2.69:110  ##-----------------------------------------------------------------------------##  
 #####################################################################################  ## Obsidian.net/org EXTERNAL DNAT  
$IPTABLES -t nat -N OBS_DNAT  $IPTABLES -t nat -F OBS_DNAT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 20 -j DNAT --to-destination 192.168.2.42:20  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 21 -j DNAT --to-destination 192.168.2.42:21  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 22 -j DNAT --to-destination 192.168.2.42:22  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 23 -j DNAT --to-destination 192.168.2.42:23  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 25 -j DNAT --to-destination 192.168.2.42:25  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 80 -j DNAT --to-destination 192.168.2.42:80  $IPTABLES -t nat -A OBS_DNAT -i $EXTERNAL2 -p tcp -s ! 192.168.0.0/16  -d $EXT_IP2 --dport 110 -j DNAT --to-destination 192.168.2.42:110  ##-----------------------------------------------------------------------------##  
 ####################################################################################  ## Sentry.net INTERNAL DNAT  
$IPTABLES -t nat -N SENTRY_DNAT_INT  $IPTABLES -t nat -F SENTRY_DNAT_INT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 20 -j DNAT --to-destination 192.168.2.69:20  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 21 -j DNAT --to-destination 192.168.2.69:21  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 22 -j DNAT --to-destination 192.168.2.69:22  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 23 -j DNAT --to-destination 192.168.2.69:23  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 25 -j DNAT --to-destination 192.168.2.69:25  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 80 -j DNAT --to-destination 192.168.2.69:80  $IPTABLES -t nat -A SENTRY_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 --dport 110 -j DNAT --to-destination 192.168.2.69:110  ##-----------------------------------------------------------------------------##  
 #####################################################################################  ## Obsidian.net/org INTERNAL DNAT  
$IPTABLES -t nat -N OBS_DNAT_INT  $IPTABLES -t nat -F OBS_DNAT_INT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 20 -j DNAT --to-destination 192.168.2.42:20  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 21 -j DNAT --to-destination 192.168.2.42:21  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 22 -j DNAT --to-destination 192.168.2.42:22  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 23 -j DNAT --to-destination 192.168.2.42:23  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 25 -j DNAT --to-destination 192.168.2.42:25  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 80 -j DNAT --to-destination 192.168.2.42:80  $IPTABLES -t nat -A OBS_DNAT_INT -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 --dport 110 -j DNAT --to-destination 192.168.2.42:110  ##-----------------------------------------------------------------------------##  
#####################################################################################  ## DMZ_DNAT for Sentry.net  
$IPTABLES -t nat -N SENTRY_DMZ_DNAT  $IPTABLES -t nat -F SENTRY_DMZ_DNAT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 20 -j DNAT --to-destination 192.168.2.69:20  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 21 -j DNAT --to-destination 192.168.2.69:21  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 22 -j DNAT --to-destination 192.168.2.69:22  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 23 -j DNAT --to-destination 192.168.2.69:23  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 25 -j DNAT --to-destination 192.168.2.69:25  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 80 -j DNAT --to-destination 192.168.2.69:80  $IPTABLES -t nat -A SENTRY_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP1  -p tcp --dport 110 -j DNAT --to-destination 192.168.2.69:110  ##-----------------------------------------------------------------------------##  
 #####################################################################################  ## DMZ_DNAT for Obsidian.net  
$IPTABLES -t nat -N OBS_DMZ_DNAT  $IPTABLES -t nat -F OBS_DMZ_DNAT  
##-----------------------------------------------------------------------------##  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 20 -j DNAT --to-destination 192.168.2.42:20  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 21 -j DNAT --to-destination 192.168.2.42:21  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.69/32 -d $EXT_IP2  -p tcp --dport 22 -j DNAT --to-destination 192.168.2.42:22  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 23 -j DNAT --to-destination 192.168.2.42:23  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 25 -j DNAT --to-destination 192.168.2.42:25  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 80 -j DNAT --to-destination 192.168.2.42:80  $IPTABLES -t nat -A OBS_DMZ_DNAT -i $DMZ_IF -s 192.168.2.0/24 -d $EXT_IP2  -p tcp --dport 110 -j DNAT --to-destination 192.168.2.42:110  ##-----------------------------------------------------------------------------##  
 #####################################################################################  ## DNAT -- MAIN  
$IPTABLES -t nat -A PREROUTING -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP1 -j SENTRY_DNAT_INT  $IPTABLES -t nat -A PREROUTING -i $INTERNAL -p tcp -s 192.168.1.0/24  -d $EXT_IP2 -j OBS_DNAT_INT  
$IPTABLES -t nat -A PREROUTING -i $EXTERNAL1 -p tcp -s ! 192.168.1.0/24  -d $EXT_IP1 -j SENTRY_DNAT  $IPTABLES -t nat -A PREROUTING -i $EXTERNAL2 -p tcp -s ! 192.168.1.0/24  -d $EXT_IP2 -j OBS_DNAT  
$IPTABLES -t nat -A PREROUTING -i $DMZ_IF -p tcp -s 192.168.2.42/32  -d $EXT_IP1 -j SENTRY_DMZ_DNAT  $IPTABLES -t nat -A PREROUTING -i $DMZ_IF -p tcp -s 192.168.2.69/32  -d $EXT_IP1 -j SENTRY_DMZ_DNAT  
$IPTABLES -t nat -A PREROUTING -i $DMZ_IF -p tcp -s 192.168.2.42/32  -d $EXT_IP2 -j OBS_DMZ_DNAT  $IPTABLES -t nat -A PREROUTING -i $DMZ_IF -p tcp -s 192.168.2.69/32  -d $EXT_IP2 -j OBS_DMZ_DNAT  
 ####################################################################################  ## SNAT -- Source Network Address Translation ##  
$IPTABLES -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.0.0/16  -o $EXTERNAL1 -j SNAT --to-source 216.162.197.10  $IPTABLES -t nat -A POSTROUTING -s 192.168.2.69/32 -d ! 192.168.0.0/16  -o $EXTERNAL1 -j SNAT --to-source 216.162.197.10  $IPTABLES -t nat -A POSTROUTING -s 192.168.2.42/32 -d ! 192.168.0.0/16  -o $EXTERNAL2 -j SNAT --to-source 216.162.197.11  
 ##-----------------------------------------------------------------------------##  ## SNAT DMZ to DMZ connections.  
$IPTABLES -t nat -A POSTROUTING -s 192.168.2.69/32 -d 192.168.2.69/32  -o $DMZ_IF -p tcp -j SNAT --to-source 192.168.2.10  
$IPTABLES -t nat -A POSTROUTING -s 192.168.2.42/32 -d 192.168.2.42/32  -o $DMZ_IF -p tcp -j SNAT --to-source 192.168.2.10  
$IPTABLES -t nat -A POSTROUTING -s 192.168.2.42/32 -d 192.168.2.69/32  -o $DMZ_IF -p tcp -j SNAT --to-source 192.168.2.10  
$IPTABLES -t nat -A POSTROUTING -s 192.168.2.69/32 -d 192.168.2.42/32  -o $DMZ_IF -p tcp -j SNAT --to-source 192.168.2.10  ##-----------------------------------------------------------------------------##             
  
 
  |