Configurar ‘Vacation Autoresponder’ a prueba de Spam. CentOS 5.

Primero hay que instalar y configurar el auto-responder, en nuestro caso usaremos el ‘vacation’.

Comencemos por descargarlo de http://vacation.sourceforge.net/ (yo he bajado la última versión estable a la fecha, la 1.2.7.0):

[root@dv2315 ~]# wget http://ufpr.dl.sourceforge.net/sourceforge/vacation/vacation-1.2.7.0.tar.gz

La descomprimimos y compilamos:

[root@dv2315 ~]# tar zxf vacation-1.2.7.0.tar.gz
[root@dv2315 ~]# cd vacation-1.2.7.0
[root@dv2315 ~]# make

Con esto obtenemos un binario llamado ‘vacation’ en el propio directorio donde compilamos, hay que copiarlo al /usr/bin para que pueda ser accedido desde cualquier parte del FS.

[root@dv2315 ~]# cp -a vacation /usr/bin/vacation

Y listo, tenemos el auto respondedor ‘vacation’ en nuero sistema. El problema con los auto respondedores como el ‘vacation’ para sendmail, es que los spammers con frecuencia trucan la dirección del From:. Responder automáticamnete a estos mensajes puede ocasionar que tu servidor de mensajería caiga en listas negras (blacklisted). Para evitar esto puedes configurar tu auto respondedor con procmail y si estás usando un filtro de spam en tu máquina (MailScanner+spamassassin por ejemplo), puedes decirle al procmail que auto responda los mails únicamente si el encabezado ‘X Spam Status’ es ‘No’.

Para lograr esto, copia lo siguiente en  ~/.procmailrc (donde ~ representa el directorio personal) del usuario al cual quieres asignarle el auto responder. Asegúrate de realizar cualquier cambio necesario a MAILDIR, SENDMAIL y las tres instancias de ‘tumismo@tudominio.com’:

VERBOSE=off
LOGFILE=$HOME/procmail.log
MAILDIR=$HOME/mail
# Usar la de abajo si se usa Maildir en lugar de mailbox:
#MAILDIR=$HOME/Maildir
SENDMAIL=/usr/sbin/sendmail
#########################################
## Auto-responder for vacations. Please
## insert text in $MAILDIR/message.txt
##########################################
:0 ic
*!^FROM_DAEMON
*!^X-Loop: tumismo@tudominio.com
* ^X-Spam-Status: No
|(formail -r -A "Precedence: Auto" \
- -I"From: tumismo@tudominio.com" \
- -I"Subject: Respuesta Automática" \
- -A "X-Loop: tumismo@tudominio.com"; \
cat message.txt )| $SENDMAIL -t

Ahora hay que poner el cuerpo del mensaje de auto respuesta en el archivo ~/mail/message.txt. Algo como esto:

Lo siento, estoy fuera de la oficina hasta el miércoles 3. Le responderé en cuanto regrese...
Salu2
--
Yo Mismo, yo y mi persona 😉

No olvides de apagar el auto respondedor cuando regreses de tu viaje:

[root@dv2315 ~]# mv ~/.procmailrc ~/.backup_procmailrc

Actualización: Hay que notar que para que el auto respondedor funcione, el shell del usuario deberá ser establecido a algo como /bin/bash y no /sbin/nologin. Cosa que no termina de convencerme por obvias razones, y al mismo tiempo incrementa mi desaliento en usar este tipo de herramienta.

fuente original:
https://blog.devhen.com/archives/Setup-a-Spam-Proof-Vacation-Autoresponder-with-Procmail-+-Sendmail.html

5 comentarios:

  1. yum install gdbm-devel

  2. Estimado Paul.

    tengo un error en el vacation, consulta cuando configuras una cuenta en aliasess puedes ocupar vacation?? gracias por la respuesta.

  3. Hola Paul.

    Yo tengo el mismo error, pero como veo que has posteado este error voy a problarlo también

    Gracias.

    Saludos

    Jaime Torres S.

  4. Sí Daniel, se me había olvidado especificar que la compilación requiere de ciertas herramientas de desarrollo (principalmente compiladores) para correr adecuadamente. Es necesario que se instale al menos el paquete GCC que es la “GNU Compiler Collection” y trae lo básico necesario para compilar código C. Para instalar el gcc en CentOS puedes ejecutar como root:

    yum -y install gcc

    Espero te sirva!
    Salu2
    don pool

  5. estaba probando haber si funcionaba, vacation pero cual hago la compilacion me salta este error:

    gcc -g -Wall -DMAIN -Xlinker -warn-common -D_PATH_VACATION=\”/usr/bin/vacatio n\” -o vacation vacation.c strlcpy.c strlcat.c rfc822.c -lgdbm
    vacation.c:81:18: error: gdbm.h: No such file or directory
    In file included from vacation.c:92:
    vacation.h:61: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âd bâ
    vacation.c: In function âmainâ:
    vacation.c:200: error: âdbâ undeclared (first use in this function)
    vacation.c:200: error: (Each undeclared identifier is reported only once
    vacation.c:200: error: for each function it appears in.)
    vacation.c:200: warning: implicit declaration of function âgdbm_openâ
    vacation.c:200: error: âGDBM_NEWDBâ undeclared (first use in this function)
    vacation.c:200: error: âGDBM_WRITERâ undeclared (first use in this function)
    vacation.c:222: warning: implicit declaration of function âgdbm_closeâ
    vacation.c: In function ârecentâ:
    vacation.c:529: error: âdatumâ undeclared (first use in this function)
    vacation.c:529: error: expected â;â before âkeyâ
    vacation.c:533: error: âkeyâ undeclared (first use in this function)
    vacation.c:535: error: âdataâ undeclared (first use in this function)
    vacation.c:535: warning: implicit declaration of function âgdbm_fetchâ
    vacation.c:535: error: âdbâ undeclared (first use in this function)
    vacation.c: In function âsetintervalâ:
    vacation.c:567: error: âdatumâ undeclared (first use in this function)
    vacation.c:567: error: expected â;â before âkeyâ
    vacation.c:569: error: âkeyâ undeclared (first use in this function)
    vacation.c:571: error: âdataâ undeclared (first use in this function)
    vacation.c:573: warning: implicit declaration of function âgdbm_storeâ
    vacation.c:573: error: âdbâ undeclared (first use in this function)
    vacation.c:573: error: âGDBM_REPLACEâ undeclared (first use in this function)
    vacation.c: In function âsetreplyâ:
    vacation.c:583: error: âdatumâ undeclared (first use in this function)
    vacation.c:583: error: expected â;â before âkeyâ
    vacation.c:586: error: âkeyâ undeclared (first use in this function)
    vacation.c:589: error: âdataâ undeclared (first use in this function)
    vacation.c:591: error: âdbâ undeclared (first use in this function)
    vacation.c:591: error: âGDBM_REPLACEâ undeclared (first use in this function)
    make: *** [vacation] Error 1

No se admiten más comentarios