search
top

Squid avec Autentification NTLM avec des serveurs 2003

Configuration de la stratégie de groupe

Ouvrez la stratégie de groupe :
Strategie de groupe
Éditez la stratégie de groupe :
Editeur d'objets de strategie de groupe
Désactivez le paramètre : Server réseau Microsoft : communications signées numériquement
Proprietes de serveur réseau microsoft

Paquage Debian nécessaire

apt-get install squid smbclient krb5-config krb5-user telnet ntpd tcpdump strace wget openssh-client

Configuration samba

/etc/samba/smb.conf
Respecter les majuscules/minucules

[global]
workgroup=DOMAINE
realm = DOMAINE.LOCAL
netbios name=PROXY
security = ADS
log file = /var/log/samba/%m.log
max log size = 50
password server = dc01.domain.local, dc02.domain.local
encrypt passwords = yes
domain master = no
domain logons = no
dns proxy = no
os level = 17
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind use default domain = yes
;winbind separator = /
winbind enum users = yes
winbind enum groups = yes
printcap name = /dev/null
load printers = no
printing = bsd

Configuration Kerberos

/etc/krb5.conf

[libdefaults]
default_realm = DOMAIN.LOCAL
clock_skew = 300
ticket_lifetime = 24000
forwardable = yes
default_tgs_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
default_tkt_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
preferred_enctypes = DES-CBC-CRC DES-CBC-MD5 RC4-HMAC
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
DOMAIN.LOCAL = {
master_kdc = dc01.domain.local
kdc = dc02.domain.local
admin_server = dc01.domain.local
default_domain = DOMAIN.LOCAL
}
[domain_realm]
.domain.local = DOMAIN.LOCAL
domain.local = DOMAIN.LOCAL
[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf
[appdefaults]
pam = {
debug = true
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
}

Configuration squid avec authentification ntlm

/etc/squid/squid.conf

http_port 8080
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_dir ufs /opt/squid-spool 5000 16 256
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Proxy
auth_param basic credentialsttl 2 hours
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl NTLM proxy_auth REQUIRED
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443          # https
acl SSL_ports port 563          # snews
acl SSL_ports port 873          # rsync
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  # unregistered ports
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         # multiling http
acl Safe_ports port 631         # cups
acl Safe_ports port 873         # rsync
acl Safe_ports port 901         # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow NTLM
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname proxy.domain.local
append_domain .domain.local
forwarded_for off
error_directory /usr/share/squid/errors/French
coredump_dir /opt/squid-spool

Modification du script d’init squid

/etc/initd.d/squid

ajouter :

chown root:proxy /var/run/samba/winbindd_privileged

dans le start/restart/reload Lorsque windbind ne met pas les bon droit pour que squid puisse utiliser ce socket, lorsque squid se lance on doit donc mettre les bon droit dessus. J’ai pas trouver de manière plus propre

Joindre le domaine :

net ads join -U Administrateur

Puis essayez de lister les compte du domaine, si la machine est bien entrée dans le domaine, cela fonctionne :

wbinfo -u
wbinfo -g

Documentation Squid en anglais: http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory
Merci à f4eyq.

Afficher la date dans les log de squid

Pour convertir les timestamp utilisé dans les log Squid en heure lisible, commencez par créé le script perl suivant

#! /usr/bin/perl -p
s/^\d+\.\d+/localtime $&/e;

Ensuite, afficher les logs avec cat, grep ou tail suivant puis piper cela dans le script. par exemple :

tail -f acces.log | squid_date.pl

Codes d’erreur Squid

CodeMessageSignification
1xx

Information

100ContinueAttente de la suite de la requête
101Switching ProtocolsAcceptation du changement de protocole
102ProcessingWebDAV : Traitement en cours (évite que le client dépasse le temps d’attente limite).
2xx

Succès

200OKRequête traitée avec succès
201CreatedRequête traitée avec succès avec création d’un document
202AcceptedRequête traitée mais sans garantie de résultat
203Non-Authoritative InformationInformation retournée mais générée par une source non certifiée
204No ContentRequête traitée avec succès mais pas d’information à renvoyer
205Reset ContentRequête traitée avec succès, la page courante peut être effacée
206Partial ContentUne partie seulement de la requête a été transmise
207Multi-StatusWebDAV : Réponse multiple.
210Content DifferentWebDAV : La copie de la ressource coté client diffère de celle du serveur (contenu ou propriétés).
3xx

Redirection

300Multiple ChoicesL’URI demandée se rapporte à plusieurs ressources
301Moved PermanentlyDocument déplacé de façon permanente
302Moved TemporarilyDocument déplacé de façon temporaire
303See OtherLa réponse à cette requête est ailleurs
304Not ModifiedDocument non-modifié depuis la dernière requête
305Use ProxyLa requête doit être ré-adressée au proxy
307Temporary RedirectLa requête doit être redirigée temporairement vers l’URI spécifiée
4xx

Erreur du client

400Bad RequestLa syntaxe de la requête est erronée
401UnauthorizedAccès à la ressource refusé
402Payment RequiredPaiement requis pour accéder à la ressource (non utilisé)
403ForbiddenRefus de traitement de la requête
404Not FoundDocument non trouvé
405Method Not AllowedMéthode de requête non autorisée
406Not AcceptableToutes les réponses possibles seront refusées.
407Proxy Authentication RequiredAccès à la ressource autorisé par identification avec le proxy
408Request Time-outTemps d’attente d’une réponse du serveur écoulé
409ConflictLa requête ne peut être traitée à l’état actuel
410GoneLa ressource est indisponible et aucune adresse de redirection n’est connue
411Length RequiredLa longueur de la requête n’a pas été précisée
412Precondition FailedPréconditions envoyées par la requête non-vérifiées
413Request Entity Too LargeTraitement abandonné dû à une requête trop importante
414Request-URI Too LongURI trop longue
415Unsupported Media TypeFormat de requête non-supportée pour une méthode et une ressource données
416Requested range unsatisfiableChamps d’en-tête de requête ‘range’ incorrect.
417Expectation failedComportement attendu et défini dans l’en-tête de la requête insatisfaisable
422Unprocessable entityWebDAV : L’entité fourni avec la requête est incompréhensible ou incomplet.
423LockedWebDAV : L’opération ne peut avoir lieu car la ressource est verrouillée.
424Method failureWebDAV : Une méthode de la transaction a échoué.
5xx

Erreur du >serveur

500Internal Server ErrorErreur interne du serveur
501Not ImplementedFonctionnalité réclamée non supportée par le serveur
502Bad Gateway ou Proxy ErrorMauvaise réponse envoyée à un serveur intermédiaire par un autre serveur.
503Service UnavailableService indisponible
504Gateway Time-outTemps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé
505HTTP Version not supportedVersion HTTP non gérée par le serveur
507Insufficient storageWebDAV : Espace insuffisant pour modifier les propriétés ou construire la collection
509Bandwidth Limit ExceededCode non officiel utilisé par de nombreux serveurs pour indiquer un dépassement de quota.

ACL Squid pour autoriser Windows Update

Ajoutez l’ACL suivante :

acl winupdate dstdomain .microsoft.com .windowsupdate.com
http_access allow winupdate

Si cela ne fonctionne toujours pas :

  • Vérifier que le proxy est bien configuré dans IE
  • configurer le proxy en ligne de commande

    proxycfg -p xxx.xxx.xxx.xxx:port

Gestion des listes SquidGuard

Mettre à jour une whiteliste ou blackliste SquidGuard

  • Générer les bases à partir des fichiers :

    squidGuard -C fichier

  • Remettre les bon droits sur les fichiers au cas ou :

    chown squid.squid *.db

  • Indiquer a SquidGard de relire les .db :

    squid -k reconfigure

« Articles précédents

top