Réaliser un cache internet pour un intranet

Bonjour j’ai une dizaine de PC connectés en réseau avec déjà un serveur (apt-cacher-ng, nfs). La connexion internet est très mauvaise donc quand les PC de l’intranet y sont tous, c’est la catastrophe.
C’est pour une école donc ils utilisent souvent les mêmes ressources d’où l’idée de faire un cache web sur ce serveur.

J’ai potassé la doc de SQUID et ai tenté ma chance, le service fonctionne mais honnêtement sur les clients on ne voit pas de différence. Est ce mon fichier de configuration qui cloche ? Je ne sais pas mais j’avoue n’avoir pas lu les 7 000 lignes de commentaires du squid.conf … Les var et le spool indique que squid enregistre bien tout dans le cache pourtant … Par contre si je télécharge par exemple un pdf de 30 mo sur un client, ça va me prendre 2 à 3 minutes et sur un autre exactement pareil, alors qu’il devrait être en cache (comme pour apt-cacher-ng)

D’où ma question : squid doit bien remplir ce rôle ? Et mon autre question existe t il un autre service plus simple que squid pour un simple cache internet ?

D’avance merci

Salut

Sur mon pc, j’utilise dnsmasq qui a une fonction cache

root@debian:/# dig service-public.fr

; <<>> DiG 9.11.3-1-Debian <<>> service-public.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36489
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;service-public.fr.		IN	A

;; ANSWER SECTION:
service-public.fr.	17732	IN	A	160.92.64.57

;; Query time: 46 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Mar 31 11:44:39 CEST 2018
;; MSG SIZE  rcvd: 62

root@debian:/# dig service-public.fr

; <<>> DiG 9.11.3-1-Debian <<>> service-public.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19631
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;service-public.fr.		IN	A

;; ANSWER SECTION:
service-public.fr.	17727	IN	A	160.92.64.57

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Mar 31 11:44:44 CEST 2018
;; MSG SIZE  rcvd: 62

premiere accès au site service-public -> 46 ms
accès suivant -> immédiat 0 ms

Tu peux surement le mettre sur ton serveur

https://wiki.debian.org/HowTo/dnsmasq

autre exemple
https://doc.frapp.fr/doku.php?id=logiciel:internet:serveur:dns:dnsmasq:dnsmasq

1 J'aime

Bonjour et merci
C’est un serveur de DNS ?
Personnellement ce sont les pages visitées du web que je veux mettre en cache et accélérer leur changement e local
Faut le mettre en parallèle à SQUID ou en remplacement de SQUID
Il fait office de serveur DHCP donc il faudra que je desactive celui de la box pour ne pas en avoir 2 ?

oui c’est pour la résolution DNS
lis les liens pour voir si cette solution a un interet pour toi
les pages internet sont mises en cache dans les navigateurs, faut peut etre voir a augmenter leur taille sur chaque poste de travail

Mettre toutes les pages en cache dans ton serveur , je ne connais pas de solution

OK je garde l’idée en tête
Mais perso ce que je recherche c’est un cache commun :wink:
Le cache de chaque client est assez “grand” ce que je recherche c’est de le mutualiser sur un serveur, mais je ne sais même pas si c’est possible. Enfin je pense que oui, on le fait bien pour apt

peut etre du coté de nginx

unbound !!!

  1. Tu le mets sur ton serveur… il est vraiment fait pour cela, facile à configurer, maintenir et gérer.
  2. Ensuite tu autorises depuis le serveur que tes adresses sur le réseau local puissent l’interroger…
  3. Et, tu configures tes stations pour l’interroger.

Après j’ai bien cet article concernant unbound, mais il aborde l’aspect pratique pour le faire de manière sécurisé, et seulement en local, sur le serveur ou une station.

Par contre, je ne sais pas où tu peux trouver un article qui soit plus “prise en main”…

Il y a bien celle de la communauté ubuntu-fr… mais clairement très incomplète et peut induire en erreur. C’est pour cela que je ne la recommande pas !


Pour le 1 : apt install unbound devrait suffire :wink:

Pour le 2 : dans la configuration du serveur unbound, il suffit normalement de modifier/ajouter une ligne telle que access-control: 192.168.0.0/16 allow192.168.0.0 est le segment réseau de ton réseau local - à changer par le tien réel, si besoin.

Pour le 3 : modifier le fichier ‘’/etc/resolv.conf’’, sur chacune des stations pour qu’elle interroge ton serveur local, en lui restituant son adresse ip, telle que nameserver ip_server_unbound_local

Bref, ce n’est vraiment pas très compliqué, il suffit de faire attention, à bien configurer l’ensemble…
Et, une fois fait, d’utiliser l’outil dig de manière approprié pour vérifier que depuis ton serveur tu résous bien des adresses DNS, et ensuite depuis tes stations qu’elles interrogent bien ton serveur pour résoudre lesdites adresses DNS.

Voilà le schéma.

Tu souhaite mettre en cache les requêtes DNS ou carrément les sites visités ?

Si c’est du cache DNS, je n’en vois pas trop l’intérêt dans la problématique tel qu’exposé mais Unbound est un excellent choix en effet comme exposé précdement.

Si maintenant tu souhaite mettre en cache des pages internet régulièrement visité c’est à mon humble avis plus compliqué à mettre en place et requiert effectivement Squid en tant que proxy.

1 J'aime

Bonjour et merci pour les réponses
A priori je ne pensais pas à un cache DNS mais à faire un cache web (essentiel pour des lourds PDF et des animations FLASH (pour une ecole, petits jeux / exercices en ligne)
Le hic c’est qu’avec SQUID, je n’ai pas eu les résultats souhaités (par exemple les pdfs ne sont pas mis en cache)
J’ai entre temps installé polipo, il met bien en cache certains fichiers mais pas tous. Je continue donc de creuser …

Je suis pas sûr que ce soit pertinent pour ce type de ressource, ce n’est clairement pas ce qui consomme le plus la bande passante, mais il doit aussi être possible de mettre ne cache ce type de ressources avec Squid, il faudrait fouiller la documentation pour cela.