Diferencia entre revisiones de «Calculin»
(→Intro) |
(→LDAP) |
||
Línea 42: | Línea 42: | ||
=== LDAP === | === LDAP === | ||
− | + | Di mil vueltas con esto, más que nada porque es el primer LDAP que configuro desde cero y no encontré algún documento que diga ''usa este schema que sale con fritas''. Por lo que lei hay dos schemas más utilizados para trabajar con correo, uno es el de Courier y el otro es el de Qmail. | |
− | + | Me bajé [http://courier.cvs.sourceforge.net/*checkout*/courier/libs/authlib/authldap.schema el de courier]. El tema no está en que postfix pueda encontrar si una dirección de correo es válida (y saber a qué casilla enviarla), el problema son los aliases (claro que pude haber usado el hash:/etc/aliases, pero así quién no?! :-)). | |
− | + | Para no hacer las cosas muy complicadas segui la recomendación del documento de bulma que propone armar dos ramas: "People" y "Postfix". En la primera van los usuarios y en la segunda cosas de Postfix (dughh!). | |
− | |||
− | |||
− | |||
− | |||
− | |||
+ | Acá pasteo un LDIF para que se puedan ver ejemplos de cada cosa: | ||
− | + | <code><pre> | |
+ | version: 1 | ||
− | + | # LDIF Export for: dc=cafelug,dc=org,dc=ar | |
+ | # Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on March 22, 2008 4:27 am | ||
+ | # Server: My LDAP Server (localhost) | ||
+ | # Search Scope: sub | ||
+ | # Search Filter: (objectClass=*) | ||
+ | # Total Entries: 7 | ||
− | + | dn: dc=cafelug,dc=org,dc=ar | |
+ | objectClass: top | ||
+ | objectClass: dcObject | ||
+ | objectClass: organization | ||
+ | o: cafelug.org.ar | ||
+ | dc: cafelug | ||
− | + | dn: cn=admin,dc=cafelug,dc=org,dc=ar | |
+ | objectClass: simpleSecurityObject | ||
+ | objectClass: organizationalRole | ||
+ | cn: admin | ||
+ | description: LDAP administrator | ||
+ | userPassword: {crypt}XERparhpX9GD6 | ||
− | + | dn: ou=People,dc=cafelug,dc=org,dc=ar | |
+ | objectClass: organizationalUnit | ||
+ | ou: People | ||
+ | |||
+ | dn: cn=Daniel Coletti,ou=People,dc=cafelug,dc=org,dc=ar | ||
+ | cn: Daniel Coletti | ||
+ | gidNumber: 5000 | ||
+ | mail: dcoletti@cafelug.org.ar | ||
+ | sn: Coletti | ||
+ | uidNumber: 5000 | ||
+ | objectClass: CourierMailAccount | ||
+ | objectClass: person | ||
+ | objectClass: top | ||
+ | objectClass: inetOrgPerson | ||
+ | homeDirectory: /var/vmail | ||
+ | quota: 0 | ||
+ | userPassword: {CRYPT}Clave | ||
+ | |||
+ | dn: ou=Postfix,dc=cafelug,dc=org,dc=ar | ||
+ | ou: Postfix | ||
+ | objectClass: organizationalUnit | ||
+ | userPassword: {CRYPT}FxThcXLxmMTw. | ||
+ | |||
+ | dn: ou=Alias,ou=Postfix,dc=cafelug,dc=org,dc=ar | ||
+ | ou: Alias | ||
+ | objectClass: organizationalUnit | ||
+ | |||
+ | dn: cn=postmaster@cafelug.org.ar,ou=Alias,ou=Postfix,dc=cafelug,dc=org,dc=ar | ||
+ | objectClass: top | ||
+ | objectClass: organizationalRole | ||
+ | objectClass: CourierMailAlias | ||
+ | cn: postmaster@cafelug.org.ar | ||
+ | mail: postmaster@cafelug.org.ar | ||
+ | maildrop: dcoletti@cafelug.org.ar | ||
+ | maildrop: gacq@cafelug.org.ar | ||
+ | </pre></code> |
Revisión del 04:34 22 mar 2008
Contenido
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 (que habla de una migración de no-sé-qué a postfix+cyrus), también vi esta otra página (que resita sobre una configuración de postfix+ldap+COURIER) y finalmente documentación de postfix. Entre todas estas cosas empecé a armar todo el asunto.
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
Di mil vueltas con esto, más que nada porque es el primer LDAP que configuro desde cero y no encontré algún documento que diga usa este schema que sale con fritas. Por lo que lei hay dos schemas más utilizados para trabajar con correo, uno es el de Courier y el otro es el de Qmail.
Me bajé el de courier. El tema no está en que postfix pueda encontrar si una dirección de correo es válida (y saber a qué casilla enviarla), el problema son los aliases (claro que pude haber usado el hash:/etc/aliases, pero así quién no?! :-)).
Para no hacer las cosas muy complicadas segui la recomendación del documento de bulma que propone armar dos ramas: "People" y "Postfix". En la primera van los usuarios y en la segunda cosas de Postfix (dughh!).
Acá pasteo un LDIF para que se puedan ver ejemplos de cada cosa:
version: 1
# LDIF Export for: dc=cafelug,dc=org,dc=ar
# Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on March 22, 2008 4:27 am
# Server: My LDAP Server (localhost)
# Search Scope: sub
# Search Filter: (objectClass=*)
# Total Entries: 7
dn: dc=cafelug,dc=org,dc=ar
objectClass: top
objectClass: dcObject
objectClass: organization
o: cafelug.org.ar
dc: cafelug
dn: cn=admin,dc=cafelug,dc=org,dc=ar
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {crypt}XERparhpX9GD6
dn: ou=People,dc=cafelug,dc=org,dc=ar
objectClass: organizationalUnit
ou: People
dn: cn=Daniel Coletti,ou=People,dc=cafelug,dc=org,dc=ar
cn: Daniel Coletti
gidNumber: 5000
mail: dcoletti@cafelug.org.ar
sn: Coletti
uidNumber: 5000
objectClass: CourierMailAccount
objectClass: person
objectClass: top
objectClass: inetOrgPerson
homeDirectory: /var/vmail
quota: 0
userPassword: {CRYPT}Clave
dn: ou=Postfix,dc=cafelug,dc=org,dc=ar
ou: Postfix
objectClass: organizationalUnit
userPassword: {CRYPT}FxThcXLxmMTw.
dn: ou=Alias,ou=Postfix,dc=cafelug,dc=org,dc=ar
ou: Alias
objectClass: organizationalUnit
dn: cn=postmaster@cafelug.org.ar,ou=Alias,ou=Postfix,dc=cafelug,dc=org,dc=ar
objectClass: top
objectClass: organizationalRole
objectClass: CourierMailAlias
cn: postmaster@cafelug.org.ar
mail: postmaster@cafelug.org.ar
maildrop: dcoletti@cafelug.org.ar
maildrop: gacq@cafelug.org.ar