Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
889 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [iptables] : j'pète un cable !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[iptables] : j'pète un cable !

n°270955
Lockness
Posté le 31-05-2003 à 14:24:26  profilanswer
 

Bonjour tout le monde,
 
Je suis entrain de monter un firewall via iptables. En gros ça donne :
 
http://wordpad.free.fr/reseau-little.jpg
Il y a donc du NAT, de sorte que les PC du LAN puisse avoir accès au web, aux port 20 et 21, ..etc.
 
Le problème est que :
1) Mon script iptables ne marche pas de tout :( (y'a rien qui est filtré)
2) Lorsque je l'éxécute, j'ai l'impression que la configuration d'iptables est "écrasée" quelques minutes plus tard.
 
Voici mon script qui active les règles iptables :
www.chez.com/lockness/linux/iptables_regles.txt
 
Concernant le second problème : une fois mon script lancé et un iptables -L -v, j'obtiens bel et bien la bonne configuration (Chain client (22 references) et Chain serveur (2 refrences)), mais quelques minutes plus tard j'obtiens ça (pour un iptables -L -v) :
http://www.chez.com/lockness/linux [...] moinsv.txt
 
Quelqu'un peut-il m'aider car là je commence sérieusement à péter un cable ! ça me rend fou ce iptables :-/
Une solution ?


Message édité par Lockness le 31-05-2003 à 23:00:49
mood
Publicité
Posté le 31-05-2003 à 14:24:26  profilanswer
 

n°270991
ipnoz
Sapé comme jamais !
Posté le 31-05-2003 à 15:52:41  profilanswer
 

Lockness a écrit :

Bonjour tout le monde,
 
Je suis entrain de monter un firewall via iptables. En gros ça donne :
 
INTERNET-------------ppp0-[ROUTEUR_DEBIAN]-eth0-----------Reseau local
 
Il y a donc du NAT, de sorte que les PC du LAN puisse avoir accès au web, aux port 20 et 21, ..etc.
 
Le problème est que :
1) Mon script iptables ne marche pas de tout :( (y'a rien qui est filtré)
2) Lorsque je l'éxécute, j'ai l'impression que la configuration d'iptables est "écrasée" quelques minutes plus tard.
 
Voici mon script qui active les règles iptables :
www.chez.com/lockness/linux/iptables_regles.sh
 
Concernant le second problème : une fois mon script lancé et un iptables -L -v, j'obtiens bel et bien la bonne configuration (Chain client (22 references) et Chain serveur (2 refrences)), mais quelques minutes plus tard j'obtiens ça (pour un iptables -L -v) :
http://www.chez.com/lockness/linux [...] moinsv.txt
 
Quelqu'un peut-il m'aider car là je commence sérieusement à péter un cable ! ça me rend fou ce iptables :-/
Une solution ?


 
y'a une erreur pour atteindre ton script.
 
tiens une url pour generer un script iptables pour une passerelle du type que tu decris : http://morizot.net/firewall/gen/index.php
 
addapte le a tes besoins .

n°271040
Lockness
Posté le 31-05-2003 à 17:17:30  profilanswer
 

Merci pour le lien mais malheureusement cela ne m'explique pas pourquoi les règles iptables sont reinitialisées alors que ne le demande pas... :( Spécifique à la Debian ?
(note : des règles sont exécutées au démarrage par /etc/init.d/networking mais ce script n'est utilisé qu'au bout, et pas de manière périodique comme on pourrait le voir dans une cronttab par ex.)

n°271061
nikosaka
Posté le 31-05-2003 à 18:09:42  profilanswer
 

Lockness a écrit :

Merci pour le lien mais malheureusement cela ne m'explique pas pourquoi les règles iptables sont reinitialisées alors que ne le demande pas... :( Spécifique à la Debian ?
(note : des règles sont exécutées au démarrage par /etc/init.d/networking mais ce script n'est utilisé qu'au bout, et pas de manière périodique comme on pourrait le voir dans une cronttab par ex.)


 :non: il n'y a pas de règles iptables dans ce script, juste quelques protections contre le spoofing et l'activation du routage des paquets


Message édité par nikosaka le 31-05-2003 à 18:10:01
n°271085
Lockness
Posté le 31-05-2003 à 19:10:51  profilanswer
 

Citation :

juste quelques protections contre le spoofing et l'activation du routage des paquets


 
Hum... qd ça commence par iptables -A... etc : si c'est pas des règles iptables ça : je me fais moine  :) !

n°271184
Lockness
Posté le 31-05-2003 à 23:44:04  profilanswer
 

up !
Please help  :(  :( ...

n°271190
Nis+
Posté le 31-05-2003 à 23:58:10  profilanswer
 

Tu as un probleme avec le "-sport $port" ici :

Code :
  1. # On part du principe qu'il n'y a pas de serveur sur les ordinateurs du LAN.
  2. # Les connexions NAISSANTES leur étant destinées sont donc rejetées
  3. for port in $PORTS_TCP_CLIENT; do
  4.   $iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -p tcp \
  5.   --sport $port --dport $port -j client
  6.   $iptables -A FORWARD -o eth0 -d 192.168.0.0/24 -p tcp \
  7.   --sport $port --dport $port -j client
  8. done
  9. for port in $PORTS_UDP_CLIENT; do
  10.   $iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -p udp \
  11.   --sport $port --dport $port -j client
  12.   $iptables -A FORWARD -o eth0 -d 192.168.0.0/24 -p udp \
  13.   --sport $port --dport $port -j client
  14. done


Le client utilise des ports variables pour sortir (il n'utilise pas le port de sortie 80 pour aller sur un site http).
A mon avis il faut enlever ce paramtre de ces 4 lignes.
 
Je pense aussi que les lignes avec "-o eth0" ne sont pas necessaires.
 
Edit : je sais pas si j'ai été assez clair, moi je metrais ca à la place :

Code :
  1. ]# On part du principe qu'il n'y a pas de serveur sur les ordinateurs du LAN.
  2. # Les connexions NAISSANTES leur étant destinées sont donc rejetées
  3. for port in $PORTS_TCP_CLIENT; do
  4.   $iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -p tcp \
  5.   --dport $port -j client
  6. done
  7. for port in $PORTS_UDP_CLIENT; do
  8.   $iptables -A FORWARD -i eth0 -s 192.168.0.0/24 -p udp \
  9.   --dport $port -j client
  10. done


fin edit.
 
Et accessoirement tu peux retirer les lignes INPUT ici :

Code :
  1. ##
  2. ## Services pour lesquels on est que "client"
  3. ##
  4. for port in $PORTS_TCP_CLIENT; do
  5.   $iptables -A INPUT -i ppp0 -p tcp --sport $port -j client
  6.   $iptables -A OUTPUT -o ppp0 -p tcp --dport $port -j client ;done
  7. for port in $PORTS_UDP_CLIENT; do
  8.   $iptables -A INPUT -i ppp0 -p udp --sport $port -j client
  9.   $iptables -A OUTPUT -o ppp0 -p udp --dport $port -j client ;done


vu que tu acceptes les connections ESTABLISHED et RELATED.


Message édité par Nis+ le 01-06-2003 à 00:04:05
n°271196
Lockness
Posté le 01-06-2003 à 00:18:24  profilanswer
 

En effet, pour le FORWARD tu as raison. Par contre, pour le INPUT je ne comprends pas pourquoi tu me mets ça... (je ne veux accepter que certaines ports (donc services))
 
EDIT :
Faut-il que j'établisse les règles du FORWARD plutot par rapport à eth0 ou par rapport à ppp0 ?
 
D'autre part, si l'attribution des ports source est aléatoire (principe du NAT) : dois-je accepter tout paquet FORWARDé depuis n'importe que port pour qu'il puisse arriver à mes ordis du LAN ?


Message édité par Lockness le 01-06-2003 à 00:24:33
n°271207
Nis+
Posté le 01-06-2003 à 01:11:47  profilanswer
 

Pour le INPUT:
1/ les services sont sur le serveur internet donc les ports correspondent aux ports de destination et tu ne peux pas connaitre le port source à l'avance sur ton ordinateur (dans le sens sortant <=> envoie de la requete <=> OUTPUT)
2/ Pour le retour (serveur>ton ordi) tu connais le port source mais pas celui de destination mais la communication est deja etablie.
Donc j'en arrive à ca :

Code :
  1. #1/ pour la sortie
  2. iptables -A OUTPUT -o ppp0 -p tcp --dport $ports -j ACCEPT
  3. iptables -A OUTPUT -o ppp0 -p udp --dport $ports -j ACCEPT
  4. #2/ pour le retour
  5. iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT


(a adapter, j'ai du mal avec -A client / -j client)
le reste est forcement bloquer par la regle par default
 
pour le forward, je regarde demain, j'ai peur d'avoir dis des betises.
Redit: et puis non c'est pas necessaire
Edit: plus restrictif


Message édité par Nis+ le 01-06-2003 à 01:15:34
n°271217
HJ
Posté le 01-06-2003 à 02:46:14  profilanswer
 

Non y a rien de spécifique a debian, chez moi ça n'ecrase pas "périodiquement" comme tu le decris.
 
Pour la l'icmp (ping) etant donné que en Output tu as new, tu peux envoyé un ping, tu n'as donc pas besoin des lignes que tu as mises
 


#######################
# REGLES DE CONNEXION #
#######################
 
# Connexions etablies et relatives acceptees
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT


 
Par contre comme il a été dis, certaines regles clientes sont inutiles, web (port source > 1024) ftp (port source > 1024) etc
 

mood
Publicité
Posté le 01-06-2003 à 02:46:14  profilanswer
 

n°271223
Lockness
Posté le 01-06-2003 à 04:14:01  profilanswer
 

Merci pour ses conseils mais finalement j'ai refait le script. Ca a l'air de marcher. Va falloir que je fasse deux trois tests pour valider et c bon.
 
Et avec mon nouveau script, plus de pb de "configuration volatile". Je diagnostique ça comme un pb de ma configuration initiale (bien que c'est qd meme très strange...). Mais bon, now, plus de pb, il me conserver bien la config que je lui donne.
Faut dire que j'ai fait du ménage dans /etc/init.d et /etc/alternatives :)
 
Pour les curieux, mon script (qui a l'air de marcher) est ici :
www.chez.com/lockness/linux/iptables_start.sh.txt
 
Note : pour le FORWARD / ports > 1024 je l'ai pas encore implémenter mais ça va venir.
 
HJ : que ce soit du ftp, du http, du trucmuche ou du pornop (Porno Protocole : dédicace à HJ :D !) : ça sera tjs un port source > 1024 en NAT. Je veux dire par là que c'est pas spécifique de certains protocoles mais du principe du NAT lui-même. Si une erreur s'est glissée ds ce que j'ai dit, n'hésitez pas à m'en faire part !


Message édité par Lockness le 01-06-2003 à 04:15:47
n°271224
Lockness
Posté le 01-06-2003 à 04:24:57  profilanswer
 

Citation :

1/ les services sont sur le serveur internet donc les ports correspondent aux ports de destination et tu ne peux pas connaitre le port source à l'avance sur ton ordinateur (dans le sens sortant <=> envoie de la requete <=> OUTPUT)


 
Ne confondrais-tu pas avec le NAT ? les ports sources (LAN -> INTERNET) ne sont changés (il me semble) qu'en cas de NAT. Je veux dire par là que le routeur lui-même si il doit faire une requete lambda ne vas pas modifier son port source vers ]1024;65536[, il va garder le port source originel.
Par contre, c'est pour le NAT, c'est-à-dire pour les ordis qui passent par le routeur pour envoyer leur requête, que les ports sources sont changés (afin de différencier à qui apparetenait telle et telle requete lors de la redirection des réponses).
Enfin,disons que moi je le comprends comme ça  :)  :sol: !

n°271275
Nis+
Posté le 01-06-2003 à 12:41:30  profilanswer
 

Je persiste.
Le port du utiliseé comme source par le client n'est pas forcement le port de destination sur le serveur.
 
Voila, le netstat d'une connection ssh en reseau local (donc sans nat) :

Code :
  1. tcp        0     20 10.0.0.5:ssh            10.0.0.3:1259           ESTABLISHED


Sur le serveur, le port est bien ssh (22) mais sur le client le port est 1259 dans ce cas là et change quand on fais une nouvelle connection (exemple qq minutes apres j'ai eu 1271).
 
Il en va de même pour acceder à un serveur http, je pense aussi pour le ftp. Le reste, je sais pas trop mais je vois pas pourquoi ca ne serait pas le même principe.
 
Et puis bravo pour ton script ;) J'ai pas regarder mais vu qu'il marche c'est bien


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  réseaux et sécurité

  [iptables] : j'pète un cable !

 

Sujets relatifs
module iptables ip_string quelqu'un connait ?????Problème avec les logs iptables
comment faire du NAT avec iptables ?[Résolu] Probleme Openoffice et firewall iptables
syslog-ng et iptables - besoin d'éclaircissement [[résolu]]pb avec iptables et des chaines personnalisees
[ulogd] log iptables sur mysql! [howto inside][debian]Iptables & Log | Résolu ( remplacement sysklog par syslog-ng )
iptables et la comande --dport[kdm-mdk] j'ai tout pété [va être ok par réinstall :-( ]
Plus de sujets relatifs à : [iptables] : j'pète un cable !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR