domingo, 2 de noviembre de 2008

Instalación y Configuración del Servicio de SMTP

Un servidor SMTP tiene como fin recibir y enviar mensajes de correo de otro servidor SMTP. Cuando se recibe el mensaje lo guarda en un directorio.

Para el MTA del equipo se instalará postfix como se muestra.

El instalador abre una interfaz para la configuración de algunas opciones. En el primer paso se da una explicación para la escogencia del tipo de configuración a la que se le da aceptar.

Se escoge como tipo de configuracion ce correo "Sitio de Internet".


Como nombre de sistema de correo se escoge el nombre de dominio, para este caso "restrepo.telematica.net".

El recipiente de correo se configura poniendo como primero el dominio, luego localhost.localdomain y por ultimo localhost:

Como destinos finales ponemos los mismos del paso anterior.

La opcion de forzar las actualizaciones sincronas en la cola de correo se desactiva.

Como se supone que solo se va a enviar correo desde el mismo equipo se pone como red local 127.0.0.0/8.


No se le pondrá límite al correo, por lo que se pone 0 en esta opción.

Como cáracter de extension para direcciones locales se pone *.

Para los protocolos de Internet se escoge la opción "todos".

Terminada la configuración se reinicia el postfix para hacerla efectiva.

Se va a usar MySQL para almacenar la base de datos que contiene la información de los usuarios locales. Para lograr esto se comienza instalando el servidor y el cliente de la base de datos.

Se crea la base de datos y dentro de ella una tabla, con las siguientes instrucciones.


Ahora se crean dos registros de usuarios en la tabla: maria y maria2, para hacer las pruebas de envío de correo, con las siguientes instrucciones.

Ya creada y configurada la base de datos se instala el paquete que conecta el SMTP con la base de datos.


Como siguiente paso se edita el archivo de configuración de postfix: main.cf.


Al archivo main.cf se le adicionan las líneas que estan resaltadas en la siguiente figura.


La información de los buzones de los usuarios se consulta a la base de datos por medio del archivo mysql_virt.cf que se debe crear y editar.

El archivo mysql_virt.cf se edita de la siguiente forma, especificando el usuario que maneja la base de datos y la contraseña.

La información de los UIDS de los usuarios se consulta a la base de datos por medio del archivo ids.cf que se debe crear y editar.

El archivo ids.cf se edita de la siguiente forma, especificando el usuario que maneja la base de datos y la contraseña.

La información de los GIDS de los usuarios se consulta a la base de datos por medio del archivo gids.cf que se debe crear y editar.

El archivo gids.cf se edita de la siguiente forma, especificando el usuario que maneja la base de datos y la contraseña.

En los ficheros mysql_virt.cd, ids.cf y gids.cf esta escrita la contraseña del administrador de la base de datos, por eso se debe restringir su lectura a usuarios del grupo postfix. Para esto se hace lo siguiente.

El servicio SMTP ya esta configurado y para verificar que funcione bien se hará una prueba.

Para probar el servicio se abre una sesión telnet por el puerto 25, el que usa SMTP, y se manda un mensaje del usuario maria al usuario maria2.

Para ver si el mensaje llego correctamente se ven los últimos registros del sistema. Los registros en los que aparece el envío del correo de prueba estan resaltados.

Ahora, se va a verificar que el correo fue almacenado en la carpeta correspondiente al usuario maria2, listando el contenido de esta carpeta. Efectivamente aparece en el listado como el único mensaje enviado.

Al mirar el mensaje en el editor se ve que es el mismo enviado en la prueba.

Los resultados de la prueba indican que el servicio SMTP esta correctamente configurado y esta listo para usarse en el envio de mensajes.

Instalación y Configuración del Servicio de FTP y Web

FTP es un protocolo de transferencia de archivos que le permite a un usuario de un sistema acceder o descargar y transferir ficheros desde otro sistema de la misma red.

Para la implementacion del servicio FTP se utilizo el servidor VSFTPD o "Very Secure FTP Daemon" que es el servidor FTP por defecto para algunos sistemas Linux.

Se comienza instalando el paquete vsftpd.


Una vez instalado vsftpd se comienza su configuracion con la edicion de su fichero vsftp.conf que se encuentra en la ruta /etc.



Se edita vsftpd de forma que permita el acceso al usuario anonymous. El archivo de configuracion queda de la siguiente forma.


Ahora que se hizo la configuracion se reinicia vsftpd para que se hagan efectivos los cambios.



Como ya esta instalado y configurado el servicio es necesario probarlo para verificar que cumpla con su objetivo.

Para dicha prueba se accede al fichero ftp y allí se crea un archivo de prueba "pruebaftp.txt".

Hecho esto se inicia una sesion ftp autenticandose con el usuario anonymous.

Iniciada la sesión, se listan los directorios que se encuentran en la carpeta ftp con el comando dir y aparece el archivo creado para la prueba. Comprobada la existencia del archivo en el fichero de ftp, el usuario anonymous hace una peticion de descarga de dicho archivo con GET. Aparece un mensaje avisando la descarga exitosa del archivo. Se termina la sesion paar verificar si el archivo de prueba fue descargado exitosamente por anonymous.

Para dicha verificación se listan los directorios contenidos por el fichero donde nos encontramos ubicados y efectivamente aparece el archivo de prueba que no se encontraba antes (se encuentra resaltado en amarillo).


La transaccion fue exitosa y por tanto lo fue tambien la implementacion del servicio FTP.
Ya en funcionamiento el servicio FTP se prosigue con la instalacion y configuracion del servicio Web.

El servicio Web es un conjunto de protocolos y estandares que permiten el intercambio de datos entre aplicaciones que pueden ser diferentes, desarrolladas en distintos lenguajes de programacion o ejecutadas en todo tipo de plataformas. Por medio de este servicio se intercambian datos en redes de computadores, tales como Internet.

Este servidor Web se implementara con APACHE, PHP, MySQL y PHPAdmin. Como primer paso, se instalan los paquetes necesarios para cada uno de los elementos.

Primero se instala el paquete del servidor apache: apache2.

Se continua con la instalacion de MySQL con el paquete mysqlserver.


Se instala PHP con el paquete php5.


Ahora se instala el paquete para comunicar MySQL con PHP.



Una vez instalado todo lo necesrio se instala PHPAdmin para administrar la base de datos de MySQL.
Como ya esta instalado todo lo necesario, se reinicia apache para que efectue los cambios en su configuracion.


Para probar que se instalaron adecuadamente los paquetes, se abre un navegador y se ingresa la direccion http://localhost/. Si aparece el texto "It works!" significa que todo funciona correctamente.

En el navegador aparece "It works" lo que quiere decir que funciona bien.

Ahora que esta comprobado que el servidor web funciona adecuadamente, vamos a crear un documento html que defina el contenido de la pagina http://localhost/. Este documento tambien puede ser creado en lenguaje php como index.php.

A este documento se le da el nombre de index.html y se le guarda en la ubicacion /var/www/ que es el directorio donde se almacenan los archivos web.

El archivo index.html puede editarse como se desee en lenguaje HTML. En este caso el contenido sera solo el texto "Bienvenido a Maria Restrepo" y una imagen, quedando como se ve abajo.

Ahora que hemos creado index.html cada vez que ingresemos en el navegador
http://localhost/ aparecera la pagina de bienvenida pagina definida en index.html que se ve a continuacion.


Tambien puede probarse con una sesion de telnet por el puerto 80.

La pagina de bienvenida es todo un exito.

A continuacion es necesario proteger el acceso a la ruta http://localhost/auth pidiendo nombre y contraseña para el ingreso.

Para hacer esto se comienza creando una carpeta de nombre "auth" para la ruta especificada en /var/www.

Para hacer el bloqueo de la ruta es necesario crear y editar un archivo .htaccess dentro de la carpeta de la ruta que se desea bloquear, en este caso la carpeta auth.

Ya creado el archivo .htaccess, se edita con los cuatro parametros que se ven a continuacion. En el parametro Authname se pone el texto que se desea que aparezca al hacer la autenticacion; en AuthType se pone el tipo de autenticacion, que para este caso es Basic que es la mas comun; en AuthUserFile se pone la ruta del archivo de autenticacion .htaccess; y para require, el ultimo parametro, se pone valid-user, que significa que deje ingresar a cualquier usuario que ingrese un usuario y contraseña correctos.

Para almacenar los nombres de usuario y contraseñas se necesita un archivo .htpasswd. Las contraseñas en este archivo se encuentran cifradas, por lo tanto no se pueden ingresar editando normalmente el archivo .htpasswd. Para ingresar una contraseña es necesario hacerlo por consola con el comando htpasswd acompañado de la ruta del archivo .htpasswd y del nombre de usuario.


Con dicho comando se le pide al usuario ingresar dos veces el nuevo password, para este caso se le asigno a usuario telematica la contraseña secreto.

La autenticacion ya esta configurada, solo resta definir el contenido web de auth. Para esto se crea un archivo index.html dentro de la carpeta auth.

Para este caso se le pondra como contenido a la pagina solamente el texto "Auth Maria Restrepo"

Por ultimo se va a probar que la autenticacion funciona correctamente. Para la verificacion accedemos en el navegador a la ruta http://localhost/auth . Debe aparecer una ventana emergente pidiendo el nombre de usuario y la contraseña y una vez ingresadas debe permitir el accesso a la pagina, tal como se ve en la siguiente figura.

Al ingresar el usuario y contraseña adecuados se accede a la pagina que se ve a continuacion.

La proteccion del recurso auth y la autenticacion para su acceso fueron exitosas!!

Como ultimo requerimiento se pide crear un host virtual de forma tal que al visitar la ruta http://10.20.44.1 se muestre una pagina de bienvenida al host virtual.

Al igual que para el recurso auth, es necesario crear una carpeta para almacenar el contenido del host virtual en el directorio /var/www. En este caso llame a la carpeta contenedora host_virtual. Dentro de dicha carpeta creamos un archivo index.html para definir el contenido de la pagina de bienvenida.

Editamos index.html de modo que contenga el texto "Bienvenido al host virtual de Maria Restrepo", quedando como se ve a continuacion.

Los archivos de configuracion de los host virtuales se ubican en la carpeta sites-available que se encuentra en la ruta /etc/apache2, por lo tanto para configurar el host virtual que se creó se accede a esta ruta. Allí se hace una copia del archivo default que tenga como nombre el nombre del host virtual creado, en este caso 10.20.44.1.

El archivo 10.20.44.1 se edita como se ve en la siguiente figura, especificando la ruta donde esta el contenido del host virtual, el nombre del virtualhost y el administrador.

Ya configurado el host virtual accedemos al directorio de apache, /etc/apache2, y alli activamos el host virtual con el comando a2ensite (available2enablesite) acompañado del nombre del sitio a activar.

Para hacer efectiva la configuracion para Apache, este se recarga.


Ahora vamos a probar el sitio virtual ingresando en el navegador la ruta
http://10.20.44.1, para la cual el navegador debe acceder a la pagina de bienvenida del host virtual.

Se accedio adecuadamente a la pagina de bienvenida del host virtual, por lo tanto se puede afirmar que la creacion del host virtual fue exitosa.