Opciones avanzadas para Sendmail.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2012 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector, hace mal uso de éstos.

Introducción.

Debido a la naturaleza del correo electrónico, es posible para un atacante inundar fácilmente el servidor y desencadenar en una denegación de servicio. Fenómenos como el denominado correo basura o Spam dificultan la administración de un servidor de correo electrónico.

Funciones.

Todas las funciones explicadas a continuación pueden incluirse en el archivo /etc/mail/sendmail.mc justo debajo de la última línea que incluya define y arriba de la primera línea que incluya FEATURE.

confMAX_RCPTS_PER_MESSAGE

Esta opción sirve para establecer un número máximo de destinatarios para un mensaje de correo electrónico. De modo predeterminado Sendmail establece un máximo de 256 destinatarios para el envío de un mensaje de correo electrónico. En el siguiente ejemplo se limitará el número de destinatarios a 20:

define(`confMAX_RCPTS_PER_MESSAGE', `20')dnl

confBAD_RCPT_THROTTLE

Esta opción sirve para establecer el tiempo de espera que se utilizará por cada destinatario que sobrepase el límite establecido por confMAX_RCPTS_PER_MESSAGE. De modo predeterminado Sendmail carece de límite para tiempo de espera. En el siguiente ejemplo se establecerán 2 segundos de letargo por cada destinatario rechazado por sobrepasar el límite de destinatarios permitidos:

define(`confBAD_RCPT_THROTTLE', `2')dnl

confPRIVACY_FLAGS

Cuando se establece como valor `goaway', se deshabilitan varios mandatos SMTP como EXPN y VRFY, los cuales pudieran ser utilizados para revelar los nombres de usuarios locales a un spammer. También deshabilita las notificaciones de entrega, el cual es un mecanismo comúnmente utilizado por quienes envían correo basura para verificar/confirmar la existencia de una cuenta activa y hace que el sistema solicite de manera obligatoria se realice un HELO o EHLO antes de utilizar el mandato MAIL. Muchos programas de utilizados para enviar correo basura ni siquiera se molestan en utilizar HELO o EHLO. De modo predeterminado los valores de confPRIVACY_FLAGS son `authwarnings,novrfy,noexpn,restrictqrun', cambie por lo siguiente:

define(`confPRIVACY_FLAGS',`goaway')dnl

confMAX_HEADERS_LENGTH

Esta opción se utiliza para definir el tamaño máximo permitido para la cabecera de un mensaje en bytes. Algunos programas utilizados para enviar spam tratan de impedir que los MTA puedan registrar transacciones generando cabeceras muy grandes.

Limitar le tamaño de las cabeceras hace más difícil la ejecución de guión que explote vulnerabilidades recientes (desbordamientos de búfer) en UW IMAP, Outlook y Outlook Express.

La mayor parte de los mensajes de correo electrónico tendrán cabeceras de menos de 2 Kb (2048 bytes). Un mensaje de correo electrónico ordinario, por muy exagerado que resulte el tamaño de la cabecera, rara vez utilizará una cabecera que sobrepase los 5 Kb o 6 Kb, es decir, de 5120 o 6144 bytes, a menos que se utilice una combinación de varias tecnologías de anti-virus y anti-spam. En el siguiente ejemplo se limitará el tamaño máximo de la cabecera de un mensaje a 24 KiB (requerido para los escenarios más complejos de tecnologías como MailScanner y Amavisd-new):

define(`confMAX_HEADERS_LENGTH', `24576')dnl

El valor recomendado es 16 KiB (16384 bytes). Aumente o disminuya el valor de acuerdo a lo que considere necesario.

confMAX_MESSAGE_SIZE

Esta opción sirve para especificar el tamaño máximo permitido para un mensaje de correo electrónico en bytes. Puede especificarse lo que el administrador considera apropiado. En el siguiente ejemplo se limitará el tamaño máximo de un mensaje a 10 MiB (10485760 bytes):

define(`confMAX_MESSAGE_SIZE', `10485760')dnl

Si el sistema carece de los recursos suficientes —dependiendo también del volumen de datos y la cantidad de usuarios— aumentar el límite del tamaño para los mensajes puede provocar se demore el envío y recepción de mensajes hasta por varias horas. Evite utilizar el servidor de correo electrónico como un medio de almacenamiento o un servicio para compartir archivos y prefiera compartir archivos utilizando servicios que si fueron diseñados para ese fin. Servicios de correo electrónico como GMail permiten enviar mensajes de hasta 10 MiB gracias a que disponen de un colosal agrupamiento (cluster) de servidores de alto desempeño.

confMAX_DAEMON_CHILDREN

Esta opción sirve para especificar cuantos procesos hijos se permitirán simultáneamente en el servidor de correo. De modo predeterminado esta opción permite un número ilimitado de procesos hijos. Puede establecerse cualquier valor que el administrador del sistema considere adecuado. Cuando se excede el límite de conexiones simultáneas, el resto serán demoradas hasta que se terminen las conexiones existentes y dejen lugar para nuevas conexiones. En el siguiente ejemplo se limitará el número de conexiones simultáneas hacia el servidor a 5:

define(`confMAX_DAEMON_CHILDREN', `5')dnl

confCONNECTION_RATE_THROTTLE

Esta opción sirve para establecer el numero de conexiones máximas por segundo. De modo predeterminado sendmail carece de límites para esta opción. En el siguiente ejemplo se limitará a 4 conexiones por segundo:

define(`confCONNECTION_RATE_THROTTLE', `4')dnl