How-To : Freebox et partage Linux

Vous venez de recevoir votre belle Freebox, vous avez hâte d’en profiter, mais vous préférez ne pas trop foutre de bordel dans votre réseau existant ? Lisez la suite !

Ce petit guide s’adresse à ceux qui veulent faire tourner un serveur Linux grâce à une Freebox en mode modem.

1/ Matériel nécessaire[ul]
[li] Une Freebox (v4)[/li][li] Un switch Ethernet[/li][li] Un serveur Linux avec support iptables (option « Network packet filtering » dans le kernel)[/li][li] Une ou plusieurs machines clients (sinon ca sert à rien :stuck_out_tongue: )[/li][/ul]2/ Câblage

Le schéma suivant montre comment on relie tout ça (oui oui, la fbx est connectée directement sur le switch) :

Note : j’ai pompé honteusement les images sur ce site.

3/ Configuration réseau du serveur

Nous allons maintenant configurer Linux pour qu’il utilise la fbx à travers le switch, pour cela, il convient d’éditer plusieurs fichiers :

/etc/resolv.conf

[quote]nameserver 212.27.32.176
nameserver 212.27.32.177[/quote]

Si vous disposez d’un serveur DNS en local, vous pouvez bien sur mettre son IP à la place des serveurs Free.

/etc/network/interfaces [sur debian]

[quote]auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
auto eth0:0
iface eth0:0 inet static
address 82.239.137.x
netmask 255.255.255.0
network 82.239.137.0
broadcast 82.239.137.255
gateway 82.239.137.254[/quote]

Il vous faut bien entendu remplacer les IP eth0:0 par celle communiquées par Free lors de l’inscription.

Pour valider les changements (toujours sur Debian) : /etc/init.d/networking restart

A partir de maintenant, le serveur devrait avoir accès au net. Testez avec « ping ».

Attention : Vu qu’on a mis le net sur la même interface que le réseau local, tous les services accessibles sur eth0 (samba, ftp, ssh, XFree…) sont aussi accessible depuis le Net ! C’est pour cela qu’il convient de configurer le firewall iptables au plus vite.

4/ NAT + firewall

Editez un fichier avec le script suivant, que vous devez modifier en fonction de votre installation.

iptables-start.sh

[quote]#!/bin/sh

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

Execution des modules ftp

modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

Remise a zero des regles de filtrage

iptables -F
iptables -X
iptables -t nat -F

DEBUT regles firewall

DEBUT politiques par defaut

Connexions entrantes bloquees

iptables -P INPUT DROP

Connexions forwardees acceptees

iptables -P FORWARD ACCEPT

Connexions sortantes acceptees

iptables -P OUTPUT ACCEPT

FIN politiques par defaut

On rejete les paquets SYN avec le flag FIN positionne

iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "[IPTABLES] SYN/FIN: " --log-level warn
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

On accepte les paquets relatifs a des connexions deja etablies

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

L’Asie me fait chier, je bloque tout

iptables -A INPUT -p tcp --source 200.0.0.0/6 -j DROP
iptables -A INPUT -p tcp --source 210.0.0.0/7 -j DROP
iptables -A INPUT -p tcp --source 218.0.0.0/6 -j DROP
iptables -A INPUT -p tcp --source 222.0.0.0/8 -j DROP

Connexion rapide a IRCNet

iptables -A INPUT -p tcp --source 62.4.23.42 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --source 194.117.194.75 -j REJECT --reject-with tcp-reset

On accepte le ftp

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

On accepte le ssh

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

On accepte le Web

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

Les serveurs IRCNet verifient le port suivant :

iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset

On accepte le ping

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Pas de filtrage sur l’interface de « loopback », ni sur eth0 (pour les IP du reseau local)

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.10.0/24 -i eth0 -j ACCEPT

FIN regles firewall

DEBUT partage de connexion

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

FIN partage de connexion

DEBUT port forwarding

Port forward pour Warcraft 3

iptables -t nat -A PREROUTING -p tcp --dport 6112 -i eth0 -j DNAT --to 192.168.10.2:6112
iptables -t nat -A PREROUTING -p udp --dport 6112 -i eth0 -j DNAT --to 192.168.10.2:6112
iptables -t nat -A PREROUTING -p tcp --dport 6200 -i eth0 -j DNAT --to 192.168.10.2:6200

FIN port forwarding[/quote]

Notez bien les lignes suivantes. Il faut remplacer les IP par celles de votre réseau local.

[quote]iptables -A INPUT -s 192.168.10.0/24 -i eth0 -j ACCEPT
[…]
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE[/quote]

Placez ce script dans un endroit où il sera lancé automatiquement à chaque démarrage du serveur et rendez-le exécutable (chmod 755). N’oubliez pas non plus d’autoriser le NAT : « echo 1 1> /proc/sys/net/ipv4/ip_forward ».

5/ Les PC clients

Les PC clients doivent être configurés 192.168.10.x/24 avec 192.168.10.1 comme passerelle et les DNS de Free (ou ceux d’un autre serveur). Et surtout n’activez pas de DHCP sur les PC clients !!!

Voilà, fin de ce petit guide. Have fun ! :stuck_out_tongue:

Bien que ne possédant pas encore de freebox, (ca viendra) bon tuto, je peux pas le tester, mais je pense que ca me servira bien pour passer le serveur à linux (pis ca me permettra d’essayer :stuck_out_tongue:

Merci unreal :stuck_out_tongue:

C’est un bon tutoriel :stuck_out_tongue:

Je serai juste d’avis d’en faire un avec shorewall parce que c’est assez pratique c’est des fichiers de conf’ qui générent les fichiers iptables.

Sinon peut etre rajouté :

Pour le fichier de lancement : le mettre dans /sbin ou /local/sbin ou root/bin si il est dans le PATH root

Puis le rajouter dans /etc/conf.d/local.start

Par contre quand tu stoppes ton routeur tu lui fais pas arretter iptable ?

Koubiak

ps : dans les nouvelles versions iptable y a un script dans init.d tu sais comment il marche ?

Edit little ortho

Très bon post, félicitations :stuck_out_tongue:

Sinon il y a la solution de feignasse : Smoothwall, E-smith et consorts, qui permettent d’avoir un routeur logiciel sur une bécane contenant 2 cartes réseau.
L’interêt : Une gestion du routeur avec une interface oueb.

Smoothwall
E-Smith (nécessite de s’enregistrer)

J’ai comme ça un beau cageot monté avec un pentium 90 et 16mo de ram, ça marche au poil.
Pour info : mon record d’activité sur la bécane : 88 jours, pis hop coupure EDF pour cause travaux…

Je conseille Smoothwall : installation simplicime, interface oueb, mise à jour diretement par l’interface, … Bref le rêve :stuck_out_tongue:

A noter qu’il suffit de mettre la bebete entre le switch et la freebox.
Pis après, à vous les joies du DHCP, VPN, Firewall, redirection de ports, dans la joie et la bonne humeur.

Edit : mains + clavier en bois…

[quote name=‘unreal’ date=’ 8 Apr 2005, 11:40’]N’oubliez pas non plus d’autoriser le NAT : “echo 1 1> /proc/sys/net/ipv4/ip_forward”.

[right][post=“348519”]<{POST_SNAPBACK}>[/post][/right][/quote]

Il me semble que c’est plutôt “echo 1 > /proc/sys/net/ipv4/ip_forward”: un seul 1 à balancer. De mémoire de quand justement une debian me servait à partager ma connexion adsl free (mais avec un foutu sagem fast 800 usb)

[quote name=‹ Sarki › date=’ 8 Apr 2005, 13:26’]A noter qu’il suffit de mettre la bebete entre le switch et la freebox.
[right][post=« 348544 »]<{POST_SNAPBACK}>[/post][/right][/quote]

En fait, mon but c’était d’intégrer la fbx sans rajouter une 2ieme carte dans mon serveur (cad sans modifier mon installation – avant j’avais un SpeedTouch Home en PPPoE, donc). Et puis, je trouve cette méthode plus « belle ».

[quote name=‹ ColdFire › date=’ 8 Apr 2005, 13:38’]Il me semble que c’est plutôt « echo 1 > /proc/sys/net/ipv4/ip_forward »: un seul 1 à balancer. De mémoire de quand justement une debian me servait à partager ma connexion adsl free (mais avec un foutu sagem fast 800 usb)
[right][post=« 348553 »]<{POST_SNAPBACK}>[/post][/right][/quote]

Tout à fait. :stuck_out_tongue:

Cette méthode risque pas de ralentir le trafic ? De faire passer tout par eth0 ?

Koubiak

C’est sympa, mais perso je conseil plutôt une solution avec deux cartes réseau.

En effet cette topologie fait un peu peur, que ce passerait-il si des broadcasts/multicast saturaient le switch?

Pas trop grave pour une utilisation perso, mais en entreprise si le serveur en question maintient d’autres services tel que mail, web, ftp, etc dans ce cas plus rien ne marche.

C’est un peu une solution de roumain et moi je ne trouve pas ça “beau”!!!

Mais comme on dit, tout est relatif…

Oh, vous êtes bien en train de vous prendre la tête… Cette solution de câblage est clairement destinée à un usage non professionnel. D’ailleurs, j’ose espérer qu’en entreprise tu utilises autre chose que des fbx si l’accès Net est quelque chose d’important pour la boîte…

Et dans le cadre d’une utilisation familiale normale, j’aimerais bien savoir comment tu fais pour saturer un switch (donc 100MBit/port) à gros coups de broadcast. Sérieux, c’est quoi ce délire ?

Sinon, pour répondre à la question de koubiak, rien à signaler pour l’instant. Et je doute franchement que cela pose un problème pour une utilisation courante. Même si la fbx arrose le réseau local à 1.5Mo/s (donc 3Mo/s sur eth0), ca laisse bien 7Mo/s de marge…

Edit : je viens de me rendre compte que le “coût” sur eth0 quand la fbx arrose le réseau local n’est clairement pas le double. En effet, imaginons qu’un utilisateur du réseau local télécharge à 1.5Mo/s, donc eth0 reçoit 1.5Mo/s sur le pin RX (et envoie les réponses aux requètes sur TX, mais ce flux est bien plus faible). Il fait son travail de NAT et renvoit les données sur le réseau local via TX (avec le flux de retour sur RX). Du coup, le “coût” de l’opération est faible quand le réseau Ethernet fonctionne en full duplex (ce qui est systématiquement le cas de nos jours).

En clair, ca fait bien 3Mo/s de transit, mais partagé sur le 2 fils du câble Ethernet…

C’est bien ce que je dis, tout est relatif.

Si je parle de saturation du switch, c’est que ça arrive plus souvent qu’on ne le pense et j’ai un peu d’expérience dans le domaine.

Je ne doute pas que tu es quelqun qui ne fait pas n’importe quoi mais analyse un peu tes logs et tu verras le nombre d’accès sur 135 et 445 que tu bloques et tout ça ça part dans la face de ton serveur via ton switch réseau… On pourrait en sortir bien d’autres mais cela risque d’être fastidieux.

Ce que je dis moi, c’est que quitte à partager ta connexion sur ton serveur, une carte réseau à 40 balles avec un bon 8139 et roule ma poule. Au dela du geste technique dont tu nous fais part et qui est tout à fait sympatique, la solution peut être de passer simplement la freebox en mode routage si ce que tu veux c’est simplement faire du NAT.

OUI je mets du Free en entreprise, car c’est la solution pour un gros upload sans que ça coute trop cher mais c’est bien sur avec une ligne plus sérieuse en backup.

En gros ta solution pour moi c’est :stuck_out_tongue:

J’ai jamais dit le contraire. Mais avec ou sans modem adsl sur le switch, cela ne change rien au truc. Si tous tes users s’amusent à aller pomper sur le serveur de fichiers en même temps, c’est évident que le port du switch qui se connecte sur le serveur va saturer.

Comme tu peux le constater dans mon script iptables, je ne log pas les paquets droppés (pour la raison évidente que cela ne sert à rien).
Donc si j’ai bien compris, les quelques paquets blaster et co qui font modem -> switch -> eth0 -> drop, ça va saturer mon switch ? Ou alors tu parles des broadcast Windows (j’avoue que j’ai pas très bien compris ta phrase) ? Sur un réseau d’entreprise, on fait pas de broadcast netbios, on passe par un contrôleur de domaine (ou un bon vieux serveur wins). Si tu vois du broadcast sur un réseau d’entreprise, il faut fusiler l’admin. Et puis tout ça, quel rapport avec le fait que le modem soit sur le switch ou pas ?

Oui oui, c’est ça. Les cartes à base de chips realtek sont très bien pour un usage personnel. Mais n’importe quel admin te dira qu’une carte realtek qui tourne à forte charge, ça plante et il faut redémarrer le serveur. Pour utilisation pro c’est Intel ou 3COM. Le problème c’est que tu critiques ma solution parce qu’elle n’est pas adaptée à une utilisation pro, et après tu me proposes de mettre une carte grand public.

Pas de filtrage par IP, pas de forward de gammes de ports, et pas plus que 10 forwards. Ca dépanne, sans plus.

J’ai relié la Freebox directement au serveur (2 cartes réseau, une pour le net, une pour le réseau local).

Ensuite je partage la connection via iptable (enfin j’utilise shorewall, qui est basé sur iptable, et que j’administre à distance via webmin).

En ce qui concerne les cartes réseau, je vous déconseille fortement les D-Link. C’est de la pure daube. Je crois d’ailleurs que D-Link sont spécialisés dans le matériel de merde.
Realtek c’est déjà pas mal. J’ai un réseau d’environ 10 PC, quasiment que des Realtek, je n’ai jamais eu aucun problème avec, mais alors vraiement AUCUN!
Même avec les vieilles Realtek 10Mb, qui marchent mieux que la D-Link neuve que j’ai achetée récemment.
Et le top à ce qu’il parait, c’est 3Com, mais je n’ai jamais testé, c’est trop cher, et ça ne me sert à rien personnellement.

Pour la configuration d’un serveur DHCP, et pour d’autres infos sur les réseaux Linux:
http://christian.caleca.free.fr

C’est vrai UNREAL, il faut savoir de quoi on parle.

Je parles bien de ton installe à toi pour mettre un 8139, les remarques genre “3com”, “intel” ou “realtek” c’est ce que t’as apris dans tes cours d’il y a dix ans surement ou alors ça fait vraiment longtemps que t’as pas installer une carte ou un switch 3com!!! Et visiblement tu n’est pas bien au courant de ce qui se pratique dans l’industrie réseau, le 8139 dans ses dernières évolutions est encore implémenté sur des matériels de routage haut de gamme de constructeurs renomés, si ils plantaient encore on le saurait!!!

Pour ce qui est des broadcasts, je ne parle pas de netbios mais si tu n’en a pas sur ton réseau c’est que tu es vachement balèze ou que tu connais mal les couches basses du réseau. Quand je parles (en simplifiant je l’admet) de broadcast, j’inclus bien entendu certaines trames Ethernet, les diffusions ARP voir certaines methodes de controle d’accès, etc. Bien qu’il y ai de fortes chance pour que tu n’ais jamais de problème de ce type sur ton réseau perso je l’avoue.

Ce que je dis c’est que ce n’est pas PROPRE comme topologie, c’est TOUT.

Un peu étoné de ta réaction je fouille sur la cafzone et je m’aperçois que dès que quelqun critique un truc que tu dis ou fais, tu prends la mouche et sorts tes pseudo compétences. La critique, ça peu être constructif tu sais?

Quand je lis un thread que tu as lancer sur IPv6, et que je vois que tu donnes des conseils de sécurité réseau à un gar comme Raoul à grand coup de filtre IPtable!!! Ou pire, des théories vaseuses sur le fait qu’il y a moins de risques avec les en-tête IPv6 qu’IPv4!!!
Quand on sais de quoi on parle et qu’on sait qui est Raoul, je pense pas m’avancer en disant qu’il doit encore en rire…

On est pas sur un forum de spécialistes, mais de jeux videos et de vulgarisation informatique, il est donc absolument inutile de poursuivre cette discution, les lecteurs qui savent de quoi il en retourne sauront tranché et je ne suis pas là pour donner des cours à la mauvaise fois.

Hum … Hum … On est pas dans un forum de spécialiste mais la plus part certaines parties du forums sont des antres de spécialistes.

Que ce soit le code / OS / infographie… Donc on peut avoir des discutions civilisés …

Donc oui la topo n’est pas forcement parfaite mais pour un truc àlamaison™ donc sans acheter une deuxiéme carte rézo et bé il confirme ça marche.

Est bon c’est souvent que des gens cherchent comment partager une freebox sans une deuxiéme cartes.

On range les haches et on revient sur le sujet … Y a t’il moyen d’amélioré l’HOWTO ?

Koubiak pour la paix dans la zone

[quote]Un peu étoné de ta réaction je fouille sur la cafzone et je m’aperçois que dès que quelqun critique un truc que tu dis ou fais, tu prends la mouche et sorts tes pseudo compétences. La critique, ça peu être constructif tu sais?[/quote]J’ai parfois la même impression moi aussi… :stuck_out_tongue: Mais je m’en fous en faite, et puis c’est vrai revenons au sujet.