View previous topic :: View next topic |
Author |
Message |
profy Tux's lil' helper

Joined: 08 Jun 2005 Posts: 96 Location: Sophia Antipolis
|
Posted: Tue Jul 19, 2005 7:46 pm Post subject: [HOWTO] Squid & Active directory |
|
|
Ce Howto vous permet de mettre en place ces fonctionnalités :
- Un proxy cache (Squid).
- Filtrage de contenu avec Dansguardian.
- Antivirus avec Clamav.
- Authentification transparente des utilisateurs d'un active directory sous 2000 serveur.
- Gestion des groupes.
Versions utilisées :
mit-krb5 1.4.1
Samba 3.0.14
Squid 2.5.10
ClamAV 0.86.1
Dansguardian-2.8.0.3
dansguardian-2.8.0.3-antivirus-6.3.8.patch.bz2
SRVTEST est le nom NETBIOS de l'active directory/controleur de domaine.
CHSMRDZTEST.COM est le nom de domaine de l'active directory.
I - Installation
/etc/make.conf :
Code: |
USE="-cups ldap winbind kerberos samba -X"
|
On installe tout :
Code: |
emerge mit-krb5 samba squid clamav dansguardian-dgav
|
II - Configuration
-> Kerberos
krb5.conf :
Code: |
[libdefaults]
default_realm = CHSMRDZTEST.COM
[realms]
CHSMRDZTEST.COM = {
kdc = CHSMRDZTEST.com
}
[domain_realms]
.kerberos.server = YOUR.KERBEROS.REALM
|
Ajoutez cette ligne dans /etc/hosts :
Code: |
<ip de votre KDC> CHSMRDZTEST.COM
|
Testons la configuration de kerberos, pensez a synchroniser l'horloge du kdc et du proxy :
Code: | kinit administrateur@CHSMRDZTEST.COM |
vous devez avoir ca :
Code: | Password for administrateur@CHSMRDZTEST.COM: |
Si vous n'avez pas de message d'erreur c bon.
-> Samba
Dans la section global de /etc/samba/smb.conf ajoutez ces lignes :
Code: |
realm = CHSMRDZTEST.COM
netbios name = PROFYPORT
password server = SRVTEST
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
workgroup = CHSMRDZTEST
security = ADS
|
Pour lancer winbind aprés samba au démarrage ajoutez winbind ainsi dans /etc/conf.d/samba
Code: |
daemon_list="smbd nmbd winbind"
|
Puis
Code: |
rc-update add samba default
|
On lance samba pour tester :
Code: |
/etc/init.d/samba start
|
On joint le proxy au domaine windows avec :
Code: |
net ads join -U administrateur
|
Testons si winbind fonctionne correctement :
Code: |
wbinfo -t
wbinfo -g
wbinfo -u
|
-> Squid
Assurons nous d'abord de faire marcher les fonctionnalités de base :
Dans squid.conf :
Code: |
acl MonReseau src 192.168.0.0/255.255.255.0
http_access allow MonReseau
http_access deny all
|
Ensuite
Code: |
rc-update add squid default
/etc/init.d/squid start
|
Erreur possible :
Code: |
/etc/init.d/squid start
* Initializing cache directory: /var/cache/squid
/etc/init.d/squid: line 32: 3225 Aborted /usr/sbin/squid -z -F 2>/dev/null
* Error initializing: /var/cache/squid
|
Solution : dans squid.conf spécifiez l'hostname
ex:
Code: |
visible_hostname PROFYPORT
|
Testez, si ca marche on peut passer à l'authentification ntlm
Ajoutez ces lignes dans squid.conf :
Code: |
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
#auth_param ntlm use_ntlm_negotiate off
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hour
auth_param basic casesensitive off
acl utilisateurs proxy_auth REQUIRED
acl GRP1 external NT_global_group clafet
http_access allow GRP1
http_access deny all
|
Code: |
/etc/init.d/squid restart
|
C'est le moment de tester l'authentification transparente avec un utilisateur du groupe
-> Danguardian
Dansguardian est prévu pour fonctionner en front mais il ne gére pas l'authentification ntlm on va donc devoir créer deux instances de squid une qui fait l'authentification et renvoie vers dansguardian(squid) et l'autre qui fournit la connexion a Dansguardian (squid2). Heureusement pour nous squid est prévu pour
Code: |
cp /etc/squid/squid.conf /etc/squid/squid2.conf
cp /etc/init.d/squid /etc/init.d/squid2
|
/etc/squid/squid2.conf :
Code: |
acl localhost src 127.0.0.1/255.255.255.255
http_access allow locahost
http_access deny all
|
/etc/init.d/squid2 :
Code: |
start() {
checkconfig || return 1
ebegin "Starting squid2"
start-stop-daemon --quiet --start --exec /usr/sbin/squid \
--pidfile /var/run/squid2.pid -- ${SQUID_OPTS} < /dev/null
sleep 1
eend $?
}
stop() {
ebegin "Stopping squid2"
PID=`cat /var/run/squid.pid 2>/dev/null`
start-stop-daemon --stop --quiet --exec /usr/sbin/squid \
--pidfile /var/run/squid2.pid
|
Puis :
Code: |
rc-update add squid2 default
/etc/init.d/squid2 start
|
Maintenant configurons le filtrage et l'antivirus
/etc/dansguardian/dansguardian.conf :
Code: |
proxyport=3131 #port d'ecoute de squid2
localsocket = '/var/run/clamav/clamd.sock'
|
/etc/clamd.conf
Code: |
# Run as a selected user (clamd must be started by root).
# Default: disabled
User nobody
|
Code: |
rc-update add dansguardian default
|
squid.conf :
Code: |
#on envoie vers dansguardian
cache_peer 127.0.0.2 parent 8080 0 proxy-only no-query
cache_peer_access 127.0.0.2 allow GRP1
http_access allow GRP1
cache_peer_access 127.0.0.2 deny all
|
squid2.conf :
III - Conclusion
Cette manipulation permet de filtrer pour un seul groupe d'utilisateur, il faudra ajouter une instance de danguardian pour chaque groupe. _________________ Plus je connais les hommes, plus j'aime mon pc. |
|
Back to top |
|
 |
keroz n00b

Joined: 17 Aug 2006 Posts: 1
|
Posted: Thu Aug 17, 2006 4:01 pm Post subject: |
|
|
Bonjour,
Je rencontre plusieurs problèmes en effectuant l'installation correspondante:
1) pb lors du demarrage de squid lors de l'utilisation des groupes
apparement la ligne "acl GRP1 external NT_global_group groupesok" pose pb
d'apres d'autres sites j'ai compris qu'il faudrait rajouter avant
external_acl_type NT_global_group concurrency=64 %LOGIN /usr/lib/squid/wbinfo_group.pl
==> plus de pb au demarrage de squid
2) l'authentification par groupe ne fonctionne pas.
il me demande un user/pass qu'il rejete systematiquement
Voici les tests que j'ai fait:
squid fonctionne avec les restrictions de plage d'adresse IP
le test kinit fonctionne
les tests wbinfo fonctionnent
une connexion sur une machine du domaine avec smbclient fonctionne
si je teste via ntlm_auth --request-lm-key ou --request-nt-key en ligne de commande ca fonctionne
par contre si je fais ntlm_auth --helper-protocol (que ce soit en ntlm ou basic) en ligne de commande, je n'ai jamais de reponse.
Si vous avez une idee pour m'aider ca serait super sympa |
|
Back to top |
|
 |
daddio Tux's lil' helper


Joined: 11 Oct 2003 Posts: 145 Location: Orem, UT
|
Posted: Wed Sep 06, 2006 7:37 pm Post subject: english speaking guy trying to follow this howto |
|
|
insérez cette ligne dans squid.conf: Code: |
external_acl_type NT_global_group %LOGIN /usr/lib/squid/wbinfo_group.pl
|
changez cette ligne: Code: |
acl GRP1 external NT_global_group clafet
|
trouvez un groupe approprié avec:
J'ai employé: Code: |
acl GRP1 external NT_global_group Domain_Users |
J'ai des ennuis toujours avec manuscrit "/etc/init.d/squid2" mais j'ai pensé l'exposition de woud de I vous mon progrès au cas où il aiderait
Profy : Dans votre exemple /etc/init.d/squid2 a pu vous signaler votre dossier /etc/init.d/squid2 entier ? Je ne peux pas faire ce travail pendant que vous signaliez à l'origine.
BTW je ne parle pas francais... vive le Babelfish |
|
Back to top |
|
 |
|