Configuration Squid · 9 min read · Nov 06, 2025
Debian Squeeze, Squid, Authentification Kerberos/LDAP, Intégration Active Directory et Cyfin Reporter - Page 2
Configurer Squid
Afin d’utiliser notre accès LDAP redondant et les autorisations via les groupes de sécurité dans Active Directory, nous devons créer un compte avec la permission de rechercher les attributs Active Directory. Squid utilisera ensuite ce compte pour fournir l’accès aux utilisateurs.
Dans Active Directory, créez un utilisateur appelé “Squid Proxy” avec le nom de connexion [email protected] et notez le mot de passe, puis remplacez le mot “squidpass” ci-dessous par votre mot de passe.
Assurez-vous que les éléments suivants sont vrais lors de la création du compte.
- L’utilisateur doit changer le mot de passe lors de la prochaine connexion Non coché
- L’utilisateur ne peut pas changer le mot de passe Coché
- Le mot de passe n’expire jamais Coché
- Le compte est désactivé Non coché
Par défaut, le compte squid ne pourra pas interroger l’attribut “memberOf” dans AD. Sélectionnez le niveau supérieur de votre domaine Active Directory dans Utilisateurs et ordinateurs Active Directory, faites un clic droit dessus et choisissez propriétés, onglet Sécurité, ajoutez l’utilisateur squid et donnez-lui des permissions de lecture (cela devrait se faire par défaut) et autorisez-le à lire “Cet objet et tous les objets enfants” en accédant aux options avancées.
Créez les groupes de sécurité suivants avec des descriptions dans Active Directory et ajoutez des utilisateurs aux groupes pertinents - si un utilisateur ne fait pas partie d’un groupe, il ne pourra accéder qu’aux sites dans la liste blanche ACL.
Les membres des Utilisateurs Internet ne pourront pas accéder aux sites Web dans la liste de blocage ACL.
- Utilisateurs Internet | Description : Les membres de ce groupe peuvent accéder à Internet. L’accès est enregistré avec des restrictions de site Web
- Journal complet des utilisateurs Internet | Description : Les membres de ce groupe peuvent accéder à Internet. L’accès est enregistré avec un accès complet au site Web
- Utilisateurs Internet complet sans journal | Description : Les membres de ce groupe peuvent accéder à Internet. L’accès n’est pas enregistré avec un accès complet au site Web
Nous configurons ensuite squid et ses fichiers de configuration associés.
Démarrage de Squid
Ajoutez la configuration suivante à /etc/default/squid3 (ce fichier n’existe pas par défaut).
vi /etc/default/squid3KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAMEsquid.conf
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default
cat /dev/null > /etc/squid3/squid.conf
vi /etc/squid3/squid.conf
Mettez à jour la variable du gestionnaire de cache avec l’adresse e-mail de la personne responsable du proxy.
Étudiez et mettez à jour le texte suivant avec soin, en remplaçant le contenu d’exemple (souligné) par la configuration de votre réseau - si vous vous trompez, votre proxy ne fonctionnera pas.
####### /etc/squid3/squid.conf Fichier de configuration #######
####### gestionnaire de cache
cache_mgr [email protected]
####### authentification kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squidproxy.example.local
auth_param negotiate children 10
auth_param negotiate keep_alive on
####### fournir l'accès via ldap pour les clients non authentifiés via kerberos
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f sAMAccountName=%s \
-h domaincontroller1.example.local
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### autorisations ldap
# accès proxy restreint enregistré
external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# accès proxy complet sans journalisation
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# accès proxy complet enregistré
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
####### acl pour l'authentification proxy et les autorisations ldap
acl auth proxy_auth REQUIRED
# format "acl, aclname, acltype, acltypename, activedirectorygroup"
acl RestrictedAccessLog external internet_users Internet\ Users
acl FullAccessNoLog external internet_users_full_nolog Internet\ Users\ Full\ NoLog
acl FullAccessLog external internet_users_full_log Internet\ Users\ Full\ Log
acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt"
acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt"
####### valeurs par défaut de squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # ports non enregistrés
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # http multilingue
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
####### appliquer l'auth : l'ordre des règles est important pour les niveaux d'autorisation
no_cache deny whitelistsites
http_access allow whitelistsites
http_access allow FullAccessNoLog auth
http_access allow FullAccessLog auth
http_access deny blockedsites
http_access allow RestrictedAccessLog auth
####### journalisation
# ne pas journaliser whitelistsites, FullAccessNoLog
access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog
####### valeurs par défaut de squid
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
touch /etc/squid3/whitelistsites.txt
touch /etc/squid3/blockedsites.txt
invoke-rc.d squid3 restart
Configuration automatique du proxy
Installez Apache2 :
apt-get install apache2Ajoutez une configuration à Apache2 pour identifier le format de fichier du script de configuration du proxy.
vi /etc/apache2/conf.d/wpad.datAddType application/x-ns-proxy-autoconfig .datCréez notre fichier wpad.dat utilisé par les navigateurs Web pour la configuration :
vi /var/www/wpad.datChangez la ligne commençant par $proxy par le FQDN de votre proxy (texte surligné).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// Les URL dans ce réseau sont accessibles directement
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
//Retourner le proxy pour TOUT le reste
else return $proxy;
}
Redémarrez Apache2 :
vinvoke-rc.d apache2 restartEnregistrements DNS WPAD
Avertissement : Une fois que vous ajoutez l’entrée DNS suivante, le proxy deviendra actif. Arrêtez-vous à ce stade et vérifiez.
- Que les navigateurs clients utilisent l’authentification Windows intégrée
- Que vous avez ajouté tous les utilisateurs aux groupes de sécurité Utilisateurs Internet pertinents dans AD
- Que tous les navigateurs clients sont configurés pour détecter automatiquement les paramètres du proxy pour l’accès Internet. Utiliser la stratégie de groupe est une option raisonnable ici ou peut-être restreindre l’accès HTTP sortant sur votre pare-feu pour éliminer les utilisateurs sans détection automatique configurée.
Testez l’accès avec Internet Explorer en cochant “Utiliser le script de configuration automatique” et en insérant http://squidproxy.example.local/wpad.dat (changez le FQDN du proxy bien sûr) dans le champ d’adresse, puis accédez à n’importe quel site Web. Bonne chance, j’espère que cela fonctionne ! Arrêtez-vous ici et dépannez si cela ne fonctionne pas, sinon vous vous retrouverez avec beaucoup d’utilisateurs en colère !
Ajoutez un enregistrement CNAME dans DNS pour pointer wpad.example.local vers squidproxy.example.local
Remarque : Le serveur 2008 est livré avec une mesure de sécurité qui bloque wpad, je l’ai également vu sur le serveur 2003
Pour supprimer la restriction DNS wpad, mais laisser la liste de blocage activée, exécutez Regedit et ouvrez l’emplacement suivant.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
Le serveur 2008 aura probablement les entrées de WPAD et ISATAP. Supprimez l’entrée WPAD et redémarrez le service DNS pour qu’il recharge la liste de blocage. Vous devriez alors pouvoir résoudre wpad.example.local
Ensuite, configurez votre navigateur pour utiliser la configuration automatique du proxy. Tous les navigateurs Web modernes suivent la norme wpad et tenteront de rechercher http://wpad.example.local/wpad.dat pour leurs informations de configuration.
Plus d’informations sur WPAD peuvent être trouvées ici : http://wiki.squid-cache.org/Technology/WPAD/DNS
Vérifiez vos journaux squid pour voir que les navigateurs utilisent le proxy.
Optionnel : Installer Cyphin Reporter
Avec les proxies que nous exploitons, nous avons besoin de rapports décents. Des programmes comme sarg, mysar, etc. n’étaient pas à la hauteur en tant qu’options de reporting décentes pour surveiller l’utilisation d’Internet par les utilisateurs. Cyfin Reporter de Wavecrest s’est avéré être un système de reporting très capable et intuitif avec de nombreuses fonctionnalités.
Voici comment configurer et installer Cyfin Reporter avec squid sur Debian Squeeze.
La dernière version de Cyfin Reporter au moment de la rédaction est la version 8.5. Vérifiez les emplacements suivants en fonction de votre architecture avant de télécharger et mettez à jour les commandes suivantes si nécessaire.
http://downloads.wavecrest.net/release/cyfin/linux32/
http://downloads.wavecrest.net/release/cyfin/linux64/
Ainsi, votre installation pourrait ressembler à ceci…
cd /usr/local/src/
wget “http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz”
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
N.B Le programme Install Anywhere perturbe PS1, donc changer cela pour le shell actuel résout le problème.
export PS1=”>”
./c850linux32.bin
Lorsque vous êtes invité à entrer le chemin d’installation, entrez-le comme
* ENTREZ UN CHEMIN ABSOLU, OU APPUYEZ SUR POUR ACCEPTER LE PAR DÉFAUT
: /opt/wavecrest/cyfin*Acceptez tout le reste par défaut.
Nous devons créer un script d’initialisation pour démarrer et arrêter cyfin à la manière Debian.
vi /etc/init.d/cyfin#! /bin/sh
### BEGIN INIT INFO
# Provides: cyfin
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: script d'initialisation du reporter cyfin
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Charger le paramètre VERBOSE et d'autres variables rcS
. /lib/init/vars.sh
# Définir les fonctions log_* LSB.
# Dépendre de lsb-base (>= 3.2-14) pour s'assurer que ce fichier est présent
# et que status_of_proc fonctionne.
. /lib/lsb/init-functions
case "$1" in
start) sh /opt/wavecrest/cyfin/cyfin start
;;
stop) sh /opt/wavecrest/cyfin/cyfin stop
;;
status) sh /opt/wavecrest/cyfin/cyfin start
;;
restart) sh /opt/wavecrest/cyfin/cyfin restart
;;
*) echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:
chmod +x /etc/init.d/cyfin
update-rc.d cyfin defaults
Configurer Cyfin Reporter nécessiterait un tout nouveau tutoriel, donc voici les bases.
Accédez à l’interface de configuration via http://squidproxy.example.local:7999. Le login par défaut est “admin” pour le nom d’utilisateur et le mot de passe.
- Utilisez l’aide dans l’interface graphique car la documentation est très bonne.
- Consultez les FAQ à http://www.wavecrest.net/support/cyfin/reporter/faqs.html
- Utilisez le menu de démarrage rapide pour configurer les bases, qui sont assez simples.
- Activez le gestionnaire de données pour importer des fichiers journaux et configurez un calendrier d’importation de fichiers journaux.
- utilisez l’intégration dans Active Directory, vous pouvez utiliser le compte squid créé pour l’auth LDAP pour extraire également des informations d’Active Directory.
- Configurez un calendrier pour importer des listes d’utilisateurs d’Active Directory.
- Vous devez vous assurer que vos utilisateurs font partie d’un groupe de sécurité ou d’un groupe de distribution dans Active Directory et ajouter ces groupes à Cyfin Reporter.
- Assignez le responsable des départements comme destinataire des rapports par e-mail.
- Configurez des comptes d’accès pour le personnel ayant la permission de consulter les journaux.
Si vous utilisez Cyfin Reporter, vous devez tenir compte d’une utilisation mémoire supplémentaire, alors assurez-vous d’allouer suffisamment de ressources pour le faire fonctionner.
Cela conclut le tutoriel. J’espère que cela aide.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.