Partager sa connection internet : la méthode GNU/Linux
Par ephase le vendredi, octobre 12 2007, 01:22 :: Linuxeries :: Lien permanent
Dans le cadre de mon travail, je gère plusieurs salles informatique ouvertes au public. Ces salles sont évidemment reliées à Internet. Pour le bon fonctionnement de ces lieux, j'ai mis en place de petits serveurs GNU/Linux. Voici comme première approche ci le schéma de fonctionnements de ces diverses installations :

Le matériel
Je n'utilise pour ces serveurs que des machines de récupération : celles que l'on ne peux même plus affecter à autre chose : Pentium III 500, 64 voire 128 Mo de RAM, carte graphique TNT2 / Ati rage pro, un disque dur d'au moins 10 Go et deux cartes réseaux : l'une pour recevoir la connection Internet et l'autre pour la partager. Dans la mesure du possible, j'essaye d'y adjoindre un second disque dur (pour le répertoire /var/).
Les logiciels
J'utilise une Debian 4, parce que c'est la distribution que je connais le mieux (grâce à Ubuntu...). Je l'installe sans l'interface graphique : elle n'est pas utilise ici, on économise de la place et des ressources. Une fois installée, je n'ai plus qu'a rajouter les paquets qui m'intéresse grâce a la fameuse commande apt-get :
- dhcp3-serveur : un serveur dchp, il permet d'attribuer automatiquement des adresses IP au machines qui se connecte à notre réseau. C'est une fonctionnalité que l'on trouve maintenant dans tout les routeurs domestiques, mais ici, il est beaucoup plus complet comme par exemple l'attribution d'IP en fonction de l'adresse matérielle de la carte réseau du client.
- openssh-server : un serveur SSH (Secure SHell) il permet entre autre d'accéder a la machine et de l'administrer via le réseau (et Internet). De cette manière, je peux dans 80% des cas la dépanner depuis n'importe ou, du moment que j'ai accès à Internet. Vous trouverez plus d'information sur wikipédia.
- squid : Un serveur proxy, sa fonction est simple : aller chercher les pages internet à la place des machines clientes. Il va stocker dans son "cache" ces pages pour éventuellement les charger plus vite lorsqu'elle seront demandées une prochaine fois.
- squidGuard : un redirecteur pour squid. Il filtre tout ce qui passe par le proxy pour empêcher les clients d'accéder à certains contenus. Je l'utilise surtout pour bloquer les sites pornographiques, souvent très intrusifs sur les machines du parc (pubs osées au démarrage par exemple) et c'est quasiment obligatoire pour la protection des mineurs (public le plus présent dans ces salles).
La mise en place
J'utilise les mêmes fichiers de configurations fait une fois pour toute. Pour des question de sécurité, j'utilise l'identification par clé partagée pour l'accès ssh au serveur, évitant ainsi les attaques de type force brute et dictionnaire.
Pour protéger le serveur, activer le partage de connection internet, et obliger les machines du parc a utiliser le serveur proxy, j'utilise iptables (plus d'information sur wikipédia) pour configurer le pare feu intégré au noyau Linux. C'est sûrement la partie la plus délicate à configurer, elle nécessite quelques notions réseaux avancés. J'initialise le pare-feux grâce a des scripts bash au démarrage.
La mise à jour des bases de données de squidGuard se fait automatiquement grâce à un autre script lancé toute les semaines automatiquement grâce à cron : (voir wikipédia). Les base de données à jours peuvent se trouver sur le site de l'université de Toulouse.
Pour finir
Avec un peu d'expérience, la mise en place d'un tel serveur ne prend pas plus d'une demi-journée. Le plus ancien de mes serveurs fonctionne depuis 2 ans 24h/24 sans soucis majeurs. Avec quelques tutoriaux glanés ci et là, la configuration de celui-ci ne devrait pas poser de problème. Pour ceux qui le désirent, je peux bien entendu partager avec vous mes fichiers de configuration.
Quelques sites/tutoriaux
squid et suidGuard sur le site de l'université de Toulouse.
Le site de Christian Caleca : des tonnes d'explications sur le réseau : DHCP, Squid, SquidGuard ... Le meilleur site du genre.
Le site du collectif Giroll : Quelques tutoriaux réseaux de mon cru.
Le ssh par Coagul. (Groupe d'utilisateur de linux de la côte d'Or).
Commentaires
Super article (comme d'habitude).
Je m'attendais par contre à plus de détails de config, mais c'est pas bien grave, je n'ai pas à mettre ça en place. J'ai mes routeurs qui coûtent la peau du cul pour le load balancing. (Faudra qu'on voye si on arrive à le faire juste avec un serveur linux.
Ca pourrait être un projet Giroll, on se met trois cartes réseaux sur une machine, deux branchées sur des pc-routeurs qui fournissent chacun une IP, et s'arranger pour que la liaison soit toujours dispo sur la 3e carte. Derrière on fait les brutes, on coupe une des liaisons faut que ça passe, on réduit considérablement le débit idem.
Doit y avoir des tutos, mais j'aimerais bien essayer :p.
Excellent article,
).

J'ai fait la même chose mais à la maison (donc à petite échelle
J'aimerais que tu m'envoie la configuration d'iptables ça m'interesserais de comparer comment tu fait pour tout ce qui est "foward".
Merci d'avance
Nous allons bientôt pouvoir tester le load balancing puisque l'E.C.M se dote bientôt d'une seconde ligne ADSL.
Je voulais ici faire un article succinct qui présente la méthode que j'utilise pour fabriquer mes serveurs, une partie des détails de configuration se trouvent sur giroll (d'autres articles viendront...)
j aimerais voire ce que tu a fait cad des fichier de configrations et merci