Sie sind auf Seite 1von 5

Portal de los Joven Club de Computación y Electrónica Remedios

Autentificar squid contra Active Directory


sábado, 06 de septiembre de 2008

Este How to, al igual que todos los publicados en esta seccion ya fueron probados por el grupo de Redes JCREME

Muchas veces nuestros controladores de dominio los montado en Windows, pero nuestro servidor proxy en linux.
Cuando se quiere brindar internet a un grupo grande de usuarios del con squid, lo mas sencillo sería autentificar este
contra Active Directory, de aqui en adelante empezamos a trabajar en ello.

1- ¿ Qué necesitamos ?

- Tener Implementado Nuestro Controlador de dominio con Active Directory


- En el servidor que vamos a instalar el Squid debemos tener instalado debian (con Ubuntu Server debe ser igual)
- Tener conocimiento de la contraseña de un usuaio con permisos de administracion en el dominio.Nota: De aqui en
adelante para entender mejor lo que iremos haciendo, trabajaremos con ejemplos.

Ejemplo:

Supongamos que sus servidores tienen los siguientes parámetros:

Ip del Servidor con Active Directory: 10.12.1.1


Nombre del Servidor que tiene Active Directory: AD
Nombre del Dominio Active Directory: jcreme.vcl.jovenclub.cu
Netbios del Dominio Active Directory: JCREME
Ip del Servidor donde instalaremos el quid: 10.12.1.2
Nombre del Servidor donde esta el squid: Debian

Es de suponer que estos valores ustedes los deben cambiar y ajustar a su red.

2- Instalar los Paquetes Necesarios

Vamos a la consola (autentificado como root) y escribimos

aptitude install samba smbclient winbind krb5-user krb5-config ntpdate

Nota: Con esto hemos instalado todos los paquetes que nos será necesarios para nuestro trabajo.

3- Resolver Equipos en la Red.

Vamos al fichero /etc/host borramos todo su contenido y ponemos lo siguiente 10.12.1.2 debian.jcreme.vcl.jovenclub.cu
Debian
10.12.1.1 ad.jcreme.vcl.jovenclub.cu AD

Bueno Ahora les explico: en cualquier lugar que diga: jcreme.vcl.jovenclub.cu se refiere al dominio esto lo deben
cambiar y poner el suyo, tambien deben cambiar los nombres e IP de los servidores por los suyos.

4- Configurar el Cliente Kerberos

Para configurar el cliente kerberos vamos a editar el siguiente fichero /etc/krb5.conf


Borramos todo su contenido y lo remplazamos por esto:Nota: Debemos Respetar Maúzculas y Minúzculas

[libdefaults]
default_realm = JCREME.VCL.JOVENCLUB.CU
clockskew = 300

[realms]
JCREME.VCL.JOVENCLUB.CU = {
kdc = 10.12.1.1
default_domain = jcreme.vcl.jovenclub.cu
admin_server = 10.12.1.1
}
jcreme.vcl.jovenclub.cu = {
kdc = 10.12.1.1
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 8 April, 2011, 08:31
Portal de los Joven Club de Computación y Electrónica Remedios

default_domain = jcreme.vcl.jovenclub.cu
admin_server = 10.12.1.1
}
jcreme = {
kdc = 10.12.1.1
default_domain = jcreme
admin_server = jcreme.vcl.jovenclub.cu
}

[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON

[domain_realm]
.jcreme = jcreme
.jcreme.vcl.jovenclub.cu = JCREME.VCL.JOVENCLUB.CU

[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
try_first_pass = true
}Nota: Bueno como ya saben estamos trabajando con un ejemplo, por lo tanto en este fichero de configuración deben
cambiar jcreme por el netbios de su dominio, jcreme.vcl.jovenclub.cu por su dominio y 10.12.1.1 por el IP del Servidor
donde tienen Active Directory.

5- Kerberos es muy estricto con los desajustes horarios, asi que para evitar cualquier error mas adelante vamos a
sincronizar la hora del servidor donde instalaremos squid con el servidor Active Directory. Para esto en la pc que tiene
linux vamos a la consola y ponemos:

ntpdate 10.12.1.1Nota: Deben Cambiar 10.12.1.1 y poner el Ip de su servidor active Directory. Si todo sale bien debe
mostrar algo parecido a esto pero con otra fecha y donde dice 10.12.1.1 debe salir el Ip del Servidor Active Directory.6
Sep 19:55:22 ntpdate[9560]: step time server 10.12.1.1 offset 7.703822 sec

6- Crear tickets Kerberos


Para crear los tickets kerberos ejecutamos en consola el siguiente comando:

kinit administratorNota: No tiene que ser administrator, pude ser tambien cualquier otro usuario con privilegios de
administración del dominio Active Directory.
Ahora si todo salio bien nos pedirá la contraseña de ese usuario, la ponemos y presionamos enter, si la contraseña es
correcta no debe mostrarnos ningun mensaje, solo debe ponernos el cursor en una nueva línea.

7- Configurar Samba

Para configurar samba vamos al siguiente fichero /etc/samba/smb.conf , borramos todo su contenido y agregamos el
Siguiente

[global]
security = ADS
netbios name = Debian
realm = JCREME.VCL.JOVENCLUB.CU
password server = ad.jcreme3.vcl.jovenclub.cu
workgroup = JCREME
log level = 1
syslog = 0
idmap uid = 10000-29999
idmap gid = 10000-29999
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 8 April, 2011, 08:31
Portal de los Joven Club de Computación y Electrónica Remedios

winbind use default domain = yes


template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
server string = linux como cliente de AD
encrypt passwords = yes

##compartir el home del usuario solo para él cuando se encuentre en otro


equipo de la red
[homes]
comment = Home Directories
valid users = %S
browseable = No
read only = No
inherit acls = Yes
[profiles]
comment = Network Profiles Service
path = %H
read only = No
store dos attributes = Yes
create mask = 0600
directory mask = 0700
Nota: Bueno, de esta configuracion solo tenemos que modificar algunas líneas, primero donde quiera que diga
jcreme.vcl.jovenclub.cu ponen su dominio, donde dice ad.jcreme.vcl.jovenclub.cu ponen el nombre del servidor que tiene
Active directory seguido por su dominio y tambien donde diga jcreme deben poner el netbios de su dominio, recuerden
que ad fue el nombre que pusimos al Servidor de Active directory como ejemplo para dasarrolar el Manual.

8- Reiniciar Samba

Para esto vamos a una consola y ponemos

/etc/init.d/samba restart

9- Incluir la PC con linux al Dominio de Linux

Para esto nos vamos a la consola y ponemos:

net ads join -S ad.jcreme.vcl.jovenclub.cu -U administrator

Si todo va caminando bien nos debe pedir la contraseña de ese usuario, la tecleamos y precionamos Enter. Entonces
nos debe mostrar algo como esto:

Using short domain name -- JCREME


Joined 'DEBIAN' to realm 'JCREME.VCL.JOVENCLUB.CU'

En caso que nos muestre un error solo debemos agregar una cuenta de confianza en el dominio con el Ip de la PC que
tiene linux. (En caso de tener alguna duda en esto puede preguntar en http://www.vcl.jovenclub.cu/munic/remedios/foro/)

10- Ajustando winbind

Ahora pasamos a unos de los pasos mas importantes, tenemos que cambiar el script que inicia winbind, ya que este al
arrancar dicho demonio le da a sus archivos permisos que no son factibles para la operación que queremos realizar, asi
que vamos a /etc/init.d/winbind borramos todo el contenido del fichero y colocamos este

#!/bin/sh

### BEGIN INIT INFO


# Provides: winbind
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 016
# Short-Description: start Winbind daemon
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 8 April, 2011, 08:31
Portal de los Joven Club de Computación y Electrónica Remedios

### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

[ -r /etc/default/winbind ] && . /etc/default/winbind

DAEMON=/usr/sbin/winbindd

# clear conflicting settings from the environment


unset TMPDIR

# See if the daemon is there


test -x $DAEMON || exit 0

. /lib/lsb/init-functions

case "$1" in
start)
log_daemon_msg "Starting the Winbind daemon" "winbind"

mkdir -p /var/run/samba/winbindd_privileged || return 1


chgrp proxy /var/run/samba/winbindd_privileged/ || return 1
chmod 0750 /var/run/samba/winbindd_privileged/ || return 1
start-stop-daemon --start --quiet --oknodo --exec $DAEMON -- $WINBINDD_OPTS
chmod 77 /var/run/samba/winbindd_privileged
log_end_msg $?
;;

stop)
log_daemon_msg "Stopping the Winbind daemon" "winbind"
start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
log_end_msg $?
;;

restart|force-reload)
$0 stop && sleep 2 && $0 start
;;

*)
echo "Usage: /etc/init.d/winbind {start|stop|restart|force-reload}"
exit 1
;;
esac

11- Estableciendo el orden de inicio de los servicios

Este paso tambien es muy importante, ya que si los servicios no se inician en el orden correcto nuestro proxy nunca
autentificará contra Active Directory, como esta tarea resulta un poco complicada nosotros nos vamos a ir por la via facil

vamos a /etc/rc.local y añadimos las siguientes líneas:

invoke-rc.d samba stop


invoke-rc.d winbind stop
invoke-rc.d squid stop
invoke-rc.d samba start
invoke-rc.d winbind start
invoke-rc.d squid start

12- Reiniciando la PC

Vamos a la consola y escrbimos:

init 6
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 8 April, 2011, 08:31
Portal de los Joven Club de Computación y Electrónica Remedios

13- Luego tenemos que hacer test para ver si verdaderamente nuestra PC está unida al dominio para ella vamos a la
consola y ponemos:

wbinfo -u

Si todo ha salido bien debe mostrar todos los usuarios que tiene Active Directory.

14- Configurar la autentificación del squid

Para ello vamos a /etc/squid/squid.conf . Una ves dentro del fichero buscamos el siguiente TAG

TAG: auth_param

En esta sección agregamos las siguientes líneas:

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 on

auth_param basic realm Servidor Proxy

Nota: En caso de presentarse problemas a la hora de llevar a la practica esta pequeña guia, puede postearlo en
nuestro foro
http://www.vcl.jovenclub.cu/munic/remedios/foroAutor: Yadrian Moreno Rodriguez
email: yadrianm@uclv.edu.cu
Grupo de Redes JCREME

http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 8 April, 2011, 08:31

Das könnte Ihnen auch gefallen