#!/bin/bash
# -----------------------------------------------------------------------------
TR_HOSTS="192.168.0.65" # 1,2-provid-s, 3-debug
MY_NETWORK="192.168.1.0/24" # My NetWork (eth1)
GW5="192.168.0.254" # gw5 ip is 192.168.1.220
P_GW="192.168.0.210" # provider GW is:
EXT_PORTS="22,80,3333,3335,3336,5555,6666" # accessible WAN port (DEL 80 later!)
INT_PORTS="20,21,25,53,110,1024,2041,3128,5060,5190,8080,11024" # accessible LAN ports
IPT="/sbin/iptables" # iptables location
EXT_IF="eth0" # external WAN interface
INT_IF="eth1" # internal LAN interface
#
#
# --------------------------- CLOSE ALL CHAINS --------------------------------
$IPT -P INPUT DROP && $IPT -P OUTPUT DROP && $IPT -P FORWARD DROP
# ------------------ FLASHING RULES IN ALL DEFAULT TABLES ---------------------
$IPT -F && $IPT -t mangle -F && $IPT -t filter -F && $IPT -t nat -F && $IPT -F
# ----------------------------- ALLOWING LOOPBACK TRAFFIC ---------------------
$IPT -A INPUT -i lo -j ACCEPT && $IPT -A OUTPUT -o lo -j ACCEPT
# ------------------- EXTERNAL (eth0) INTERFACE RULES ------------------------
# INPUT RULES:
$IPT -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $EXT_IF --source $TR_HOSTS -p tcp -m multiport --dport $EXT_PORTS -m state --state NEW -j ACCEPT
#
# OUTPUT RULES:
$IPT -A OUTPUT -o $EXT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# -------------------- INTERNAL (eth1) INTERFACE RULES ------------------------
# INPUT RULES:
$IPT -A INPUT -i $INT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -i $INT_IF -p tcp -m multiport --dport $INT_PORTS -m state --state NEW -j ACCEPT
#
# OUTPUT RULES:
$IPT -A OUTPUT -o $INT_IF -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# --------------------------------- NAT ---------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPT -t nat -A POSTROUTING -j SNAT --to-source $GW5
$IPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT # !!! LUST RULE !!!
# $IPT -A FORWARD -i $EXT_IF -o $INT_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
# $IPT -A FORWARD -i $INT_IF -o $EXT_IF -j ACCEPT
# -----------------------------------------------------------------------------
# $IPT -A OUTPUT -o $INT_IF -p icmp --icmp-type any -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# *****************************************************************************