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]
auth_param scheme parameter [setting]
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.
12.4.1. Authentication avec LDAP Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
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
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
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
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
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
:
- 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
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 Copied! Toggle word wrap Toggle overflow 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
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 Copied! Toggle word wrap Toggle overflow QuandCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Redémarrer le service
Squid
systemctl restart squid
~]# systemctl restart squid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.4.2. Authentication avec Kerberos Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
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
- Configurer
Squid
pour rejoindre un domaine AD (Active Directory).- Modifier le fichier
/etc/krb5.conf
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Vérifier par la commande
kinit
:kinit testuser1
~]# kinit testuser1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kinit administrator
~]# kinit administrator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Modifier le fichier
/etc/samba/smb.conf
comme suit :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Rejoindre le domaine AD
net ads join -U Administrator
~]# net ads join -U Administrator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 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
~]# kinit administrator ~]# export KRB5_KTNAME=FILE:/etc/squid/HTTP.keytab ~]# net ads keytab CREATE ~]# net ads keytab ADD HTTP
Copy to Clipboard Copied! Toggle word wrap Toggle overflow et vérifier le fichier keytabklist -k /etc/squid/HTTP.keytab
~]# klist -k /etc/squid/HTTP.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note
Veillez à ce que le nom d'hôte soit bien défini dans le fichier/etc/hosts
- Les fichiers doivent être inclus dans
Squid
.rpm -q squid
~]# rpm -q squid squid-3.1.10-1.el6.x86_64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -ql squid | grep kerb
~]# rpm -ql squid | grep kerb
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /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
/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 Copied! Toggle word wrap Toggle overflow - Modifier
/etc/squid/squid.conf
comme suitCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Définir le fichier .keytab sur lecture (read) par le propriétaire du processus
Squid
:chgrp squid /etc/squid/HTTP.keytab
~]# chgrp squid /etc/squid/HTTP.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod g+r /etc/squid/HTTP.keytab
~]# chmod g+r /etc/squid/HTTP.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Ajouter les lignes suivantes au fichier
/etc/sysconfig/squid
:KRB5_KTNAME="/etc/squid/HTTP.keytab " export KRB5_KTNAME
KRB5_KTNAME="/etc/squid/HTTP.keytab " export KRB5_KTNAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Démarrer le service
Squid
service squid start
~]# service squid start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
~]# kinit testuser1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Essayez d'accéder à un site. Le navigateur ne doit pas vous demander un nom d'utilisateur ou un mot de passe.