#!/bin/sh
########################## Configuration #################################
# Configuration physique:
# net0 est l'interface connectée sur internet
# net1 est l'interface connectée au réseau local
# Exemple:
# net0="eth0"
# net1="eth1"
net0="eth0"
net1="eth1"
# Adresses mac des PC de votre réseau local autorisés à se connecter:
# Exemple:
# macs="00:C0:9F:41:56:FC
# 00:11:09:D2:E4:C1"
# Attention: les adresses doivent être séparé par un retour à la ligne.
# N'oubliez pas de fermer la liste avec "
macs="00:0A:48:05:1D:B7"
# Ouverture des Ports
# Vous devez préciser le protocole (tcp ou udp) suivi d'un numéro de port ou d'une plage de port de la manière suivante:
# protocole-port (pour l'ouverture d'un seul port)
# protocole-portdébut:portfin (pour l'ouverture d'une plage
# Attention: N'oubliez pas les retours à la lignes entre chaque port/plage de port et fermer la liste avec un "
# Liste des ports à ouvrir en sortie
# Exemple:
# ports_out="tcp-6890:6900
# udp-6890:6900"
ports_out="A changer(Peut Rester vide)"
# Liste des ports à ouvrir en entrée
# Exemple:
# ports_in=""
ports_in=""
# Routage des Ports
# Pour faire suivre des ports vers un autre ordinateur de votre réseau (Utile pour se connecter en High ID avec la mule ^^)
# ajoutez les de la manière suivante:
# protocole-port(ou portdebut:portfin)-addresseipdestination
# Exemple:
# ports_fwd="udp-4672-172.16.39.38
# tcp-4662-172.16.39.38"
# N'oubliez pas le retour à la ligne entre chaque règle et fermez la liste avec "
ports_fwd=""
########################## Fin de Configuration ############################
echo 1 > /proc/sys/net/ipv4/ip_forward
# On commence par tout effacer
iptables -F
iptables -X
# On ne fait pas que les refuser, on jette les paquets !
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# OBLIGATOIRE : accepter la boucle locale
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# On efface aussi les enregistrements des autres tables
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
# N'accepter que les connexions
# établies ou en relation avec une connexion établie
iptables -A INPUT -i $net0 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $net1 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
# On se réserve une connectivité complète
iptables -A OUTPUT -o $net0 -m state \
--state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $net1 -m state \
--state NEW,ESTABLISHED -j ACCEPT
# Traitement de la liste des adresses mac autorisée
for adr_mac in $macs ; do
iptables -A INPUT -m state --state NEW,ESTABLISHED \
-m mac --mac-source $adr_mac -j ACCEPT;
iptables -A FORWARD -m state --state NEW,ESTABLISHED \
-m mac --mac-source $adr_mac -j ACCEPT;
echo $adr_mac;
done
# Ouverture des ports dans la liste (out)
for port_out in $ports_out ; do
prtcl=`echo $port_out | awk -F- '{print $1}'`
port=`echo $port_out | awk -F- '{print $2}'`
iptables -A OUTPUT -p $prtcl --sport $port -j ACCEPT;
echo "Port $prtcl $port ouvert en entrée"
done
# Ouverture des ports dans la liste (in)
for port_in in $ports_in ; do
prtcl=`echo $port_in | awk -F- '{print $1}'`
port=`echo $port_in | awk -F- '{print $2}'`
iptables -A INPUT -p $prtcl --dport $port -j ACCEPT;
echo "Port $prtcl $port ouvert en sortie."
done
# Mise en place des rêgles de routage des ports
for port_fwd in $ports_fwd ; do
prtcl=`echo $port_fwd | awk -F- '{print $1}'`
ports=`echo $port_fwd | awk -F- '{print $2}'`
ip_dest=`echo $port_fwd | awk -F- '{print $3}'`
iptables -t nat -A PREROUTING -i $net0 -p $prtcl --dport $ports -j DNAT --to-destination $ip_dest
iptables -A FORWARD -p $prtcl -i $net0 --dport $ports -j ACCEPT
echo "Forward $prtcl $ports to $ip_dest"
done
iptables -A FORWARD -o $net1 -m state \
--state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $net0 -j MASQUERADE
echo "Modifications Effectuées"