#!/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
##—————————————————————————–##