5

Click here to load reader

File

Embed Size (px)

Citation preview

Page 1: File

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

Page 2: File

                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

Page 3: File

  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

Page 4: File

### 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

Page 5: File

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