#!/bin/sh

# Configuració IPTABLES amb tres targetes de xarxa havent dues
# subxarxes que no es veuen entre elles i que passen a través d'un proxy

# Fa neteja de les configuracions anteriors
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

# Política per defecte d'acceptació a TOT (perillós!!)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

# FILTRE des de l'exterior
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -i eth1 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/24 -i eth2 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT

# FILTRE de la xarxa local
iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/24 -i eth2 -p tcp --dport 80 -j ACCEPT

# Masquerading i forwarding
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

# Redirecciona el port 80 al proxy
iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -d ! 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth2 -s 192.168.2.0/24 -d ! 192.168.2.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128

# Fa que les dues subxarxes no es vegin entre elles
iptables -A FORWARD -i eth1 -s 192.168.1.0/24 -d 192.168.2.0/24 -j DROP
iptables -A FORWARD -i eth2 -s 192.168.2.0/24 -d 192.168.1.0/24 -j DROP