Squid – Authentification Active Directory

Mise en place d’une authentification AD & squid

Pour cela, nous donnerons des noms à certains éléments comme suit :

Le nom du domaine, s’appellera ici mabooktic.lan ;
Le nom du DC (Contrôleur de domaine), s’appellera ici ad ;
Le compte administrateur du DC, s’appellera ici Administrateur ;
Le nom de la machine Squid s’appellera ici PROXY_FTP ;

installer les paquets sur le serveur squid 

apt install samba krb5-user libpam-krb5 ntpdate winbind

mettre l’heure à la même heure entre la machine proxy et l’ad

sudo ntpdate 172.16.2.110

Modifier le fichier /etc/hosts

ajouter cette ligne ( pour la résolution du fqdn)

172.16.2.110          ad.mabooktic.lan172.16.2.6             PROXY_FTP.mabboktic.lan      ad

ouvrir et modifier le fichier /etc/krb5.conf

krb5.conf
  [libdefaults]     default_realm = MABOOKTIC.LAN     clock_skew = 300     ticket_lifetime = 24000
     dns_lookup_realm = false     dns_lookup_kdc = false
     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]     MABOOKTIC.LAN = {             kdc = ad.MABOOKTIC.lan             admin_server = ad.MABOOKTIC.lan             default_domain = MABOOKTIC.LAN     }
[domain_realm]     .MABOOKTIC.LAN = MABOOKTIC.LAN     MABOOKTIC.LAN = MABOOKTIC.LAN
[login]     krb4_convert=true     krb4_get_tickets=false
[logging]     kdc = FILE:/var/log/krb5kdc.log     admin_server = FILE:/var/log/kadmin.log     default = FILE:/var/log/krb5lib.log

Ouvrir et modifier le fichier /etc/nsswitch.conf

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the `glibc-doc-reference’ and `info’ packages installed, try:# `info libc « Name Service Switch »‘ for information about this file.
passwd:     compat winbindgroup:      compat winbindshadow:     compatgshadow:    files
hosts:      files dnsnetworks:   files
protocols:  db filesservices:   db filesethers:     db filesrpc:        db files
netgroup:   nis

lancer la commande : 

sudo kinit Administrateur

(saisir le mot de passe associé à Administrateur dans l’Ad)

Commande pour voir les tickets kerberos : 

sudo klist

Arrêter les services samba et winbind 

Joindre la machine proxy au domaine :

Relancer le service winbind et samba : 

Tester avec la commande : wbinfo -g

Tester la commande wbinfo -u pour voir la liste des utilisateurs

Tester la connexion

Vérifier si la machine proxy est jointe à l’AD : 

Pour la partie configuration squid, voici le fichier :

# mise en place d’un proxy server     cache_peer 192.168.20.100 parent 8080 0 default no-query login=mayachi:3SqEvRjg
# règle d’autorisation pour notre réseaux booktic     never_direct allow all
# nom spécial utilisé dans les logs d’erreur     visible_hostname squid_mous
# fourni l’email de l’admin en cas d’arrêt du serveur     cache_mgr mustapha@ayachi.ovh
# squid ajoute l’ip dans la requête http     forwarded_for off
# squidguard     url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
# config authentification ad     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 credentialsttl 2 hours     auth_param basic realm MABOOKTIC     append_domain .mabooktic.lan     #cache_effective_group root
# infos# Pour n’autoriser le surf qu’à un groupe d’Active Directory spécifique,# rajouter le paramètre require-membership-of au programme ntlm_auth comme ceci :# auth_param ntlm program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp –require-membership-of=DOMAINEAD\\groupead# auth_param basic program /usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic –require-membership-of=DOMAINEAD\\groupead

# acl monreseaux src 172.16.0.0/8     acl ntlm proxy_auth REQUIRED     acl SSL_ports port 443     acl Safe_ports port 80      # http     acl Safe_ports port 21      # ftp     acl Safe_ports port 443     # https
#auth ad     http_access allow ntlm
# Port d’écoute     http_port 3128
# mémoire alloué à squid     cache_mem 50 MB# pour l’auth ad     append_domain .mabooktic.lan
# gestion de fichiers :
     coredump_dir /var/spool/squid     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
# pour accélérer le chargement des pages grâce à la mise en mémoire tampon     cache_dir ufs /opt/squid 1000 16 256
# taille max stocké en mémoire     maximum_object_size 20 MB









Exemple de message d’authentification

reference : https://doc.ubuntu-fr.org/tutoriel/comment_mettre_en_place_un_proxy_squid_avec_authentification_active_directory

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *