14

Click here to load reader

08 04 mise en place d'un serveur mandataire (proxy)

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: 08 04 mise en place d'un serveur mandataire (proxy)

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 CommonsCe(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.

Page 2: 08 04 mise en place d'un serveur mandataire (proxy)

Linux LPIC2 noelmace.com

Plan• Introduction

Squid

• Configuration

Paramètres généraux

• ACLs

ACLs : Exemples

• Restriction d'accès

• Authentification utilisateur

Authentification utilisateur pour Squid 2.4-

Page 3: 08 04 mise en place d'un serveur mandataire (proxy)

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

Page 4: 08 04 mise en place d'un serveur mandataire (proxy)

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

Page 5: 08 04 mise en place d'un serveur mandataire (proxy)

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 ubuntuhttp_port 3128...acl allowedips src 192.168.1.1/255.255.255.0...forwarded_for off...

visible_hostname ubuntuhttp_port 3128...acl allowedips src 192.168.1.1/255.255.255.0...forwarded_for off...

Page 6: 08 04 mise en place d'un serveur mandataire (proxy)

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

Page 7: 08 04 mise en place d'un serveur mandataire (proxy)

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]

Page 8: 08 04 mise en place d'un serveur mandataire (proxy)

Linux LPIC2 noelmace.com

ACLs : Exemples

acl mon_domaine_dst dstdomain noelmace.comacl mon_domaine_dst dstdomain noelmace.com

acl url_interdit url_regex forbiddenacl url_interdit url_regex forbidden

acl url_interdites url_regex "/etc/squid/denied_url"acl url_interdites url_regex "/etc/squid/denied_url"

acl clients src 192.168.0.0/255.255.0.0acl clients src 192.168.0.0/255.255.0.0

Page 9: 08 04 mise en place d'un serveur mandataire (proxy)

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_dsthttp_access allow all http_access deny mon_domaine_dsthttp_access allow all

http_access deny url_interdithttp_access allow all http_access deny url_interdithttp_access allow all

http_access allow localhost http_access allow clientshttp_access deny all

http_access allow localhost http_access allow clientshttp_access deny all

Page 10: 08 04 mise en place d'un serveur mandataire (proxy)

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/passwdacl auth_users proxy_auth REQUIREDhttp_access allow auth_usershttp_access deny all

auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwdacl auth_users proxy_auth REQUIREDhttp_access allow auth_usershttp_access deny all

Page 11: 08 04 mise en place d'un serveur mandataire (proxy)

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/passwdacl auth_users proxy_auth REQUIREDacl all src 0/0http_access allow auth_usershttp_access deny all

authenticate_program /usr/lib/ncsa_auth /etc/squid/passwdacl auth_users proxy_auth REQUIREDacl all src 0/0http_access allow auth_usershttp_access deny all

acl identification proxy_auth REQUIREDhttp_access allow identificationauthentificate_program /usr/lib/squid/squid_ldap_auth -b $LDAP_USER -u uid SERVEUR_LDAP

acl identification proxy_auth REQUIREDhttp_access allow identificationauthentificate_program /usr/lib/squid/squid_ldap_auth -b $LDAP_USER -u uid SERVEUR_LDAP

Page 12: 08 04 mise en place d'un serveur mandataire (proxy)

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

Page 13: 08 04 mise en place d'un serveur mandataire (proxy)

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

Page 14: 08 04 mise en place d'un serveur mandataire (proxy)

Linux LPIC2 noelmace.com

LicenceCe(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.