Configuration réseau · 5 min read · Sep 23, 2025
Debian Squeeze, Squid, Authentification Kerberos/LDAP, Intégration Active Directory Et Cyfin Reporter
Debian Squeeze, Squid, Authentification Kerberos/LDAP, Intégration Active Directory Et Cyfin Reporter
Introduction
Ce document couvre la configuration d’un proxy Squid qui s’intègre parfaitement avec Active Directory pour l’authentification en utilisant Kerberos avec LDAP comme sauvegarde pour les utilisateurs non authentifiés via Kerberos. L’autorisation est gérée par des groupes dans Active Directory. Cela est particulièrement utile pour les clients Windows 7 qui ne prennent plus en charge NTLMv2 sans changer la politique de l’ordinateur local. Il est capable d’utiliser des listes blanches et des listes noires pour l’accès et les restrictions de site.
Pour ce guide, les exemples suivants sont utilisés - vous devez mettre à jour les sections avec le domaine des clients, les noms d’hôtes et les IP si nécessaire.
- Domaine = example.local
- Sous-réseau = 192.168.0.0/24
- Serveur Proxy : IP = 192.168.0.26, NOM D’HÔTE = squidproxy.example.local
- Serveur Windows 1 : IP = 192.168.0.1, NOM D’HÔTE = domaincontroller1.example.local
- Serveur Windows 2 : IP = 192.168.0.10, NOM D’HÔTE = server2.example.local
Une installation de base de Debian Squeeze est supposée ainsi que des compétences de base en administration Debian. vi est supposé comme éditeur de texte.
Prérequis
Les navigateurs Internet Explorer des clients doivent avoir “Activer l’authentification Windows intégrée” coché dans Options Internet :: Paramètres avancés ainsi que la détection automatique du proxy activée - recherchez cela sur Google si vous n’êtes pas sûr. Tous les navigateurs web modernes prendront en charge la détection automatique du proxy. Firefox et Chrome prennent également en charge l’authentification Windows.
Configuration DNS
Installez dnsutils :
apt-get install dnsutilsSur le serveur DNS Windows, ajoutez une nouvelle entrée d’enregistrement A pour le nom d’hôte du serveur proxy et assurez-vous qu’une entrée PTR (DNS inverse) correspondante est également créée et fonctionne. Vérifiez que le proxy utilise le serveur DNS Windows pour la résolution de noms et mettez à jour /etc/resolv.conf en conséquence.
vi /etc/resolv.confsearch example.local
nameserver 192.168.0.1
nameserver 192.168.0.10Pinger un nom d’hôte interne et externe pour s’assurer que le DNS fonctionne.
ping domaincontroller1.example.local -c 4 && ping google.com -c 4Vérifiez que vous pouvez effectuer une recherche inversée sur le serveur Windows et l’IP locale du proxy depuis le DNS Windows.
dig -x 192.168.0.1
dig -x 192.168.0.26Avertissement : Si l’une des recherches DNS échoue, ne continuez pas tant que cela n’est pas corrigé, sinon l’authentification du proxy échouera.
Configuration NTP
Installez le paquet ntp :
apt-get install ntpParce que Kerberos doit avoir l’heure synchronisée avec les contrôleurs de domaine Windows pour l’authentification, nous configurons le proxy pour obtenir l’heure de ceux-ci.
vi /etc/ntp.confLocalisez la section suivante et mettez à jour les serveurs ntp selon les besoins. Si vous avez plus d’un contrôleur de domaine ou serveur NTP, vous pouvez ajouter plusieurs lignes.
# Vous devez parler à un serveur NTP ou deux (ou trois).
#server ntp.your-provider.example
server domaincontroller1.example.local
server server2.example.localPuis redémarrez et testez NTP.
invoke-rc.d ntp restart
tpq -pVous devriez voir une sortie qui fait référence aux contrôleurs de domaine et aux autres serveurs NTP qui sont traités dans l’ordre dans lequel ils apparaissent dans le fichier de configuration.
Configurer Kerberos
Installez les paquets Kerberos :
apt-get install krb5-user libkrb53Acceptez simplement les valeurs par défaut présentées à tout dialogue debconf qui s’affiche, car nous les remplaçons.
Configurez Kerberos.
cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.confModifiez le fichier en remplaçant les variables (soulignées) par le domaine et le serveur du client.
Avertissement : Selon la version du système d’exploitation de vos contrôleurs de domaine Windows, décommentez la section Windows 200X pertinente et commentez la section opposée.
Si vous n’avez qu’un seul contrôleur de domaine, supprimez l’entrée “kdc” supplémentaire de la section “[realms]”.
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = no
dns_lookup_realm = no
ticket_lifetime = 24h
default_keytab_name = /etc/squid3/PROXY.keytab
; pour 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
; pour Windows 2008 avec 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.LOCAL = {
kdc = domaincontroller1.example.local
kdc = server2.example.local
admin_server = domaincontroller1.example.local
default_domain = example.local
}
[domain_realm]
.example.local = EXAMPLE.LOCAL
example.local = EXAMPLE.LOCALInstaller Squid 3
apt-get install squid3 ldap-utilsRemarque : La configuration de Squid se fait après que msktutil soit configuré.
Installer et exécuter msktutil
Obtenez le paquet msktutil et installez-le.
cd /var/cache/apt/archives/
wget http://fuhm.net/software/msktutil/releases/msktutil_0.4-2_i386.deb
apt-get install libsasl2-modules-gssapi-mit libsasl2-modules
dpkg -i msktutil_0.4-2_i386.deb
cdInitiez une session kerberos avec le serveur afin que msktutil puisse l’utiliser pour créer notre objet Proxy dans Active Directory qui sera utilisé pour l’accès.
kinit administratorEntrez le mot de passe de l’administrateur de domaine.
Il devrait ensuite retourner sans erreurs. Vous pouvez voir si vous avez obtenu un ticket avec :
klistMaintenant, nous configurons le proxy dans AD avec des principes de service en exécutant msktutil (mettez à jour les valeurs surlignées avec votre réseau).
Avertissement : Vous ne devez pas déplacer l’objet de l’OU que vous utilisez pour le créer avec msktutil.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verboseSi vous utilisez un domaine Server 2008, ajoutez “–enctypes 28” à la fin de la commande.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verbose --enctypes 28Définissez les permissions sur le keytab afin que squid puisse le lire.
chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytabSur le serveur Windows, réinitialisez le compte ordinateur dans AD en cliquant avec le bouton droit sur l’ordinateur SQUIDPROXY et sélectionnez “Réinitialiser le compte”, puis exécutez msktutil comme suit pour vous assurer que le keytab est mis à jour comme prévu et que le keytab est correctement source par msktutil depuis /etc/krb5.conf.
Redémarrez d’abord le proxy pour effacer les tickets kerberos générés par la commande kinit, puis exécutez ce qui suit :
msktutil --auto-update --verboseSi le keytab n’est pas trouvé, essayez d’ajouter “-k /etc/squid3/PROXY.keytab” à la commande pour voir si cela fonctionne, puis dépannez jusqu’à ce que cela soit résolu ou les utilisateurs ne pourront pas s’authentifier avec Squid.
Ajoutez ce qui suit à cron afin qu’il puisse automatiquement mettre à jour le compte ordinateur dans Active Directory lorsqu’il expire (généralement autour de 30 jours). Je le pipe à travers logger afin que je puisse voir les erreurs dans syslog si nécessaire. Comme indiqué, msktutil utilise le fichier par défaut /etc/krb5.conf pour ses paramètres, donc soyez conscient de cela si vous décidez d’apporter des modifications.
Les variables SHELL et PATH sont là pour s’assurer que cron fonctionne correctement, changez cela si vous savez ce que vous faites.
crontab -eSHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# m h dom mon dow commande
00 4 * * * msktutil --auto-update --verbose | logger -t msktutilRecevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.