Debian , Authentification NTLM sous Squid

Debian , Authentification NTLM sous Squid - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 23-10-2008 à 13:22:53    

Bonjour à tous.
 
Je suis en train de mettre un proxy Squid sous une Debian.
 
Le Squid fonctionne correctement , j'arrive à aller sur le net avec.
J'ai mis en place une authentification ncsa qui fonctionne via un fichier contenant tous mes utilisateurs, et cela fonctionne.
 
Mon responsable m'a demandé d'essayer d'améliorer l'authentification en faisant en sorte que mon squid prenne la liste des utilisateurs de l'active directory.
 
Je me suis donc renseigné sur la procédure.
 
J'ai ainsi installé Winbind, Samba, et tout le tralala pour que cela communique avec l'AD
J'arrive bien a rejoindre le domaine, j'ai la liste de mes utilisateurs AD , les groupes etc. ( commande wbinfo -u , etc)
 
donc j'ai voulu indiquer à mon squid d'utiliser le protocole d'authentification ntlm.
Problème, impossible de le mettre en place correctement.
Je vous copie mes fichiers .conf, car je ne vois vraiment pas où cela déconne. Et ça fait plusieurs jours que je bloque dessus.
 
Krb5.conf

Citation :


[libdefaults]
        default_realm = MONDOMAINE.FR
        dns_lookup_realm = false
        dns_lookup_kdc = true
 
[realms]
 
        MONDOMAINE.FR = {
                kdc = MONCONTROLEURDOMAINE.MONDOMAINE.FR:88
                kdc = MONCONTROLEURDOMAINESECONDAIRE.MONDOMAINE.FR:88
                admin_server = MONCONTROLEURDOMAINE.MONDOMAINE.FR:88
                default_domain = MONDOMAINE.FR
        }
 
[domain_realm]
 
        .mondomaine.fr = MONDOMAINE.FR
        mondomaine.fr  = MONDOMAINE.FR

 
[logging]
        default = FILE:/var/log/krb5.log
        kdc = FILE:/var/log/krb5kdc.log
        admin-server = FILE:/var/log/krb5adm.log
 
[appdefaults]
        pam = {
                debug = false
                ticket_lifetime = 36000
                renew_lifetime = 36000
                forwardable = true
                krb4_convert = false
        }


 
 
smb.conf
 

Citation :

       workgroup = MONDOMAINE
        realm = MONDOMAINE.FR
        security = ADS
        password server = MONCONTROLEURDOMAINE MONCONTROLEURDOMAINESECONDAIRE
        client use spnego = yes
        client ntlmv2 auth = yes
        syslog =0
        log file = /var/log/samba/log.%m
        max log size = 1000
        announce version = 4
        announce as = NT Workstation
        dns proxy = No
        idmap uid = 167771-335549
        idmap gid = 167771-335549
        winbind use default domain = Yes
        invalid users = root




nsswitch.conf

Citation :


passwd:         compat winbind
group:          compat winbind
shadow:         compat
 
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files
 
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
 
netgroup:       nis


 
et mon : squid.conf
 

Citation :

http_port 8080
 
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 MONDOMAINE
auth_param basic credentialsttl 2 hour
 
 
 
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
 
 
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
 
 
acl LocalNet src 10.1.0.0/255.255.0.0
acl password proxy_auth REQUIRED
 
 
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 LocalNet password
 
http_access deny all
http_reply_access allow all
 
icp_access allow all
cache_effective_group proxy
visible_hostname mailhost
coredump_dir /var/spool/squid
 
 


 
 
Donc quand je lance une page internet en passant par le proxy lorsque les lignes d'authentification sont activés il me dit :
 

Citation :

Connexion au serveur proxy refusée
 
       
Firefox est configuré pour utiliser un serveur proxy mais celui-ci n'accepte pas les connexions.
Le navigateur est configuré pour utiliser un serveur proxy mais le proxy a refusé la connexion.
 
    * La configuration proxy du navigateur est-elle correcte ? Vérifiez les paramètres et réessayez.
    * Le service proxy autorise t-il les connexions à partir de ce réseau ?
    * Vous avez toujours des problèmes ? Consultez votre administrateur réseau ou votre fournisseur d'accès à Internet pour obtenir de l'aide.
 


 
 
Alors que sans le ntlm cela fonctionne très bien en ncsa et sans authentification.
 
Voilà voila, merci :)

Reply

Marsh Posté le 23-10-2008 à 13:22:53   

Reply

Marsh Posté le 23-10-2008 à 13:30:23    

Dans les logs t'as rien ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-10-2008 à 14:05:45    

Nop je viens de regarder, quand j'active ntlm dans les logs plus rien ne s'inscrit, et mon squid ne stipule plus qu'il est actif,  
donc c'est une erreur dans le fichier .conf, mais je vois pas.

Reply

Marsh Posté le 23-10-2008 à 15:01:54    

Ouais le squid se lance pas quand je met le ntlm
donc ça vient bien des lignes :  
 
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 MONDOMAINE
auth_param basic credentialsttl 2 hour  
 
pour vous c'est correct ?

Reply

Marsh Posté le 23-10-2008 à 15:53:34    

/usr/bin/ntlm_auth est bien à sa place ?
le user sous lequel tourne le serveur squid a t'il le droit de l'executer ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-10-2008 à 16:09:22    

Ouais ouais le test /usr/bin/ntlm_auth --username=typhon80 --password=abcd  
fonctionne
 
Et les droits je viens de foutre chmod 750 sur les répertoire, je reboot et je vois ce que ça donne

Reply

Marsh Posté le 23-10-2008 à 16:13:47    

nan ça change rien :(

Reply

Marsh Posté le 23-10-2008 à 16:16:26    

Pourquoi rebooter pour si peu ? :heink:
 
Sinon quels sont les droits sur /usr/bin/ntlm_auth ? (proprio et groupe)
Sous quel user est lancé squid ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-10-2008 à 16:38:49    

blydeb:/etc/squid# ls -l /usr/bin/ntlm_auth
-rwxr-x--- 1 root Paul 968848 2008-05-29 12:21 /usr/bin/ntlm_auth


Message édité par typhon80 le 23-10-2008 à 16:41:03
Reply

Marsh Posté le 23-10-2008 à 16:47:02    

Et squid est lancé sous quel user ? squid ou nobody non ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-10-2008 à 16:47:02   

Reply

Marsh Posté le 23-10-2008 à 16:47:52    

ça va etre con ce que je demande, mais comment tu fais pour le savoir ?

Reply

Marsh Posté le 23-10-2008 à 16:51:28    

ca doit se trouver dans /etc/default/squid ou /etc/init.d/squid
 
Sinon ps auxf | grep squid devrait te le dire, mais si tu n'arrives pas à lancer squid, ca risque de ne pas marcher :D
 
Mais bon, c'etait quoi les droits sur /usr/bin/ntlm_auth avant que tu ne les change ?
Parce que je demandais juste pour être sûr que le problème ne venait pas de là, je n'ai pas dit qu'il fallait les changer :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 23-10-2008 à 17:34:52    

Bonjour,
peut être faut il spécifier à squid QUI est autorisé a naviguer dans ton AD
 

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=tondomaine\users_internet


Puis mettre dans le groupe users_internet à la racine de ton domaine, tous les users autorisés..
 
My 2 cents


---------------
www.google.fr  
Reply

Marsh Posté le 24-10-2008 à 09:30:31    

Nan ça doit venir des droits je dirai, car ma syntaxe est correcte, les tests passent..
 
Donc quelqu'un peut il me résumer les droits a avoir sur  les différents répertoires ?  
 
/var/log/squid/
/etc/squid/
/etc/samba/
/usr/bin/ntlm_auth
/var/run/samba/winbindd_privileged
 
Car à force de tout changer je ne sais plus quoi mettre :o
 
la commande c'est bien : chown -R moncompte:root /repertoire

Reply

Marsh Posté le 24-10-2008 à 11:17:19    

bon bah problème résolu
 
C'etais bien une histoire de droits...
 
Je poste le lien que j'ai suivi à la lettre pour que cela fonctionne, histoire d'aider les autres :)
 
http://doc.ubuntu-fr.org/tutoriel/ [...] _directory

Reply

Marsh Posté le 24-10-2008 à 11:38:00    

typhon80 a écrit :

Nan ça doit venir des droits je dirai, car ma syntaxe est correcte, les tests passent..
 
Donc quelqu'un peut il me résumer les droits a avoir sur  les différents répertoires ?  
 
/var/log/squid/
/etc/squid/
/etc/samba/
/usr/bin/ntlm_auth
/var/run/samba/winbindd_privileged
 
Car à force de tout changer je ne sais plus quoi mettre :o
 
la commande c'est bien : chown -R moncompte:root /repertoire


Juste pour info, il est rare que tu doives mettre ton utilisateur personnel en tant que propriétaire sur des fichiers pour des services systèmes.
Les services systèmes (apache, squid, tomcat, postfix, etc.) ont généralement leur propre utilisateur, et les scripts init.d
s'arrangent pour les lancer sous ces utilisateurs là (pour éviter qu'il ne soient lancés en tant que root, pour des raisons de sécurité
en cas de bugs dans les services).
Les droits sur les fichiers des services se font donc pour les utilisateurs systèmes en question :jap:


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 03-11-2008 à 10:30:22    

Je déterre mon post, car j'ai une autre question sur squid
Donc mon couple Squid,SquidGuard, via authentification AD fonctionne correctement.
Mais je rencontre un autre soucis.
Dans mon squidGuard lorsqu'un utilisateur va sur un site porno, j'aimerai bien le rediriger vers www.google.fr
Problème, la redirection se fait correctement, mais impossible de repartir de cette page internet google.fr, je ne peux pas faire de recherche. il reste avec l'url du site bloqué, et ne veut rien savoir de la recherche google, je sais pas si vous me suivez.
Quelqu'un a déjà résolu le problème ? Merci .

Reply

Marsh Posté le 03-11-2008 à 11:17:11    

up

Reply

Marsh Posté le 03-11-2008 à 11:26:35    

Pas de up sans informations réellement complémentaires (masquer ou non) tant que le topic est dans la première page !
Ce n'est pas achat/vente ou je ne sais quelle catégorie. Si tu veux un support avec une réactivité, tu as des sociétés de prestation, ici on est bénévole !

 

A bon entendeur !

Message cité 1 fois
Message édité par o'gure le 03-11-2008 à 11:26:57
Reply

Marsh Posté le 03-11-2008 à 13:56:23    

Modération a écrit :

Pas de up sans informations réellement complémentaires (masquer ou non) tant que le topic est dans la première page !
Ce n'est pas achat/vente ou je ne sais quelle catégorie. Si tu veux un support avec une réactivité, tu as des sociétés de prestation, ici on est bénévole !
 
A bon entendeur !


 
 
d'accord alors :)
Désolé d'avoir posté pour ne rien dire

Reply

Marsh Posté le 03-11-2008 à 14:37:19    

J'ai pas mon proxy sous la main pour tester, mais ca vient peut être de la façon dont SquiGuard (ou plutot squid) effectue la redirection.
 
Le client demande "www.siteinterdit.com", squidguard dit à squid de rediriger vers www.google.fr, mais ce n'est pas une vraie redirection au sens HTTP, squid renvoit juste le contenu de la page demandée dans le redirect.
 
Le client ne sait donc pas que ca vient de www.google.fr (d'ou l'adresse qui ne change pas), et le formulaire ne marche donc certainement pas, a cause des champs dans les FORM qui font reférence à ce qui se trouve dans la barre d'adresse (je sais pas si je suis très clair).
 
Solution : redirige vers le contenu d'une page locale qui fera un redirect HTTP (ou javascript) vers www.google.fr ;)
 
Au passage je trouve ca plus clean d'afficher un message disant que le site est bloqué parce qu'il entre dans telle catégorie, avec éventuellement une adresse mail à contacter pour signaler un blocage abusif (ca arrive avec les blacklists contribuées par beaucoup de monde), mais bon :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 03-11-2008 à 14:44:35    

e_esprit a écrit :

J'ai pas mon proxy sous la main pour tester, mais ca vient peut être de la façon dont SquiGuard (ou plutot squid) effectue la redirection.

 

Le client demande "www.siteinterdit.com", squidguard dit à squid de rediriger vers www.google.fr, mais ce n'est pas une vraie redirection au sens HTTP, squid renvoit juste le contenu de la page demandée dans le redirect.

 

Le client ne sait donc pas que ca vient de www.google.fr (d'ou l'adresse qui ne change pas), et le formulaire ne marche donc certainement pas, a cause des champs dans les FORM qui font reférence à ce qui se trouve dans la barre d'adresse (je sais pas si je suis très clair).

 

Solution : redirige vers le contenu d'une page locale qui fera un redirect HTTP (ou javascript) vers www.google.fr ;)

 

Au passage je trouve ca plus clean d'afficher un message disant que le site est bloqué parce qu'il entre dans telle catégorie, avec éventuellement une adresse mail à contacter pour signaler un blocage abusif (ca arrive avec les blacklists contribuées par beaucoup de monde), mais bon :D

 

Ouais mais non, on veut faire comprendre gentillement aux utilisateurs qui vont sur des sites pornos qu'on ne les fliques pas, juste que voila, faut taffer.
car dans squidGuard, je ne bloque que les sites pornos.

Message cité 2 fois
Message édité par typhon80 le 03-11-2008 à 14:45:02
Reply

Marsh Posté le 03-11-2008 à 14:46:42    

typhon80 a écrit :


 
Ouais mais non, on veut faire comprendre gentillement aux utilisateurs qui vont sur des sites pornos qu'on ne les fliques pas, juste que voila, faut taffer.
car dans squidGuard, je ne bloque que les sites pornos.


 
 
sinon, pour en revenir a ce que tu dis , je dois creer une page bidon sur ma machine, qui elle va rediriger automatiquement vers www.google.fr ?

Reply

Marsh Posté le 03-11-2008 à 15:07:39    

typhon80 a écrit :

 

Ouais mais non, on veut faire comprendre gentillement aux utilisateurs qui vont sur des sites pornos qu'on ne les fliques pas, juste que voila, faut taffer.
car dans squidGuard, je ne bloque que les sites pornos.


Tu utilises une liste home-made ?
Parce que j'ai deja vu des sites classés "adults" qui ne l'était en fait pas du tout.
Et ca ne veut pas dire que tu les fliques, tout comme les rediriger sur Google ne veut pas dire que tu ne les fliques pas (ca empeche pas de logger)

typhon80 a écrit :

 


sinon, pour en revenir a ce que tu dis , je dois creer une page bidon sur ma machine, qui elle va rediriger automatiquement vers www.google.fr ?


Sur ta machine ou ailleurs.

Message cité 1 fois
Message édité par e_esprit le 03-11-2008 à 15:08:03

---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 03-11-2008 à 15:27:55    

e_esprit a écrit :


Tu utilises une liste home-made ?
Parce que j'ai deja vu des sites classés "adults" qui ne l'était en fait pas du tout.
Et ca ne veut pas dire que tu les fliques, tout comme les rediriger sur Google ne veut pas dire que tu ne les fliques pas (ca empeche pas de logger)


Ouais mais je veux dire, on s'en fout des logs, on est pas la pour les suivre, mais on veut quand meme qu'ils n'accedent pas a des sites pornos

e_esprit a écrit :


Sur ta machine ou ailleurs.


 
J'ai testé comme tu as dis , grace à ça :  
 
<html>
<head>
 
<title></title>
 
<meta http-equiv="refresh" content="1; URL=http://www.google.fr">
</head>
 
<body>
</body>
 
</html>  
 
j'ai copié ça sur l'apache, et ça redirige correctement :)

Reply

Marsh Posté le 18-11-2008 à 11:38:40    

Petite question sur les logs maintenant.
Je vois dans mon dossier : /var/log/squid
J'ai plusieurs fichiers :
Access.log Access.log.1
pareil pour store.log et store.log.1
Je vois que les fichiers grossissent pas mal quand même.
Avec une moyenne de 130 utilisateurs, et 150 en pics, c'est tout à fait normal.
J'aimerai récupérer les logs, pour les stocker. Et surtout pour réduire un peu la place que cela prend.
Mais je ne sais pas lequel copier. Car les deux plus gros sont Access.log.1 et store.log.1.  
Si je fais une copie simple, et que je supprime, cela ne va pas avoir d'incidence nan ?
car le squid tape en direct sur Access.log et store.log.
 
Merci de m'éclaircir :)

Reply

Marsh Posté le 18-11-2008 à 15:57:29    

petit up :)

Reply

Marsh Posté le 18-11-2008 à 16:07:05    

Non pas de up tant que le topic est à la première page.
Ce n'est pas parce qu'il y a 10 topics au dessus que personne ne voit le tien.
 
Les gens sont bénévoles, ils répondent s'ils sont ici et s'ils ont une réponse à apporter.
 
>> Pas de up sans information complémentaire tant que le topic est en première page !
(les up déguisés non plus) !

Reply

Marsh Posté le 18-11-2008 à 16:08:22    

Heu et c'est pas la première que je te le dis (cf. au dessus...)
Faudrait penser un peu à activer ta mémoire si tu ne veux pas voir ton topic fermé...

Reply

Marsh Posté le 18-11-2008 à 16:16:27    

Salut,
2 choix pour la rotation des log soit c'est logrotate qui fait son boulot, soit c'est la variable logfile_rotate du squid.conf.
 
A noter que logrotage permet de compresser les anciens fichiers de log.
Tu peux faire ce que tu veux sur les fichiers log.X ( access.log.1 par ex)  
 
++


---------------
www.google.fr  
Reply

Marsh Posté le 19-11-2008 à 16:04:30    

Merci à toi , je vais voir comment les recopier.
Autre question, est il possible, d'exporter automatiquement ces fichiers log sur un pc du réseau ( qui appartient au domaine? ) ?  
Ou la démarche est obligatoirement manuelle ?
Merci

Reply

Marsh Posté le 19-11-2008 à 16:10:26    

re,
cron ou si tu souhaites centraliser tes log sur un serveur : syslog-ng
 
++


---------------
www.google.fr  
Reply

Marsh Posté le 24-11-2008 à 16:20:14    

Merci beaucoup :)
 
Autre question, je viens de me rendre compte que mes logs squid étaient mis à zéro tous les jours.
Comment faire en sorte que cela ne se supprime pas au jour le jour, mais s'ajoute petit a petit ?

Reply

Marsh Posté le 24-11-2008 à 16:22:04    

[:gratgrat]
 
T'as bien regardé le fonctionnement de logrotate ?


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 24-11-2008 à 16:37:42    

/var/log/squid/*.log {
        daily
        compress
        delaycompress
        rotate 2
        missingok
        nocreate
        sharedscripts
        prerotate
                test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint
        endscript
        postrotate
                test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
        endscript

 


edit : il me donne ça dans le logrotate de squid.
C'est bien indiqué daily...je dois avouer que ce n'est pas du tout ce que je veux, pour le mettre au mois, je met quoi ? pour la semaine c'est weekly, mais sinon ? monthly ?


Message édité par typhon80 le 24-11-2008 à 16:38:42
Reply

Marsh Posté le 24-11-2008 à 16:40:50    

man logrotate :o


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Marsh Posté le 24-11-2008 à 16:41:25    

:o

Reply

Marsh Posté le 24-11-2008 à 16:44:13    

Ouais je viens de matter le logrotate,c'est bien monthy.
Si je change le daily en monthly, pas d'incidence sur le fonctionnement de squid ? :o
Car y'a 130 pc connecté dessus :o

Reply

Marsh Posté le 24-11-2008 à 16:46:23    

typhon80 a écrit :

Ouais je viens de matter le logrotate,c'est bien monthy.
Si je change le daily en monthly, pas d'incidence sur le fonctionnement de squid ? :o
Car y'a 130 pc connecté dessus :o


Pourquoi y aurait des impacts coté client ?
logrotate intervient uniquement sur tes fichiers de log. Il n'a rien à faire avec squid, d'ailleurs il ne sait pas que squid existe, pour lui ce sont justes des fichiers de log dans un répertoire qui s'appelle squid ou un truc du genre.
La seule chose qui puisse arriver, c'est une mauvaise configuration de logrotate qui remplirait la partition où se trouve les logs (et vraisemblablement le cache de squid)...


Message édité par o'gure le 24-11-2008 à 16:47:30

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 24-11-2008 à 16:49:55    

Ouais je m'en doutais un peu.
Mais je ne connais debian, squid etc que depuis quelques semaines.
Et comme au début le squid était juste en test et qu'il fonctionnait plutôt bien, ils ont décidé de le mettre en prod. Mais je ne le maitrise pas encore :)
C'est pour ça,je fais gaffe de pas faire tomber le squid pour des modifs :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed