Postgrey
Contenido
Introducción
Este es un mini-howto de cómo instalar a partir de las fuetes y configurar el Postgrey.
Dependencias
Verificar e instalar las dependencias que no se tengan:
- Perl (version ≥ 5.6.0)
- Net::Server
- IO::Multiplex
- BerkeleyDB (Perl module)
- Berkeley DB (Library, version ≥ 4.1)
Bajando los archivos
Bajamos y desempaquetamos:
[root@servidor ~]# wget http://postgrey.schweikert.ch/pub/postgrey-1.32.tar.gz
[root@servidor ~]# tar xvzf postgrey-1.32.tar.gz
Copiando archivos
Primero copiamos los ejecutables:
[root@servidor ~]# cd postgrey-1.32
[root@servidor postgrey-1.32]# cp postgrey /usr/sbin/
[root@servidor postgrey-1.32]# cp contrib/postgreyreport /usr/sbin/
Hay que verificar que los archivos copiados estén con permiso de ejecución.
Ahora copiamos los archivos de configuración base:
[root@servidor postgrey-1.32]# cp postgrey_whitelist_clients /etc/postfix/
[root@servidor postgrey-1.32]# cp postgrey_whitelist_recipients /etc/postfix/
[root@servidor postgrey-1.32]# touch /etc/postfix/postgrey_whitelist_clients.local
En postgrey_whitelist_clients.local se colocarían las personalizaciones del whitelist.
Creando demonio postgrey
Crearemos el archivo ejecutable del demonio:
[root@servidor postgrey-1.32]# cd /etc/init.d
[root@servidor init.d]# touch postgrey
[root@servidor init.d]# chmod +x postgrey
[root@servidor init.d]# vim postgrey
Este es el contenido del archivo /etc/init.d/postgrey, está basado en el demonio que trae el rpm del postgrey para fedora core 10.
#!/bin/sh
#
# chkconfig: - 79 31
# description: Postfix Greylisting Policy Server
#
# processname: postgrey
#
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
prog=postgrey
postgrey=/usr/sbin/$prog
DBPATH=/var/spool/postfix/postgrey
SOCKET=$DBPATH/socket
#OPTIONS="--unix=$SOCKET"
OPTIONS="--inet=10023 --group=postgrey"
# Source an auxiliary options file if we have one, and pick up OPTIONS,
if [ -r /etc/sysconfig/$prog ]; then
. /etc/sysconfig/$prog
fi
[ -x $postgrey -a -d $DBPATH ] || exit 0
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $postgrey -d $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
stop() {
echo -n $"Stopping $prog: "
killproc $postgrey
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $prog: "
killproc $postgrey -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
condrestart)
[ -f /var/lock/subsys/$prog ] && restart
;;
status)
status $postgrey
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
exit 1
esac
exit $RETVAL
Creando usuario para el demonio
[root@servidor init.d]# useradd -d /var/spool/postfix/postgrey -m -r -s /sbin/nologin postgrey
Verificamos que no tenga cualquier usuario acceso de lectura al directorio home de postgrey (en algunas distribuciones podría crearse con los permisos inadecuados), para cambiarlos ejecutamos:
[root@servidor init.d]# chmod 700 /var/spool/postfix/postgrey
Activando el demonio
Ahora sí estamos listos para activar el servicio.
[root@servidor init.d]# chkconfig --add postgrey
[root@servidor init.d]# chkconfig postgrey on
[root@servidor init.d]# service postgrey start
Configurando Postfix
Para incluir en el postfix el uso del postgrey, se debe incluir en la directiva smtpd_recipient_restrictions la siguiente opción (recomendable que sea última, o como mínimo posterior a las opciones que permiten acceso): check_policy_service inet:127.0.0.1:10023. Ver Asegurando Postfix.
Ver También
- Página oficial: http://postgrey.schweikert.ch/
- Download: http://postgrey.schweikert.ch/pub/