Servidor Perfecto · 4 min read · Nov 09, 2025
El Servidor Perfecto - CentOS 5.2 [ISPConfig 3] - Página 4
10 Instalar Courier-IMAP, Courier-Authlib y Maildrop
Desafortunadamente, no hay paquetes rpm para Courier-IMAP, Courier-Authlib y Maildrop, por lo tanto, tenemos que construirlos nosotros mismos.
Los paquetes RPM no deben ser construidos como root; courier-imap incluso se negará a compilar si detecta que la compilación se ejecuta como el usuario root. Por lo tanto, creamos una cuenta de usuario normal ahora (compileuser en este ejemplo) y le damos una contraseña:
useradd -m -s /bin/bash compileuser
passwd compileuserNecesitaremos el comando sudo más adelante para que el usuario compileuser pueda compilar e instalar los paquetes rpm. Pero primero, debemos permitir que compileuser ejecute todos los comandos usando sudo:
Ejecutar
visudoEn el archivo que se abre hay una línea root ALL=(ALL) ALL. Agrega una línea similar para compileuser justo debajo de esa línea:
| [...] root ALL=(ALL) ALL compileuser ALL=(ALL) ALL [...] |
Ahora estamos listos para construir nuestro paquete rpm. Primero conviértete en el usuario compileuser:
su compileuserA continuación, creamos nuestro entorno de construcción:
mkdir $HOME/rpm
mkdir $HOME/rpm/SOURCES
mkdir $HOME/rpm/SPECS
mkdir $HOME/rpm/BUILD
mkdir $HOME/rpm/SRPMS
mkdir $HOME/rpm/RPMS
mkdir $HOME/rpm/RPMS/i386echo "%_topdir $HOME/rpm" >> $HOME/.rpmmacrosAhora descargamos los archivos fuente de http://www.courier-mta.org/download.php:
cd /tmp
wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.62.1.tar.bz2
wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2
wget http://prdownloads.sourceforge.net/courier/maildrop-2.0.4.tar.bz2Ahora (aún en /tmp) podemos construir courier-authlib:
sudo rpmbuild -ta courier-authlib-0.62.1.tar.bz2Después del proceso de construcción, los paquetes rpm se pueden encontrar en $HOME/rpm/RPMS/i386 ( $HOME/rpm/RPMS/x86_64 si estás en un sistema x86_64):
cd $HOME/rpm/RPMS/i386El comando
ls -lte muestra los paquetes rpm disponibles:
[compileuser@server1 i386]$ ls -l
total 584
-rw-r–r– 1 root root 140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
[compileuser@server1 i386]$
Selecciona los que deseas instalar e instálalos así:
sudo rpm -ivh courier-authlib-0.62.1-1.i386.rpm courier-authlib-mysql-0.62.1-1.i386.rpm courier-authlib-devel-0.62.1-1.i386.rpm Ahora volvemos al directorio /tmp y ejecutamos rpmbuild nuevamente, esta vez sin sudo, de lo contrario, la compilación fallará porque se ejecutó como root:
cd /tmp
rpmbuild -ta courier-imap-4.4.1.tar.bz2Después del proceso de construcción, los paquetes rpm se pueden encontrar en $HOME/rpm/RPMS/i386 ( $HOME/rpm/RPMS/x86_64 si estás en un sistema x86_64):
cd $HOME/rpm/RPMS/i386El comando
ls -lte muestra los paquetes rpm disponibles:
[compileuser@server1 i386]$ ls -l
total 1868
-rw-r–r– 1 root root 140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 395137 Feb 26 03:13 courier-imap-4.4.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 906775 Feb 26 03:13 courier-imap-debuginfo-4.4.1-1.i386.rpm
[compileuser@server1 i386]$
Puedes instalar courier-imap así:
sudo rpm -ivh courier-imap-4.4.1-1.i386.rpmAhora volvemos al directorio /tmp y ejecutamos rpmbuild nuevamente, esta vez para construir un paquete de maildrop:
cd /tmp
sudo rpmbuild -ta maildrop-2.0.4.tar.bz2Después del proceso de construcción, los paquetes rpm se pueden encontrar en $HOME/rpm/RPMS/i386 ( $HOME/rpm/RPMS/x86_64 si estás en un sistema x86_64):
cd $HOME/rpm/RPMS/i386El comando
ls -lte muestra los paquetes rpm disponibles:
[compileuser@server1 i386]$ ls -l
total 3096
-rw-r–r– 1 root root 140978 Feb 26 03:00 courier-authlib-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 309196 Feb 26 03:00 courier-authlib-debuginfo-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 34672 Feb 26 03:00 courier-authlib-devel-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 17855 Feb 26 03:00 courier-authlib-ldap-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 14048 Feb 26 03:00 courier-authlib-mysql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 13214 Feb 26 03:00 courier-authlib-pgsql-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 8175 Feb 26 03:00 courier-authlib-pipe-0.62.1-1.i386.rpm
-rw-r–r– 1 root root 35927 Feb 26 03:00 courier-authlib-userdb-0.62.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 395137 Feb 26 03:13 courier-imap-4.4.1-1.i386.rpm
-rw-rw-r– 1 compileuser compileuser 906775 Feb 26 03:13 courier-imap-debuginfo-4.4.1-1.i386.rpm
-rw-r–r– 1 root root 303104 Feb 26 03:25 maildrop-2.0.4-1.i386.rpm
-rw-r–r– 1 root root 739326 Feb 26 03:25 maildrop-debuginfo-2.0.4-1.i386.rpm
-rw-r–r– 1 root root 134387 Feb 26 03:25 maildrop-devel-2.0.4-1.i386.rpm
-rw-r–r– 1 root root 58837 Feb 26 03:25 maildrop-man-2.0.4-1.i386.rpm
[compileuser@server1 i386]$
Ahora puedes instalar maildrop así:
sudo rpm -ivh maildrop-2.0.4-1.i386.rpmDespués de haber compilado e instalado todos los paquetes necesarios, puedes volver a ser root escribiendo
exit11 Aplicar el parche de cuota a Postfix
Tenemos que obtener el rpm fuente de Postfix, parcharlo con el parche de cuota, construir un nuevo paquete rpm de Postfix e instalarlo.
cd /usr/src
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5.2/os/SRPMS/postfix-2.3.3-2.src.rpm
rpm -ivh postfix-2.3.3-2.src.rpmEl último comando mostrará algunas advertencias que puedes ignorar:
advertencia: el usuario mockbuild no existe - usando root
advertencia: el grupo mockbuild no existe - usando root
cd /usr/src/redhat/SOURCES
wget http://vda.sourceforge.net/VDA/postfix-2.3.3-vda.patch.gz
gunzip postfix-2.3.3-vda.patch.gz
cd /usr/src/redhat/SPECS/Ahora debemos editar el archivo postfix.spec:
vi postfix.specCambia %define MYSQL 0 a %define MYSQL 1, agrega Patch0: postfix-2.3.3-vda.patch a la estrofa # Patches, y finalmente agrega %patch0 -p1 -b .vda a la estrofa %setup -q:
| [...] %define MYSQL 1 [...] # Patches Patch0: postfix-2.3.3-vda.patch Patch1: postfix-2.1.1-config.patch Patch3: postfix-alternatives.patch Patch6: postfix-2.1.1-obsolete.patch Patch7: postfix-2.1.5-aliases.patch Patch8: postfix-large-fs.patch Patch9: postfix-2.2.5-cyrus.patch [...] %setup -q # Aplicar parches obligatorios %patch0 -p1 -b .vda %patch1 -p1 -b .config %patch3 -p1 -b .alternatives %patch6 -p1 -b .obsolete %patch7 -p1 -b .aliases %patch8 -p1 -b .large-fs %patch9 -p1 -b .cyrus [...] |
Luego construimos nuestro nuevo paquete rpm de Postfix con soporte de cuota y MySQL:
rpmbuild -ba postfix.specNuestro paquete rpm de Postfix se crea en /usr/src/redhat/RPMS/i386 ( /usr/src/redhat/RPMS/x86_64 si estás en un sistema x86_64), así que vamos allí:
cd /usr/src/redhat/RPMS/i386El comando
ls -lte muestra los paquetes disponibles:
[root@server1 i386]# ls -l
total 11292
-rw-r–r– 1 root root 3820393 Feb 27 18:16 postfix-2.3.3-2.i386.rpm
-rw-r–r– 1 root root 7666204 Feb 27 18:16 postfix-debuginfo-2.3.3-2.i386.rpm
-rw-r–r– 1 root root 50539 Feb 27 18:16 postfix-pflogsumm-2.3.3-2.i386.rpm
[root@server1 i386]#
Selecciona el paquete de Postfix e instálalo así:
rpm -ivh postfix-2.3.3-2.i386.rpmLuego apaga Sendmail y enciende Postfix, saslauthd y courier-authlib:
chkconfig --levels 235 courier-authlib on
/etc/init.d/courier-authlib start
chkconfig --levels 235 sendmail off
chkconfig --levels 235 postfix on
chkconfig --levels 235 saslauthd on
/etc/init.d/sendmail stop
/etc/init.d/postfix start
/etc/init.d/saslauthd start12 Configurar Courier
Ahora creamos los enlaces de inicio del sistema para courier-imap:
chkconfig --levels 235 courier-imap on
/etc/init.d/courier-authlib restart
/etc/init.d/courier-imap restartCuando courier-imap se inicia por primera vez, automáticamente crea los archivos de certificado /usr/lib/courier-imap/share/imapd.pem y /usr/lib/courier-imap/share/pop3d.pem a partir de los archivos /usr/lib/courier-imap/etc/imapd.cnf y /usr/lib/courier-imap/etc/pop3d.cnf. Debido a que los archivos .cnf contienen la línea CN=localhost, pero nuestro servidor se llama server1.example.com, los certificados pueden causar problemas cuando usas conexiones TLS. Para resolver esto, eliminamos ambos certificados…
cd /usr/lib/courier-imap/share/
rm -f imapd.pem
rm -f pop3d.pem… y reemplazamos las líneas CN=localhost en /usr/lib/courier-imap/etc/imapd.cnf y /usr/lib/courier-imap/etc/pop3d.cnf con CN=server1.example.com:
vi /usr/lib/courier-imap/etc/imapd.cnf| [...] CN=server1.example.com [...] |
vi /usr/lib/courier-imap/etc/pop3d.cnf| [...] CN=server1.example.com [...] |
Luego recreamos ambos certificados…
./mkimapdcert
./mkpop3dcert… y reiniciamos courier-authlib y courier-imap:
/etc/init.d/courier-authlib restart
/etc/init.d/courier-imap restart13 Instalar Getmail
Getmail se puede instalar de la siguiente manera:
yum install getmailRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.