#!/bin/sh

# Nous vidons les chaÃ®nes :
iptables -F
# Nous supprimons d'Ã©ventuelles chaÃ®nes personnelles :
iptables -X 

# Nous les faisons pointer par dÃ©faut sur DROP

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Nous faisons de mÃªme avec toutes les autres tables,
# Ã|  savoir "nat" et "mangle", mais en les faisant pointer
# par dÃ©faut sur ACCEPT. Ca ne pose pas de problÃ¨mes
# puisque tout est bloquÃ© au niveau "filter"

iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#iptables -t nat -P INPUT ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

# Translation d'adresses pour tout ce qui traverse la passerelle
# en sortant par ppp0
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.82.1.23 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.82.1.21 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.82.1.22 -o ppp0 -j MASQUERADE

# Toutes les connexions qui sortent du LAN vers le Net
# sont acceptÃ©es
iptables -A FORWARD -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Nous autions aussi bien pu Ã©crire :
#iptables -A FORWARD -i eth0 -o ppp0 -m state --state ! INVALID -j ACCEPT

# Seules les connexions dÃ©jÃ|  Ã©tablies ou en relation avec
# des connexions Ã©tablies sont acceptÃ©es venant du Net vers le LAN
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT


iptables -t filter -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -t filter -A INPUT  -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -t filter -A OUTPUT -o eth0 -s 10.82.1.0/24 -d 10.82.1.0/24 -j ACCEPT
iptables -t filter -A INPUT  -i eth0 -s 10.82.1.0/24 -d 10.82.1.0/24 -j ACCEPT


#iptables -t filter -A OUTPUT -o ppp0 -p tcp --sport 631 -j DROP 
#iptables -t filter -A INPUT  -i ppp0 -p tcp --dport 631 -j DROP

#serveur dns
iptables -A INPUT -i ppp0 --protocol udp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol udp --destination-port 53 -j ACCEPT
iptables -A INPUT -i ppp0 --protocol tcp --source-port 53 -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 53 -j ACCEPT

#seurveur web
iptables -A INPUT -i ppp0 --protocol tcp --source-port 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 80 -m state --state NEW,ESTABLISHED -j ACCEPT

#serveur pop smtp
iptables -A INPUT -i ppp0 --protocol tcp --source-port 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 25 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -i ppp0 --protocol tcp --source-port 110 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 110 -m state --state NEW,ESTABLISHED -j ACCEPT

#serveur ftp
iptables -A INPUT -i ppp0 --protocol tcp --source-port 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 21 -m state --state NEW,ESTABLISHED -j ACCEPT

#serveur antivirus
iptables -A INPUT -i ppp0 --protocol tcp --source-port 1027 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 1027 -m state --state NEW,ESTABLISHED -j ACCEPT

#Test firewall
iptables -A INPUT -i ppp0 --protocol tcp --source-port 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ppp0 --protocol tcp --destination-port 443 -m state --state NEW,ESTABLISHED -j ACCEPT

#accepte les ping de wanadoo pour test connection 
iptables -A OUTPUT -o ppp0 -d 193.252.122.103  --protocol icmp -j ACCEPT
iptables -A INPUT -i ppp0  -s 193.252.122.103 --protocol icmp -j ACCEPT

## Pour pouvoir utiliser GnomeMeeting
#iptables -A INPUT -p tcp --dport 30000:30010 -j ACCEPT
#iptables -A INPUT -p tcp --dport 1720 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 1720 -j ACCEPT
#iptables -A INPUT -p udp --dport 5000:5003 -j ACCEPT
# DEBUT des règles pour le PARTAGE DE CONNEXION (i.e. le NAT)


# Je veux que mon système fasse office de "serveur NAT"
# (Remplaçez "eth0" par votre interface connectée à Internet)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


# FIN des règles pour le PARTAGE DE CONNEXION (i.e. le NAT)



# DEBUT des règles de PORT FORWARDING


# Je veux que les requêtes TCP reçues sur le port 80 soient forwardées
# à la machine dont l'IP est 192.168.0.3 sur son port 80
# (la réponse à la requête sera forwardée au client)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.82.1.23:80
iptables -t nat -A PREROUTING -p tcp --dport 135 -j DNAT --to-destination 10.82.1.23:135
iptables -t nat -A PREROUTING -p tcp --dport 139 -j DNAT --to-destination 10.82.1.23:139
iptables -t nat -A PREROUTING -p tcp --dport 445 -j DNAT --to-destination 10.82.1.23:445
iptables -t nat -A PREROUTING -p tcp --dport 1027 -j DNAT --to-destination 10.82.1.23:1027
iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to-destination 10.82.1.23:53
iptables -t nat -A PREROUTING -p tcp --dport 1143 -j DNAT --to-destination 10.82.1.23:1143
iptables -t nat -A PREROUTING -p tcp --dport 1144 -j DNAT --to-destination 10.82.1.23:1144
iptables -t nat -A PREROUTING -p tcp --dport 1145 -j DNAT --to-destination 10.82.1.23:1145
# FIN des règles de PORT FORWARDING
