#!/bin/sh ############################################################################### # Variables globales ############################################################################### # Paramètrage du réseau local (LAN = Local Area Network) LAN_INTERFACE=ath0 ; # Interface réseau interne LAN_IP=192.168.1.2 ; # Adresse réseau interne LAN_NETWORK=192.168.1.0/24 ; # Réseau interne LAN_BROADCAST=192.168.1.255 ; # Adresse de broadcast interne # Paramètrage de la connexion Internet (WAN = Wild Area Network = Réseau Large) WAN_INTERFACE=eth0 ; # Interface réseau externe (Internet) WAN_IP=81.56.20.162 ; # Adresse réseau externe (Internet) WAN_NETWORK=0.0.0.0/0 ; # Réseau externe (Internet) PF_IP=192.168.1.10 ; # Adresse IP du serveur sur le LAN PORT_TCP=34909 PORT_UDP=27990 ############################################################################### ############################################################################### # A PARTIR DE CE POINT, VOUS N'AVEZ PLUS BESOIN DE CONFIGURER CE SCRIPT!!! ############################################################################### ############################################################################### ############################################################################### # Initialisation de Netfilter ############################################################################### # Initialise la table Filter (par défaut tout les échanges sont refusés) iptables -t filter -F iptables -t filter -X iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # Initialise la table NAT (par défaut tout les échanges sont activés) iptables -t nat -F iptables -t nat -X iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t nat -P POSTROUTING ACCEPT # Initialise la table Mangle (par défaut tout les échanges sont activés) iptables -t mangle -F iptables -t mangle -X iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P POSTROUTING ACCEPT ############################################################################### # Règles du localhost # On NE fait PAS de restriction aux adresses IP source / destination 127.0.0.0 ############################################################################### iptables -t filter -A OUTPUT -o lo -p all -j ACCEPT iptables -t filter -A INPUT -i lo -p all -j ACCEPT ############################################################################### # Règles de connexion au reseau local # Tout est autorisé ############################################################################### # Connexions firewall <-> réseau iptables -t filter -A OUTPUT -o $LAN_INTERFACE -s $LAN_IP -d $LAN_NETWORK -p all -j ACCEPT iptables -t filter -A INPUT -i $LAN_INTERFACE -s $LAN_NETWORK -d $LAN_IP -p all -j ACCEPT # Connexions firewall <-> broadcast réseau iptables -t filter -A OUTPUT -o $LAN_INTERFACE -s $LAN_IP -d $LAN_BROADCAST -p all -j ACCEPT iptables -t filter -A INPUT -i $LAN_INTERFACE -s $LAN_BROADCAST -d $LAN_IP -p all -j ACCEPT ############################################################################### # Règles de connexion à Internet # Seul les connexions initialisés par la machine sont autorisées # C'est le suivit de connexion ############################################################################### iptables -t filter -A OUTPUT -o $WAN_INTERFACE -s $WAN_IP -d $WAN_NETWORK -p all -m state --state ! INVALID -j ACCEPT iptables -t filter -A INPUT -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p all -m state --state RELATED,ESTABLISHED -j ACCEPT ############################################################################### # Règles pour le port forwarding ############################################################################### iptables -t filter -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -s $WAN_NETWORK -d $LAN_NETWORK -p tcp -m multiport --dport $PORT_TCP -m state --state !INVALID -j ACCEPT iptables -t filter -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p tcp -m multiport --sport $PORT_TCP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -s $WAN_NETWORK -d $LAN_NETWORK -p udp --dport $PORT_UDP -m state --state ! INVALID -j ACCEPT iptables -t filter -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p udp --sport $PORT_UDP -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A PREROUTING -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p tcp -m multiport --dport $PORT_TCP -j DNAT --to-destination $PF_IP iptables -t nat -A POSTROUTING -o $LAN_INTERFACE -s $WAN_NETWORK -d $PF_IP -p tcp -m multiport --dport $PORT_TCP -j SNAT --to-source $LAN_IP iptables -t nat -A PREROUTING -i $WAN_INTERFACE -s $WAN_NETWORK -d $WAN_IP -p udp --dport $PORT_UDP -j DNAT --to-destination $PF_IP iptables -t nat -A POSTROUTING -o $LAN_INTERFACE -s $WAN_NETWORK -d $PF_IP -p udp --dport $PORT_UDP -j SNAT --to-source $LAN_IP ############################################################################### # Règles pour l'IP masquerading ############################################################################### iptables -t filter -A FORWARD -i $LAN_INTERFACE -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p all -m state --state ! INVALID -j ACCEPT iptables -t filter -A FORWARD -i $WAN_INTERFACE -o $LAN_INTERFACE -s $WAN_NETWORK -d $LAN_NETWORK -p all -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o $WAN_INTERFACE -s $LAN_NETWORK -d $WAN_NETWORK -p all -j MASQUERADE