Configuration du serveur proxy Squid avec accès restreint et configuration des clients pour utiliser le proxy - partie 5

Configuration du serveur proxy Squid avec accès restreint et configuration des clients pour utiliser le proxy - partie 5

UN Ingénieur certifié de la Fondation Linux est un professionnel qualifié qui possède l'expertise pour installer, gérer et résoudre les services réseau dans les systèmes Linux, et est en charge de la conception, de la mise en œuvre et de la maintenance continue de l'architecture à l'échelle du système.

Ingénieur certifié de la Fondation Linux - Partie 5

Présentation du programme de certification de la Fondation Linux.

Dans Partie 1 De cette série, nous avons montré comment installer Squid, un serveur de mise en cache proxy pour les clients Web. Veuillez vous référer à ce message (lien ci-dessous) avant de poursuivre si vous n'avez pas encore installé le calmar sur votre système.

  1. Partie 1 - Installer les services réseau et configurer le démarrage automatique au démarrage

Dans cet article, nous vous montrerons comment configurer le serveur proxy Squid afin d'accorder ou de restreindre l'accès à Internet, et comment configurer un client HTTP ou un navigateur Web, pour utiliser ce serveur proxy.

Ma configuration d'environnement de test

Serveur de calmar
Système d'exploitation: Debian Wheezy 7.5 Adresse IP: 192.168.0.15 Nom d'hôte: Dev2.gabrielcanepa.com.ardente 
Machine client 1
Système d'exploitation: Ubuntu 12.04 Adresse IP: 192.168.0.104 Nom d'hôte: Ubuntuos.gabrielcanepa.com.ardente 
Machine client 2
Système d'exploitation: CentOS-7.0-1406 Adresse IP: 192.168.0.17 Nom d'hôte: Dev1.gabrielcanepa.com.ardente 

N'oublions pas que, en termes simples, un serveur de proxy Web est un intermédiaire entre un (ou plusieurs) ordinateurs clients et une certaine ressource réseau, le plus courant étant l'accès à Internet. En d'autres termes, le serveur proxy est connecté d'un côté directement à Internet (ou à un routeur connecté à Internet) et de l'autre côté à un réseau d'ordinateurs clients qui accèdera au World Wide Web via lui.

Vous vous demandez peut-être pourquoi voudrais-je ajouter un autre logiciel à mon infrastructure réseau?

Voici les 3 principales raisons:

1. Squid stocke les fichiers des demandes précédentes pour accélérer les transferts futurs. Par exemple, supposons Client1 téléchargements CentOS-7.0-1406-x86_64-dvd.ISO depuis Internet. Quand client2 demande l'accès au même fichier, Squid peut transférer le fichier de son cache au lieu de le télécharger à nouveau depuis Internet. Comme vous pouvez le deviner, vous pouvez utiliser cette fonctionnalité pour accélérer les transferts de données dans un réseau d'ordinateurs qui nécessitent des mises à jour fréquentes d'une certaine sorte.

2. ACLS (Listes de contrôle d'accès) nous permettre de restreindre l'accès aux sites Web et / ou de surveiller l'accès par utilisateur. Vous pouvez restreindre l'accès en fonction du jour de la semaine ou de l'heure de la journée, ou du domaine, par exemple.

3. Contourner les filtres Web est rendu possible grâce à l'utilisation d'un proxy Web à laquelle les demandes sont faites et qui renvoie le contenu demandé à un client, au lieu de demander au client de le demander directement sur Internet.

Par exemple, supposons que vous soyez connecté Client1 et je veux accéder www.Facebook.com à travers le routeur de votre entreprise. Étant donné que le site peut être bloqué par les politiques de votre entreprise, vous pouvez plutôt vous connecter à un serveur de proxy Web et demander à l'accès à www.Facebook.com. Le contenu à distance vous est ensuite renvoyé via le serveur de proxy Web à nouveau, en contournant les politiques de blocage du routeur de votre entreprise.

Configuration du calmar - les bases

Le schéma de contrôle d'accès du Squid Web Proxy Server se compose de deux composants différents:

  1. Le Éléments LCA sont des lignes directives qui commencent par le mot «ACL»Et représentent des types de tests effectués par rapport à toute transaction de demande.
  2. Le Règles de liste d'accès consiste en un permettre ou refuser action suivie d'un certain nombre d'éléments de la LCA, et sont utilisés pour indiquer quelle action ou limitation doit être appliquée pour une demande donnée. Ils sont vérifiés dans l'ordre, et la recherche de liste se termine dès que l'une des règles est une correspondance. Si une règle a plusieurs éléments de la LCA, il est mis en œuvre en tant que booléen et opération (tous les éléments de la LCA de la règle doivent être une correspondance pour que la règle soit une correspondance).

Le fichier de configuration principal du calmar est / etc / squid / calmar.confli, lequel est ~ 5000 lignes depuis longtemps qu'il comprend à la fois les directives de configuration et la documentation. Pour cette raison, nous créerons un nouveau calmar.confli Fixer avec seulement les lignes qui incluent les directives de configuration pour notre commodité, laissant de côté les lignes vides ou commentées. Pour ce faire, nous utiliserons les commandes suivantes.

# mv / etc / squid / squid.conf / etc / squid / squid.confli.bkp 

Et puis,

# grep -eiv '(^ # | ^ $)' / etc / squid / squid.confli.bkp ou # grep -ve ^ # -ve ^ $ / etc / squid / squid.confli.bkp> / etc / squid / squid.confli 
Fichier de configuration de squid de sauvegarde

Maintenant, ouvrez le nouvellement créé calmar.confli fichier et rechercher (ou ajouter) ce qui suit ACL Éléments et listes d'accès.

ACL localhost src 127.0.0.1/32 ACL localnet src 192.168.0.0/24 

Les deux lignes ci-dessus représentent un exemple de base de l'utilisation de ACL éléments.

  1. Le premier mot, ACL, indique qu'il s'agit d'une ligne de directive d'élément ACL.
  2. Le deuxième mot, hôte local ou local, spécifiez un nom pour la directive.
  3. Le troisième mot, SRC Dans ce cas, est un type d'élément ACL qui est utilisé pour représenter une adresse IP client ou une gamme d'adresses, respectivement. Vous pouvez spécifier un seul hôte par IP (ou nom d'hôte, si vous avez une sorte de résolution DNS implémentée) ou par adresse réseau.
  4. Le quatrième paramètre est un argument de filtrage qui est «nourris«À la directive.

Les deux lignes ci-dessous sont liste d'accès règles et représenter une implémentation explicite du ACL directives mentionnées plus tôt. En quelques mots, ils indiquent que Accès HTTP devrait être accordé si la demande provient du réseau local (local), ou de hôte local. Plus précisément, quelle est le réseau local autorisé ou les adresses hôtes locales? La réponse est: celles spécifiées dans les directives locales et locales.

HTTP_ACCESS Autoriser localnet http_access Autoriser localhost 
SQUID ACL Autoriser la liste d'accès

À ce stade, vous pouvez redémarrer Calmar Afin d'appliquer les modifications en attente.

# Service Squid Restart [Distributions basées sur UpStart / Sysvinit] # Systemctl redémarrer Squid.Service [Distributions basées sur Systemd] 

puis configurer un navigateur client dans le réseau local (192.168.0.104 dans notre cas) pour accéder à Internet via votre proxy comme suit.

Dans Firefox

1. Aller au Modifier menu et choisissez le Préférences option.

2. Cliquer sur Avancé, puis sur le Réseau Onglet, et enfin sur Paramètres

3. Vérifier Configuration de proxy manuel et entrez le adresse IP du serveur proxy et du port où il écoute les connexions.

Configurer le proxy dans Firefox

Note Que par défaut, le calmar écoute sur le port 3128, mais vous pouvez remplacer ce comportement en modifiant le liste d'accès règle qui commence par http_port (Par défaut, il lit http_port 3128).

4. Cliquez sur D'ACCORD pour appliquer les modifications et vous êtes prêt à partir.

Vérifiez qu'un client accède à Internet

Vous pouvez maintenant vérifier que votre client de réseau local accéde à Internet via votre proxy comme suit.

1. Dans votre client, ouvrez un Terminal et taper,

# Adresse IP Afficher Eth0 | grep -ei '(inet.* eth0) ' 

Cette commande affichera le courant adresse IP de votre client (192.168.0.104 dans l'image suivante).

2. Dans votre client, utilisez un navigateur Web pour ouvrir un site Web donné (www.Tecmint.com dans ce cas).

3. Dans le serveur, exécutez.

# Tail -F / Var / Log / Squid / Access.enregistrer 

Et vous obtiendrez une vue en direct des demandes servies à travers Calmar.

Vérifier la navigation par procuration

Restreindre l'accès par le client

Supposons maintenant que vous souhaitiez refuser explicitement l'accès à cette adresse IP client particulière, tout en conservant l'accès pour le reste du réseau local.

1. Définir un nouveau ACL directive comme suit (je l'ai nommé ubuntuos Mais vous pouvez le nommer comme vous voulez).

acl ubuntuos src 192.168.0.104 

2. Ajouter le ACL directive au Accès local Liste qui est déjà en place, mais la préfaçant avec un signe d'exclamation. Ça signifie, "Autoriser l'accès à Internet aux clients correspondant à la directive LocalNet ACL, sauf à celle qui correspond à la directive Ubuntuos".

http_access permettez à localnet !ubuntuos 

3. Maintenant, nous devons redémarrer le calmar afin d'appliquer des modifications. Ensuite, si nous essayons de parcourir n'importe quel site, nous constaterons que l'accès est refusé maintenant.

Bloquer l'accès à Internet

Configuration du calmar - réglage fin

Restreindre l'accès par domaine et / ou par heure du jour / jour de la semaine

Pour restreindre l'accès à Squid par domaine, nous utiliserons le dstdomain mot-clé dans un ACL directive, comme suit.

ACL interdit dstdomain "/ etc / squid / interdit_domains" 

interdit_domains est un fichier texte brut qui contient les domaines auxquels nous souhaitons refuser l'accès.

Bloquer l'accès aux domaines

Enfin, nous devons accorder l'accès à Squid pour les demandes qui ne correspondent pas à la directive ci-dessus.

http_access permettez à localnet !interdit 

Ou peut-être que nous voulons seulement permettre l'accès à ces sites pendant une certaine période de la journée (10h00 jusqu'à 11h00) seulement sur Lundi (M), Mercredi (W), et Vendredi (F).

ACL Somedays Time MWF 10: 00-11: 00 HTTP_ACCES 

Sinon, l'accès à ces domaines sera bloqué.

Restreindre l'accès par authentification des utilisateurs

Squid prend en charge plusieurs mécanismes d'authentification (Basic, NTLM, Digest, Spnego et OAuth) et les aides (base de données SQL, LDAP, NIS, NCSA, pour n'en nommer que quelques-uns). Dans ce tutoriel, nous utiliserons l'authentification de base avec NCSA.

Ajoutez les lignes suivantes à votre / etc / squid / calmar.confli déposer.

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd auth_param basic credentialsttl 30 minutes auth_param basic casesensitive on auth_param basic realm Squid proxy-caching web server for Tecmint's LFCE series acl ncsa proxy_auth REQUIRED http_access allow ncsa 

Note: Dans Centos 7, Le plugin NCSA pour Squid peut être trouvé dans / usr / lib64 / squid / basic_nsca_auth, Alors changez en conséquence dans la ligne ci-dessus.

Activer l'authentification NCSA

Quelques clarifications:

  1. Nous devons dire à Squid quel programme d'authentification auxiliaire auth_param directive en spécifiant le nom du programme (très probablement, / usr / lib / squid / ncsa_auth ou / usr / lib64 / squid / basic_nsca_auth), plus toutes les options de ligne de commande (/ etc / squid / passwd Dans ce cas) si nécessaire.
  2. Le / etc / squid / passwd Le fichier est créé via htpasswd, Un outil pour gérer l'authentification de base via des fichiers. Cela nous permettra d'ajouter une liste de noms d'utilisateur (et de leurs mots de passe correspondants) qui seront autorisés à utiliser Squid.
  3. ContalingSttl 30 minutes nécessitera d'entrer votre nom d'utilisateur et votre mot de passe toutes les 30 minutes (vous pouvez également spécifier cet intervalle de temps avec des heures).
  4. sensible aux majuscules et minuscules On indique que les noms d'utilisateur et les mots de passe sont sensibles à la casse.
  5. royaume représente le texte de la boîte de dialogue d'authentification qui sera utilisé pour s'authentifier à Squid.
  6. Enfin, l'accès n'est accordé que lorsque l'authentification proxy (proxy_auth requis) réussit.

Exécutez la commande suivante pour créer le fichier et ajouter des informations d'identification pour l'utilisateur gacanepa (omettre le -c indicateur si le fichier existe déjà).

# htpasswd -c / etc / squid / passwd gacanepa 
Restreindre l'accès aux calmars aux utilisateurs

Ouvrez un navigateur Web dans la machine client et essayez de parcourir un site donné.

Activer l'authentification du calmar

Si l'authentification réussit, l'accès est accordé à la ressource demandée. Sinon, l'accès sera refusé.

Utilisation du cache pour accélérer le transfert de données

L'une des caractéristiques distinctives du squid est la possibilité de mettre en cache les ressources demandées au Web au disque afin d'accélérer les futures demandes de ces objets, soit par le même client, soit par d'autres.

Ajoutez les directives suivantes dans votre calmar.confli déposer.

cache_dir ufs / var / cache / squid 1000 16 256 maximum_object_size 100 Mo Refresh_pattern .* \.(MP4 | ISO) 2880 

Quelques clarifications des directives ci-dessus.

  1. UFS est le format de stockage de calmar.
  2. / var / cache / calmar est un répertoire de haut niveau où les fichiers de cache seront stockés. Ce répertoire doit exister et être inscrit par Squid (Squid ne créera pas ce répertoire pour vous).
  3. 1000 Le montant (en MB) est-il à utiliser sous ce répertoire.
  4. 16 est le nombre de sous-répertoires de premier niveau, alors que 256 est le nombre de sous-répertoires de niveau 2e au sein / var / Spool / Squid.
  5. Le maximum_object_size La directive spécifie la taille maximale des objets autorisés dans le cache.
  6. Refresh_pattern Dit Squid comment gérer les types de fichiers spécifiques (.MP4 et .ISO Dans ce cas) et pendant combien de temps il doit stocker les objets demandés en cache (2880 minutes = 2 jours).

Le premier et le deuxième 2880 Les limites inférieures et supérieures, respectivement, sur la durée des objets sans temps d'expiration explicite seront considérés comme récents, et seront donc desservis par le cache, alors que 0% est le pourcentage de l'âge des objets (temps depuis la dernière modification) que chaque objet sans temps d'expiration explicite sera considéré comme récent.

Étude de cas: télécharger un .Fichier MP4 de 2 clients différents et tester le cache

Premier client (IP 192.168.0.104) télécharge un 71 MB .MP4 fichier en 2 minutes et 52 secondes.

Activer la mise en cache sur le calmar

Deuxième client (IP 192.168.0.17) télécharge le même fichier en 1.4 secondes!

Vérifiez la mise en cache de seiche

C'est parce que le dossier a été servi à partir du Cache de calmar (indiqué par TCP_HIT / 200) dans le deuxième cas, par opposition à la première instance, lorsqu'il a été téléchargé directement à partir d'Internet (représenté par TCP_MISS / 200).

Le FRAPPER et MANQUER Mots-clés, ainsi que le 200 http Code de réponse, indiquez que le fichier a été servi avec succès les deux fois, mais le cache a été touché et manqué respectivement. Lorsqu'une demande ne peut pas être signifiée par le cache pour une raison quelconque, le calmar tente de le servir sur Internet.

Codes de squid http

Conclusion

Dans cet article, nous avons discuté de la création d'un Proxy de cache Web Squid. Vous pouvez utiliser le serveur proxy pour filtrer les contenus à l'aide d'un critère choisi, et également pour réduire la latence (car des demandes entrantes identiques sont desserrées à partir du cache, qui est plus proche du client que le serveur Web qui sert réellement le contenu, ce qui entraîne plus rapidement transferts de données) et le trafic réseau également (réduisant la quantité de bande passante utilisée, ce qui vous permet d'économiser de l'argent si vous payez pour le trafic).

Vous voudrez peut-être vous référer au site Web Squid pour plus de documentation (assurez-vous également de vérifier le wiki), mais n'hésitez pas à nous contacter si vous avez des questions ou des commentaires. Nous serons plus que heureux de vous entendre!

Devenir ingénieur certifié Linux