#!/bin/bash IP=$1 iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -s 192.168.1.0/255.255.255.0 -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -s ! 192.168.1.0/255.255.255.0 -p tcp -m tcp --dport 22 -j DROP iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT iptables -A INPUT -i eth1 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A INPUT -i eth2 -p udp -m udp --dport 53 -j ACCEPT iptables -A INPUT -i eth2 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A INPUT -i eth3 -p udp -m udp --dport 53 -j ACCEPT iptables -A INPUT -i eth3 -p tcp -m tcp --dport 53 -j ACCEPT iptables -A INPUT -s $IP -p udp -m state --state ESTABLISHED -m udp --sport 53 -j ACCEPT iptables -A INPUT -s $IP -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT iptables -A INPUT -i eth2 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT iptables -A INPUT -i eth3 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT iptables -A INPUT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT iptables -A FORWARD -i eth3 -o eth1 -j ACCEPT iptables -A FORWARD -i eth1 -o eth3 -j ACCEPT iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -m mark --mark 0x2 -j ACCEPT # Mark the port forwarding for the forward set iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 8080 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 22 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 3389 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 4000 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p udp -m udp --dport 4000 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 6112:6114 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p udp -m udp --dport 6112:6114 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 7777:7789 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p udp -m udp --dport 7777:7789 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 27900 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p udp -m udp --dport 27900 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p tcp -m tcp --dport 42292 -j MARK --set-mark 0x2 iptables -t mangle -A PREROUTING -s $IP -p udp -m udp --dport 42292 -j MARK --set-mark 0x2 # DNAT the forwarded ports iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.6 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 22 -j DNAT --to-destination 192.168.1.6 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 4000 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A PREROUTING -s $IP -p udp -m udp --dport 4000 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 6112:6114 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A PREROUTING -s $IP -p udp -m udp --dport 6112:6114 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 7777:7789 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A PREROUTING -s $IP -p udp -m udp --dport 7777:7789 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 27900 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A PREROUTING -s $IP -p udp -m udp --dport 27900 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A PREROUTING -s $IP -p tcp -m tcp --dport 42292 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A PREROUTING -s $IP -p udp -m udp --dport 42292 -j DNAT --to-destination 192.168.1.7 # Output for external IP usage from the LAN iptables -t nat -A OUTPUT -d $IP -p tcp --dport 22 -j DNAT --to-destination 192.168.1.6 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.6 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 4000 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A OUTPUT -d $IP -p udp --dport 4000 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 6112:6114 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A OUTPUT -d $IP -p udp --dport 6112:6114 -j DNAT --to-destination 192.168.1.5 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 7777:7789 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A OUTPUT -d $IP -p udp --dport 7777:7789 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 27900 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A OUTPUT -d $IP -p udp --dport 27900 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A OUTPUT -d $IP -p tcp --dport 42292 -j DNAT --to-destination 192.168.1.7 iptables -t nat -A OUTPUT -d $IP -p udp --dport 42292 -j DNAT --to-destination 192.168.1.7 # Postrouting for external IP usage from the LAN iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 22 -o eth1 -j SNAT --to-source 192.168.1.6 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 8080 -o eth1 -j SNAT --to-source 192.168.1.6 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 3389 -o eth1 -j SNAT --to-source 192.168.1.5 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 4000 -o eth1 -j SNAT --to-source 192.168.1.5 iptables -t nat -A POSTROUTING -d $IP -p udp --dport 4000 -o eth1 -j SNAT --to-source 192.168.1.5 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 6112:6114 -o eth1 -j SNAT --to-source 192.168.1.5 iptables -t nat -A POSTROUTING -d $IP -p udp --dport 6112:6114 -o eth1 -j SNAT --to-source 192.168.1.5 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 7777:7789 -o eth1 -j SNAT --to-source 192.168.1.7 iptables -t nat -A POSTROUTING -d $IP -p udp --dport 7777:7789 -o eth1 -j SNAT --to-source 192.168.1.7 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 27900 -o eth1 -j SNAT --to-source 192.168.1.7 iptables -t nat -A POSTROUTING -d $IP -p udp --dport 27900 -o eth1 -j SNAT --to-source 192.168.1.7 iptables -t nat -A POSTROUTING -d $IP -p tcp --dport 42292 -o eth1 -j SNAT --to-source 192.168.1.7 iptables -t nat -A POSTROUTING -d $IP -p udp --dport 42292 -o eth1 -j SNAT --to-source 192.168.1.7 # Finish the NAT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE