#1 Le 09/04/2015, à 10:15
- IronQuake
Authenfication SQUID via Samba (Ubuntu 12.04 Server + Samba 3.6)
Bonjour,
Je suis actuellement "embêté" sur ce point, en effet je souhaite lier mes comptes Samba à SQUID.
En gros, je veux pouvoir m'authentifier sur mon proxy avec mes comptes Samba.
Je dispose de deux serveurs, un avec Squid et un autre avec Samba. (Les deux serveurs sont des Ubuntu Server 12.04)
Version de Samba : 3.6.3
Version de Squid : 3.1.19
Voici mon fichier de configuration SQUID :
http_port 3128
#-------------------------------------------------------------------
# Ajoutez ces lignes au dessous de l'exemple
# donne dans le fichier d'origine squid.conf
#-------------------------------------------------------------------
#
# Déclaration de l'authentification
#
auth_param basic program /usr/lib/squid3/smb_auth -W Caltest -U 192.168.0.221
#
# On lance 5 processus d'authentificaton afin d'accélérer le traîtement
auth_param basic children 5
#
# Message affiche lors de la demande de mot de passe
#
auth_param basic realm Indiquez un login et un mot de passe
#
# delai de validite du mot de passe
#
# passe ce delai, le mot de passe sera a nouveau demande.
# cela evite l'usage des navigateurs laisses ouverts par les
# utilisateurs durant la pause dejeuner par exemple.
#
# auth_param basic credentialsttl 30 minutes
auth_param basic credentialsttl 2 hours
#-------------------------------------------------------------------
# Ajouter ces lignes avant le premier http_access non commente
#------------------------------------------------------------------
acl mo2pass proxy_auth REQUIRED
http_access allow mo2pass
#-------------------------------------------------------------------
Avec cette ligne : auth_param basic program /usr/lib/squid3/smb_auth -W Caltest -U 192.168.0.221 , je suis sensé pouvoir récupérer mes identifiants présents sur le serveur Samba. (Serveur Samba : 192.168.0.221)
Cependant, ça ne fonctionne pas. Lorsque je veux tester avec la ligne de commande suivante :
root@GW-TEST:/etc/squid3# echo -e root XXXXX | /usr/lib/squid3/smb_auth -W Caltest -U 192.168.0.221 -d
Domain name: Caltest
Pass-through authentication: no
Query address options: -U 192.168.0.221 -R
Domain controller IP address: 192.168.0.221
Domain controller NETBIOS name: SAMBA
Contents of //SAMBA/NETLOGON/proxyauth:
ERR
Une erreur est renvoyée et je ne sais pas pourquoi.
Voici ce que j'ai dans mon log : log.smbd
[2015/04/09 11:02:40.731583, 2] auth/auth.c:319(check_ntlm_password)
check_ntlm_password: Authentication for user [root%XXXXX] -> [root%XXXXX] FAILED with error NT_STATUS_NO_SUCH_USER
[2015/04/09 11:02:40.734763, 2] smbd/service.c:616(create_connection_session_info)
guest user (from session setup) not permitted to access this share (netlogon)
[2015/04/09 11:02:40.734794, 1] smbd/service.c:770(make_connection_snum)
create_connection_session_info failed: NT_STATUS_ACCESS_DENIED
Je ne trouve pas d'explication. J'ai regardé du coté des droits car je pensai que proxyauth n'était pas accessible en lecture.
J'ai donc fait un chmod 755 sur le fichier pour être sûr et j'ai affecté le fichier au groupe users sur mon serveur Samba. (chown root users proxyauth)
Ca ne change rien ... Je suis à cours d'idée.
Voici le contenu de mon fichier smb.conf au cas ou cela puisse influer sur authentification SQUID :
[global]
workgroup = CALTEST
netbios name = samba
server string =
dns proxy = no
max log size = 1000
panic action = /usr/share/samba/panic-action %d
security = userwide links = no
printcap name = /dev/null
log level = 2encrypt passwords = true
passdb backend = tdbsam:/etc/samba/private/passdb.tdb
obey pam restrictions = yes
unix password sync = yes
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
passwd program = /usr/bin/passwd %udomain logons = yes
socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384
domain master = yes
add machine script = /var/samba/add-machine-script %ulocal master = yes
os level = 65
preferred master = yes
logon path = \\%L\profiles\%u
logon drive = U:
logon script = %u.cmddos charset = 850
unix charset = UTF8include = /var/samba/pdc/config
include = /var/samba/caloser_1/configmap untrusted to domain = Yes
Fichier de configuration pour les partages :
[homes]
path = /var/samba/pdc/homes/%u
browseable = no
writeable = yes[netlogon]
path = /var/samba/pdc/netlogon
browseable = no
writeable = yes
# inherit permissions = no
# force group = users
# create mask = 0600
# force create mode = 0660
# directory mask = 0770
# force directory mode = 0770[profiles]
path = /var/samba/pdc/profiles
browseable = no
writeable = yes[shortcuts]
path = /var/samba/pdc/shortcuts
browseable = no
writeable = yes[Public]
path = /var/samba/pdc/public
browseable = yes
writeable = yes
inherit permissions = no
force group = users
create mask = 0600
force create mode = 0660
directory mask = 0770[$]
path = /
browseable = no
writeable = yes[SMB$]
path = /var/samba
browseable = no
writeable = yes[PDC$]
path = /var/samba/pdc
browseable = no
writeable = yes[FIC$]
path = /var/samba/caloser_1
browseable = no
writeable = yes
Dernière modification par IronQuake (Le 09/04/2015, à 14:56)
Hors ligne
#2 Le 10/04/2015, à 09:37
- IronQuake
Re : Authenfication SQUID via Samba (Ubuntu 12.04 Server + Samba 3.6)
Apparemment, ça semble être un problème d'authentification.
smbauth doit envoyer les mots de passe en clair et c'est ça qui semble poser problème, car quand je ne renseigne pas le mot de passe dans la ligne de commande : echo -e root XXXXX | /usr/lib/squid3/smb_auth -W Caltest -U 192.168.0.221 -d, la console me le demande, je le renseigne et là ça fonctionne. On me renvoi bien OK et tout fonctionne correctement dans les logs.
Il faut probablement modifier smbauth.sh pour permettre l'envoi du mot de passe au bon format.
Je ne suis pas certains mais je ne vois que ça ...
Avez vous une idée ?
Hors ligne
#3 Le 10/04/2015, à 14:32
- IronQuake
Re : Authenfication SQUID via Samba (Ubuntu 12.04 Server + Samba 3.6)
Solution :
Dans le fichier smb_auth.sh, il faut remplacer la ligne authinfo=`smbclient "//$dcname/$AUTHSHARE" -I $dcip -d 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" 2>/dev/null`
par authinfo=`smbclient "//$dcname/$AUTHSHARE" -U $USER -I $dcip -d 0 -E -W "$DOMAINNAME" -c "get $authfilebs -" 2>/dev/null`
Ça m'a tout l'air d'être un bug sur SQUID.
Ça semble fonctionner maintenant ...
Hors ligne