CLICK HERE FOR THOUSANDS OF FREE BLOGGER TEMPLATES »

viernes, 17 de octubre de 2008

SERVIDOR DE CORREO

¿Qué es un servidor de correo?

Aplicación informática que nos permite enviar y recibir correos entre varios usuarios, no importando que clase de red estén utilizando. El E-mail es una aplicación TCP/IP.

¿Qué es un correo electrónico?

Servicio que permite enviar y recibir mensajes, normalmente mediante un programa o aplicación.

¿Cómo funciona?

En cuanto al funcionamiento, es un poco complejo ya que hay que tener en cuenta varios conceptos que para los “novatos” en este campo se les seria un poco complejo el entenderlo pero trataremos de brindárselo muy detalladamente para evitar confusiones.

Por eso antes de explicar su respectivo funcionamiento aclararemos términos:
MTA: (Mail Transport Agent/Agente de transferencia de correo) Es el programa encargado del transporte del correo de una computadora a otra, un MTA es el muy conocido protocolo SMTP (Simple Mail Tranfer Protocol), el MTA trabaja en segundo plano lo que quiere decir que el usuario no interactúa directamente con el MTA.
MUA: (Mail User Agent/Cliente de correo electrónico) Es el programa de ordenador utilizado para leer y enviar los correos. Es el utilizado por los usuarios para enviar y recibir sus correos, los e-mails enviados son entregados al MTA y ya luego èl se encarga de transportarlos hasta su destino.
MDA: (Mail Delivery Agent) Es un software que se encarga de recibir el correo entrante y de distribuirlo alo buzones de los destinatarios (si el destino esta en la maquina local), o se convierte en un MTA para reenviarlo hacia otro servidor SMTP.
Todo empieza cuando el emisor de un correo electrónico manda los mensajes a un servidor y este, a su vez, se encarga de enviárselos al servidor del receptor. Para poder ver el correo-electrónico es necesario que el receptor se conecte con su servidor, y que a su vez este utilizando el pop3 o el imap, que son protocolos que permitirán al usuario acceder a sus respectivos correos, visualizarlos, descargarlos……etc.
Este procedimiento se logra gracias al protocolo SMTP que es el encargado de hacer que un mensaje se transporte de un MTA a otro MTA.
El mensaje se genera en el cliente a través de una aplicación llamada MUA (agente de usuario de mail), este a su vez se lo envía a su MTA (Agente de transporte de mail) local, este busca el destinatario en sus registros, si existe inmediatamente le envía el mensaje a su MDA (Agente de entrega de mail), el cual almacenara el correo hasta que el usuario a quien fue dirigido el correo acceda a el por medio del pop3 o imap.
¿ y si no existiera el usuario a quien va dirigido el mensaje localmente que se hace?
Bueno, si el MTA no encuentra el usuario en sus registros, este procede a comunicarse con otro MTA, para enviarle el mensaje, esto se logra a través del protocolo SMTP, que establece la comunicación y permite que entre varios MTA se envíen los mensajes, este procedimiento se repite cuantas veces sea necesario, hasta que el mensaje logre llegar a su destino. Este proceso se le conoce con el nombre de Relay. Cuando el mensaje llega al MTA destino, este procede a enviárselo a su MDA para que posteriormente el usuario acceda al mensaje a través de MUA.
¿ Que pasaría si un mensaje no puede ser enviado por x o y motivo a su destino?
Si ocurriera algún error por parte de los MTA, y que no se puedan enviar los mensajes a su destino, estos crearan una lista de cola, en donde estarán los mensajes temporalmente para volverlos a enviar, si después de un tiempo limitado estos no se han podido enviar a su destino, se perderá el mensaje.

¿Qué protocolos utiliza?

Básicamente un servidor de correo funciona a partir de 3 protocolos básicos que son:


SMTP: (Simple Mail Transfer Protocol):

Es un protocolo de red utilizado para el envió de correo de una maquina a otra. Fue diseñado en el año 1982 para intercambiar correos para ARPANET (“Advanced Research Projects Agency Network” Proyectos de investigación avanzada para la red), definido en los RFC 821 y RFC 822. La primera de ellas define este protocolo y la segunda el formato del mensaje que este protocolo debía transportarlo.

Smtp se basa en el modelo cliente-servidor, donde un cliente envía un mensaje a uno o varios receptores, la comunicación entre el cliente y el servidor consiste enteramente en líneas de texto compuestas por caracteres ASCII. El tamaño máximo permitido para estas líneas es de 1000 caracteres. En el conjunto de protocolos TCP/IP, el SMTP va por encima del TCP, usando normalmente el puerto 25 en el servidor para establecer la conexión.

Así funcionaria el SMTP:

El emisor establece una comunicación con smtp

El emisor envía un comando MAIL para indicar el remitente del correo
Si el receptor SMTP puede aceptar el correo responde con una respuesta OK
El emisor envia un comando RCPT identificando a quien va dirigido el correo.
Si SMTP puede aceptar correos para ese destinatario responde con un OK si no responde con un error
Cuando se a terminado de negociar entre el servidor y el emisor se envían los mensajes, si todo se concluye satisfactoriamente el servidor responde con un OK

La sintaxis que se utilizaría en dicha comunicación seria:

Los comandos y respuestas se componen de caracteres ASC II (estándar para el intercambio de información)

• HELO: Para abrir una sesión con el servidor.
• MAIL FROM: Para indicar quien envia el mensaje
• RCPT TO: Para indicar el destinatario del mensaje
• DATA: Para indicar el comienzo del mensaje, este finalizara cuando haya una línea únicamente con un punto.
• QUIT: para cerrar la sesión.
• RSET: Aborta la transacción en curso y borra todos los registros.
• SEND: Inicia una transacción en la cual el mensaje se entrega a una Terminal.
• SOML: El mensaje se entrega a un Terminal o a un buzón.
• SAML: El mensaje se entrega a un Terminal y a un buzón.
• VRFY: Solicita al servidor la confirmación del argumento.
• EXPN: Solicita al servidor información sobre un comando.
• HELP: Permite solicitar información sobre un comando.
• NOOP: Se emplea para reiniciar los temporizadores
• TURN: Solicita al servidor que intercambien los paquetes.

Las respuestas del servidor se hace de forma numérica la cuales son:

• 2XX: La operación solicitada mediante el comando anterior ha concluido con éxito.
• 3XX: La orden ha sido aceptada, pero el servidor esta pendiente de que el cliente le envié nuevos datos para terminar la operación.
• 4XX: Para una respuesta de error, pero se espera a que se repita la instrucción.
• 5XX: Para indicar una condición de error permanente, por lo que no debe repetirse la orden.

UN ejemplo seria:

S: 220 Servidor ESMTP C: HELO S: 250 Hello, please meet you C: MAIL FROM: yo@midominio.com S: 250 Ok

C: RCPT TO: hackerhigueyano@hotmail.com S: 250 Ok

C: DATA

S: 354 End data with .

C: Subject: Campo de asunto

C: From: yo@midominio.com

C: To: destinatario@sudominio.com

C:

C: Hola,

C: Esto es una prueba.

C: Adios.

C:.

S: 250 Ok: queued as 12345

C: quit

S: 221 Bye

NOTA: Los caracteres C y S representan la peticion del usuario y la respuesta del servidor.

Aquí no termina la amplia gama de comandos de SMTP a continuación exponemos otros que les serán muy utiles:

• VRFY: Se utiliza para verificar un nombre de usuario.
• EXPN: Se utiliza para ampliar una lista de correo.
• SP: Comando enviar, los mensajes deberán entregarse en la terminal del usuario, si el usuario no esta cativo.
• SOML: Comando de enviar, los mensajes deberán entregarse en la terminal de usuario o buzón de correo, si el usuario esta activo.
• SAML: Comando de enviar, exige que el mensaje sea entregado a la terminal del usuario si la terminal esta activa, en cualquier caso el correo se introduce en el buzón del usuario.

Eje:

C: VRFY Smith
S: 250 Fred Smith

C: VRFY Smith
S: 251 Usuario no local; remitirá a

C: VRFY Jone
S: Cadena 550 no coincide con nada.

C: VRFY Jones
S: 551 Usuario no local, por favor intente

C: VRFY Gourzenkyinplatz
S: 553 Usuario ambigua.


Smith es el nombre de usuario, la respuesta del servidor puede incluir el nombre completo del usuario, y debe incluir el buzón de correo del usuario.
En el caso de ampliación de correo se requiere una respuesta multilinea


Eje:

C: EXPN Ejemplo: Personas

S: 250-Jon Postel
S: 250-Fred Fonebone
S: 250-Sam P. Smith
S: 250-Quincy Smith <@ USC-ISIF.ARPA: Q-Smith@ISI-VAXA.ARPA>
S: 250 -
S: 250

C: EXPN Ejecutivo-Baño-Lista
S: 550 Acceso denegado a Usted.


IMAP: (Internet Message Access Protocol/Protocolo de acceso a mensajes de Internet).

Protocolo de red de acceso a mensajes electrónicos almacenados en un servidor, Mediante el imap se puede tener acceso al correo electrónico desde cualquier equipo que tenga acceso a internet, permite visualizar los correos de forma remota, lo que implica no descargar los correos para visualizarlos, a diferencia del pop que si se necesita descargarlo.

En conclusión, es un servicio que nos permite recoger correo de un servidor remoto (servidor IMAP), apareció como una alternativa mejorada de POP, ya que ofrece mayores ventajas.

IMAP permite administrar diversos accesos de manera simultánea.

IMAP permite administrar diversas bandejas de entrada.
IMAP brinda más criterios que pueden utilizarse para ordenar los correos electrónicos (e-mail). El protocolo IMAP utiliza el puerto por defecto 143.


POP: (Post Office Protocol/Protocolo de oficina de correo)

Es un servicio que permite recoger el correo de un servidor remoto (servidor POP), a diferencia del protocolo IMAP, este protocolo requiere que los correos sean descargados ala maquina local del usuario antes de poder visualizarlos.

Existen dos versiones principales de este protocolo, pop2 y pop3, a los que se les asignan los puertos 109 y 110 respectivamente, ambos funcionan utilizando comandos de texto pero totalmente diferentes el uno del otro.


LDAP: (Lightweight Directory Access Protocolo/Protocolo Ligero de Acceso a Directorios)

Es un protocolo a nivel de aplicación que permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. LDAP también es considerado una base de datos (aunque su sistema de almacenamiento puede ser diferente) a la que pueden realizarse consultas.

Existen diversas implementaciones y aplicaciones reales del protocolo LDAP, como son:

1. Active Directory.

2. Fedora Directory Server (FDS).
3. Mandriva Directory Server (MDS).
4. Apache Directory Server.

Para la instalación de nuestro Ldap implementaremos el FDS (Fedora Directory Server), ya que como estamos trabajando sobre Fedora 9 lo más conveniente y sencillo seria implementarlo a él.

FDS: (Fedora Directory Server/Servidor de Directorio Fedora) Es un servicio de directorios de código abierto diseñado para la gestión de grandes directorios de usuarios y recursos. Fue desarrollado Red Hat. Fedora Directory Server es idéntico a la versión de Red Hat Directory Server, solo renombrados.

Se destacan su capacidad de replicación Multimaster (MMR), compatibilidad con Active Directory, Soporte SNMP, Integridad Referencial, Grupos estáticos y dinámicos, Roles, Clases de Servicios, vistas, Editor Gráfico de Esquema y todo un conjunto de herramientas para un control operacional más granulado. En la actualidad esta trabajando en una amplia variedad de empresas e instituciones a nivel mundial, principalmente por su alto rendimiento y fácil administración.

BASES DE DATOS: Es un conjunto de datos pertenecientes a un mismo contexto y almacenados para su posterior uso. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.

SISTEMA DE DIRECTORIOS: Un directorio es una base de datos que está optimizada para lecturas, dónde se van a producir pocas escrituras. Un directorio es, por ejemplo, el DNS, dónde el número de consultas es mucho mayor que el de adiciones o modificaciones. Los típicos usos que se le dan incluyen el almacenamiento de la información del usuario, claves, direcciones de correo, etc.

DNS: (Domain Name System/Sistema de nombres de dominio) Es una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio como Internet, aunque tiene la capacidad de almacenar diferentes tipos de información para cada nombre, principalmente solo se utiliza para asociar una dirección IP con un nombre de dominio en especifico y la localización de direcciones de correo electrónico de cada dominio. Ejemplo, si el servidor WEB www.midominio.com tiene la dirección IP “200.15.33.21”, la mayoría de la gente llega a este sitio utilizando el nombre de dominio mas no utilizando la dirección IP, ya que es mas difícil de recordar que el nombre.

Tipos de registro en el DNS que son necesarios para nuestro servidor de correo:

REGISTRO “A”: (Address/Dirección) Este tipo de registro se utiliza para traducir nombres a direcciones de Internet.

REGISTRO “MX”: (Mail Exchange/Registro de Intercambio de Correo) Este registro asocia un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio. Los registros MX apuntan a los servidores a los cuales enviar un correo electrónico, y a cual de ellos debería ser enviado en primer lugar según su número de prioridad.

El mecanismo MX permite usar múltiples servidores de correo para un solo dominio y establece el orden en el cual deberían ser interrogados, aumentando la probabilidad que el correo pueda ser entregado y proporcionando la capacidad de distribuir el procesamiento del correo entrante a través de múltiples servidores físicos.

VIRUS: Es un programa capaz de instalarse y ejecutarse por sí mismo ("reproducirse") en un equipo, y usualmente causar daños a archivos y programas. Algunos virus pueden enviarse por correo electrónico, e instalarse ("infectar y propagarse") en otros equipos remotos. Ejemplos de virus recientes que se extienden por SMTP son NetSky, Mydoom, etc.


SPAM:

Son mensajes de correo enviados por robots (programas automáticos) que en el pasado usaban las vulnerabilidades de los MTA para ser enviados por servidores de correo. Generalmente envían publicidad, cadenas, y otras clases de basura. Los mensajes son inofensivos y sólo son fuente de distracción para los usuarios y almacenamiento inútil de espacio en disco.


MALWARE: (Malicious software, también llamado badware, software malicioso o software malintencionado) Es un software que tiene como objetivo infiltrarse en o dañar un ordenador sin el conocimiento de su dueño y con finalidades muy diversas, como es bloquear el ordenador, destruir software y archivos, entre otros.

ANTIVIRUS: Es un programa con la capacidad de detectar y eliminar virus informáticos y otros maliciosos (malware). Básicamente, un antivirus compara el código de cada archivo con una base de datos de los códigos (también conocidos como firmas o vacunas) de los virus conocidos, por lo que es importante actualizarla periódicamente a fin de evitar que un virus nuevo no sea detectado.

ANTISPAM: Es un programa o aplicación encargado de filtrar todos los mensajes de correo electrónico remitido a las direcciones de correo electrónico de su dominio en busca de SPAM y de correo electrónico no deseado, aplicando una serie de reglas internas.

SSL: (Secure Socket Layer/Protocolo de capa de conexión segura) Es un protocolo criptográfico que proporciona una conexión segura a través de una red, comúnmente Internet. Su sucesor.

TLS (Transport Layer Security) contiene pequeñas diferencias frente a SSL pero el protocolo permanece sustancialmente igual.

TLS: (Transport Layer Security) Es un nivel (Layer) que garantiza seguridad (conexión segura) y privada a la interacción de un protocolo ya que provee mecanismos de encriptación a la comunicación. Su antecesor es SSL (Security Socket Layer). Los protocolos en nivel TLS cambian su nomenclatura y el puerto de comunicaciones que utilizan. Así “http” (puerto 80) sobre TLS cambia a “https” (puerto 443). Los protocolos mencionados arriba cambian a: “Smtps” puerto 465, “Pop3s” puerto 995, “Imaps” puerto 993.

DOMNINIOS VIRTUALES: Son aquellos dominios que realmente no existen, es decir nuestro servidor tiene un nombre de dominio en especifico, pero puede recibir correos destinados hacia dominios con los que el nombre de nuestra maquina no tiene nada que ver. Ejemplo, nuestro servidor posee el nombre , pero si en la variable “virtual_mailbox_domain” especificamos un dominio como dominiodos.com, nuestro servidor podrá procesar los correos que vallan dirigidos hacia dicho dominio.


squirrelmail:

SquirrelMail es un webmail desarrollado en PHP, con soporte para IMAP y SMTP. Fue creado por Nathan y Luke Ehresman. Posee licencia opensource. Este webmail es compatible con la mayoría de los navegadores. Sigue el Standard HTML 4.0.
Se puede encontrar más información en su sitio web oficial, donde también podemos descargarlo. A continuación veremos como instalarlo. Cuenta con un gran número de lenguajes y también con plugins.

Se debe descomprimir el paquete descargado hacia un directorio en nuestro servidor web. En el directorio “Config” contraremos ficheros de configuración para PERL y PHP. En nuestro caso seleccionaremos PHP. Tomaremos el archivo con el nombre “config_default.php” y lo renombraremos con el nombre “config.php”. Se debe dar permiso de escritura al directorio “data”






0 comentarios: