#! /bin/sh
# Petit script a executer sur ultra-adsl si on veut pouvoir consulter
# les mails sur freebox.crans.org, en cas de panne de renater
# Par Alexandre Bos, avec l'aide patiente de Stephane et Vince
# Licence GPLv3 ou ulterieure

# A utiliser ponctuellement, n'oubliez pas de desactiver
# le routage et de vider le firewall quand vous n'en avez
# plus besoin

# D'abord on désactive le routage
echo 0  >> /proc/sys/net/ipv4/ip_forward

# Par defaut, le routage est interdit
iptables -P FORWARD DROP

# On vide le firewall
iptables -F
iptables -t nat -F
iptables -t mangle -F

# Le routage de paquets est autorise si c'est bien ce que l'on veut
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 993 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
iptables -A FORWARD -d 138.231.136.3 -i eth1 -p tcp --dport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 138.231.136.3 -i eth0 -p tcp --sport 993 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -j REJECT

# On NATe le port 80 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 80 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9

# On NATe le port 443 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 443 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9

# On NATe le port 993 vers rouge
iptables -t nat -A PREROUTING -d 82.225.39.54 -p tcp --dport 993 -j DNAT --to-destination 138.231.136.3
iptables -t nat -A POSTROUTING -d 138.231.136.3 -j SNAT --to-source 138.231.136.9

# On active le routage
echo 1 >> /proc/sys/net/ipv4/ip_forward
