Squid + Active Directory ::parte 3::

Ahora, añadimos nuestro servidor linux al active directory:


net ads join -S miserver_ad.midominio.local -U administrador

Nos pedirá el password y si todo ha ido bien, nos responderá:


Using short domain name -- MIDOMINIO
Joined 'tuxServer' to realm 'MIDOMINIO.LOCAL'

Si ha funcionado bien, vamos a modificar el script que inicia el windbind…. hacemos copia y lo dejamos tal que: /init.d/windbin


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

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

Ahora, toca modificar el orden de arranque de los servicios, siendo por orden:
1º) Samba
2º) WindBind
3º) Squid

Lógicamente, para que squid consulte correctamente el AD, tiene que tener arrancados antes que él, el samba y el WindBind..

Editamos el fichero /etc/rc.local y añadimos:


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

Y reiniciamos el servidor….


# reboot

Una vez iniciado el servidor, para comprobar que todo ha ido bien, tecleamos:


# wbinfo -u

nos deberá de mostrar todos los usuarios de active directory…..

Y ahora nos toca configurar squid para que consulte los usuarios…

Squid + Active Directory ::parte 2::

Ahora, en este segundo paso, configuraremos el cliente kerberos en nuesto linux, para ello editaremos el fichero /etc/krb5.conf. Previamente lo copiamos…


# cp /etc/krb5.conf /etc/krb5_old.conf

Partiendo de los siguientes datos:


servidor AD : 192.168.2.1
dominio : midominio.local
Nombre Servidor AD: miservidor


Borramos todo el contenido y lo dejamos tal que:


[libdefaults]
default_realm = MIDOMINIO.LOCAL
clockskew = 300
[realms]
MIDOMINIO.LOCAL = {
kdc = 192.168.2.1
default_domain = midominio.local
admin_server = 192.168.2.1
}
midominio.local = {
kdc = 192.168.2.1
default_domain = midominio.local
admin_server = 192.168.2.1
}
midominio = {
kdc = 192.168.2.1
default_domain = midominio
admin_server = midominio.local
}
[logging]
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
default = SYSLOG:NOTICE:DAEMON
[domain_realm]
.midominio = midominio
.midominio.local = MIDOMINIO.LOCAL
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
try_first_pass = true
}

Una vez editado este fichero, vamos a crear el ticket kerberos, para ello, tecleamos:


kinit administrador

Si todo va bien, nos pedirá el password de administrador; no deberá de mostrar nada. Si no ha ido bien, deberemos repasar los pasos anteriores.

Ahora toca configurar samba, para ello copiaremos y editaremos el fichero /etc/samba/smb.conf


# cp /etc/samba/smb.conf /etc/samba/smb_old.conf

Borramos el contenido y lo dejamos tal que:


[global]
security = ADS
netbios name = superTUXsErver
realm = MIDOMINIO.LOCAL
password server = miservidor_ad.midominio.local
workgroup = MIDOMINIO
log level = 1
syslog = 0
idmap uid = 10000-29999
idmap gid = 10000-29999
winbind separator = +
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
domain master = no
server string = Super TUX Client AD
encrypt passwords = yes

[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

Una vez editado, reiniciamos samba:

#/etc/init.d/samba restart

Squid + Active Directory ::parte 1::

Cada vez me pasa más que, en clientes, tienen que convivir linux / windows / mac….. y llega el caso del proxy. He instalado en bastantes ocasiones, desde el Proxy 2.0 hasta el ISA 2006. Es un buen producto; no tengo nada en contra, pero si tenemos herramientas openSource, ¿porqué no usarlas?.

Un gran handicap del ISA Server es que, bien configurado, te muestra en los reports los usuarios, pero nada más lejos… con nuestro squid y rascando un poco de configuración, podemos conseguir el mismo resultado.

Configuración y apuntes varios de aquí
Primero de todo, instalamos el squid en nuestro debian:


# apt-get install squid

Y ahora añadimos los paquetes windBind, ntpdate y samba entre otros… recordando que nuestro equipo linux tiene que ser capaz de sacar la lista de usuarios del AD.


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

Ahora configuraremos correctamente la hora en el servidor, ya que Kerberos, ante desviaciones > a 15 minutos entre el linux y el servidor AD, no se sincronizará ni tendrá acceso a las cuentas de usuario…

editamos el fichero /etc/ntp.conf y añadimos:


# pool:
server servidor.ntp.active.directory
...
server 3.debian.pool.ntp.org iburst

Reiniciamos el servicio ntp y comprobamos que la fecha/hora del servidor squid y el windows sea la misma.


#/etc/init.d/ntp restart

Y ahora, aseguramos que sea capaz de encontrar por dns los servidores de dominio de windows. Para ello, editamos el fichero /etc/hosts y lo modificamos tal que:


127.0.0.1 localhost
127.0.1.1 mimaquina_linux.dominio.tal mimaquina_linux
X.X.X.X mimaquina_linux.dominio.tal mimaquina_linux
X.X.X.X miservidor_AD.dominio.tal miservidor_AD

Comprobamos mediante #ping miservidor_AD que nos resuelve correctamente la ip y llegamos.