Calculin

De CaFeLUG
Revisión del 16:06 21 mar 2008 de Dax (Discusión | contribuciones) (LDAP)

Saltar a: navegación, buscar

Intro

Dado que el primer approach (usar web-cyradm) no funcionó porque...:

  • el web-cyradm está medio muerto como proyecto,
  • no pude hacer andar el cifrado MD5 con el pam_mysql (sí, compilé el libpam_mysql con MD5 y armé el paquete)
  • postfix daba problemas todo el tiempo con las cosas más irrisorias como que no encuentra "localhost"

hice un cambio radical de estrategia y me puse a configurar el sistema con Postfix, Cyrus y backend LDAP.

Buscando en Google encontré esta página de la cual me basé para armar todo el tema.

Instalación de cada parte

Paquetes instalados vía apt-get

  • apt-get install slapd ldap-utils
  • apt-get install postfix cyrus-pop3d-2.2 cyrus-imapd-2.2

Configuración

Certificado X.509 para cifrado TLS/SSL

Para armar el certificado que se usa en todos lados (IMAPs, ldap, web?) lo hice con el siguiente comando:

# mkdir myCA
# chmod 0700 myCA
# cd myCA
# mkdir {crl,newcerts,private}
# touch index.txt
# echo "01" > serial
# cp /etc/ssl/openssl.cnf .
# openssl req -nodes -config ./openssl.cnf -days 999 -x509 -newkey rsa:2048 -out cacert.pem -outform PEM
# openssl genrsa -rand /dev/urandom -out calculin.cafelug.org.ar.key
# openssl req -new -nodes -key calculin.cafelug.org.ar.key -out calculin.cafelug.org.ar.csr
# cp privkey.pem private/cakey.pem
# openssl ca -config ./openssl.cnf -in calculin.cafelug.org.ar.csr -out calculin.cafelug.org.ar.cert -days 9999

Nota: Lo importante es que al poner el valor de "Common Name:" puse "*.cafelug.org.ar" (así no rompe las p[e]lotas el browser diciendo que el certificado es malo)

LDAP

En el documento referido antes habla de meter schemas llamados sendmail.schema, samba.schema, y mozillaOrgPerson_V0.6.schema, al schema de samba ni lo metí porque no tiene sentido. Si bien los encontré por inet tiraban errores. Sí metí los greenmta.schema y lookup.schema porque vi que los iba a usar luego.

Estos últimos dos schemas no dieron errores por lo que los integré al resto.

Tener los schemas obviamente no resuelve nada. Siguiendo los archivos de configuración del documento para las búsquedas LDAP que realizará el postfix encontré que necesitaba unos cuantos usuarios y ous por acá y allá, estos son:

  • cn=postfix,ou=system,ou=accounts,dc=cafelug,dc=org,dc=ar (para hacer las consultas)
  • búsqueda de virtual_alias_maps:
    • ou=users,ou=accounts,dc=cafelug,dc=org,dc=ar (buscando el atributo mail usando como filtro: (&(mailAlternateAddress=%s)(accountStatus=aktiv)))
    • lookupName=virtualusers,cn=postfix,cn=mailstore,ou=server,ou=edv,dc=cafelug,dc=org,dc=ar (como base de búsqueda del atributo lookupValue, filtro: lookupKey —que no sé para qué lo usa todavía—, esta definido en el archivo mailforwards.cf y también en el virtual_alias_maps.cf)
    • ou=users,ou=accounts,dc=cafelug,dc=org,dc=ar (buscando el atributo mail usando como filtro: (&(uid=%u)(accountStatus=aktiv)), dentro del archivo de local_recipient_maps.cf)

De esto se desprende que el esquema LDAP está pensado para que un usuario pueda tener aliases en mailAlternateAddress, lo que nos viene bien para casillas con @usla.org.ar, @linux.org.ar. También se pueden activar los usuarios o no en base al valor de accountStatus, para que esté activa la casilla deberá tener el valor aktiv —que por supuesto, se puede cambiar a algo como activo ;-)—