préparation à la certification LPIC2 version 3.5 en français
Chapitre 8 : Topic 208 : Services Web
Configuration de Apache2 et Squid
Partie 4 : mise en place d'un serveur mandataire (proxy)
Topic 208.3
Installation, configuration et gestion du Proxy Squid sous GNU/Linux.
Supports créés par Noël Macé sous Licence Creative Commons BY-NC-SA.
08 04 mise en place d'un serveur mandataire (proxy)
1. Linux LPIC2 noelmace.com
Noël Macé
Formateur et Consultant indépendant expert Unix et FOSS
http://www.noelmace.com
Mise en place d'un serveur
mandataire (proxy)
Services web
Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
3. Linux LPIC2 noelmace.com
Introduction
• Serveur mandataire (proxy)
intermédiaire entre deux réseaux (ex : local / internet)
• Avantages et fonctionnalités
performances
• mémoire cache, compression
sécurité
• anonymisation
• surveillance (journalisation)
filtrage
• des publicités et contenus lourds (performance)
• des contenus indésirables
4. Linux LPIC2 noelmace.com
Squid
• Proxy libre de référence
Licence GNU GPL
créé en Juillet 1996
Notamment utilisé par Wikimedia Fondation et Flickr
version actuelle (au 13 Juillet 2013) : 3.3.8
• Support des protocoles HTTP, HTTPS, FTP et Gopher
• Nombreuses fonctionnalités
mémoire cache
contrôle étendu des accès
cache DNS
mandataire inverse
5. Linux LPIC2 noelmace.com
Configuration
• squid.conf
/etc/squid (CentOS et Debian Squid 2) ou /etc/squid3 (Debian Squid 3)
Ensemble de directive complexes
• ligne par ligne
Fonctionnel à l'installation
• Exemple (Extrait) :
visible_hostname ubuntu
http_port 3128
...
acl allowedips src 192.168.1.1/255.255.255.0
...
forwarded_for off
...
visible_hostname ubuntu
http_port 3128
...
acl allowedips src 192.168.1.1/255.255.255.0
...
forwarded_for off
...
6. Linux LPIC2 noelmace.com
Paramètres généraux
• Définition du port d'écoute HTTP (3128 par défaut)
• Interface d'écoute HTTP (toutes par défaut)
limiter aux réseaux locaux pour des raisons de sécurité
• Nom de la machine (obtenu via gethostname() par défaut)
http_port 3177http_port 3177
http_port 192.168.1.1:3177http_port 192.168.1.1:3177
http_port 3177http_port 3177
visible_hostname nom_machinevisible_hostname nom_machine
7. Linux LPIC2 noelmace.com
ACLs
• Syntaxe
acltype :
• src : adresse IP de la source (ie. le client) (adresse/masque) ou d'une place d'adresses
(adresse_IP_debut-adresse_IP_fin)
• dst : adresse IP de la destination (ie. ordinateur cible)
• srcdomain : domaine du client
• dstdomain : domaine de destination.
• url_regex : chaîne contenu dans l'URL
- possibilité d'utiliser les jokers ou un fichier
- sensible à la casse
• urlpath_regex : chaîne comparée avec le chemin de l'URL
- possibilité d'utiliser les jokers
• proto : protocole.
acl aclname acltype string[string2]acl aclname acltype string[string2]
9. Linux LPIC2 noelmace.com
Restriction d'accès
• A partir d'une acl pré-définie
doit être placé après la définition de cette acl
• Syntaxe
• Exemples
interdire l'accès au domaine noelmace.com
interdire l'accès aux pages contenant le mot forbidden
Restreindre l'accès au proxy aux seul réseau 192.168.0.0
http_access allow|deny [!]aclnamehttp_access allow|deny [!]aclname
http_access deny mon_domaine_dst
http_access allow all
http_access deny mon_domaine_dst
http_access allow all
http_access deny url_interdit
http_access allow all
http_access deny url_interdit
http_access allow all
http_access allow localhost
http_access allow clients
http_access deny all
http_access allow localhost
http_access allow clients
http_access deny all
10. Linux LPIC2 noelmace.com
Authentification utilisateur
• 4 types d'authentification HTTP possible
Basic, NTLM (SMB LM, v1 and v2), Digest, et Negotiate.
• Nombreuses solutions disponibles
APM, LDAP, NCSA auth, SMB …
• Avec NCSA auth
à partir des mêmes outils (htpasswd) que pour Apache2 mod_auth_basic
Exemple
• Documentation : http://wiki.squid-cache.org/Features/Authentication
•
auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
http_access deny all
auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
http_access deny all
11. Linux LPIC2 noelmace.com
Authentification utilisateur pour Squid 2.4-
• Avec NCSA auth
• Avec LDAP
• LDAP_USER : ou (organizational unit) contenant les clients
exemple ou=people, ou= ac-limoges, ou=education, ou=gouv, c=fr
authenticate_program /usr/lib/ncsa_auth /etc/squid/passwd
acl auth_users proxy_auth REQUIRED
acl all src 0/0
http_access allow auth_users
http_access deny all
authenticate_program /usr/lib/ncsa_auth /etc/squid/passwd
acl auth_users proxy_auth REQUIRED
acl all src 0/0
http_access allow auth_users
http_access deny all
acl identification proxy_auth REQUIRED
http_access allow identification
authentificate_program /usr/lib/squid/squid_ldap_auth -b $LDAP_USER -u uid SERVEUR_LDAP
acl identification proxy_auth REQUIRED
http_access allow identification
authentificate_program /usr/lib/squid/squid_ldap_auth -b $LDAP_USER -u uid SERVEUR_LDAP
12. Linux LPIC2 noelmace.com
Test : configuration du client Debian
• Pour tester votre serveur, vous pouvez utilisez n'importe quel
client http (firefox, epiphany, etc …)
• La configuration peu se faire au niveau de l'OS client ou du
logiciel client web
pour configurer firefox : Documentation officielle
pour configurer le proxy sur votre client Debian
•$ gnome-network-preferences$ gnome-network-preferences
13. Linux LPIC2 noelmace.com
Ce qu’on a couvert
• Gestion et configuration du serveur mandataire Squid
• Restriction d'accès grâce aux ACLs
• Authentification utilisateur
Weight : 1
Description : Candidates should be able to install and configure a proxy
server, including access policies, authentication and resource usage.
208.3 Implementing a proxy server
14. Linux LPIC2 noelmace.com
Licence
Ce(tte) œuvre (y compris ses illustrations, sauf mention explicite) est mise à disposition selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.
Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ ou écrivez à :
Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
Vous êtes libre de :
partager — reproduire, distribuer et communiquer cette œuvre
remixer — adapter l’œuvre
Selon les conditions suivantes :
Attribution — Vous devez clairement indiquer que ce document, ou tout document dérivé de celui, est (issu de) l’œuvre
originale de Noël Macé (noelmace.com) (sans suggérer qu'il vous approuve, vous ou votre utilisation de l’œuvre, à moins
d'en demander expressément la permission).
Pas d’Utilisation Commerciale — Vous n’avez pas le droit d’utiliser cette œuvre à des fins commerciales (ie. l'intention
première ou l'objectif d'obtenir un avantage commercial ou une compensation financière privée). Pour obtenir ce droit, une
autorisation explicite de l'auteur est requise.
Partage dans les Mêmes Conditions — Si vous modifiez, transformez ou adaptez cette œuvre, vous n’avez le droit de
distribuer votre création que sous une licence identique ou similaire à celle-ci.
Pour toute demande de collaboration, d'utilisation commerciale ou de publication de ce support ou d'un dérivé de celui-ci sous une
licence incompatible, contacter l'auteur via les contacts indiqués sur le site http://www.noelmace.com. Vous êtes par ailleurs
vivement encouragé (sans obligation légale) à communiquer avec celui-ci si vous réalisez une œuvre dérivée ou toute amélioration
de ce support.