Squid3 et LDAP : pb de proxy

Bonjour,

Je cherche à installer un proxy sur mon VPS qui héberge aussi une instance de Yunohost.
J’ai suivi les indications de memo-linux.com, mais en vain …

root@sylther:/etc/squid3 # systemctl status squid3 -l
  squid3.service - LSB: Squid HTTP Proxy version 3.x
  Loaded: loaded (/etc/init.d/squid3)
  Active: active (running) since ven. 2017-02-03 13:22:06 CET; 4s ago
  Process: 17550 ExecStop=/etc/init.d/squid3 stop (code=exited, status=0/SUCCESS)
  Process: 17572 ExecStart=/etc/init.d/squid3 start (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/squid3.service
           ├─17603 /usr/sbin/squid3 -YC -f /etc/squid3/squid.conf
           ├─17605 (squid-1) -YC -f /etc/squid3/squid.conf
           └─17606 (pinger)

févr. 03 13:22:06 sylther squid3[17603]: Squid Parent: will start 1 kids
févr. 03 13:22:06 sylther squid3[17572]: Starting Squid HTTP Proxy 3.x: squid3.
févr. 03 13:22:06 sylther squid3[17603]: Squid Parent: (squid-1) process 17605 started
févr. 03 13:22:06 sylther systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.

Visiblement, cette ligne de mon fichier de conf de squid n’est pas prise en compte :

auth_param basic program /usr/lib/squid3/basic_ldap_auth -b dc=yunohost,dc=org -h 127.0.0.1 -D cn=admin,dc=yunohost,dc=org -w MOT2PASSE_ADMIN2YUNOHOST -f "uid=%s"

J’ai pourtant évidemment mis le pwd qui va bien.
Le problème est aussi que je ne sais pas où trouver des infos pour régler ce problème.

L’accesslog de squid ne contient que des choses comme cela :

1486125608.014      0 127.0.0.1 TCP_DENIED/407 3517 GET cache_object://localhost/info - HIER_NONE/- text/html
1486125619.769      0 127.0.0.1 TCP_DENIED/407 3533 GET cache_object://localhost/counters - HIER_NONE/- text/html

Si quelque’un à des pistes pour résoudre ce problème, où des idées de fichiers de log à aller voir, je suis preneur.

Bonne journée,
Sylvain

Salut,
si je comprend bien l’authentification ne fonctionne pas ?
pourtant la ligne de ton fichier est bonne vue que j’ai la même …

le port du squid est bien ouvert ?
Quelles sont les acl misent en place ?

Bonjour,

Merci de ta réponse.

Oui. Lorsque je tente d’utiliser le proxy via un navigateur (j’ai testé sur plusieurs machines), je n’aboutis jamais à une demande de login de la part de squid
Cela se comprend au vu de ce que me renvoit systemctl status squid3 -l cf. monpost initial.
Ce que je ne comprend pas est pourquoi Squid ne prend pas en compte cette #|@{|* de ligne pour l’authentification ldap…

Copié/collé de la page d’exemple avec modification de mon passwd biensûr.

Oui.
yunohost firewall allow TCP 3128
me le confirme, ainsi que
iptables -nL |grep 3128

Je ne comprend pas bien ta question et donc du coup comment y répondre.
Tu veux cela ?

root@sylther:~ # iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
fail2ban-yunohost  tcp  --  anywhere             anywhere             multiport dports http,https
fail2ban-nginx  tcp  --  anywhere             anywhere             multiport dports http,https
fail2ban-dovecot  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,imap2,imap3,imaps,pop3,pop3s
fail2ban-sasl  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,imap2,imap3,imaps,pop3,pop3s
fail2ban-postfix  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission
fail2ban-pam-generic  tcp  --  anywhere             anywhere            
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:urd
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-client
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:xmpp-server
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:51413
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:3128
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:mdns
ACCEPT     udp  --  anywhere             anywhere             udp dpt:openvpn
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     icmp --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain fail2ban-dovecot (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-nginx (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-pam-generic (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-postfix (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-sasl (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-ssh (1 references)
target     prot opt source               destination         
REJECT     all  --  185.153.19.151       anywhere             reject-with icmp-port-unreachable
RETURN     all  --  anywhere             anywhere            

Chain fail2ban-yunohost (1 references)
target     prot opt source               destination         
RETURN     all  --  anywhere             anywhere     

Preneur de toute piste ! :slight_smile:

Amicalement,
Sylvain

Les ACLS sont le fichier squid.conf
exemple d’ACL :
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
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 ldap_auth
http_access allow localnet
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 localhost
http_access deny all

Ok, j’ai relu la sortie du status et effectievement basic_ldap_auth n’est pas pris en compte :confused:
tu as copié à l’identique le contenu de l’exemple que j’ai mis sur le blog ? (sauf le mdp off-cours)

Oui !

pour être sûr que nous sommes sur les mêmes version de logiciels, peux-tu me dire la version de ton OS et de squid3 ?

je sèche, j’essaie de trouver d’où peut venir le problème…

Hello,

root@sylther:/etc/squid3 # cat /etc/debian_version 
8.7

root@sylther:/etc/squid3 # uname -a 
Linux sylther 2.6.32-042stab120.11 #1 SMP Wed Nov 16 12:05:45 MSK 2016 x86_64 GNU/Linux
root@sylther:/etc/squid3 # squid3 -v

Squid Cache: Version 3.4.8
 linux
configure options:  '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,MSNT,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid3' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-build-info= linux' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security'

Je suis sur une Debian Jessie virtualisé sur un vps chez Pulseheberg.
Aucune configuration exotique, les seuls paquets installés en plus de ceux requis par Yunohost sont ceux de Squid justement.
Le système est à jour.

Ce qui m’étonne est que Squid ne bronche pas si je lui mets un login/passwd bidon dans la ligne de config de l’authentification. (il râle si j’introduis volontairement une erreur de syntaxe dans cette ligne (encore heureux !).

Et je ne vois pas trop de trace dans les logs dans lesquels j’ai cherché (Squid, auth.log, etc…).

J’ai l’impression qu’il manque quelque chose à Squid pour qu’il communique avec le serveur ldap …
Je vais refaire l’installation de Yunohost avec Squid depuis le début

EDIT : je me retrouve dans le même cas que toi ! bon, je cherche et dès que j’ai trouvé je reviens ici :slight_smile:

une chose qui me rassure, c’est que normalement ça fonctionne : Using Squid for proxy

Bon, ça fonctionne de nouveau chez moi sur une nouvelle installation.
Mes erreurs :
mauvais port proxy déclaré dans squid.conf
problème avec dnsmasq du Yunohost

A savoir : la ligne (basic_ldap_auth) -b dc=yunohost,dc=org -h 127.0.0.1 -D cn=admin,dc=yunohost,dc=org -w MOTDEPASSE -f uid=%s ne s’affiche que lorsque le proxy est appelé

mon vps de test est aussi chez Pulsheberg :slight_smile:

Hello,

Encore merci de ta réponse. (Et c’est bon à savoir que la ligne n’apparait que lorsqu’une connexion est active.)
J’ai validé mon port dans /etc/squid3/squid.conf :

42 dns_nameservers 127.0.0.1 ### j'utilise le cache DNS DNSmasq de Yunohost
43 http_port 3128

(et j’ai gardé tes # :slight_smile: )

Quel était ton problème avec DNSMasq ? J’ai regardé /etc/dnsmasq.conf et il n’y a rien qui me pique les yeux ?
As-tu ajouté qque chose dans /etc/dnsmasq.d/tonDomain.tld

Bonne journée !

[off: J’ai vraiment bien Pulse :)]

Mon problème c’est que de base dnsmaq ne faisait pas la résolution de nom donc pas d’internet via le proxy :confused:

Sinon, c’est bon le proxy fonctionne chez toi ?

off: je n’ai plus qu’un petit vps chez pulse qui me sert de test, mes autres vps sont chez Dyjix

Nope… Et je m’arrache les cheveux.

J’ai vu une fois la ligne (basic_ldap_auth) -b dc=yunohost,dc=org -h 127.0.0.1 -D cn=admin,dc=yunohost,dc=org -w MOTDEPASSE -f uid=%slorsque j’étais connecté avec un navigateur web depuis mon poste.
Une et une seule fois. Impossible de reproduire cela.

Par ailleurs, mon navigateur ne m’a pas demandé de login/passwd et au final : “Le serveur proxy présente une erreur, ou l’adresse est incorrecte.” (J’utilise opera pour mon test, je garde FF sans proxy pour parallèlement glaner des infos…
J’ai également essayé en saisissant directement l’IP d’un serveur web histoire de court-circuiter les questions d DNS, mais rien n’y fait…

Vraiment je ne comprend pas. En plus je ne peux pas faire un ‘redo from scratch’ avant plusieurs jours sur ce serveur…
C’est assez incompréhensible.

Par ailleurs, comment as-tu résolu ton pb de résolution justement ? Des changements à faire dans la config de dnsmasq ?

[EDIT] Suite au prochain épisode, je vais faire un redo from scratch début mars…

1 Like

Il y a un bug connu sous Debian 8 quand on installe dnsmasq, resolvconf et squid3.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798935

1 Like

We now have Yunohost package for Squid 3. Please feel free to test and open an issue if have any problem.