#!/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"