All pastes #905236 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-15 17:28 UTC
rendered paste body
#!/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"