routage avec iptables

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

routage avec iptables

Messagepar leno » 20 Avr 2010 16:45

j'ai configuré ma machine en tant qu'un serveur proxy(squid) sur debian lenny,
maintenant je veux que tout le réseau local passe par mon serveur pour se connecter à internet
après une petite recherche sur internet je trouve que c'est impossible de faire un proxy transparent au cas où le proxy gère l'authentification c'est qui est mon cas
bon je n'ai pas une grande connaissance en réseau,je veux vous montrer ce que j'ai fait pour mettre en place le routage
j'ai un fichier /etc/iptables.up.rules par défaut qui correspont à ça
Code: Tout sélectionner
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*nat
:PREROUTING ACCEPT [1:78]
:POSTROUTING ACCEPT [4:980]
:OUTPUT ACCEPT [4:980]
COMMIT
# Completed on Wed Mar 17 15:16:13 2010
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*mangle
:PREROUTING ACCEPT [100:16748]
:INPUT ACCEPT [100:16748]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [98:16592]
:POSTROUTING ACCEPT [98:16592]
COMMIT
# Completed on Wed Mar 17 15:16:13 2010
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Wed Mar 17 15:16:13 2010

'ai deux interfaces réseau
wlan0 connecté à internet et eth0 connecté au réseau local je veux que eth0 partage la connexion de eth0
je veux rédiriger toutes le réquetes sortant du local vers le serveur squid qui les redirigera vers internet je veux pas d'accés direct des utilisateurs au local.
C'est pour cela jai remplacé le contenue de /etc/iptables.up.rules par ceci:
Code: Tout sélectionner
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*nat

# set this system as a router for Rest of LAN
--append POSTROUTING --out-interface wlan0 -j MASQUERADE
--append FORWARD --in-interface eth0 -j ACCEPT
# unlimited access to LAN
-A INPUT -i eth0 -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 8080 ($SQUID_PORT) aka transparent proxy
-A PREROUTING -i wlan0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080
# if it is same system
-A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 8080
# DROP everything and Log it
-A INPUT -j LOG
-A INPUT -j DROP

COMMIT
# Completed on Wed Mar 17 15:16:13 2010
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*mangle
:PREROUTING ACCEPT [100:16748]
:INPUT ACCEPT [100:16748]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [98:16592]
:POSTROUTING ACCEPT [98:16592]
COMMIT
# Completed on Wed Mar 17 15:16:13 2010
# Generated by iptables-save v1.4.2 on Wed Mar 17 15:16:13 2010
*filter

#13 Politiques par défaut #

#Les politiques par défaut déterminent le devenir d'un paquet auquel
# aucune règle spécifique ne s'applique.

# Les connexions entrantes sont bloquées par défaut
-P INPUT DROP
#Les connexions destinées à être routées sont acceptées par défaut
-P FORWARD ACCEPT
#Les connexions sortantes sont acceptées par défaut
-P OUTPUT ACCEPT

# Règles de filtrage #

# Nous précisons ici des règles spécifiques pour les paquets vérifiant
#certaines conditions.

# Pas de filtrage sur l'interface de "loopback"
-A INPUT -i lo -j ACCEPT

#Accepter le protocole ICMP (notamment le ping)
-A INPUT -p icmp -j ACCEPT

#Accepter le protocole IGMP (pour le multicast)
-A INPUT -p igmp -j ACCEPT
# Allow UDP, DNS and Passive FTP
-A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT

COMMIT
# Completed on Wed Mar 17 15:16:13 2010


Puis j'ai activé la fonction de transfert IP du noyau, en modifiant ainsi le fichier /etc/sysctl.conf :
Code: Tout sélectionner
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.conf.default.forwarding=1
# Uncomment the next line to enable packet forwarding for IPv6
net.ipv6.conf.default.forwarding=1

jai tapé
Code: Tout sélectionner
# sysctl -p

pour appliquer ces parametres
en tapant
Code: Tout sélectionner
# iptables-restore < /etc/iptables.up.rules

il me gènère une erreur dans chaque ligne ayant comme input eth0 comme
"--append FORWARD --in-interface eth0 -j ACCEPT"
je sais que ça peut etre bete mais...
quelqu'un pour m'aider svp
leno
Quartier Maître
Quartier Maître
 
Messages: 16
Inscrit le: 30 Jan 2010 13:19

Messagepar jdh » 20 Avr 2010 17:31

C'est assez peu clair ! Un schéma please !


Connaissant Shorewall, je trouve un peu dépassé d'écrire soi-même son script puisque Shorewall simplifie tellement la configuration du firewalling.


NB : je ne pense pas que l'on puisse modifier "à la main" un fichier iptables-save. Il doit bien y avoir un script qui exécutent toutes les commandes et qui serait plus lisible.

NB2 : a-t-on besoin d'ip v6 ?
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Messagepar HaM » 21 Avr 2010 19:00

Salut,

As tu essayé de remplacer les "--append" par des "-A" ?
Et les "--out-interface" par "-o"
Ainsi que les "--in-interface" par "-i"

Pour info jdh c'est tout à fait possible et cela à l'avantage d'être beaucoup plus rapide que d'appeler iptables à chaque insertion de regles.
Avatar de l’utilisateur
HaM
Amiral
Amiral
 
Messages: 1045
Inscrit le: 31 Juil 2002 00:00
Localisation: Boulogne-Billancourt 92

Messagepar jdh » 21 Avr 2010 20:07

@HaM :

Merci de l'info ! En effet, si la syntaxe est aisée à bien appréhender, cela peut avoir de l'intérêt. Mais il y a longtemps que j'y avais jeté un oeil et cela ne m'avait pas paru alors immédiat.

Toutefois la logique d'un script firewall n'est d'être optimal en terme de temps d'exécution (même si les dernières versions de Shorewall, un peu loin du fait de pfSense, semble incorporer un "compilateur") vu que l'on ne change pas des règles à tout bout de champ.

Il n'en reste pas moins qu'AMHA, en 2010, le script me parait dépassé.


Enfin, il me semble que la suite de ce fil est un autre fil (et avec un autre pseudo !) : http://forums.ixus.fr/viewtopic.php?t=43346 (et j'y lis un script iptables !).
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité