View previous topic :: View next topic |
Author |
Message |
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Sun Jul 10, 2005 1:55 pm Post subject: [iptables] ssh en réseau local (résolu) |
|
|
Salut à tous!
J'ai installé un routeur à partir d'une vieille bécane sur lequel j'utilise iptables comme firewall, pour le partage de connexion...
Tout fonctionne convenablement, grâce aux scripts que j'ai pu trouver sur le forum et dans la doc gentoo, dont je me suis inspiré.
J'aimerais en revanche pouvoir faire en sorte que n'importe quel PC du réseau local puisse se connecter via ssh sur n'importe quel autre PC du réseau.
Cependant mes connaissances sont très maigres en matière de réseau et je n'arrive pas à écrire de règle appropriée.
Voici quelques détails sur mon installation:
Le réseau se compose de 3 pc.
Le 1° fait office de routeur, partage la connection internet et est connecté au net via eth0, il dispose de quatre interfaces eth1, eth2, eth3 et eth4 sur lesquelles peuvent donc se connecter 4 PC.
Pour l'instant les 2 PC de mon réseau local se connectent sur eth1 et eth2.
Code: | root ~ # ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0A:5E:54:86:78
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4630 errors:0 dropped:0 overruns:0 frame:0
TX packets:6712 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:510989 (499.0 Kb) TX bytes:7178037 (6.8 Mb)
Interrupt:11 Base address:0xdc00
root ~ # ifconfig eth2
eth2 Link encap:Ethernet HWaddr 00:08:54:3D:BC:AA
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5700 errors:0 dropped:0 overruns:0 frame:0
TX packets:5460 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:790206 (771.6 Kb) TX bytes:3679702 (3.5 Mb)
Interrupt:9 Base address:0xe800 |
Et concernant le ssh, voici ce que j'ai mis dans mon script iptables (tiré du script proposé par profy):
Code: | # Autoriser l'acces au serveur SSH depuis l'exterieur
iptables -A INPUT -p TCP --dport ssh -i eth0 -j ACCEPT
# SSH (client)
iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# SSH serveur <-> internet (client)
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# SSH serveur <-> internet (serveur)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH serveur <-> reseau local (client)
iptables -A INPUT -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# SSH reseau local(client) <-> internet(serveur)
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth4 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH serveur(serveur) <-> reseau local (client)
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT |
Quelqu'un peut-il m'aider un peu?
Edit: J'oubliais, je précise ce qui marche pour l'instant:
1- le routeur peut se connecter sans problèmes aux 2 autres PC
2- chacun des 2 autres PC peuvent se connecter au routeur
Mais en revanche je n'arrive pas à faire connecter entre eux les 2 PC
Last edited by Adrien on Tue Jul 12, 2005 9:28 pm; edited 1 time in total |
|
Back to top |
|
|
Thesee Tux's lil' helper
Joined: 02 Jun 2004 Posts: 138 Location: Belgium
|
Posted: Sun Jul 10, 2005 5:50 pm Post subject: |
|
|
Je ne suis pas sur de mon coup, mais il ne te faudrait pas des regles du genre:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT |
pour pouvoir forwarder les requetes venant de ton eth1 (PC1) vers eth2 (PC2)?
HTH _________________ How does a UNIX expert have sex?
Unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Sun Jul 10, 2005 7:12 pm Post subject: |
|
|
Thesee wrote: | Je ne suis pas sur de mon coup, mais il ne te faudrait pas des regles du genre:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT |
pour pouvoir forwarder les requetes venant de ton eth1 (PC1) vers eth2 (PC2)?
HTH |
Ben, c'est marrant parce que intuitivement, c'est exactement les règles que j'ai essayé mais ça ne marche pas... |
|
Back to top |
|
|
Thesee Tux's lil' helper
Joined: 02 Jun 2004 Posts: 138 Location: Belgium
|
Posted: Sun Jul 10, 2005 7:33 pm Post subject: |
|
|
Je ne suis pas non plus un pro diptables, j'ai aussi mis en place ma passerelle/firewall/serveur et depuis que c'est la, je ny touche que parsimonieusement
En essayant le PREROUTING peut-etre?
Code: | iptables -t nat -I PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to 192.168.2.1:22
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -j ACCEPT
|
HTH _________________ How does a UNIX expert have sex?
Unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Sun Jul 10, 2005 7:52 pm Post subject: |
|
|
Thesee wrote: | Je ne suis pas non plus un pro diptables, j'ai aussi mis en place ma passerelle/firewall/serveur et depuis que c'est la, je ny touche que parsimonieusement |
Oui pareil ici, on fait attention à ce qu'on fait!
Thesee wrote: |
Code: | iptables -t nat -I PREROUTING -p tcp -i eth1 --dport 22 -j DNAT --to 192.168.2.1:22
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -j ACCEPT
|
|
Ben non, ça va pas parce que ça me fait retomber sur le routeur, vu que 192.168.2.1 c'est l'interface eth2 sur le routeur...
J'ai essayé en mettant 192.168.2.249 (l'adresse de l'autre PC-workstation) mais ça va pô non plus...
Merci en tout cas de t'intéresser au problème! |
|
Back to top |
|
|
Leander256 l33t
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Sun Jul 10, 2005 8:38 pm Post subject: |
|
|
Thesee wrote: | Je ne suis pas sur de mon coup, mais il ne te faudrait pas des regles du genre:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT |
pour pouvoir forwarder les requetes venant de ton eth1 (PC1) vers eth2 (PC2)?
HTH |
Ça, ça autorise le passage dans un sens, mais il faut que l'ordinateur ayant le serveur ssh puisse répondre, donc rajouter:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT |
Et là, ça devrait marcher correctement. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Sun Jul 10, 2005 8:46 pm Post subject: |
|
|
Oups!
J'aurais du préciser, quand j'ai fait ma tentative "au feeling" pour les règles ssh, j'avais bien mis les 2 mais ça ne marchait pas.
Quand je dis, j'avais mis les deux, je veux dire que j'avais ajouté ça:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT |
Et donc, ben apparemment, c'est pas ça! |
|
Back to top |
|
|
Thesee Tux's lil' helper
Joined: 02 Jun 2004 Posts: 138 Location: Belgium
|
Posted: Sun Jul 10, 2005 8:50 pm Post subject: |
|
|
Oui, j'avais suppose la 2eme regle, c'etait juste pour l'exemple _________________ How does a UNIX expert have sex?
Unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep. |
|
Back to top |
|
|
Leander256 l33t
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Sun Jul 10, 2005 9:13 pm Post subject: |
|
|
C'est bizarre, dans la catégorie "chezmoiçamarche.com", j'ai deux sous-réseaux à la maison (moi d'un côté, reste de la famille de l'autre), et j'ai ça qui marche très bien:
Code: | iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED -j ACCEPT |
Il doit donc y avoir une petite erreur quelque part dans les commandes trouvées précedemment, parce que si on les généralise un petit peu, ça marche. |
|
Back to top |
|
|
profy Tux's lil' helper
Joined: 08 Jun 2005 Posts: 96 Location: Sophia Antipolis
|
Posted: Sun Jul 10, 2005 10:18 pm Post subject: |
|
|
Regarde les logs pour savoir ce qui bloque. _________________ Plus je connais les hommes, plus j'aime mon pc. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 7:25 am Post subject: |
|
|
profy wrote: | Regarde les logs pour savoir ce qui bloque. |
Bonne idée! J'y avais pas pensé
Est-ce que iptables logge automatiquement? Les logs sont dans /var/log/messages ? (j'peu pas trop voir là tout de suite, car pas de gentoo sous la main) |
|
Back to top |
|
|
profy Tux's lil' helper
Joined: 08 Jun 2005 Posts: 96 Location: Sophia Antipolis
|
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 7:50 am Post subject: |
|
|
Ben je vois que tu parles de : tail -f /var/log/messages
Mais ces lignes sont-elles nécessaires pour qu'iptables logge ou rien avoir ? :
Code: | #on crée la chaine LOG_DROP
iptables -N LOG_DROP
iptables -N LOG_FORWARD_DROP
#on met la cible LOG a LOG_DROP elle est non determinante (une autre cible peut suivre)
iptables -A LOG_DROP -j LOG --log-prefix '[iptables_drop] : '
iptables -A LOG_FORWARD_DROP -j LOG --log-prefix '[iptables_forward_drop] : '
#on definit la cible suivante
iptables -A LOG_DROP -j DROP
iptables -A LOG_FORWARD_DROP -j DROP |
Leander256 wrote: | C'est bizarre, dans la catégorie "chezmoiçamarche.com", j'ai deux sous-réseaux à la maison (moi d'un côté, reste de la famille de l'autre), et j'ai ça qui marche très bien:
Code:
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -m state --state ESTABLISHED -j ACCEPT
Il doit donc y avoir une petite erreur quelque part dans les commandes trouvées précedemment, parce que si on les généralise un petit peu, ça marche. |
Ouaip! Ben je vais quand même réessayer ce soir pour voir, parce qu'avec toutes ces lignes, y'a facilement moyen de se planter... |
|
Back to top |
|
|
profy Tux's lil' helper
Joined: 08 Jun 2005 Posts: 96 Location: Sophia Antipolis
|
Posted: Mon Jul 11, 2005 8:13 am Post subject: |
|
|
Quote: | Mais ces lignes sont-elles nécessaires pour qu'iptables logge ou rien avoir ? : |
Oui elles sont nécessaire elle te permettent de définir qu'il faut logguer avant de dropper, par contre oublie pas de faire un -j LOG_DROP à la fin où un -j FORWARD_DROP pour l'utiliser. _________________ Plus je connais les hommes, plus j'aime mon pc. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 8:26 am Post subject: |
|
|
profy wrote: | Quote: | Mais ces lignes sont-elles nécessaires pour qu'iptables logge ou rien avoir ? : |
Oui elles sont nécessaire elle te permettent de définir qu'il faut logguer avant de dropper, par contre oublie pas de faire un -j LOG_DROP à la fin où un -j FORWARD_DROP pour l'utiliser. |
Bon désolé d'être un peu lourd, mais c'est juste pour que les choses soient claires dans ma tête. Donc si je t'ai bien compris, au lieu de ça:
Code: | iptables -A LOG_DROP -j LOG --log-prefix '[iptables_drop] : '
iptables -A LOG_FORWARD_DROP -j LOG --log-prefix '[iptables_forward_drop] : '
iptables -A LOG_DROP -j DROP
iptables -A LOG_FORWARD_DROP -j DROP |
Je mets ça:
Code: | iptables -A LOG_DROP -j LOG_DROP --log-prefix '[iptables_drop] : '
iptables -A LOG_FORWARD_DROP -j LOG_DROP --log-prefix '[iptables_forward_drop] : '
iptables -A LOG_DROP -j LOG_DROP
iptables -A LOG_FORWARD_DROP -j LOG_DROP |
? |
|
Back to top |
|
|
profy Tux's lil' helper
Joined: 08 Jun 2005 Posts: 96 Location: Sophia Antipolis
|
Posted: Mon Jul 11, 2005 8:40 am Post subject: |
|
|
Code: |
#on crée la chaine LOG_DROP
iptables -N LOG_DROP
iptables -N LOG_FORWARD_DROP
#on met la cible LOG a LOG_DROP elle est non determinante (une autre cible peut suivre)
iptables -A LOG_DROP -j LOG --log-prefix '[iptables_drop] : '
iptables -A LOG_FORWARD_DROP -j LOG --log-prefix '[iptables_forward_drop] : '
#on definit la cible suivante
iptables -A LOG_DROP -j DROP
iptables -A LOG_FORWARD_DROP -j DROP
|
Et ensuite a la fin du script tu droppe tes paquets ainsi :
Code: |
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
iptables -A FORWARD -j LOG_FORWARD_DROP
|
_________________ Plus je connais les hommes, plus j'aime mon pc. |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 8:50 am Post subject: |
|
|
profy wrote: | Et ensuite a la fin du script tu droppe tes paquets ainsi :
Code:
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
iptables -A FORWARD -j LOG_FORWARD_DROP |
Ah oui ok, pas de problème j'ajoute ça à la fin! Bon je vous tiens au courant dès qu'il y a du nouveau! |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 5:11 pm Post subject: |
|
|
Bon j'ai du nouveau, à vrai dire les règles pour le ssh que j'ai tentées marchent sûrement. Le problème c'est que je suis parti dans une mauvaise direction.
En fait: si d'un des deux PC(n'importe lequel) je ping le routeur, ça roule
si du routeur je ping un des 2 PC (n'importe lequel), ça roule aussi
enfin, si avec un PC je tente de pinger l'autre PC, là ça marche pas!
Donc le problème n'est pas au niveau du ssh mais les 2 PC ne peuvent même pas se pinger l'un l'autre.
Je vais voir si je trouve quelque chose au feeling, mais de toute façon, si vous avezdes suggestions, elles sont les bienvenues! |
|
Back to top |
|
|
Leander256 l33t
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Mon Jul 11, 2005 7:06 pm Post subject: |
|
|
Adrien wrote: | Donc le problème n'est pas au niveau du ssh mais les 2 PC ne peuvent même pas se pinger l'un l'autre. |
Le ping c'est un paquet ICMP, un protocole de la couche transport au même titre que TCP et UDP. Il te faut donc rajouter des règles en précisant "-p icmp" pour le protocole. Plutôt compliqué tout ça |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Mon Jul 11, 2005 7:12 pm Post subject: |
|
|
Leander256 wrote: | Adrien wrote: | Donc le problème n'est pas au niveau du ssh mais les 2 PC ne peuvent même pas se pinger l'un l'autre. |
Le ping c'est un paquet ICMP, un protocole de la couche transport au même titre que TCP et UDP. Il te faut donc rajouter des règles en précisant "-p icmp" pour le protocole. Plutôt compliqué tout ça |
grave! Mais si j' ajoute les règles pour les pings et que je laisse les règles ssh que j'ai posté plus haut,le ssh va passer? pasde raison que ça marche à priori!
Y'a pas moyen de coller quelques règles, simplement pour que les PC puissent tous se connecter les uns aux autres indépendemment? |
|
Back to top |
|
|
Leander256 l33t
Joined: 05 Jul 2003 Posts: 910 Location: Singapour
|
Posted: Tue Jul 12, 2005 7:51 am Post subject: |
|
|
Adrien wrote: | Y'a pas moyen de coller quelques règles, simplement pour que les PC puissent tous se connecter les uns aux autres indépendemment? |
Tu peux autoriser le forward pour toutes les interfaces de ton réseau local (ce qui permet de laisser la politique par défaut à DROP):
Code: | iptables -A FORWARD -i eth1 -j ACCEPT
etc. |
Fais attention aussi au fait que l'ordre dans lequel tu rentres les commandes est important, et que quand on bidouille un serveur depuis plusieures heures il y a parfois des règles qui sont en mémoire alors qu'elles ne devraient plus l'être. Et juste en passant, vérifie que les masques de sous-réseau pour chacun de tes ordis soient à 255.255.255.0 |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Tue Jul 12, 2005 8:26 am Post subject: |
|
|
Merci!
Pour l'ordre des commandes faudra que je me creuse un peu la tête, parce que là je vois pas trop.
Tu dis que les règles restent en mémoire, mais si j'efface tout à chaque fois que je relance mon script, ça devrait aller non? Merci en tout cas pour les tuyaux, je vois ça ASAP! |
|
Back to top |
|
|
Piaf Tux's lil' helper
Joined: 03 Aug 2003 Posts: 76 Location: Sophia Antipolis
|
Posted: Tue Jul 12, 2005 9:00 pm Post subject: |
|
|
Salut !
Je vais, si ca ne vous derange pas, un petit peu resumer la situation pour que tout soit plus clair...
Code: |
_/\/\/\/\/\/\/\_
/ Internet \
\_ _/
\/\/\/\/\/\/\/
|
|eth0
___________|__________
| |
| routeur/firewall |
| + sshd |
|______________________|
| | | |
|eth1 |eth2 |eth3 |eth4
|.1 |.1 |.1 |.1
| | | |_____________ 192.168.4
192.168.1 | | |
_______| | |____________________ 192.168.3
| |
| |
| | 192.168.2
| |
|.x |.y
___|___ ___|___
| | | |
| PC 1 | | PC 2 |
| sshd | | sshd |
|_______| |_______|
|
* Tu souhaites que le serveur SSH du routeur soit accessible depuis Internet (1) :
La paire de règles que tu as mis en place convient parfaitement :
Adrien wrote: | Code: |
# SSH serveur <-> internet (serveur)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
|
|
Cependant, la première règle est court-circuitée par cette règle, qui se trouve avant :
Adrien wrote: | Code: |
# Autoriser l'acces au serveur SSH depuis l'exterieur
iptables -A INPUT -p TCP --dport ssh -i eth0 -j ACCEPT
|
|
Cette dernière étant moins precise, il vaudrait mieux la supprimer.
* Visiblement, tu souhaites également autoriser le routeur à se connecter sur les serveurs SSH situés sur Internet (2) :
Adrien wrote: | Code: |
# SSH (client)
iptables -A INPUT -i eth0 --protocol tcp --source-port 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 --protocol tcp --destination-port 22 -m state --state NEW,ESTABLISHED -j ACCEPT
# SSH serveur <-> internet (client)
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
|
|
Encore une fois, c'est correct, si ce n'est que les deux paires de règles sont _exactement_ équivalentes ! La deuxième paire (ou la première) est donc totalement inutile... mais sans danger
* Tu autorises ensuite le routeur a acceder aux differentes machines de ton réseau local (3) :
Adrien wrote: | Code: |
# SSH serveur <-> reseau local (client)
iptables -A INPUT -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
|
|
* Les machines du réseau local sont autorisées à se connecter sur des serveurs SSH situés sur Internet (4) :
Adrien wrote: | Code: |
# SSH reseau local(client) <-> internet(serveur)
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth4 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
|
|
* Enfin, tu autorises les machines internes à acceder au serveur SSH du routeur (5)
Adrien wrote: | Code: |
# SSH serveur(serveur) <-> reseau local (client)
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
|
|
Jusqu'ici tout va bien. ("l'important c'est pas la chute, c'est l'atterrissage")
Pour autoriser les machines situées derriere le firewall a "s'inter-acceder" via SSH, tu disposes de plusieurs possibilités :
* être vraiment parano et autoriser chaque combinaison explicitement (6a) :
Code: |
# eth1 -> eth2
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth1 -> eth3
iptables -A FORWARD -i eth1 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth1 -> eth4
iptables -A FORWARD -i eth1 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth2 -> eth1
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth2 -> eth3
iptables -A FORWARD -i eth2 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth2 -> eth4
iptables -A FORWARD -i eth2 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth3 -> eth1
iptables -A FORWARD -i eth3 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth3 -> eth2
iptables -A FORWARD -i eth3 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth3 -> eth4
iptables -A FORWARD -i eth3 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth4 -> eth1
iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth4 -> eth2
iptables -A FORWARD -i eth4 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# eth4 -> eth3
iptables -A FORWARD -i eth4 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
|
(eh oui... explosion combinatoire, etc.)
* être un peu plus cool, et autoriser tout forward en provenance ET à destination des machines locales (6b) :
Code: |
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth2 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth3 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth3 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth4 -j ACCEPT
iptables -A FORWARD -o eth1 -i eth4 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth3 -j ACCEPT
iptables -A FORWARD -o eth2 -i eth3 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth4 -j ACCEPT
iptables -A FORWARD -o eth2 -i eth4 -j ACCEPT
iptables -A FORWARD -i eth3 -o eth4 -j ACCEPT
iptables -A FORWARD -o eth4 -i eth4 -j ACCEPT
|
Attention, dans ce cas tout traffic entre les machines internes est autorisé !
Tout ceci m'amène à une question :
Est-il nécessaire de cloisonner les machines internes ?
Si non, est-ce que utiliser un petit switch ne serait pas plus simple ?
Code: |
_/\/\/\/\/\/\/\_
/ Internet \
\_ _/
\/\/\/\/\/\/\/
|
|eth0
___________|__________
| |
| routeur/firewall |
| + sshd |
|______________________|
|
|eth1
|.1
|
|
__________________|_____________ 192.168.0
| |
| |
| |
| |
|.x |.y
___|___ ___|___
| | | |
| PC 1 | | PC 2 |
| sshd | | sshd |
|_______| |_______|
|
Si oui, bah...
Code: |
### Log
#on crée la chaine LOG_DROP
iptables -N LOG_DROP
iptables -N LOG_FORWARD_DROP
#on met la cible LOG a LOG_DROP elle est non determinante (une autre cible peut suivre)
iptables -A LOG_DROP -j LOG --log-prefix '[iptables_drop] : '
iptables -A LOG_FORWARD_DROP -j LOG --log-prefix '[iptables_forward_drop] : '
#on definit la cible suivante
iptables -A LOG_DROP -j DROP
iptables -A LOG_FORWARD_DROP -j DROP
### Traffic Routeur <-> Internet
# SSH : Internet -> Routeur
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : Routeur -> Internet
iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
### Traffic Routeur <-> Reseaux locaux
# SSH : Routeur -> PC 1
iptables -A OUTPUT -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : Routeur -> PC 2
iptables -A OUTPUT -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : Routeur -> PC 3
iptables -A OUTPUT -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : Routeur -> PC 4
iptables -A OUTPUT -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 1 -> Routeur
iptables -A INPUT -i eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 2 -> Routeur
iptables -A INPUT -i eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 3 -> Routeur
iptables -A INPUT -i eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 4 -> Routeur
iptables -A INPUT -i eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
### Traffic Internet <-> Reseaux locaux
# SSH : PC 1 -> Internet
iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 2 -> Internet
iptables -A FORWARD -i eth2 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 3 -> Internet
iptables -A FORWARD -i eth3 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 4 -> Internet
iptables -A FORWARD -i eth4 -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
### Traffic Reseaux locaux
# SSH : PC 1 -> PC 2
iptables -A FORWARD -i eth1 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 1 -> PC 3
iptables -A FORWARD -i eth1 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 1 -> PC 4
iptables -A FORWARD -i eth1 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth1 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 2 -> PC 1
iptables -A FORWARD -i eth2 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 2 -> PC 3
iptables -A FORWARD -i eth2 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 2 -> PC 4
iptables -A FORWARD -i eth2 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth2 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 3 -> PC 1
iptables -A FORWARD -i eth3 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 3 -> PC 2
iptables -A FORWARD -i eth3 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 3 -> PC 4
iptables -A FORWARD -i eth3 -o eth4 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth3 -i eth4 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 4 -> PC 1
iptables -A FORWARD -i eth4 -o eth1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 4 -> PC 2
iptables -A FORWARD -i eth4 -o eth2 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth2 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# SSH : PC 4 -> PC 3
iptables -A FORWARD -i eth4 -o eth3 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -o eth4 -i eth3 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
### regles finales...
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
iptables -A FORWARD -j LOG_FORWARD_DROP
|
bon...
voila...
quoi ? bah nan j'avais rien d'autre a faire...
(bien sûr, il manque les quelques règles pour le masquerading, le passage de forward à 1, etc. )
(ah, encore un petit mot. Si tu n'as pas besoin de cloisonner les machines internes, mais que tu ne souhaite pas investir dans un switch, tu peux dans ce cas transformer ton routeur en bridge, ca marche bien, m'enfin c'est une autre histoire ) _________________ Est-ce que c'est toi John Wayne, ou est-ce que c'est moi... |
|
Back to top |
|
|
Piaf Tux's lil' helper
Joined: 03 Aug 2003 Posts: 76 Location: Sophia Antipolis
|
Posted: Tue Jul 12, 2005 9:19 pm Post subject: |
|
|
C'est encore moi !!
Je viens de tomber sur un de tes autres posts
Finallement, je pense que tu devrais te pencher sur la question du bridge...
Plein de petits avantages :
* Tes quatre interfaces internes peuvent être "agglomérées" pour former ... un switch. Du coup tes 4 PCs internes peuvent avoir des adresses dans le même réseau ( => simplification de la configuration dhcp, un seul range d'adresse à gérer).
* toutes les règles de filtrage concernant les machines internes peuvent être simplifiées. Ainsi au lieu d'avoir 4 paires de règles pour autoriser les machines internes à accéder au serveurs SSH externes, une seule paire suffit, en utilisant la pseudo interface du bridge (br0)
* ...
Un petit inconvénient : il faut autoriser les communications entre les différents ports du bridge (cf 6b de mon poste précédent), mais bon ca permet aussi de rajouter des petits filtres sympatiques, donc ca peut ausssi être un avantage...
voila, voila, si tu veux plus d'infos sur ce sujet n'hésite pas.... (mais bon la je suis fatigué...)
Enjoy _________________ Est-ce que c'est toi John Wayne, ou est-ce que c'est moi...
Last edited by Piaf on Tue Jul 12, 2005 9:25 pm; edited 2 times in total |
|
Back to top |
|
|
Adrien Advocate
Joined: 13 Jul 2004 Posts: 2326 Location: Bretagne
|
Posted: Tue Jul 12, 2005 9:22 pm Post subject: |
|
|
Alors là, j'ai qu'une chose à dire: Beaugosse! (oui, avec un B majuscule)
Franchement merci à toi piaf c'est terrible ce que t'as fait!
Bon c'est cool parce que étant donné que j'ai pris des règles à droite - à gauche (script de profy / doc gentoo), je me doutais que certaines se contredisaient ou se répètaient, mais bon je pouvais pas être sûr...
Voilà, sinon à vrai dire j'ai réussi à résoudre mon problème juste avant de lire ton post.
La partie qui posait problème:
Code: | # Ajout des regles pour le NAT
#iptables -I FORWARD -i eth1 -d 192.168.1.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth1 -s 192.168.1.0/255.255.0.0 -j ACCEPT
#iptables -I FORWARD -i eth2 -d 192.168.2.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth2 -s 192.168.2.0/255.255.0.0 -j ACCEPT
#iptables -I FORWARD -i eth3 -d 192.168.3.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth3 -s 192.168.3.0/255.255.0.0 -j ACCEPT
#iptables -I FORWARD -i eth4 -d 192.168.4.0/255.255.0.0 -j DROP
iptables -A FORWARD -i eth4 -s 192.168.4.0/255.255.0.0 -j ACCEPT
#iptables -I FORWARD -i wlan0 -d 192.168.5.0/255.255.0.0 -j DROP
iptables -A FORWARD -i wlan0 -s 192.168.5.0/255.255.0.0 -j ACCEPT
iptables -A FORWARD -i eth0 -d 192.168.0.0/255.255.0.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |
Les lignes que j'ai commentées ne l'étaient pas auparavant, et maintenant, le ssh passe sans pb!
Bon si quelqu'un a un commentaire, genre "mouais, pas très secure" ou "mais bien sûr, c'est logique" qu'il ne se prive pas! J'avoue ne pas cerner toute la subtilité de la chose...
Merci encore en tout cas pour ces explications aux petits oignons, je vais sûrement coller tes petits schémas sur le dos de mon portable. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|