Click here to load reader
Upload
leonardo-perez
View
290
Download
0
Embed Size (px)
Citation preview
Autentificar squid contra Active Directorysá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 estecontra 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 enadelante 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.1Nombre del Servidor que tiene Active Directory: ADNombre del Dominio Active Directory: jcreme.vcl.jovenclub.cuNetbios del Dominio Active Directory: JCREMEIp del Servidor donde instalaremos el quid: 10.12.1.2Nombre 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 debencambiar 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.confBorramos 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
Portal de los Joven Club de Computación y Electrónica Remedios
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 13 January, 2011, 11:59
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 debencambiar jcreme por el netbios de su dominio, jcreme.vcl.jovenclub.cu por su dominio y 10.12.1.1 por el IP del Servidordonde tienen Active Directory.
5- Kerberos es muy estricto con los desajustes horarios, asi que para evitar cualquier error mas adelante vamos asincronizar la hora del servidor donde instalaremos squid con el servidor Active Directory. Para esto en la pc que tienelinux 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 debemostrar algo parecido a esto pero con otra fecha y donde dice 10.12.1.1 debe salir el Ip del Servidor Active Directory.6Sep 19:55:22 ntpdate[9560]: step time server 10.12.1.1 offset 7.703822 sec
6- Crear tickets KerberosPara 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 deadministració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 escorrecta 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 elSiguiente
[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
Portal de los Joven Club de Computación y Electrónica Remedios
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 13 January, 2011, 11:59
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 otroequipo 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 = 0700Nota: Bueno, de esta configuracion solo tenemos que modificar algunas líneas, primero donde quiera que digajcreme.vcl.jovenclub.cu ponen su dominio, donde dice ad.jcreme.vcl.jovenclub.cu ponen el nombre del servidor que tieneActive directory seguido por su dominio y tambien donde diga jcreme deben poner el netbios de su dominio, recuerdenque 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. Entoncesnos debe mostrar algo como esto:
Using short domain name -- JCREMEJoined '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 quetiene 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 alarrancar dicho demonio le da a sus archivos permisos que no son factibles para la operación que queremos realizar, asique 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: 0 1 6# Short-Description: start Winbind daemon
Portal de los Joven Club de Computación y Electrónica Remedios
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 13 January, 2011, 11:59
### 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 environmentunset TMPDIR
# See if the daemon is theretest -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 nuncaautentificará 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 stopinvoke-rc.d winbind stopinvoke-rc.d squid stopinvoke-rc.d samba startinvoke-rc.d winbind startinvoke-rc.d squid start
12- Reiniciando la PC
Vamos a la consola y escrbimos:
init 6
Portal de los Joven Club de Computación y Electrónica Remedios
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 13 January, 2011, 11:59
13- Luego tenemos que hacer test para ver si verdaderamente nuestra PC está unida al dominio para ella vamos a laconsola 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 ennuestro forohttp://www.vcl.jovenclub.cu/munic/remedios/foroAutor: Yadrian Moreno Rodriguezemail: [email protected] de Redes JCREME
Portal de los Joven Club de Computación y Electrónica Remedios
http://www.vcl.jovenclub.cu/munic/remedios Potenciado por Joomla! Generado: 13 January, 2011, 11:59