Config Iptables & putty

Bonjour

Désolé pour ce titre qui n’est peut-être pas assez explicite mais je vais essayer de détailler mon problème au maximum.

Malgré mes multiples recherches sur internet (tutoriaux, forums et autres), je n’ai pas trouvé les modifications à apporter à mon script iptables pour:

Accéder à la debian non passerelle (dnp) depuis mon poste sous win$

-Pouvez vous m’indiquer quelles lignes je dois modifier ou ajouter au script iptables?
-Ou dans le cas où le script est correcte, que dois-je changer dans putty (sur mon pc sous win) pour accéder à la dnp?

Voici quelques informations complémentaires:

/etc/network/interfaces de la passerelle :[code]# This file describes the network interfaces available on your system

and how to activate them. For more information, see interfaces(5).

The loopback network interface

auto lo
iface lo inet loopback

Activation de la fonction de forwarding IP au niveau du noyau

    up echo "1" > /proc/sys/net/ipv4/ip_forward

The primary network interface

auto eth0
iface eth0 inet static
address 10.0.0.155
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.240
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers mesdns
dns-search phoenix.skynet.com

The secondary network interface

auto eth1
iface eth1 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 10.0.0.240[/code]
/etc/network/interfaces de la dnp :

[code]# This file describes the network interfaces available on your system

and how to activate them. For more information, see interfaces(5).

The loopback network interface

auto lo
iface lo inet loopback

The primary network interface

auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.2
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers les dns du FAI
dns-search madebian[/code]
Script iptables inspiré de via.ecp.fr/~alexis/formation-linux/ :

[code]#!/bin/sh

/etc/network/if-pre-up.d/iptables-start

Script qui démarre les règles de filtrage « iptables »

Formation Debian GNU/Linux par Alexis de Lattre

http://www.via.ecp.fr/~alexis/formation-linux/

REMISE à ZERO des règles de filtrage

iptables -F
iptables -t nat -F

DEBUT des « politiques par défaut »

Je veux que les connexions entrantes soient bloquées par défaut

iptables -P INPUT DROP

Je veux que les connexions destinées à être forwardées

soient acceptées par défaut

iptables -P FORWARD ACCEPT

Je veux que les connexions sortantes soient acceptées par défaut

iptables -P OUTPUT ACCEPT

FIN des « politiques par défaut »

DEBUT des règles de filtrage

Pas de filtrage sur l’interface de « loopback »

iptables -A INPUT -i lo -j ACCEPT

J’accepte le protocole ICMP (i.e. le « ping »)

iptables -A INPUT -p icmp -j ACCEPT

J’accepte le protocole IGMP (pour le multicast)

iptables -A INPUT -p igmp -j ACCEPT

J’accepte les packets entrants relatifs à des connexions déjà établies

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Décommentez la ligne suivante pour que le serveur SSH éventuel

soit joignable de l’extérieur

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Décommentez les deux lignes suivantes pour que le serveur de DNS éventuel

soit joignable de l’extérieur

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

Décommentez la ligne suivante pour que le serveur Web éventuel

soit joignable de l’extérieur

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

La règle par défaut pour la chaine INPUT devient « REJECT »

(il n’est pas possible de mettre REJECT comme politique par défaut)

iptables -A INPUT -j REJECT

FIN des règles de filtrage

DEBUT des règles pour le partage de connexion (i.e. le NAT)

Décommentez la ligne suivante pour que le système fasse office de

« serveur NAT » et remplacez « eth0 » par le nom de l’interface connectée

à Internet

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

FIN des règles pour le partage de connexion (i.e. le NAT)

DEBUT des règles de « port forwarding »

Décommentez la ligne suivante pour que les requêtes TCP reçues sur

le port 80 de l’interface eth0 soient forwardées à la machine dont

l’IP est 192.168.0.1 sur son port 80 (la réponse à la requête sera

forwardée au client)

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1

FIN des règles de « port forwarding »[/code]

Avec le script iptables qui précède, voici le bilan de putty:

Bilan des pings:

En espérant avoir été le plus explicite possible.
Je vous remercie d’avance

Cyberfrk

Bonsoir,

Je n’ai pas tres bien compris ton probleme mais pour iptables tu peux avoir de plus ample explications et une bonne configuration sur forum.debian-fr.org/viewtopic.php?t=1901

Sinon que te renvois les commandes route et iptables-save

Voici ce que me donne route -n depuis ma passerelle:

Table de routage IP du noyau Destination Passerelle Genmask Indic Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 10.0.0.240 0.0.0.0 UG 0 0 0 eth0
Iptables-save me donne cela:

[code]# Generated by iptables-save v1.2.11 on Wed Jun 14 15:32:23 2006
*nat
:PREROUTING ACCEPT [702:84602]
:POSTROUTING ACCEPT [4:336]
:OUTPUT ACCEPT [39:2590]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

Completed on Wed Jun 14 15:32:23 2006

Generated by iptables-save v1.2.11 on Wed Jun 14 15:32:23 2006

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [245:20668]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p igmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
COMMIT

Completed on Wed Jun 14 15:32:23 2006[/code]

une éventualité, peut-etre tout simplement que windows ne sait pas quelle route prendre pour joindre 192.168.0.X ?

as-tu regardé la table de routage (route print) de ton poste win$ ?
quels sont les messages d’erreur pour les pings qui ne fontionnent pas ?

:mrgreen: echo 1 >/proc/sys/net/ipv4/ip_forward pour activer la passerelle etecho 0 >/proc/sys/net/ipv4/ip_forwardpour la desactiver devraient suffire.

route print donne cela:

Concernant les messages d’erreurs lors des pings depuis win$ (en 10.0.0.111) vers 192.168.0.1 ou 192.168.0.2, j’obtiens un délai d’attente de la demande dépassé.

MattOtop, je l’ai déjà mis dans /etc/network/interfaces :wink:

# Activation de la fonction de forwarding IP au niveau du noyau up echo "1" > /proc/sys/net/ipv4/ip_forward

Si un âme charitable veut se mettre en contacte avec moi via msn afin d’effectuer des manips. Pas de problème.

Merci encore.

hum, ca ressemble bien à ce que je pensais, ton windows “ne sait pas” joindre le réseau 192.168.1.0/24 en passant par 10.0.0.111, il envois tout ce qui n’est pas 10.0.0.0/24 sur 10.0.0.240.

ajoute une route sur ton client windows pour qu’il sache que 192.168.1.0/24 est accessible via 10.0.0.111

ca devrait deja etre mieux AMA.

Twistophe, j’ai executé la commande suivante sur win$
route ADD 192.168.0.0 MASK 255.255.255.0 10.0.0.111

Et effectivement, depuis win$, le ping 192.168.0.2 ne pose aucun problème mais il était impossible de pinger la passerelle.
Problème de ping résolu après avoir ajouté la ligne suivante à mon script iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2

Concernant Putty, à présent j’arrive à accéder depuis win$ à 192.168.0.2 mais toujours pas à 192.168.0.1…mais ça avance!

et ba maintenant, peux tu nous donner les route -n de 192.168.0.1 ? je pense que c’est sensiblement le meme probleme.

la route doit etre connu des 2 parties. la 1ère machine peut savoir joindre la 2ème, mais si la 2ème ne sait pas joindre la 1ère, elle ne peut pas lui répondre et donc, toute tentative de connexion se termine par un “délais de réponse dépassé”.

sur ta dnp devrais résoudre ton pb.

Bonjour Twistophe (et les autres aussi),

j’ai fait:

Mais avec Putty, toujours impossible de joindre ma dnp (192.168.0.1) depuis win$.

Depuis win$, ping 192.168.0.1 me donne toujours un délai d’attente de la demande dépassé. :frowning:

J’ai lu en diagonale le post mais question con ca ne viendrais pas du firewall de windows par hasard qui bloque l’envoi?

A priori non puisque le firewall de win$ est désactivé.

De toute façon, comme précisé plus haut, j’arrive à avoir la main (putty) depuis win$ vers la passerelle sous debian.

mais dit moi:

  • as tu essayé de loguer (iptables -j LOG --log-prefix="…" ) ce qui arrive sur le port 22 de ta dnp ?
  • as tu essayé de loguer le cheminement au travers de la passerelle ?
  • as tu essayé de masquerader ton client windows quand il va vers ta dnp ?
    ( iptables -t nat -A PREROUTING -i eth0 -o eth1 -j MASQUERADE )
  • ou au contraire d’eviter le masq quand tes clients en 192.168.0 accèdent à un 10.0.0 ?
    (en mettant une règle ACCEPT à destination des 192.168.0.0/24 avant le maquerade)

N’ayant toujours pas réussi à résoudre mon problème, j’ai refait le schéma au cas où ce serait plus clair avec.

Quelle régles iptables dois-je ajouter à mon fichier pour rendre possible putty de winxp (10.0.0.111) vers debian non passerelle (eth0:192.168.0.1)?

Merci encore et toujours.

[quote=“MattOTop”]mais dit moi:

  • as tu essayé de loguer (iptables -j LOG --log-prefix="…" ) ce qui arrive sur le port 22 de ta dnp ?
  • as tu essayé de loguer le cheminement au travers de la passerelle ?
  • as tu essayé de masquerader ton client windows quand il va vers ta dnp ?
    ( iptables -t nat -A PREROUTING -i eth0 -o eth1 -j MASQUERADE )
  • ou au contraire d’eviter le masq quand tes clients en 192.168.0 accèdent à un 10.0.0 ?
    (en mettant une règle ACCEPT à destination des 192.168.0.0/24 avant le maquerade)[/quote]
    non ? rien pas interressant comme questions ?

Non non, le problème n’est pas sur l’interet de tes questions MattOtop mais c’est jusque étant novice, j’ai pas réussi à appliquer ce que tu me conseillais…

Cependant, j’ai réussi à résoudre mon problème.

La règle à mettre est :

A présent dans putty:

  • je met l’ip de la passerelle (192.168.0.2),port 22 et je peux prendre la main sur ma passerelle.
  • je met l’ip de la passerelle (192.168.0.2), port 222 et je peux prendre la main sur la debiannonpasserelle.

J’aurais preferé mettre directement 192.168.0.1…
A tout hasard, si quelqu’un trouve une solution…merci à lui

Merci à tout le monde.
Franck

OK, donc c’est bien ce que je pensais:
c’est ton masquerading sur la DP qui bloque.
Pourquoi as tu mis ce masquerading sur ta passerelle ?
A priori, comme tes deux zones sont privées, et que tu les controles, tu n’en as pas besoin.
Si tu sais pourquoi, et que tu veux abolument garder le MASQUERADE quand même, alors fais une règle avant pour ne pas masquerader quand tu va sur 192.168.0/24 (ou 192.168.0.1/32, si tu ne souhaite faire fonctionner ssh que vers ta DMP).