Google+

lunes, 5 de octubre de 2009

Squid con Kerberos


Es algo que me costo ya que no hay información pero al final quien se consiguió. El servidor proxy en un Debian 5 con squid versión 2.7 y el servidor Kerberos es un Fedora con FreeIPA (Kerberos+LDAP+otras cosas que ahora no procede contarlas)



Servidor squid: squid.linuxadmin.es

Servidor kerberos: kerberos.linuxadmin.es



Empezamos con el servidor squid que es debian, instalamos el cliente kerberos:
#apt-get install krb5-user

El archivo /etc/krb5.conf debe de ser igual tanto en el servidor squid como en el servidor kerberos, cojiendo como modelo el del servidor kerberos claro esta.

Instalar el ntpdate para poder sincronizar la hora entre servidores, esto es requisito imprescindoble para poder trabajar con kerberos.
#apt-get install ntpdate

#ntpdate kerberos.linuxadmin.es

Sacamos la keytab del servidor kerberos
#ipa-addservice HTTP/cielo.ideal.spain@IDEAL.SPAIN

#ipa-getkeytab -s directorio.ideal.spain -p HTTP/cielo.ideal.spain -k /tmp/squid.keytab -e des-cbc-crc

Copiamos la keytab al squid
#scp /tmp/squid.keytab root@squid:/etc/squid/

#chmod +r /etc/squid.keytab

Esta variable recomiendo ponerla cuando arranque el squid:
#KRB5_KTNAME=/etc/squid3/squid.keytab

#export KRB5_KTNAME

Comprobamos que estar bien exportada
#echo $KRB5_KTNAME

Comprobamos que funciona la keytab (desde el squid)
#kinit -V -k -t squid.keytab HTTP/cielo.ideal.spain

#klist

Editamos el fichero squid, que en un principio debemos de tener soporte para kerberos, si lo vais a compilar vosotros mismos tendréis que meterle la opción de kerberos en el configure.

He aquí el ejemplo de una ACL con Kerberos:
#vi /etc/squid.conf

auth_param negotiate program /usr/lib/squid/squid_kerb_auth -d
auth_param negotiate children 10
auth_param negotiate keep_alive on

acl auth proxy_auth REQUIRED

Difícil, pues si, pero satisfactorio también