sábado, 7 de mayo de 2011

EXCHANGE 2003: Configuración del servidor SMTP de Exchange 2003

En este artículo, quiero intentar explicar para que sirven todas esas dichosas pestañas y opciones del típico iconito "Default Smtp Virtual Server", que todos estamos acostumbrados a ver siempre en todos nuestros Exchange 2003.

1. El Protocolo SMTP (Simple Mail Transfer Protocol)
El objetivo principal de SMTP, es transmitir correo entre servidores de correo. Dichos correos son entregados por los usuarios en los servidores mediante los clientes de correo, los cuales necesitan tener configurado un servidor de correo saliente , el cual luego contacta al servidor de correo de destino para la entrega. Por esta razón, es necesario especificar un servidor SMTP cuando se esté configurando un cliente de correo.


Para empezar, comenzaré definiendo dos tipos de tráfico SMTP que tiene que ver en ese proceso: autenticado y anónimo.



1.1. Autenticado
Es el tráfico que se genera cuando establecemos una conexión smtp contra un servidor, y nos validamos con usuario / password . Es la típica conexión que hace un cliente de correo que se conecta al servidor que tengamos contratado, para poder enviar mails a través de él. Esta comunicación se puede cifrar si se desea, para que al validarnos con el usuario y la contraseña, no viaje en texto plano por la red y pueda ser comprometida, para ello se deben configurar el servidor y el cliente de manera adecuada ( lo veremos más adelante).

1.2. Anónimo

Es el tráfico que se genera cuando un servidor de correo envía un correo hacia el servidor de correo destinatario del mail. Este tráfico no requiere autenticación.


2. Configuración SMTP en Exchange 2003

Uno de los servidores más comunes en internet, suele ser Microsoft Exchange 2003, para realizar la explicación voy a usar la versión de Microsoft Exchange 2003 SP2.
Para acceder a la configuración del protocolo SMTP en un servidor Exchange 2003, abriremos la herramienta de administración de Exchange ( Exchange System Manager), y desplegaremos como se vé en la captura, hasta llegar al objecto “Default SMTP virtual server” del server que estamos configurando:Una vez abiertas las propiedades, se nos presentará la siguiente ventana:




A continuación pasaré a explicar todas las pestañas de configuración que contiene SMTP.

2.1. General

  • En primer lugar podemos ver el desplegable “IP address”, en él seleccionaremos la dirección ip desde la que se está dando el servicio SMTP. Si hacemos clic en el botón “Advanced”, después seleccionaremos la ip desde donde damos el servicio, y haremos clic en “Edit”Llegados a este punto, podremos marcar 5 filtros diferentes que afectarán a todas las conexiones SMTP que lleguen a este server, para saber el detalle de la configuración de estos filtros ver “Opciones globales de filtrado”.

  • Después podemos ver el check “Limit number of Connections to:” si lo marcamos, podremos poner las máximas conexiones concurrentes que permitiremos a nuestro server SMTP, tanto de clientes como servidores . Cuando se supere el nº de conexiones establecidas, las siguientes se denegarán ( quien se intente conectar realizará reintentos hasta que pueda conectarse). Se suele usar para limitar las sesiones en servidores con demasiada carga.

  • Justo debajo tenemos la opción “Connection Timeout”, en ella estableceremos el tiempo máximo que permitiremos que una conexión esté establecida sin tener actividad.

  • En la opción “Enable logging”, habilitaremos que se registre en un fichero de registro (log) toda la actividad de nuestro server SMTP. En el desplegable podremos seleccionar el formato de fichero de log que queremos (normalmente se suele usar W3C Extended log File Format).
SMTP+%25286%2529

SMTP+%25287%2529
Justo al lado podemos ver el botón “Properties” , si hacemos clic, accederemos a la siguiente ventana:

SMTP+%25288%2529
  • En ella podremos escoger detalles del fichero de log, en “New log Schedule” podremos marcar como queremos que se generen los logs ( uno cada hora, una al dia, uno semanal…), todo dependerá de la carga que estimemos que tendrá el server, en sistemas con mucha carga se recomienda poner que genere un log cada hora.

  • En “Log file directory”, especificaremos la ubicación del fichero de log y si marmaos en el check “Use local time for file naming and rollover” , le estaremos especificando que el nombre del fichero de log lo haga en formato de la fecha local del sistema.

  • En la pestaña “Advanced”, le especificaremos el nivel del detalle de la información que queremos que se almacene en el log. Hay que tener en cuenta que si aumentamos el nivel de detalle, aumentaremos proporcionalmente el tamaño del log.

SMTP+%25289%2529
2.2. Access
Dentro de la pestaña “Access” tenemos 4 apartados como podemos apreciar en la captura:

SMTP+%252810%2529
  • Access control:
Si hacemos clic en el botón “Autentication”, veremos las siguientes opciones:

SMTP+%252811%2529

    • “Anonymous Access” : si activamos esta opción, permitiremos las conexiones sin autenticar. Normalmente este tipo de conexiones son las que suelen realizar los servidores de correo ajenos a nosotros para entregarnos mails. En el caso de que intentemos realizar una conexión simulando ser un server de correo, y tengamos desactivada esta opción veremos el siguiente mensaje de error: 454 5.7.3 Client does not have permission to submit mail to this server. Además, tenemos la opción de marcar el check “Resolve anonymous e-mail” esta opción es poco recomendable a nivel de seguridad, dado que Resuelve el display name de las direcciones de correo de la organización cuando se intenta entregar un mail (en conexiones anónimas sin validación), esto le da más información al atacante por lo que no es nada recomendable.

    • “Basic Autentication (password is sent in clear text)”: Marcando esta opción, habilitaremos el uso del servidor SMTP a los usuarios que se validen con su usuario y contraseña ( de Active Directory), hay que tener en cuenta que esta opción envía usuario y contraseña en texto plano ( con un sniffer se pueden capturar esos datos sin problemas). A nivel de seguridad no es recomendable,es por esto que tenemos la opción de activar el check “Requires TLS encryption” de esta manera tanto el usuario y la contraseña se enviarán encriptadas; para que esta opción funcione, tendremos que configurar nuestro servidor SMTP para que trabaje con SMTPS (ver apartado configuración SMTP SSL ). Para que esto nos funcione correctamente con nuestro cliente de correo, hay que tener en cuenta que nuestro cliente debe soportar SMTP SSL. En este apartado, también tenemos la opción de poner el dominio por defecto, de tal manera que los usuarios que no pongan dominio’user , por defecto probará con el que hayamos introducido en este campo.

    • “Intregrated Windows Authentication”: con esta opción permitiremos que los usuarios se validen mediante validación NTLM. Esta manera de validarse, se caracteriza por encriptar los datos de validación ( user y password) pero no los demás datos de la comunicación.

  • Secure communication: En este apartado se configuraremos las securización de las comunicaciones SMTP mediante SSL ( certificados). Tenemos dos opciones:

    • Obtener un certificado de un tercero: suele ser recomendable cuando publicamos cualquier servicio SSL en internet, sobre todo por facilidad de distribución del certificado de la entidad certificadora.

    • Crearnos nuestra propia Entidad certificadora en nuestro dominio AD: esta es la opción que he escogido en el entorno de pruebas que tengo (ver artículo : Configuración de una CA en Windows 2003). Una vez escogido el tipo de certificado ( hemos escogido certificado propio), pasaremos a configurarlo, para ello haremos clic en “Certificate” , después seguiremos los siguientes pasos:
SMTP+%252812%2529

SMTP+%252813%2529

SMTP+%252814%2529

SMTP+%252815%2529

SMTP+%252816%2529

SMTP+%252817%2529

SMTP+%252818%2529

SMTP+%252819%2529

SMTP+%252820%2529

SMTP+%252821%2529

    • Una vez realizada la petición del certificado, al ser una entidad certificadora integrada en Active Directory, automáticamente ya lo tendremos instalado en nuestro servidor. Después podremos hacer clic en el botón "Communication" y configuraremos si queremos que la comunicación SSL sera requerida ( marcardo el check "Require secure Channel) u opcional (sin marcar el check).

SMTP+%252822%2529

  • Connection control: Desde este apartado podremos controlar las conexiones a nuestro servidor SMTP ( este control de conexión, prevalece sobre el apartado siguiente). Podremos definir los servidores a los que permitiremos el acceso, también podremos especificar los accesos, a nivel de dominios DNS ( esta opción no es recomendable dado la carga de proceso de cpu que supone).
img3
    • En el caso de que bloqueemos el acceso, desde el cliente de correo, recibiríamos mensajes de error de este tipo: img
    • Si intentamos realizar una conexión con telnet, y no tenemos el derecho a conectarnos , veremos una pantalla en negro.

  • Relay restrictions: En este apartado controlaremos quien puede realizar relay SMTP a través de nuestro servidor Exchange. Hacer relay significa usar un servidor SMTP para enviar correo electrónico hacia direcciones externas a nuestro dominio. Podemos controlarlo de de varias maneras:
    • Por la dirección ip del equipo que quiere hacer relay: para ello usaremos marcaremos "Only the list below" y agregaremos (haciendo clic en "Add" )las ips de los ordenadores que vamos a permitir que puedan hacer relay. Si marcamos "All except the list below" , y en el apartado de "Access control" tenemos marcado la "Anonymous Access", estaremos convirtiendo nuestro servidor de correo en lo que se llama "open relay", esto significa que cualquier persona se podría conectar por SMTP y enviar mails a cualquier dirección de internet libremente, esto debemos evitarlo dado que se podrían conectar spammers y generar este tipo de correo desde nuestro servidor, cosa muy poco deseable.

    • Permitiendo que cualquier usuario que se valide desde una máquinas en el dominio Active Directory puedan hacer relay: marcaremos la opción "Allow all computers which successully authenticate...". Si permitimos esta opción, se invalida la del siguiente apartado.

    • Permitiendo que un grupo de usuarios en particular, que se valide pueda realizar relay: si hacemos clic en "Users" se nos abrirá la siguiente ventana, en la que podremos seleccionar un grupo de seguridad de Active Directory al que dar permisos de Submit (envío de mails) o Relay (envío de mails a direcciones externas) . Para poder realizar Relay debemos permitir también "Submit Permission".

img1
Para comprobar que no somos un "open relay" hay diversos test online gratuitos que podemos usar, por ejemplo: http://www.abuse.net/relay.html


2.3. Messages
En esta pestaña, cambiaremos los parámetros relacionados con los mensajes:
img4
  • Specify the following messaging information: en este apartado, cambiaremos los límites de tamaño de email, de tiempo de sesión establecida, el límite de numeros de mensajes
  • Send copy of Non-Delivery to: en este campo pondremos una dirección de correo donde queremos que se envíe una copia de todos los mensajes no entregables, depende del volumen de la organización, es muy poco recomendable usar esta opción dado que podríamos llegar a saturar el servidor donde se encuentre dicho buzón.
  • Badmail directory: en esta ruta se almacenarán los emails que no sea posible entregar. Esta carpeta se debe revisar manualmente de vez en cuando.
  • Queue directory: en esta ruta de almacenarán los emails antes de ser enviados.
  • Forward all mail with unresolved recipients to host: en este campo pondremos el nombre de un servidor al que queremos que se reenvien los mails que tienen un destinatario que no se encuentra (mails no entregables), una vez reenviados, si dicho servidor sigue sin poder entregar los correos, generaría los ndrs.

2.4. Delivery
En esta pestaña, se concentran todas las opciones relacionadas con la entrega de mensajes:
img5
  • Outbound: Estas opciones nos servirán para configurar los tiempos máximos de reintento de envío de mails, de las notificaciones de retraso en la entrega, y de la expiración de un mail en nuestro intento de entregarlo. Todos estos parámetros solo afectarán a los mails que pasen por nuestro SMTP y se dirijan fuera de nuestra organización.
  • Local: Estas opciones nos servirán para configurar el tiempo de envío de las notificaciones de retraso en la entrega y de expiración en entrega de los mensajes. Todos estos parámetros solo afectarán a los mails que pasen por nuestro SMTP y
    se dirijan a direcciones internas en nuestra organización.
  • Outbound Security: Configuraremos la manera como se conectará nuestro servidor SMTP con otros servidores externos para entregarles correo, normalmente configuraremos únicamente "Anonymous access" .
img6
  • Outbound connections: en esta ventana, limitaremos las conexiones máximas que haremos hacia el exterior y el máximo tiempo de inactividad cuando nuestro servidor se conecte con otros para entregar correo.
img7
  • Advanced Delivery: en esta ventana configuraremos varias opciones:
img8
3. Configuraciones recomendadas:
Un server Exchange con SMTP, se suele usar para dos funcionalidades bien diferenciadas, se recomienda no juntar estas dos configuraciones en la misma máquina por cuestiones de seguridad:
  • Servidores que realizan la función de pasarela de correo ( también llamados relays o gateways de correo .... ): son los servidores de nuestra organización que envían nuestros correos hacia el exterior y reciben el correo del exterior para entregarlo en nuestros buzones ( previo chequeo de nuestros filtros anti-spam). Este tráfico SMTP es anónimo, nunca se conectan clientes a dichos servers. La configuración en Exchange 2003 sería:
    • En "Anonymous access" haremos clic en "Access control", desmarcaremos los otros tipos de autenticacion.
    • En "Conection control" haremos clic en "Connection" y marcaremos: "All except the list below".
    • En "Relay restrictions" haremos clic en "Relay" y marcaremos : "Only the list below".

  • Front-end para conexión de clientes: estos servers se usan para que los clientes de correo se conecten a través de ellos para poder enviar sus correos. Las opciones recomendadas son:
    • En "Access control" haremos clic en "Authentication", desmararemos "Anonymous access" y marcaremos el tipo de autenticacion que vayamos a usar, por ejemplo "Integrated Windows Authenticacion".
    • En "Conection control" haremos clic en "Connection" y marcaremos: "All except the list below".
    • En "Relay restrictions" haremos clic en "Relay" y marcaremos : "All except the list below", después haremos clic en "Users" y agregaremos un grupo de seguridad al que daremos permisos de "Sumbit" y "Relay", el grupo que se suele usar es: "Authenticated users".

En ocasiones, hay servidores que realizan la función de pasarela de correo interna ( también llamados relays internos ). Se suelen usar en empresas que tienen servidores que hospedan aplicaciones, las cuales requieren de un servidor de correo para poder enviar y pueden requerir un servidor SMTP para realizar los envíos. También se suelen usar para que sistemas de impresión con opciones de escaneo, utilicen un server para enviar los documentos escaneados. La configuración recomendada para estos casos suele ser como la de un servidor "Pasarela de correo", pero con las opciones de relay restringidas a ciertas ips ( las ips de los servidores que hospedan las aplicaciones o los sistemas de impresión). Esto lo activaríamos en "Relay restrictions" , marcaríamos en "Only the list below", además tendremos que desactivar cualquier tipo de autenticación en el apartado "Acces control" esta manera si los sistemas antes mencionados, no tuvieran opción para autenticarse conn usuario / password, podrían conectarse sin problemas a nuestro SMTP.

No hay comentarios:

Publicar un comentario