12.4. Authentification Squid


Pour l’authentification, le code source de Squid connecte avec quelques back-ends d'authentification, également appelés helpers, tels que SMB (serveur SMB comme Windows NT ou Samba), DB (une base de données SQL), ou LDAP (Lightweight Directory Access Protocol). Les utilisateurs sont authentifiés si Squid est configuré pour utiliser les ACL proxy_auth.
Indiquer à Squid quel programme helper d'authentification utiliser avec une directive auth_param dans /etc/squid/squid.conf. Spécifier le nom du programme et les options en ligne de commande si nécessaire.
auth_param scheme parameter [setting]
Copy to Clipboard Toggle word wrap

Exemple 12.6. Ajout d'ACL proxy_auth

Ajouter des entrées d'ACL proxy_auth à votre configuration Squid en indiquant les noms d'utilisateurs. Dans cet exemples, les utilisateurs nommés lisa, sarah, joe, et frank sont autorisés d'utiliser le proxy à tout moment. Les autres utilisateurs ne peuvent le faire que pendant la journée.
acl foo proxy_auth REQUIRED
acl bar proxy_auth lisa sarah frank joe
acl daytime time 08:00-17:00
http_access allow foo daytime
http_access allow bar
http_access deny all
Copy to Clipboard Toggle word wrap

12.4.1. Authentication avec LDAP

Dans cette installation, Squid utilise LDAP pour authentifier les utilisateurs avant de les autoriser à surfer sur l'internet. Le code source Squid connecte à un back-end d'authentification (LDAP). Les utilisateurs doivent ensuite saisir leur nom d'utilisateur et mot de passe avant de pouvoir continuer sur les pages web. Squid utilise l'assistant d'authentification LDAP de Squid, squid_ldap_auth, ce qui permet à Squid de se connecter à un répertoire LDAP afin de valider le nom d'utilisateur et le mot de passe pour une authentication HTTP de base.
Mofifier le fichier /etc/squid/squid.conf comme suit afin de pouvoir connecter Squid à ldap.example.com:
auth_param basic program /usr/lib64/squid/basic_ldap_auth -b "dc=example,dc=com" -f "uid=%s" -c 2 -t 2 -h ldap.example.com otherldap.example.com
Copy to Clipboard Toggle word wrap
Si vous souhaitez authentifier des utilisateur Squid sur un serveurLDAP via un canal SSL/TLS sécurisé, passer l'argument -ZZ au programme squid_ldap_auth.
auth_param basic program /usr/lib64/squid/basic_ldap_auth -v 3 -ZZ -b "dc=yourcompany,dc=com" -D uid=some-user,ou=People,dc=yourcompany,dc=com  -w password -f uid=%s ldap.yourcompany.com
Copy to Clipboard Toggle word wrap
Si vous souhaitez vous authentifier auprès de serveurs OpenLDAP, comme TLS et SSL, vous devrez spécifier auth_param dans le fichier /etc/squid/squid.conf:
  1. Modifier /etc/squid/squid.conf pour TLS :
    auth_param basic program /usr/lib64/squid/basic_ldap_auth -Z -b "dc=example,dc=com" -f "uid=%s" -c 2 -t 2 -h ldap.example.com
    Copy to Clipboard Toggle word wrap
    et pour SSL :
    auth_param basic program /usr/lib64/squid/basic_ldap_auth -b "dc=example,dc=com" -f "uid=%s" -c 2 -t 2 -H ldaps://ldap.example.com
    Copy to Clipboard Toggle word wrap
    Quand
    -b - Specifies the base DN under which the users are located.
    -f - Specifies LDAP search filter to locate the user DN.
    -c - Specifies timeout used when connecting to LDAP servers.
    -t - Specifies time limit on LDAP search operations.
    -h - Specifies the LDAP server to connect to.
    -H - Specities the LDAP server to connect to by LDAP URI
    Copy to Clipboard Toggle word wrap
  2. Redémarrer le service Squid
    ~]# systemctl restart squid
    Copy to Clipboard Toggle word wrap

12.4.2. Authentication avec Kerberos

Suivez la procédure pour configurer le proxy Squid dans Red Hat Enterprise Linux 7 afin d'utiliser l’authentification Kerberos. De plus, comme prérequis, commencez par installer Samba, le serveur de fichiers Common Internet File System (CIFS) pour Red Hat Enterprise Linux. Pour plus d’informations sur l’installation de Samba, voyez la section Samba dans le Guide de l’administrateur systèmes de Red Hat Enterprise Linux 7.

Procédure 12.4. Configurer Squid dans Red Hat Enterprise Linux 7 pour utiliser l'authentification Kerberos

  1. Configurer Squid pour rejoindre un domaine AD (Active Directory).
    1. Modifier le fichier /etc/krb5.conf :
      [libdefaults]
                default_realm = EXAMPLE.COM
                dns_lookup_kdc = no
                dns_lookup_realm = no
                default_keytab_name = /etc/krb5.keytab
          ; for Windows 2003
                default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
                default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
                permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
      
          ; for Windows 2008 with AES
          ;      default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
          ;      default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
          ;      permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
      
          [realms]
           EXAMPLE.COM = {
            kdc = 192.168.0.1
            admin_server = 192.168.0.1
           }
      
          [domain_realm]
           example.com = EXAMPLE.COM
           .example.com = EXAMPLE.COM
      
          [logging]
            kdc = FILE:/var/log/kdc.log
            admin_server = FILE:/var/log/kadmin.log
            default = FILE:/var/log/krb5lib.log
      Copy to Clipboard Toggle word wrap
    2. Vérifier par la commande kinit :
      ~]# kinit testuser1
      Copy to Clipboard Toggle word wrap
      ~]# kinit administrator
      Copy to Clipboard Toggle word wrap
    3. Modifier le fichier /etc/samba/smb.conf comme suit :
      [global]
      workgroup = EXAMPLE
      password server = 192.168.0.1
      # Remember to put the realm all in CAPS:
      realm = EXAMPLE.COM
      security = ads
      idmap uid = 16777216-33554431
      idmap gid = 16777216-33554431
      template shell = /bin/bash
      winbind use default domain = true
      winbind offline logon = false
      winbind enum users = yes
      winbind enum groups = yes
      encrypt passwords = yes
      log file = /var/log/samba/log.%m
      max log size = 50
      passdb backend = tdbsam
      load printers = yes
      cups options = raw
      kerberos method = system keytab
      Copy to Clipboard Toggle word wrap
    4. Rejoindre le domaine AD
      ~]# net ads join -U Administrator
      Copy to Clipboard Toggle word wrap
  2. Créer un onglet pour HTTP/fqdn par la commande net ads keytab
    ~]# kinit administrator
    ~]# export KRB5_KTNAME=FILE:/etc/squid/HTTP.keytab
    ~]# net ads keytab CREATE
    ~]# net ads keytab ADD HTTP
    Copy to Clipboard Toggle word wrap
    et vérifier le fichier keytab
    ~]# klist -k /etc/squid/HTTP.keytab
    Copy to Clipboard Toggle word wrap

    Note

    Veillez à ce que le nom d'hôte soit bien défini dans le fichier /etc/hosts
  3. Les fichiers doivent être inclus dans Squid.
    ~]# rpm -q squid
        squid-3.1.10-1.el6.x86_64
    Copy to Clipboard Toggle word wrap
    ~]# rpm -ql squid | grep kerb
    Copy to Clipboard Toggle word wrap
    /usr/lib64/squid/negotiate_kerberos_auth  
        /usr/lib64/squid/negotiate_kerberos_auth_test  
        /usr/lib64/squid/squid_kerb_auth  
        /usr/lib64/squid/squid_kerb_auth_test
    Copy to Clipboard Toggle word wrap
  4. Modifier /etc/squid/squid.conf comme suit
    auth_param negotiate program /usr/lib64/squid/squid_kerb_auth -d -s HTTP/squid.example.com@EXAMPLE.COM  
    auth_param negotiate children 10
    auth_param negotiate keep_alive on
    acl kerb_auth proxy_auth REQUIRED
    (content truncated)
    
    http_access allow kerb_auth  
    http_access allow manager localhost  
    http_access deny manager  
    http_access deny !Safe_ports  
    http_access deny CONNECT !SSL_ports  
    http_access allow localnet  
    http_access allow localhost  
    http_access deny all  
    (content truncated)
    Copy to Clipboard Toggle word wrap
  5. Définir le fichier .keytab sur lecture (read) par le propriétaire du processus Squid :
    ~]# chgrp squid /etc/squid/HTTP.keytab
    Copy to Clipboard Toggle word wrap
    ~]# chmod g+r /etc/squid/HTTP.keytab
    Copy to Clipboard Toggle word wrap
  6. Ajouter les lignes suivantes au fichier /etc/sysconfig/squid :
    KRB5_KTNAME="/etc/squid/HTTP.keytab "
    export KRB5_KTNAME
    Copy to Clipboard Toggle word wrap
  7. Démarrer le service Squid
    ~]# service squid start
    Copy to Clipboard Toggle word wrap
  8. Configuration un client Kerberos et configurer votre navigateur pour qu'il utilise le serveur proxy de Squid. Obtenir un ticket Kerberos du KDC (Key Distribution Center).
    ~]# kinit testuser1
    Copy to Clipboard Toggle word wrap
    Essayez d'accéder à un site. Le navigateur ne doit pas vous demander un nom d'utilisateur ou un mot de passe.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat