Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Petite question sur IPTables.
Envoyé par: creativehazard

Bonjour à toutes et à tous,

Chez moi, une passerelle debian fait le lien entre internet (eth1) et mon LAN (eth0).
J'ai actuellement comme règles IPTables (Entre autres):

[... Je flush toutes les tables ...]

# Ensuite je met tout à drop, sauf l'output que j'accepte:
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP

# Normalement pas de prob ici non plus, vu que l'IN est à DROP précédemment.
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT

# J'accepte tout vers / de localhost:
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo

# Idem pour mon LAN:
iptables -A INPUT -j ACCEPT -i eth0
iptables -A OUTPUT -j ACCEPT -o eth0

# J'accepte tout ce qui sort vers eth1...
iptables -A OUTPUT -j ACCEPT -o eth1
# ... ainsi que les forwards (Pour le DNAT sur les serveurs de mon LAN):
iptables -A FORWARD -j ACCEPT

# Je masquerade eth0 derière eth1:
iptables -A POSTROUTING -j MASQUERADE -t nat -o eth1

[ ... A ce stade, un test de l'exterieur montre tous mes ports fermés, la passerelle peut accéder au net et le fonctionnement depuis mon LAN est parfait aussi ... ]

# J'ajoute ensuite divers serveurs qui tournent sur la passerelle:
iptables -A INPUT -j ACCEPT -i eth1 -p tcp -m multiport --dport 20,21,80,443 -m state --state NEW,ESTABLISHED,RELATED

# Pour finir, j'ajoute un petit DNAT pour pouvoir prendre la machine
# en local "192.168.2.1" port 5900 en VNC depuis l'exterieur en demandant
# "Mon_IP_PUblique:5901":
iptables -A PREROUTING -j DNAT -t nat -i eth1 -p tcp --dport 5901 --to-destination 192.168.2.1:5900

Bon jusque là tout va bien, maintenant j'aimerais que tout le reste des connexions entrantes soient DNATées vers l'ip 192.168.0.110 dans mon LAN, mais sans être obligé de faire un multiport en tapant à la main des ranges de ports compliqués.
Là ça donnerait:
iptables -A PREROUTING -j DNAT -t nat -i eth1 -p tcp -m multiport --dport 1:19,22:79,81:442,444:5900,5902:65535 --to-destination 192.168.0.110

Le problème, les exemples de ports que j'ai mis sur ce post sont très (très très très) simplifiés... J'ai quelque chose comme 25 ports ouverts, DNATés, etc, j'en ajoutte assez régulièrement, et je voudrais donc éviter d'avoir à chaque fois à me taper les range de ports pour le dernier DNAT vers 0.110... En gros, je voudrais faire un DMZ sur 0.110 sauf pour les ports de l'exemple.

Est il possible de faire ça?

Merci!
A bientot,
Pierre.

Poste le Thursday 19 October 2006 16:05:39
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: Zuranox

Pas tout pigé winking smiley

Poste le Thursday 19 October 2006 17:35:59
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: creativehazard

Re,

lol euuuh je peux pas être beaucoup plus clair smiling smiley
Prenons le problème autrement:

Comment fait t'on avec IPTables, pour faire un DMZ *sauf* sur certains ports?
Voilà smiling smiley

Je veux que l'IP 192.168.0.110 reçoice tout ce qui vient de l'exterieur sauf quelques ports spécifiés avant.

Merci!
A bientot,
Pierre.

Poste le Thursday 19 October 2006 22:57:12
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: Zuranox

En effet c'est plus clair mais j'ai pas la réponse actuellement winking smiley

Poste le Friday 20 October 2006 10:23:15
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: Zuranox

Peut etre une idée les regles sont appliquées dans l'ordre de leur déclaration.

Donc positionne les regles pour tes ports spécifiques, puis en derniere regles met la regle qui redirige vers ta DMZ 192.168.0.110.

Ainsi un paquet qui "entre" sur iptables, s'il correspond a une regle spécifique est traité, sinon passe a la suivante jusqu'a ta regle de redirection.

Je suis pas sur a 100% de ce que j'avance mais il me semble en tous cas que ca marcherait.



Poste le Friday 20 October 2006 10:26:02
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: lolotux

iptables -A PREROUTING -j DNAT -t nat -i eth1 -p tcp -m multiport --dport ! 1:19,22:79,81:442,444:5900,5902:65535 --to-destination 192.168.0.110

Le ! devant les ranges...

Software is like sex !
It's better when it's Free !

Poste le Friday 20 October 2006 23:51:22
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: chromosome

Bon, je comprends pas l'interet, mais voici quelques infos :

- C'est UNE DMZ et pas UN, DMZ = Zone démilitarisée, donc feminin
- Tu peux effectivement mettre des regles de DROP avant celle d'ACCEPT et/ou DNAT (la table nat permet aussi de faire des DROP ou REJECT au lieu de simplement des MASQUERADE, SNAT et DNAT), tu peux aussi mettre un ! (not), mais plus simplement et pour etre plus clair dans tes regles, pourquoi mettre ca dans une seule rule, tu peux en faire 50 si tu as envie, une ligne par port. PLus clair et plus simple a gerer.

Poste le Saturday 21 October 2006 10:03:29
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: creativehazard

Merci pour vos réponses,

Alors:
- Zuranox: Effectivement c'est ce que je pensais, le souci c'est que si j'ajoute comme dernière règle un DNAT sur ma DMZ, ça prend la main sur tout le reste et tous mes ports locaux précédemment ouverts sont DNATés vers 192.168.0.110... Tout simplement parceque je pense que DNATer revient à ACCEPTer puis nat.
- lolotux: Bien vu, j'ai fait une coquille en créant mon exemple smiling smiley
- chromosome: Je dis un DMZ: si j'avais dit "ZD" (Zone Démilitarisée), j'aurais certainemnt parlé au féminin, or je dis DMZ, en anglais pas de genre. Toutefois, j'ai pas envie de me friter pour une bétise, alors allons y, "ma DMZ".

Le but du jeu est vraiment de simplifier la dernière ligne à une seule ligne, je t'explique la raison:
Ma copine est ammenée à ajouter des rêgles dans mon fichier de règles de temps à autres. J'ai pas envie de lui expliquer que si elle rajoute le port 6000, il faut ajouter à la DMZ la rêgle correspondante, en l'occurence il faudrait qu'elle ajoute port_précédent-1:5999,6001:port_suivant-1.Tu vois? smiling smiley Donc j'imagine qu'on me demandera "Mais pourquoi la machine en DMZ aurait besoin de tous ces ports?!". C'est une "machine" dont je ne controle pas l'OS et donc pas la config réseau, et qui ouvre des ports différents en fonction du jeu inserré. C'est une console de jeu Nintendo :p Il faut donc que quand un joueur essaye de se connecter chez moi, à l'exclusion des ports utilisés par la passerelle / les "vraies" machines locales, ces requetes soient dirigées vers la console de jeu.

Bon en tout cas, je continue mes recherches.
Actuellement c'est la réponse de chromosome qui s'approche de ce que je veux. Ca serait qu'à chaque fois qu'on ajoute un port à accepter / dnater, on ajoute le même dans la rêgle de la DMZ avec "NOT" (!) je suis con de pas y avoir pensé...

Merci!
A bientot,
Pierre

Poste le Sunday 22 October 2006 14:51:57
Répondre     Citer    
Re: Petite question sur IPTables.
Envoyé par: chromosome

Sinon pourquoi faire ca au niveau des regles NAT et pas simplement sur la FORWARD ?
Donc tu DNAT tout vers cette machine, et au niveau des FORWARD tu n'autorise que les ports port necessaires.

Poste le Sunday 22 October 2006 17:39:44
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Petite question sur IPTables.
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons