[Squid] Version non AD ? [Demande][Résolu]

Ici vous pouvez parler de tout et de rien

[Squid] Version non AD ? [Demande][Résolu]

Messagepar Jalounet » 08 Déc 2013, 03:38

Bonjour,
Après pas mal d'heure de galère, je me décide à demander de l'aide.
J'ai suivie ton tutorial pour la création du squid et j'arrive au résultat attendu dans tes explications.
Néanmoins, je rencontre une difficulté dans l'adaptation du code, car je me retrouve dans une situation différente de la tienne.
Tu à joint ton squid à un AD pour l’authentification. Dans mon cas, la vm qui me sers de proxy ne dispose pas d'AD. C'est juste un win7 home de base. En étudiant la question j'ai trouvé l'authentification avec le ncsa_auth.exe. Je n'ai malheureusement pas réussi l'adaptation du script de squid.conf.

En reprenant ton code, que dois-je modifier ?
################################
#Parametres d'authentification NTLM#
################################
auth_param ntlm program c:/squid/libexec/mswin_ntlm_auth.exe
auth_param ntlm children 5
auth_param ntlm keep_alive on

#####################################
#Config minimum recommandee par SQUID#
#####################################
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
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
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

#################
#Gestion des ACL's#
#################

#Va chercher un prog externe (mswin_check_lm_group) pour tester les groupes du domaine
external_acl_type NTLM %LOGIN c:/squid/libexec/mswin_check_lm_group.exe

#explique que le groupe SquidProxy doit être teste via l'ACL externe "NTLM"
acl Groupe_SquidProxy external NTLM SquidProxy

#explique que le groupe SquidProxySitesAnnonces doit être teste via l'ACL externe "NTLM"
acl Groupe_SquidProxySitesAnnonces external NTLM SquidProxySitesAnnonces

#Force a etre authentifie
acl AUTHENTIFICATION proxy_auth REQUIRED

#Banliste Medias Sociaux
acl Medias_Sociaux url_regex -i "C:/squid/etc/Medias_Sociaux.txt"

#Banliste Sites d'annonces
acl Sites_Annonces url_regex -i "C:/squid/etc/Sites_Annonces.txt"

###########################################
#Configuration minimum recommandee par SQUID#
###########################################

# Autoriser l'acces au cachemgr seulement depuis localhost
http_access allow manager localhost
http_access deny manager

#Autorise l'accès aux ports SSL
http_access allow ssl_ports

# Refuser les requetes provenant de ports inconnus
http_access deny !Safe_ports

# Refuse CONNECT a d'autres ports que les SSL
http_access deny CONNECT !SSL_ports

#################################################################################################
#Regles d'acces -- Le HACK "all" evite une popup d'authentification lors de refus d'acces et renvoi une page d'erreur#
#################################################################################################

#Refuse l'acces a la banliste Medias_Sociaux a Groupe_SquidProxy
http_access deny Medias_Sociaux Groupe_SquidProxy all

#Refuse l'acces a la banliste Medias_Sociaux a Groupe_SquidProxySitesAnnonces
http_access deny Medias_Sociaux Groupe_SquidProxySitesAnnonces all

#Refuse l'acces a la banliste Sites_Annonces a Groupe_SquidProxy
http_access deny Sites_Annonces Groupe_SquidProxySitesAnnonces all

#Autorise tout le reste aux utilisateurs authentifies
http_access allow AUTHENTIFICATION all

#Finalement refuse acces au proxy a tout le reste
http_access deny all

#Autorise les demandes ICP depuis le LAN seulement
icp_access allow localnet
icp_access deny all

#Recommandation de Squid d'une ligne a utiliser
hierarchy_stoplist cgi-bin ?

#Chemin du fichier LOG des acces
access_log c:/squid/var/logs/access.log squid


#Config par défaut:
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

# Ne pas mettre à jour les réponses ShoutCast vers HTTP
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast


# Lignes de codes recommandées par Squid
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache


#Chemin d'acces du cache
coredump_dir c:/squid/var/cache

#Nom du Serveur Proxy
visible_hostname NomDuServeurProxy

#Port d'ecoute du Proxy
http_port 3128


J'ai tenté de ré-adapter ce tutorial fais pour linux : http://forum.ubuntu-fr.org/viewtopic.php?pid=2875483
Mais dans tout les cas le service refuse de démarrer.

Je te mes mon fichier squid.conf que j'ai adapter du tutorial linux.
#auth_param basic program indique l'authentification utilisée #ainsi que l'endroit où est stocké le fichier contenant les #utilisateurs et leur mot de passe.
auth_param basic program c:/squid/libexec/ncsa_auth.exe c:/squid/etc/password.txt
#Children augmentez la valeur si vous avez beaucoup #d'utilisateurs.
auth_param basic children 5

#Realm n'est rien d'autre qu'un texte qui apparaîtra dans la #fenêtre de demande d'identification.
auth_param basic realm Squid proxy-caching web server

#Credentialsttl durée de vie de l'identification des #utilisateurs.
auth_param basic credentialsttl 2 hours

#Oblige le respect de la casse concernant
#le login et le mot de passe.
auth_param basic casesensitive on

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl SERV_JAL src ip de mon srv/255.255.255.0

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 #ports non enregistrés
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
acl Users proxy_auth REQUIRED

#Autorisations d'accès depuis l'intérieur
http_access allow manager localhost

#Refus d'accès aux requêtes extérieures
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow Users
http_access deny all

#Nom visible de la machine depuis l'extérieur, ici une #game_gear vous pouvez remplacer ca parcequ'il vous plaît
visible_hostname SERV_JAL

#Interdit l'accès ICP
icp_access deny all

#Interdit l'accès HTCP
htcp_access deny all

#Anonymiser les requêtes de Squid
request_entities off
via off

#Enlever l'adresse IP et le nom du système dans les requêtes #http
forwarded_for off

#Port sur lequel écoute Squid (interface externe)
#pensez à ouvrir ce port au niveau de vôtre routeur ainsi que #dans vôtre firewall
http_port 3128

#Mémoire cache
cache_mem 16 MB

#L'endroit ou sont situés les logs
access_log c:/squid/var/logs/acces.log squid
#Charge le module pour lancer la fenêtre d'authentification #des utilisateurs
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin /?


#Interdit l'accès au cache du proxy
cache deny QUERY

#Indique le port ICP
icp_port 3130

#Taux de rafraichissement par défaut :
refresh_pattern ^ftp : 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|/?) 0 0% 0
refresh_pattern . 0 20% 4320

positive_dns_ttl 8 hours
negative_dns_ttl 4 minutes
minimum_expiry_time 60 seconds

#Fin du fichier de configuration squid.conf


Je remercie tout aide par avance ^^
Dernière édition par Jalounet le 22 Déc 2013, 18:02, édité 1 fois.
Jalounet
Tuteur débutant
 
Messages: 4
Inscription: 08 Déc 2013, 03:24

Re: [Squid] Version non AD ? [Demande]

Messagepar tchao57 » 13 Déc 2013, 11:13

Hello,

je n'ai pas encore testé cette méthode d'authentification. Néanmoins, essaye voir dans un premier temps de commenter les lignes:

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive on

Contrôle également que tu ais bien l’exécutable ncsa_auth.exe dans le répertoire c:/squid/libexec/ (on sait jamais)

PS: n'oublie pas de redémarrer le service SQUID après modif.
Nul n'est parfait, nous apprenons sans cesse...

Site Web Pro : http://www.solucetech.fr
Avatar de l’utilisateur
tchao57
Administrateur du site
 
Messages: 118
Inscription: 07 Avr 2013, 22:14
Localisation: Florange en Moselle

Re: [Squid] Version non AD ? [Demande]

Messagepar Jalounet » 16 Déc 2013, 13:41

Ok je test et je te tiens au courant.
Jalounet
Tuteur débutant
 
Messages: 4
Inscription: 08 Déc 2013, 03:24

Re: [Squid] Version non AD ? [Demande]

Messagepar tchao57 » 17 Déc 2013, 13:30

OK ça marche.
Nul n'est parfait, nous apprenons sans cesse...

Site Web Pro : http://www.solucetech.fr
Avatar de l’utilisateur
tchao57
Administrateur du site
 
Messages: 118
Inscription: 07 Avr 2013, 22:14
Localisation: Florange en Moselle

Re: [Squid] Version non AD ? [Demande]

Messagepar Jalounet » 25 Déc 2013, 22:54

Sa ne fonctionne pas.

j'ai changé de stratégie, j'ai installé un windows srv 2008 r2 vec dns +ad.
J'ai testé ton script, celui-ci fonctionne mais il ne m'identifie pas l'utilisateur.
En sachant que mon poste client ne ce trouve pas sur le domaine et que le serveur est un serveur loué chez online.net.
Comment puis-je me connecter et m'identifier avec le squid ?
Dans ton script tu utilise le ntlm peut-on utiliser le LDAP à la place ? Si oui, as-tu une idée des modifications a faire a ton script ?

je te remercie par avance ^^
Jalounet
Tuteur débutant
 
Messages: 4
Inscription: 08 Déc 2013, 03:24

Re: [Squid] Version non AD ? [Demande]

Messagepar tchao57 » 30 Déc 2013, 14:47

Salut,

si ton client ne s'identifie pas c'est parce que tu n'es pas dans le domaine.

Tu peux effectivement utiliser l'authentification LDAP afin que l'utilisateur ait à entrer ses identifiants dans un POPUP.

A tester:



Remplacer

Code: Tout sélectionner
####################################
#Parametres d'authentification NTLM#
####################################
auth_param ntlm program c:/squid/libexec/mswin_ntlm_auth.exe
auth_param ntlm children 5
auth_param ntlm keep_alive on



Par

Code: Tout sélectionner
####################################
#Parametres d'authentification LDAP#
####################################
auth_param basic program C:/Squid/libexec/squid_ldap_auth.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w "mdp" -f sAMAccountName=%s -h ip_serveur
auth_param basic children 5
auth_param basic realm Message_POPUP


/!\ Attention /!\
La première ligne (de "auth_param basic program" à "ip_serveur") ne doit pas contenir de saut de ligne
  • -R est obligatoire pour une connexion à l’AD
  • -b sert à indiquer le chemin du domaine
  • -D sert à indiquer le compte admin et son chemin complet
  • -w est le mot de passe du compte admin
  • -h est l'adresse IP du serveur contrôleur de domaine (AD)
  • auth_param basic children 5 (tu peux laisser par défaut pour un petit réseau)
  • Message_POPUP c'est le message qui s'affichera dans le titre de ta fenêtre POPUP





Remplacer

Code: Tout sélectionner
###################
#Gestion des ACL's#
###################

#Va chercher un prog externe (mswin_check_lm_group) pour tester les groupes du domaine
external_acl_type NTLM %LOGIN c:/squid/libexec/mswin_check_lm_group.exe

#explique que le groupe SquidProxy doit être teste via l'ACL externe "NTLM"
acl Groupe_SquidProxy external NTLM SquidProxy

#explique que le groupe SquidProxySitesAnnonces doit être teste via l'ACL externe "NTLM"
acl Groupe_SquidProxySitesAnnonces external NTLM SquidProxySitesAnnonces



Par

Code: Tout sélectionner
###################
#Gestion des ACL's#
###################

external_acl_type GroupeUsers %LOGIN C:/Squid/libexec/squid_ldap_group.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w mdp -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=CN=%a,OU=groupe_access_web,DC=longo,DC=local))" -h ip_serveur


/!\ Attention /!\
Tout ceci n'est qu'une seule et même ligne et ne doit pas contenir de saut de ligne
  • -R est obligatoire pour une connexion à l’AD
  • -b sert à indiquer le chemin du domaine
  • -D sert à indiquer le compte admin et son chemin complet
  • -w est le mot de passe du compte admin
  • -f c’est un filtre qui sert à contrôler que l’identifiant tapé correspond bien à un utilisateur ("objectClass=person") membre du groupe "groupe_access_web" (à savoir que le nom de groupe n'est pas obligatoirement celui-ci, mais il doit également correspondre au groupe de l'AD)
  • -h est l'adresse IP du serveur contrôleur de domaine (AD)



Il faut aussi garder la ligne "acl AUTHENTIFICATION proxy_auth REQUIRED" qui permet d'indiquer qu'il faut obligatoirement s'authentifier sur le proxy pour avoir accès au WEB.

Il faut aussi ajouter 2 ACL's:

Code: Tout sélectionner
acl GroupeWebOk external GroupeUsers webOK (va autoriser les utilisateurs)
acl GroupeWebNok external GroupeUsers webNOK (va refuser les utilisateurs)



Il faut aussi ajouter les règles d'accès nécessaires:

Code: Tout sélectionner
http_access deny AUTHENTIFICATION GroupeWebNok (Refuse les utilisateurs)
http_access allow AUTHENTIFICATION GroupeWebOk (Autorise les utilisateurs)
http_access allow all





En gros ton script devrait ressembler à ça:

Code: Tout sélectionner
####################################
#Parametres d'authentification LDAP#
####################################
auth_param basic program C:/Squid/libexec/squid_ldap_auth.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w "mdp" -f sAMAccountName=%s -h ip_serveur
auth_param basic children 5
auth_param basic realm Message_POPUP

######################################
#Config minimum recommandee par SQUID#
######################################
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
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
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

###################
#Gestion des ACL's#
###################

external_acl_type GroupeUsers %LOGIN C:/Squid/libexec/squid_ldap_group.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w mdp -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=CN=%a,OU=groupe_access_web,DC=domaine,DC=local))" -h ip_serveur

#Force a etre authentifie
acl AUTHENTIFICATION proxy_auth REQUIRED
acl GroupeWebOk external GroupeUsers webOK
acl GroupeWebNok external GroupeUsers webNOK

#############################################
#Configuration minimum recommandee par SQUID#
#############################################

# Autoriser l'acces au cachemgr seulement depuis localhost
http_access allow manager localhost
http_access deny manager

#Autorise l'accès aux ports SSL
http_access allow ssl_ports

# Refuser les requetes provenant de ports inconnus
http_access deny !Safe_ports

# Refuse CONNECT a d'autres ports que les SSL
http_access deny CONNECT !SSL_ports

################
#Regles d'acces#
################

http_access deny authentification GroupeWebNok
http_access allow authentification GroupeWebOk
http_access allow all

#Autorise les demandes ICP depuis le LAN seulement
icp_access allow localnet
icp_access deny all

#Recommandation de Squid d'une ligne a utiliser
hierarchy_stoplist cgi-bin ?

#Chemin du fichier LOG des acces
access_log c:/squid/var/logs/access.log squid


#Config par défaut:
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

# Ne pas mettre à jour les réponses ShoutCast vers HTTP
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast


# Lignes de codes recommandées par Squid
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache


#Chemin d'acces du cache
coredump_dir c:/squid/var/cache

#Nom du Serveur Proxy
visible_hostname NomDuServeurProxy

#Port d'ecoute du Proxy
http_port 3128




J’espère que ça pourra t'être utile, à savoir que je n'ai pas testé en environnement réel, il faudra peut être adapter au besoin.
Je te laisse également le bon soin de voir pour l'accès en HTTPS.

Bonne fêtes de fin d'année et bon courage.
Nul n'est parfait, nous apprenons sans cesse...

Site Web Pro : http://www.solucetech.fr
Avatar de l’utilisateur
tchao57
Administrateur du site
 
Messages: 118
Inscription: 07 Avr 2013, 22:14
Localisation: Florange en Moselle

Re: [Squid] Version non AD ? [Demande]

Messagepar Jalounet » 14 Jan 2014, 03:27

Bonjour à tous et à toutes !

tchao57, je t'annonce que le script est fonctionnel ^^

Néanmoins, je rajoute quelques explication sur les lignes LDAP, pour tes visiteurs qui ne connaisse pas vraiment de quoi, il s'agit.

Lignes :
####################################
#Parametres d'authentification LDAP#
####################################
auth_param basic program C:/Squid/libexec/squid_ldap_auth.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w "mdp" -f sAMAccountName=%s -h ip_serveur
auth_param basic children 5
auth_param basic realm Message_POPUP


Explication complémentaire :
Dans cette ligne vous devez remplacer domaine par le nom de votre domaine, il ne s'agit pas la d'une variable path mais belle est bien d'un champs à changer par vos informations.
Même manipulation pour local, Administrateur et mdp.

Exemple
####################################
#Parametres d'authentification LDAP#
####################################
auth_param basic program C:/Squid/libexec/squid_ldap_auth.exe -R -b "dc=ubuntu,dc=fr" -D "cn=windaube_XD,cn=Users,dc=ubuntu,dc=fr" -w "supersecret" -f sAMAccountName=%s -h localhost
auth_param basic children 5
auth_param basic realm Message_POPUP


Dernier point il y a une petite faute ici :
(Vous l'aurez compris dans ce passe cité ci-dessous vous devez également changer les informations du LDAP.)
###################
#Gestion des ACL's#
###################

external_acl_type GroupeUsers %LOGIN C:/Squid/libexec/squid_ldap_group.exe -R -b "dc=domaine,dc=local" -D "cn=Administrateur,cn=Users,dc=domaine,dc=local" -w mdp -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=CN=%a,OU=groupe_access_web,DC=longo,DC=local))" -h ip_serveur


Pour -w mdp mettez les "" pour avoir : -w "mdp".
Ce n'est pas un gros soucie mais au moins vous rester dans la logique de l'écriture du script.

/!\Attention si vous modifier cn=Administrateur tâcher de mettre un compte qui possède le même niveau que le compte Administrateur./!\

Conclusion, mon installation est fonctionnel et je te remercie grandement pour ton aide ^^
Jalounet
Tuteur débutant
 
Messages: 4
Inscription: 08 Déc 2013, 03:24

Re: [Squid] Version non AD ? [Demande]

Messagepar tchao57 » 14 Jan 2014, 09:45

Super!

Merci pour la précision.

@+
Franck
Nul n'est parfait, nous apprenons sans cesse...

Site Web Pro : http://www.solucetech.fr
Avatar de l’utilisateur
tchao57
Administrateur du site
 
Messages: 118
Inscription: 07 Avr 2013, 22:14
Localisation: Florange en Moselle


Retourner vers Forum détente

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron