Buscando...
11 noviembre 2009

Instalación de un Servidor de Correo en Linux (Capítulo V)

http://hpservidores.files.wordpress.com/2009/03/linux21.jpg
El Ing. Danny Alvárez nos envía su segunda colaboración al Blog Tecnológico Dominicano, esta vez se trata de un tutorial Instalación de un Servidor de correos en Linux.
Agradecemos al Ing. Alvárez por su cooperación.

Hasta ahora hemos visto 4 capítulos:

Capítulo 5: Scripts servidor de correo

Script de inicio de qmail (/var/qmail/rc)
vi /var/qmail/rc
#!/bin/sh
# 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`"
chmod 755 /var/qmail/rc
echo ./Maildir/ > /var/qmail/control/defaultdelivery
Automatización del script de inicio (/var/qmail/bin/qmailctl)
vi /var/qmail/bin/qmailctl
#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
case "$1" in
start)
echo "Starting qmail"
if svok /service/qmail-send ; then
svc -u /service/qmail-send
else
echo qmail-send supervise not running
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd supervise not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d
else
echo qmail-pop3d supervise not running
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-smtpd"
svc -d /service/qmail-smtpd
echo " qmail-send"
svc -d /service/qmail-send
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
echo " qmail-pop3d"
svc -d /service/qmail-pop3d
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /service/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /service/qmail-pop3d
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd
echo "* Restarting qmail-pop3d."
svc -t /service/qmail-pop3d
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
chmod 755 /var/qmail/bin/qmailctl
Ahora nos disponemos a crear los enlaces de cada inicio en cada capa y los directorios de supervise.
ln -s /var/qmail/bin/qmailctl /etc/init.d/qmail
ln -s /etc/init.d/qmail /etc/rc0.d/K30qmail
ln -s /etc/init.d/qmail /etc/rc1.d/K30qmail
ln -s /etc/init.d/qmail /etc/rc2.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc3.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc4.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc5.d/S80qmail
ln -s /etc/init.d/qmail /etc/rc6.d/K30qmail
ln -s /var/qmail/bin/qmailctl /usr/bin
mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log
mkdir -p /var/log/qmail/smtpd
mkdir -p /var/log/qmail/pop3d
chown qmaill /var/log/qmail /var/log/qmail/smtpd /var/log/qmail/pop3d
Scripts de arranque y logeo de qmail-send
vi /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc
vi /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
Scripts de arranque y logeo de qmail-smtpd (smtp-auth)
Para poder usar smtp-auth, vamos a crear una copia de vchkpw, aquí hay varios puntos importantes que hay que tener en cuenta.
cp /home/vpopmail/bin/vchkpw /home/vpopmail/bin/vchkpw.smtp
chown vpopmail.vchkpw /home/vpopmail/bin/vchkpw.smtp
chmod +s /home/vpopmail/bin/vchkpw.smtp

Estas líneas anteriores eran para mantener una copia intacta de vchkpw, ahora vamos a proceder a crear los scripts anteriormente citados.
vi /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
exec /usr/local/bin/softlimit -m 4000000 /usr/local/bin/tcpserver -H -R -l 0 -c "$MAXSMTPD" -x /etc/tcp.smtp.cdb -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd dominio.com /home/vpopmail/bin/vchkpw.smtp /bin/true 2>&1
NOTA: dominio.com lo tendremos que sustituir por el nombre de dominio asignado, en este caso era pruebas.com, pero hay que observar que tan solo ponemos pruebas.com y no ponemos mailhost.pruebas.com
Tenemos que crear el archivo concurrencyincoming, el cual estará determinado por un número concurrente para realizar envíos simultáneos.
echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
Ahora vamos a crear el script de logeo de qmail-smtpd.
vi /var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd
Scripts de arranque y logeo de qmail-pop3d
vi /var/qmail/supervise/qmail-pop3d/run
#!/bin/sh
exec /usr/local/bin/tcpserver -v -R -H -l 0 -u 89 -g 89 0 110 /var/qmail/bin/qmail-popup dominio.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1
NOTA: dominio.com lo tendremos que sustituir por el nombre de dominio asignado, en este caso era pruebas.com, pero hay que observar que tan solo ponemos pruebas.com y no ponemos mailhost.pruebas.com
vi /var/qmail/supervise/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d
Ahora nos disponemos a hacer ejecutables todos estos archivos y enlazarlos con daemontools.
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
ln -s /var/qmail/supervise/qmail-pop3d /service
Una vez hecho este último paso nuestro servidor de correo debería estar funcionando, una forma de comprobarlo es de la siguiente forma.
telnet localhost 25
telnet localhost 110
También deberemos probar el script que creamos (qmailctl) para parar los servicios y volver a iniciarlos con este comando.
/etc/init.d/qmail stop
/etc/init.d/qmail start

0 comentarios:

 
Back to top!