Voir un article

illustration

© Tito

Squid tunning

Vous avez un proxy Squid ? Voici quelques astuces pour limiter la bande passante sur certaines connexions ou encore pour sécuriser les accès par un mot de passe

1/ A la maison pour limiter simplement la bande passante des autres ordinateurs , tablettes et mobiles de la famille :

sur votre pc linux qui servira de passerelle internet , installez simplement la package squid

puis dans le fichier de config /etc/squid/squid.conf ajoutez ces quelques lignes :

delay_pools 1
delay_class 1 1
delay_access 1 allow localnet
delay_access 1 allow localhost
delay_parameters 1 40000/40000

(ici je suis sur une connexion à 600kb,  soit environ 65ko/s  et je limite donc à 40ko/s)

ensuite lancez le service squid ( systemctl enable squid ; systemctl start squid)

sur les autres postes il suffit de configurer en proxy l'adresse ip de ce pc et en port : 3128

Pour tester la vitesse de le connexion et vérifier qu'elle est bien limitée :
http://ovh.net

Android : Pour modifier les paramètres proxy de la connexion wifi des mobiles et tablettes :

  1. Ouvrez la barre des Applications et appuyez sur Paramètres.
  2. Appuyez sur Sans fil et réseaux.
  3. Assurez-vous que le réseau sans fil est activé, et qu'il est connecté au réseau pour lequel définir le serveur proxy.
  4. Appuyez sur Paramètres Wi-Fi.
  5. Dans la liste des réseaux disponibles, appuyez et maintenez enfoncé le réseau auquel vous êtes connecté jusqu'à ce qu'un menu s'affiche.
  6. Appuyez sur Modifier le réseau.
  7. Appuyez sur Paramètres du proxy, ensuite sur Manuel.

PS : si vous avez sécurisé votre linux, il faut bien sur autoriser sur le firewall de linux les connexions entrantes de votre réseau local, à ce sujet :
http://astuces.zaclys.com/Linux-Firewalld-le-remplacant-diptables,p121,307

 

 

2/ Plus complexe, le réseau d'entreprise :


Imaginons (c'est impossible mais imaginons) que vous voulez donner accès via un proxy Squid à des serveurs externes. L'accès internet est protégé par un firewall et votre proxy squid linux dispose de 2 cartes réseaux , une connectée sur le réseau local et l'autre a un accès vers l'extérieur : vos usagers doivent donc passer par ce proxy pour "sortir" sur internet.

Vous voulez qu'ils puissent utiliser ce proxy pour aller sur votre site web externe sans restriction (pas de mot de passe, pas le limite de bande passante) , vers votre serveur de gros fichiers sans mot de passe mais avec une limite de bande passante, et vers tout le reste du web il sera demandé un mot de passe et une limite de bande passante sera appliquée.

Pour simplifier on créera ici un compte et un mot de passe unique (toto/secret).
(Il est bien sur possible d'utiliser un controlleur de domaine windows server et de s'appuyer sur lui pour valider les login/mot de passe de vos utilisateurs windows de façon transparente, mais c'est un autre sujet).

Nous avons donc 3 circuits :
- versNotreSite
- versGrosFichiers
- versLeReste

Il faut d'abord utiliser le systeme d'acl de squid pour déclarer ces circuits, soit dans /etc/squid/squid.conf :
acl versNotreSite dst www.monsite.com/32
acl versGrosFichiers dst  www.mesgrosfichiers.com/32
acl versLeReste proxy_auth toto


Note pour le dernier : pas de restriction sur le site destinataire (dst) , on identifie donc ici tout le web, mais par contre on précise qu'on demandera une authentification pour le user 'toto' uniquement (on pourrait faire suivre par d'autres) via la primitive proxy_auth.

Ensuite on autorise le trafic sur ces 3 circuits et on interdit le reste  :
http_access allow versNotreSite
http_access allow versGrosFichiers
http_access allow versLeReste
http_access deny all



Et finalement on limite la bande passante à environ 300ko pour les 2 derniers circuits (à adapter en fonction de votre bande passante, évidemment) :
delay_pools 1
delay_class 1 1
delay_access 1 allow versGrosFichiers
delay_access 1 allow versLeReste
delay_parameters 1 300000/300000

(attention pour mettre 300kbp, il faut diviser par 10 environ)

Le compte utilisateur sera créé au niveau du système :
# adduser toto -s /sbin/nologin -c "user squid"
# passwd toto
secret
secret


Maintenant relancer squid :
service squid restart


Notes :
 - pour démarrer Squid automatiquement au prochain reboot : chkconfig squid on
 - si besoin autorisez les machines du réseau local à passer par votre squid au niveau de vos iptables (cf /etc/sysconfig/iptables et cet article : Transformer votre linux en routeur pour partager votre connexion internet en toute sécurité »)

Si cet article vous a été utile ou si vous avez rencontré des problèmes, laissez moi un message ci-dessous.

 

Pour aller plus loin :

 

 



10 303 clics - Créé le 03/12/2008 par Tito - Modifié le 11/01/2014



Réagissez, commentez, discutez ...

2 réactions.

  • par tito (Zaclynaute) - 17/10/2009 12:44

    oui c'est exactement ça. dans mon exemple je fais aussi de l'authentification pour montrer que c'est possible, mais vous pouvez faire uniquement de la limite de bande passante.

  • par Gael (non connecté) - 17/10/2009 09:02

    Hello,

    Ce que vous presentez semble etre ce que je cherche; en effet je souhaite limiter la bande passante utilisee non pas par utilisateur ou ip interne mais par site
    Je souhaiterais par exemple que pour le site www.xxxxx.com, squid n'alloue que 10ko de bande passante (quelque soit l'utilisateur de la societe qui souhaite aller sur ce site) mais que pour tous les autres site il alloue toute la bande passante.
    Me confirmez vous que cela est possible par votre methode.
    Desole, c'est peut etre une question idiote, mais Squid je decouvre depuis ce matin.
    Merci par avance de votre aide.

    Gael




Partager ?

diaspora  G+  facebook  twitter  Digg  Yahoo  Delicious  Technorati  myspace


Voir d'autres articles en rapport avec celui-ci ?



Stats des clics sur cet article : cliquez ici »



Vous voulez contribuer et publier un article dans cette rubrique ?

Merci de vous identifier ou de vous créer un compte si ce n'est pas déjà fait.