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.