Lien entre squid et openldap

Bonjour,
Suite a la demande de mon supérieur j’ai crée deux machine virtuelle ou j’ai installer sur l’une le service squid et sur l’autre le service LDAP. Le but de ses deux vm et de pouvoir gerer les droit des utilisateur sur internet via les autorisation donné au personne sur le service LDAP.
J’ai donc commencer a suivre des tutos pour configurer ces deux service. Tous semblais bien marcher jusqu’a ce que j’essaye de mettre en place l’authentification sur le service squid avec le service LDAP mais lorsque je redémarre squid il me met que le fichier basic_ldap_auth n’est pas trouvé.

mon fichier squid.conf :

# nom de la machine
visible_hostname srv-proxy

# Ecouter sur l’interface du réseau local (LAN)
http_port 3128

# Parametrage du fichier basic_ldap_auth
auth_param basic program /usr/lib/squid/basic_ldap_auth -b "dc=cesi,dc=fr" -f uid=%s -h 10.0.1.3
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

# Identifie et autorise les reseaux ou adresse IP
acl localnet src 10.0.1.0 255.255.255.0         # test

# Autorise les port
acl Users proxy_auth REQUIRED
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 488         # gss-http
acl Safe_ports port 777         # multiling http

# accepte ce qui est lié au reseau
http_access allow Users
http_access allow localnet
http_access allow localhost
http_access deny all !Safe_ports

# Logs
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log

# Serveur DNS
dns_nameservers 10.0.1.1

Si quelqu’un aurais une idée comme je suis nouveau sur linux il est fort probable que j’ai fait des erreur plus au moins importante.

Cordialement

Une piste de solution pourrait être le nom de ton extension. Regarde si c’est pas conf.d ou va voir dans le man de squid ou de LDAP. Peut-être de jeter un oeil à leur site web aussi pour voir s’il n’y a pas un problème similaire. Peut-être aussi qu’il y a quelque chose qui ne pointe pas à la bonne place. Ou sinon, Est-ce qu’il y aurait des éléments à mettre en début de fichier comme on fait pour un fichier bash? En espérant pouvoir te relancer dans ta recherche de solution.

http://www.squid-cache.org/ | https://ldap.com/

Bonjour,
En regardant votre fichier de configuration il semble pas avoir d’erreur dans la syntaxe. Je dirais en premier lieu à vérifier si le fichier existe bien ainsi que son emplacement via la commande :

find / -name basic_ldap_auth -type f

Ensuite il nous faudrait les logs du service squid :

tail -n 20 /var/log/squid/access.log

et enfin tester votre syntaxe directement:

cd /usr/lib/squid
./ basic_ldap_auth -b "dc=cesi,dc=fr" -f uid=%s -h 10.0.1.3
USER
PASSWORD

Merci pour ton retour !!!

2 J'aime

Bonjour,
Merci pour vos retour,

J’ai verifié que le fichier est bien la et la commende me le confirme bien.
Ensuite pour les log :

root@debianSquid:/etc/squid# tail -n 20 /var/log/squid/access.log
1590653380.341      5 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653380.341      5 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653381.954      0 10.0.1.10 TCP_DENIED/407 4128 CONNECT snippets.cdn.mozilla.net:443 - HIER_NONE/- text/html
1590653381.954      0 10.0.1.10 TCP_DENIED/407 4128 CONNECT snippets.cdn.mozilla.net:443 - HIER_NONE/- text/html
1590653382.446      0 10.0.1.10 TCP_DENIED/407 4140 CONNECT safebrowsing.googleapis.com:443 - HIER_NONE/- text/html
1590653382.446      0 10.0.1.10 TCP_DENIED/407 4140 CONNECT safebrowsing.googleapis.com:443 - HIER_NONE/- text/html
1590653382.458      0 10.0.1.10 TCP_DENIED/407 4140 CONNECT shavar.services.mozilla.com:443 - HIER_NONE/- text/html
1590653382.458      0 10.0.1.10 TCP_DENIED/407 4140 CONNECT shavar.services.mozilla.com:443 - HIER_NONE/- text/html
1590653385.270      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653385.270      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653388.215     76 10.0.1.10 TCP_DENIED/407 4323 GET http://detectportal.firefox.com/success.txt debacker HIER_NONE/- text/html
1590653388.215     76 10.0.1.10 TCP_DENIED/407 4323 GET http://detectportal.firefox.com/success.txt debacker HIER_NONE/- text/html
1590653390.274      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653390.274      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653394.570      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653394.570      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653398.090      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653398.090      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653399.318      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html
1590653399.318      0 10.0.1.10 TCP_DENIED/407 4260 GET http://detectportal.firefox.com/success.txt - HIER_NONE/- text/html

sachant que 10.0.1.10 est un poste client sur lequel je test ma config.
Je met aussi la réponse que j’ai dans les log du serveur quand j’entre l’id et le mpd dans la fenêtre d’authentification du poste client :

May 28 10:09:48 debianSquid squid[15199]: ERROR: helper: {result=BH, notes={message: Success; }}, attempt #1 of 2
May 28 10:09:48 debianSquid squid[15199]: ERROR: helper: {result=BH, notes={message: Success; message: Success; }}, attempt #2 of 2

et le message d’erreur du ficher basic_ldap_auth :

May 28 10:13:10 debianSquid squid[15218]: helperOpenServers: Starting 0/5 'basic_ldap_auth' processes
May 28 10:13:10 debianSquid squid[15218]: helperOpenServers: No 'basic_ldap_auth' processes needed.

Et pour finir quand je test la synthaxe directement il me repond BH Success.
J’ai donc l’impression qu’il me dit que les identifiant sont bon mais qu’il ne peux pas me donner l’accès.

J’ai trouvé cela, ça ressemble à ce que tu cherche :

# echo "password" > /etc/squid/ldap_password
# chown root:squid /etc/squid/ldap_password
# chmod 640 /etc/squid/ldap_password

voici le lien:

Merci pour ta réponse !!! A mon avis le problème viendrait du placer de ton ACL car l’ordre est très important dans le fichier squid.conf mais aussi je me rends compte que tu autorises pas la connexion SSL (https) d’où le DENIED.

Essaie de mettre ceci à la place de ta config :

acl localnet src 10.0.1.0 255.255.255.0         # test

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 # 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 CONNECT method CONNECT
http_access deny CONNECT !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
acl Users proxy_auth REQUIRED
http_access deny !auth
http_access deny all

j’ai déja essayer mais malheureusement ca ne fonctionne pas

Je viens d’essayer ce que tu viens de me donner mais j’ai toujours le DENIED dans les log et j’ai toujours le message d’erreur avec le no basic_ldap_auth.
Mais je pence effectivement qu’il fallais activer cette options car les deux discute en ssl mais j’ai l’impression que j’ai un port qui ne doit pas être ouvert sur le squid ou le ldap car pour moi c le fichier basic_ldap_auth qui ne remonte pas jusqu’au serveur ldap.

Exact! Il parle aussi du pare-feu dans le lien que je t’ai envoyé, ça serait l’autre chose que j’essayerais.

j’ai aussi essayer mais cela ne résous pas mon probleme

Dis-moi a tu la fenetre authentification cote client ?

Tu peux faire un :
ls -l /usr/lib/squid

1 J'aime

Oui j’ai bien la fenêtre coté client et quand je rentre l’identifiant et mdp il ferme cette fenêtre pour en réouvrir une autre juste apre.

ls -l /usr/lib/squid :

-rwxr-xr-x 1 root root  5611 mai    4 21:07 basic_db_auth
-rwxr-xr-x 1 root root 14424 mai    4 21:07 basic_fake_auth
-rwxr-xr-x 1 root root 14328 mai    4 21:07 basic_getpwnam_auth
-rwxr-xr-x 1 root root 30728 mai    4 21:07 basic_ldap_auth
-rwxr-xr-x 1 root root 22616 mai    4 21:07 basic_ncsa_auth
-rwxr-xr-x 1 root root 14328 mai    4 21:07 basic_nis_auth
-rwxr-xr-x 1 root root 22536 mai    4 21:07 basic_pam_auth
-rwxr-xr-x 1 root root  2999 mai    4 21:07 basic_pop3_auth
-rwxr-xr-x 1 root root 22936 mai    4 21:07 basic_radius_auth
-rwxr-xr-x 1 root root 14328 mai    4 21:07 basic_sasl_auth
-rwxr-xr-x 1 root root 18424 mai    4 21:07 basic_smb_auth
-rwxr-xr-x 1 root root  2657 mai    4 21:07 basic_smb_auth.sh
-rwxr-xr-x 1 root root  2515 mai    4 21:07 cert_tool
-rwxr-xr-x 1 root root 26616 mai    4 21:07 digest_file_auth
-rwxr-xr-x 1 root root 30744 mai    4 21:07 digest_ldap_auth
-rwxr-xr-x 1 root root 22600 mai    4 21:07 diskd
-rwxr-xr-x 1 root root 18424 mai    4 21:07 ext_file_userip_acl
-rwxr-xr-x 1 root root 96248 mai    4 21:07 ext_kerberos_ldap_group_acl
-rwxr-xr-x 1 root root 39080 mai    4 21:07 ext_ldap_group_acl
-rwxr-xr-x 1 root root 14336 mai    4 21:07 ext_session_acl
-rwxr-xr-x 1 root root  5067 mai    4 21:07 ext_sql_session_acl
-rwxr-xr-x 1 root root 18440 mai    4 21:07 ext_time_quota_acl
-rwxr-xr-x 1 root root 18424 mai    4 21:07 ext_unix_group_acl
-rwxr-xr-x 1 root root  5081 mai    4 21:07 ext_wbinfo_group_acl
-rwxr-xr-x 1 root root  6665 mai    4 21:07 helper-mux
-rwxr-xr-x 1 root root 12980 mai    4 21:07 log_db_daemon
-rwxr-xr-x 1 root root 14328 mai    4 21:07 log_file_daemon
-rwxr-xr-x 1 root root 51192 mai    4 21:07 negotiate_kerberos_auth
-rwxr-xr-x 1 root root 14360 mai    4 21:07 negotiate_kerberos_auth_test
-rwxr-xr-x 1 root root 22520 mai    4 21:07 negotiate_wrapper_auth
-rwxr-xr-x 1 root root 30720 mai    4 21:07 ntlm_fake_auth
-rwxr-xr-x 1 root root 61088 mai    4 21:07 ntlm_smb_lm_auth
-rwxr-xr-x 1 root root 80536 mai    4 21:07 pinger
-rwxr-xr-x 1 root root  7511 mai    4 21:07 security_fake_certverify
-rwxr-xr-x 1 root root  3926 mai    4 21:07 storeid_file_rewrite
-rwxr-xr-x 1 root root 14424 mai    4 21:07 unlinkd
-rwxr-xr-x 1 root root 14328 mai    4 21:07 url_fake_rewrite
-rwxr-xr-x 1 root root  2526 mai    4 21:07 url_fake_rewrite.sh

Bonjour camarade du Cesi :wink:

Il faut etre sur que le procéssus squid ait les droits d’accès suffisant.
Pour tester, desactive le pare-feu pour etre sur que celui ci ne fout pas le bazar.

le ldap.conf est-il configuré (celui pour les utilisateurs par defaut)?

l’erreur 407 est une erreur d’authentification du process qui cherche à accéder au site indiqué (il me semble).

Je dis une connerie ou normalement pour un proxy tu associes un serveur radius?

(pourquoi foutre ldap directement sur le proxy- enfin relié à -?)

Ce n’est pas une connerie, mais en fait non, dans ce cas, c’est un LDAP qu’on utilise (ou un AD) pas un radius, qui lui est plutot utilisé pour faire une authentification réseau, qui te donne un accès réseau.
Et qui plus est, le but de l’exercice est d’utiliser un squid avec un ldap.

Le proxy squid sert à controler l’accès à internet.
Sans compter que pour toute entreprise, c’est une obligation légale (peut etre en theorie, mais obligation quand même, qui n’a pas forcement besoin d’etre realisée, jusqu’a ce que la justice puisse te demander des comptes)).

Bonjour a toi,

J’ai réussi a résoudre mon problème quelque mois après avoir posté ma demande. J’avoue ne plus me souvenir exactement de ce que j’ai fait pour résoudre mon problème mais une des solution les plus probable étant que j’ai tout cassé pour tout refaire et cela a fonctionner correctement ensuite. J’ai donc du faire une faute lors de ma première configuration.
Mon problèmes maintenant est que je n’arrive pas a filtrer en fonction des groupes des personnes dans le squidGuard.conf, malgré le fait d’avoir suivi la doc sur le site de squidguard.

Merci pour votre retour !

PS: ce projet étais pas pour le cesi mais c’est une demande de mon entreprise.