Mon script iptable (surement des erreurs)

Mon script iptable (surement des erreurs) - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 11-05-2004 à 16:55:16    

Je vous explique, j'ai deux freebox reliés sur une interface eth1 et eth2, l'interface eth0 (local) est relié à mon switch qui a 40 machines derriere qui doivent acceder a internet.
 
J'ai donc tenté de fair ce script iptables pour router le tout
 
J'ai defini deux plages d'ip (IPBOX1 et IPBOX2) qui devraient me permetre de router vers la premiere ou la seconde freebox en fonction du l'ip du pc qui tente de ce connecter a internet
 
Je vous colle le script dans l'état, si vous voyez de grosse erreurs, merci de me les signaler :) (je débute avec iptables et c'est assé délicat quand meme)
 


 
iptables -P INPUT DROP  
iptables -P OUTPUT DROP  
iptables -P FORWARD DROP  
 
# Local
LOCAL="eth0"
 
# Freebox n° 1
BOX1="eth1"  
 
# Freebox n° 2
BOX2="eth2"
 
# Plage IP ce connectant à la FreeBox N°1
IPBOX1="192.168.0.1-192.168.0.30"
 
# Plage IP ce connectant à la FreeBox N°2
IPBOX2="192.168.0.31-192.168.0.250"
 
# Activation du forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward  
 
# Autorisation pour l'interface locale  
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 
# Restreindre le nat sur IPBOX1 vers la freebox N°1
iptables -t nat -A POSTROUTING -m iprange --src-range $IPBOX1 -o $BOX1 -j MASQUERADE
 
# Restreindre le nat sur IPBOX2 vers la freebox N°1
iptables -t nat -A POSTROUTING -m iprange --src-range $IPBOX2 -o $BOX2 -j MASQUERADE
 
# Autoriser les connexions IPBOX1 de LOCAL vers BOX1  
iptables -A FORWARD -i $LOCAL -m iprange --src-range $IPBOX1 -o $BOX1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
 
# Autoriser les connexions IPBOX2 de LOCAL vers BOX2
iptables -A FORWARD -i $LOCAL -m iprange --src-range $IPBOX2 -o $BOX1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT  
 
# Autoriser uniquement les connexions déjà étabkies ou en relation venant de BOX1 vers LOCAL
iptables -A FORWARD -i $BOX1 -m iprange --src-range $IPBOX1 -o $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT
 
# Autoriser uniquement les connexions déjà étabkies ou en relation venant de BOX2 vers LOCAL
iptables -A FORWARD -i $BOX2 -m iprange --src-range $IPBOX2 -o $LOCAL -m state --state ESTABLISHED,RELATED -j ACCEPT


 
Merci de votre aide :)


Message édité par aopenrix le 11-05-2004 à 17:27:57
Reply

Marsh Posté le 11-05-2004 à 16:55:16   

Reply

Marsh Posté le 11-05-2004 à 17:10:09    

tu oublie de mettre les polices par défaut a DROP pour tes règles
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Reply

Marsh Posté le 11-05-2004 à 17:12:34    

merci je rajoutes :) le reste te semble correct ?

Reply

Marsh Posté le 11-05-2004 à 17:16:12    

ça semble correct si tu rajoutes le drop par défaut
 
tu fermes aucun port?

Reply

Marsh Posté le 11-05-2004 à 17:17:59    

Disons que je veux autoriser toutes les connexions sortante et bloquer toutes les connexion entrantes

Reply

Marsh Posté le 11-05-2004 à 17:18:49    

ya juste un truc qui me gêne moi, c'est la définition des ip du réseau local ; tu es sur que iptables accepte cette notation ?
 
normalement, c'est -s adresse_ip/masque_sous_reseau
 
et là, j'ai l'impression que tu définis une plage d'ip (ce qui serais plutôt l'option range mais je crois pas qu'elle soit dispos dans toute les version d'iptable)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 11-05-2004 à 17:26:14    

hmm tu as raison faudrait remplacer par ca je pense : -m iprange --src-range
 
je corrige dans le message plus haut
 
 
Autrement mes port sont bien fermés avec le script ?


Message édité par aopenrix le 11-05-2004 à 17:27:24
Reply

Marsh Posté le 11-05-2004 à 17:30:34    

en entrée oui (du fait du DROP)
 
en sortie non
 
sinon, n'aurais tu pas intérêt à remplacer NEW, ESTABLISHED,RELATED par !INVALID ?


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 11-05-2004 à 17:34:35    

Mjules a écrit :

en entrée oui (du fait du DROP)
 
en sortie non
 
sinon, n'aurais tu pas intérêt à remplacer NEW, ESTABLISHED,RELATED par !INVALID ?


 
Je dois t'avouer ne pas connaitre la difference entre les deux (je suis débutant avec iptables)
 
Autrement penses tu que mon systeme de routage en fonction de l'ip va me permettre de router sur la freebox 1 ou 2 correctement ?

Reply

Marsh Posté le 11-05-2004 à 19:57:13    

man iptables ;)
 

Citation :

--state état
              Ici état est une liste séparée par des  virgules  des  états  de
              connexions  que  l'on  veut  détecter.  Les états possibles sont
              INVALID signifiant que le paquet n'est associé avec aucune  con-
              nexion  connue, ESTABLISHED signifiant que le paquet est associé
              avec une connexion qui a vu passer des  paquets  dans  les  deux
              sens, NEW signifiant que le paquet a initié une nouvelle connex-
              ion, ou sinon qu'il est associé avec une connexion qui  n'a  pas
              vu  passer  de paquets dans les deux sens, et RELATED signifiant
              que le paquet initie une  nouvelle  connexion,  mais  qu'il  est
              associé  avec  une  connexion  existante,  comme un transfert de
              données FTP, ou une erreur ICMP.


 
le ! devant l'option signifie "tout ce qui ne suit pas cette option" : !INVALID est donc égal à NEW,ESTABLISHED,RELATED
 
ça améliore juste la lisibilité


Message édité par Mjules le 11-05-2004 à 19:57:27

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed