Qmail-LDAP Wiki:Site support
From Qmail-LDAP Wiki
Howto Sistema de correo Qmail, Openldap en debian etch (qmail-ldap)
Esta es la primera parte de la instalacion y configuracion de un sistema de correo con los servicios smtp, pop e imap para lo cual se utilizara qmail como mta y openldap (qmail-ldap) para autentificar las cuentas. Esta instalacion se realizara sobre Debian Etch R1 (La segunda parte contemplara los filtros de antivirus y spam)
- DEPENDENCIAS NECESARIAS ##
apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto
- INSTALACION DE LDAP ##
apt-get install slapd ldap-utils
- RESPONDER #
Contraseña del admin : 12301230 Confirme la contraseña del admin : 12301230
- RECONFIGURACION #
dpkg-reconfigure slapd
Desea omitir la configuracion de ldap : no Introdusca el nombre de dominio DNS : silcom.com Instrodusca el nombre de su organizacion : silcom.com Contraseña del administrador : 12301230 Verificacion de la contraseña : 12301230 Motor de base de datos a utilizar : BDB Desea que se borre la base de datos cuando purge el paquete slapd :NO Desea mover la base de datos antigua : SI Permitir el protocolo LDAPV2 : si
- COMPROBAR LA INSTALACION #
ldapsearch -x -b “dc=cip,dc=cu”
RESULTADO CORRECTO
- extended LDIF
- LDAPv3
- base <dc=cip,dc=cu> with scope subtree
- filter: (objectclass=*)
- requesting: ALL
- search result
search: 2 result: 34 Invalid DN syntax text: invalid DN
- INSTALAMOS APACHE ,PHP ,LDAPADMIN #
apt-get install apache php5-ldap phpldapadmin
- Descarga de Paquetes Necesarios #
cd /usr/local/src/
wget http://lomu.homelinux.com/0.76-errno.patch wget http://lomu.homelinux.com/0.88-errno.patch wget http://shupp.org/software/autorespond-2.0.4.tar.gz wget http://shupp.org/patches/autorespond-2.0.4-2.0.5.patch wget http://shupp.org/software/courier-imap-4.1.2.tar.bz2 wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz wget http://www.silcom.com.pe/soft/qmail-ldap-etch/dirmaker.sh wget http://www.silcom.com.pe/soft/qmail-ldap-etch/djbdns-1.05.tar.gz wget http://cr.yp.to/software/ezmlm-0.53.tar.gz wget http://shupp.org/software/ezmlm-idx-0.443.tar.gz wget http://www.silcom.com.pe/soft/qmail-ldap-etch/maildrop-2.0.1.20051115.tar wget http://www.silcom.com.pe/soft/qmail-ldap-etch/qmail-1.03.tar.gz wget http://www.silcom.com.pe/soft/qmail-ldap-etch/qmail-conf-0.60.tar.gz wget http://www.silcom.com.pe/soft/qmail-ldap-etch/qmail-ldap-1.03-20060201.patch.gz wget http://www.silcom.com.pe/soft/qmail-ldap-etch/qmail-ldap-2da-parte.txt wget http://www.silcom.com.pe/soft/qmail-ldap-etch/rc wget http://www.silcom.com.pe/soft/qmail-ldap-etch/run wget http://www.silcom.com.pe/soft/qmail-ldap-etch/ucspi-tcp-0.88.tar.gz
- INSTALACION DE PAQUETES BASICOS #
- UCSPI-TCP
cd ucspi-tcp-0.88 patch -p0 < 0.88-errno.patch make make setup check
- DAEMONTOOLS
tar zxvf daemontools-0.76.tar.gz cd admin/daemontools-0.76
patch -p0 < 0.76-errno.patch ./package/install
- INSTALANDO QMAIL CON SOPORTE PARA LDAP
QMAIL LDAP apt-get install zlib-bin tar -zxvf qmail-1.03.tar.gz gunzip qmail-ldap-1.03-20060201.patch.gz cd qmail-1.03 patch -p1 <../qmail-ldap-1.03-20060201.patch cp qmail.schema /etc/ldap/schema
- ADICIONAR SCHEMA DE QMAIL A LDAP
- ADICIONAR
nano /etc/ldap/slapd.conf include /etc/ldap/schema/qmail.schema
REINICIAR Ldap
/etc/init.d/slapd restart
- LIBRERIAS ANTES DE COMPILAR
apt-get install libssl-dev libldap2-dev zlib1g-dev
- AGREGAR USUARIOS REQUERIDOS POR QMAIL
groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails groupadd vmail -g 2110 useradd vmail -u 11184 -g vmail -d /home/vmail -s /bin/true mkdir /home/vmail mkdir /home/vmail/cip.cu chown -R vmail:vmail /home/vmail chown -R vmail:vmail /home/vmail/cip.cu cd /usr/local/src/qmail-1.03
nano Makefile
descomentar : LDAPFLAGS=-DQLDAP_CLUSTER -DEXTERNAL_TODO -DDASH_EXT -DDATA_COMPRESS -DQMQP_COMPRESS -DSMTPEXECCHECK -DALTQUEUE queda igual : LDAPLIBS=-L/usr/local/lib -lldap -llber queda igual : LDAPINCLUDES=-I/usr/local/include descomentar : ZLIB=-lz descomentar : TLS=-DTLS_REMOTE -DTLS_SMTPD descomentar : TLSINCLUDES=-I/usr/local/include descomentar : TLSLIBS=-L/usr/local/lib -lssl -lcrypto descomentar : OPENSSLBIN=/usr/local/bin/openssl queda igual : MNW=-DMAKE_NETSCAPE_WORK descomentar : MDIRMAKE=-DAUTOMAILDIRMAKE descomentar : HDIRMAKE=-DAUTOHOMEDIRMAKE descomentar : SHADOWLIBS=-lcrypt descomentar : DEBUG=-DDEBUG
nanoqmail-ldap.h
- CAMBIAR
define LDAP_HOMEDIR “homeDirectory”
- POR
define LDAP_HOMEDIR “homeDirectoryfake”
- COMPILACION DE QMAIL
make setup check
- ARCHIVOS DE CONFIGURACION
cd /var/qmail/control echo cip.cu > /var/qmail/control/me
echo cip.cu > /var/qmail/control/rcpthosts
echo cip.cu > /var/qmail/control/locals
IPLDAP echo 127.0.0.1 > /var/qmail/control/ldapserver
LDAP Base DN echo ou=qmail,dc=cip,dc=cu > /var/qmail/control/ldapbasedn
OBJECT CLASS QMAIL echo qmailUser > /var/qmail/control/ldapobjectclass
PASSWD LDAP echo 12301230 >/var/qmail/control/ldappassword
LOGIN LDAP echo cn=admin,dc=cip,dc=cu > /var/qmail/control/ldaplogin
QUE NO BUSQUE LAS CONTRASEÑAS EN ETC echo 0 >/var/qmail/control/ldaplocaldelivery
LDAP CLUSTER NO echo 0 >/var/qmail/control/ldapcluster
CUOTA POR DEFECTO 10MB echo 10000000 >/var/qmail/control/defaultquotasize
NORMERO DE CORREOS QUE SE PUEDE TENER echo 10000 >/var/qmail/control/defaultquotacount
MENSAJE CON EL LIMITE echo Tu buzon se esta saturando, haz espacio si quieres seguir recibiendo correos > /var/qmail/control/quotawarning
TODA LA CONFIGURACION DE OBTIENE DE LDAP echo ldaponly > /var/qmail/control/ldapdefaultdotmode
BUZONES DE USUARIOS echo /home/vmail/ > /var/qmail/control/ldapmessagestore
UID DE USER VMAIL echo 11184 > /var/qmail/control/ldapuid
GID USUARIO VMAIL echo 2110 > /var/qmail/control/ldapgid
TIEMPO MAXIMO DE BUSQUEDA echo 30 > /var/qmail/control/ldaptimeout
TEXTO PARA RECHASOS echo Para mayor informacion escribir a serviciostecnicos@cip.cu > /var/qmail/control/custombouncetext
LISTAS RBL touch /var/qmail/control/rbllist
IP QMAIL REMOTE echo 0.0.0.0 >/var/qmail/control/outgoingip
FORMATO PARA LOS BUSZONES DE USUARIOS echo ./Maildir/ >/var/qmail/control/defaultdelivery
INGRESAR A LDAPADMIN
http://tu-numero-de-ip/phpldapadmin/
En la raiz : agregar objectClass = qmailUser y utributo mail de esta forma :
imagen-qmail-ldap1
imagen-qmail-ldap2
imagen-qmail-ldap3
imagen-qmail-ldap4
imagen-qmail-ldap5
Ahora crear la siguiente estructura de unidades organizacionales
- agregar ou = qmail - agregar ou = cip.cu - agregar ou = users
quedara asi :
imagen-qmail-ldap6
- INICIAR SERVICIOS
- para crear el rc
RC
cd /var/qmail touch rc nano rc
- !/bin/sh
- Taken from LWQ by Dave Sill
- Using stdout for logging
- Using control/defaultdelivery from qmail-local to deliver messages by default
exec env - PATH=”/var/qmail/bin:$PATH” \ qmail-start “`cat /var/qmail/control/defaultdelivery`”
- ASIGNAR PERMISOS
chmod 755 /var/qmail/rc mkdir /var/log/qmail
QMAILCONF - DJBDNS
cd /usr/local tar xvfz djbdns-1.05.tar.gz cd djbdns-1.05 echo gcc -O2 -include /usr/include/errno.h > conf-cc make make setup check
tar xvfz qmail-conf-0.60.tar.gz cd qmail-conf-0.60 make -f Makefile.ini djbdns=.../../djbdns-1.05/ echo gcc -O2 -include /usr/include/errno.h > conf-cc make setup check
MAILDROP apt-get install libpcre3-dev g++ cd /usr/local/src/ tar -xvf maildrop-2.0.1.20051115.tar cd maildrop-2.0.1.20051115
./configure make make install
QMAIL DELIVERI cd / /var/qmail/bin/qmail-delivery-conf qmaill /var/qmail/service/qmail ln -s /var/qmail/service/qmail /service svc -u /service/qmail
svstat /service/qmail
SI TODO ESTA BIEN DEBERIA SALIR ESTO:
/service/qmail: up (pid 443) 2401 seconds
QMAIL SMTP /var/qmail/bin/qmail-smtpd-conf qmaild qmaill /var/qmail/service/smtpd ln -s /var/qmail/service/smtpd /service svc -u /service/smtpd svstat /service/smtpd
SI TODO ESTA BIEN DEBERIA SALIR ESTO:
/service/smtpd: up (pid 469) 1 seconds
mv /etc/init.d/exim4 /root
DEFINIR RELAY nano /service/smtpd/tcp
127.:allow,RELAYCLIENT="" 192.168.7.:allow,RELAYCLIENT=""
- allow
echo "3"> /service/smtpd/env/LOGLEVEL cd /service/smtpd
make
SI TODO ESTA BIEN DEBERIA SALIR ESTO:
/usr/local/bin/tcprules tcp.cdb tcp.tmp < tcp
SI SALE UN ERROR HAY QUE TENER CUIDADO CON LAS COMILLAS NO SE COPIAN BIEN
DIRMAKER nano /var/qmail/bin/dirmaker.sh
- !/bin/sh
/bin/mkdir -m 700 -p $1/Maildir /bin/mkdir -m 700 -p $1/Maildir/new /bin/mkdir -m 700 -p $1/Maildir/cur /bin/mkdir -m 700 -p $1/Maildir/tmp
ASIGNANDO PERMISOS
chmod +x /var/qmail/bin/dirmaker.sh echo /var/qmail/bin/dirmaker.sh > /var/qmail/control/dirmaker
SERVICIO POP3
cd /
(Todo es una linea) /var/qmail/bin/qmail-pop3d-conf /var/qmail/bin/auth_pop qmaill /var/qmail/service/pop3d
cd /var/qmail/service/pop3d nano tcp
192.168.7.0:allow
make
SI TODO ESTA BIEN DEBERIA SALIR ESTO:
/usr/local/bin/tcprules tcp.cdb tcp.tmp < tcp
ln -s /var/qmail/service/pop3d /service echo "3"> /service/pop3d/env/POP3_LOGLEVEL svstat /service/pop3d /service/pop3d/log
SI TODO ESTA BIEN DEBERIA SALIR ESTO:
/service/pop3d: up (pid 1437) 8 seconds /service/pop3d/log: up (pid 1436) 8 seconds
VERIFICAR LOGS DE POP3
tail -f /service/pop3d/log/main/current | tai64nlocal
SERVICIO IMAP
apt-get install libgdbm-dev
- Imap mecesita ser compilado previamente con un usuario comun (no root)
- para eso cree un usuario joliva e inicie sesion con el en una consola
- aparte para no tener confuciones y se ejecuta lo siguiente:
cd /usr/local/src tar xvfj courier-imap-4.1.2.tar.bz2 chown -R cmanuel.cmanuel courier* su cmanuel export CPPFLAGS=-I/usr/local/include/ export LDFLAGS=-L/usr/local/lib
- (Cuidado con lo que tenemos antes de enable-unicode.
- Pegado a “ena” tenemos dos guiones juntos,
- en el blog no se aprecia bien pero sería “- -enable-unicode”, juntando los dos guiones seguidos. )
./configure --enable-unicode=iso-8859-1,utf-8
make make check exit cd courier-imap-3.0.8 make install make install-configure
cp /usr/lib/courier-imap/etc/imapd.dist /etc/imapd.config nano /etc/imapd.config
cambiar MAXPERIP=4 por MAXPERIP=40
CREAR DIRECTORIO DE INICIO mkdir /usr/lib/courier-imap/runscript nano /usr/lib/courier-imap/runscript/run
- !/bin/sh
IPADDR="0.0.0.0" exec_prefix=/usr/lib/courier-imap . /etc/imapd.config
exec tcpserver -c 100 -l 0 -v -R $IPADDR imap \
${exec_prefix}/sbin/imaplogin \
/var/qmail/bin/auth_imap \
${exec_prefix}/bin/imapd Maildir 2>&1
ASIGNAR PERMISOS
chmod +x /usr/lib/courier-imap/runscript/run ln -s /usr/lib/courier-imap/runscript /service/imapd
ACTIVAR SERVICIO IMAP svstat /service/imapd
SI TODO ESTA CORRECTO SE OBTIENE ALGO ASI: /service/imapd: up (pid 92820) 20 seconds
Testear imap
telnet 127.0.0.1 143 ... a1 login your_login ***** a2 select inbox
AUTORESPONDER
cd /usr/local/src
tar -xzf autorespond-2.0.4.tar.gz cd autorespond-2.0.4 patch -p1 < ../autorespond-2.0.4-2.0.5.patch make make install
MANEJADOR DE LISTAS EMZL cd /usr/local/src tar -xzf ezmlm-0.53.tar.gz tar -xzf ezmlm-idx-5.0.2.tar.gz mv ezmlm-idx-5.0.2/* ezmlm-0.53/ cd ezmlm-0.53 patch -p0 < idx.patch make make setup
REINICIAR
shutdown -r now
PRUEBAS DE LOS PUERTOS
telnet localhost 25 telnet localhost 110 telnet localhost 143
CREAR USUARIOS
CREAR cmanuel.ldif con el siguiente formato e importamos el archivo atravez de phpldapadmin
dn: cn=cmanuel,ou=users,ou=cip.cu,ou=qmail,dc=cip,dc=cu cn: cmanuel ou: users sn: cmanuel objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: qmailUser mail: cmanuel@cip.cu mailHost: mail.cip.cu mailQuotaSize: 0 mailQuotaCount: 0 accountStatus: active uid: joliva mailMessageStore: cip.cu/cmanuel userPassword: {MD5}RMe+SCJuutXcqCFmdMrWKw==
IMPORTAR EL ARCHIVO LDIF DESDE PHPLDAPADMIN Y CAMBIAR LA CONTRASEÑA
userPassword : 123456
qmail-ldap7
REALIZAR PRUEBAS DE INGRESO
- telnet 127.0.0.1 143
… a001 login cmanuel 123456 a002 select inbox
