Contenidos
Vamos a aprovechar el sistema AntiX que tenemos instalado y configurado para practicar con los puertos y las URLs. Ya estudiamos, en teoría, la teoría sobre Sistema de Nombres de Dominio, puertos y URLs. Si no es así, todavía estás a tiempo, echa un vistazo a Terminando el puzle: Cliente / Servidor, puertos, DNS y URLs.
Escenario inicial y escenario final
Actualmente tenemos instaldo un servidor HTTP, en concreto apache2, en nuestro sistema informático. La dirección IP de este equipo es una dirección IP estática dentro de una red privada – Red NAT que creamos para esta serie de actividades.
Vamos a echar un vistazo a la dirección ip estátitca que tenemos asignada así como a la configuración de la red privada de area local en la que estamos trabajando.
Vamos a echar un vistazo a la red en la que estamos conectados.
A lo largo de este caso práctico vamos a instalar un servidor FTP y, posiblemente, algun servidor o servicio HTTP extra. Una vez instalados vamos a acceder a dichos servicios desde otro sistema informático a través de la red.
De esta forma, vamos a comprobar empíricamente cómo funcionan los puertos en una comunicación en red TCP/IP.
Instalando más servicios
Vamos a instalar un servidor FTP muy simple en nuestro sistema AntiX. En concreto vsftpd.
Como siempre, primero actualizamos la lista de paquetes disponibles.
Ahora instalamos el paquete vsftpd en nuestro sistema.
Una vez instalado el paquete ya tenemos instalado en nuestro sistema un servidor FTP simple, pero seguro y funcional.
Primeros pasos con mi servidor FTP
Lo primero que vamos a ver es cómo podemos controlar o getsionar nuestro servidor FTP recién instalado. Para ello utilizaremos el comando service que ejecutará el script de control del servicio.
¿script de que?
Por defecto, cuando un instalamos un servicio en un sistema GNU/Linux o Unix-like, se instala también un script que permite al administrador gestionar de forma sencilla dicho servicio.
Antiguamente estos script estaban dentro del directorio /etc/init.d y el administrador los ejecutaba directamente.
Con el paso del tiempo, se habilitó el comando service para ejecutar homogéneamente estos scripts de control.
Casi todos estos scripts de control acceptan los siguientes parámetros para controlar el servicio que gestionan:
- start
- stop
- restart
- status
Aunque no están siempre disponibles en todos los scripts de control, también nos podemos encontrar habitualmente con:
- reload
- force-reload
- force-restart
Gestionando nuestro servidor vsftpd
Vamos a buscar si está en ejecución algún proceso con el nombre de nuestor servidor.
Usuario del servidor vsftpd
Vamos a buscar entre los usuarios del sistema a ver si hay alguno que se contenga la cadena ftp en su nombre.
Hmmm… si nos fijamos hay algunos detalles curiosos. El primero es el UID y el GID asignado al usuario ftp.
Si nos fijamos, y como ya sabíamos, en los sistemas Unix-Like se suelen reservar los 1000 primeros UIDs y GIDs para servicios o aplicaciones del sistema.
Algunos servicios necesitan contar con una cuenta de usuario del sistema para poder acceder a recursos del mismo, como es el caso del servidor FTP vsftpd.
Otro detalle interesante, la ruta del directorio personal del usuario ftp: /srv/ftp.
Este directorio pertenece a root y tiene como grupo ftp. El único usuario que puede acceder para realizar operaciones de escritura es el usuario root.
Fichero de configuración
Como ya sabemos en los sistemas Unix-Like los ficheros de configuración del sistema y de la mayoría de las aplicaciones están dentro del directorio /etc.
Vamos a echar un vistazo a este directorio en busca del directorio o fichero que contiene la configuración de vsftpd.
Si ahora pulsamos el tabulador, bash autocompletará y aparece la ruta de un fichero /etc/vsftpd.
Vamos a echar un vistazo a este fichero
Es un fichero de texto plano que contiene líneas de configuración del servidor FTP vsftpd. Sin embargo, contiene muchas líneas con comentarios, que por otro lado son muy útiles para aprender a configurarlo, pero que si solo queremos ver la configuración del servidor de un vistazo nos lo dificultan mucho.
Vamos a mostrar todas las líneas que no comiencen por #.
Según la configuración, los usuarios anónimos no podrán acceder a nuestro servidor FTP. Si queremos obtener más información sobre la configuración de este fichero podemos consultar su página de manual.
¿Por qué la «d» del final?
Porque en la terminología de los sistemas Unix-like, los servicios se deenominan daemons.
Un daemon es un programa que se está ejecutando en segundo plano y realiza o proporciona algún servicio en el sistema.
Configuración mínima básica de vsftpd
Vamos a configurar nuestro servidor FTP de forma mínima para que permita conexiones con usuarios anónimos.
Lo único que tenemos que hacer es editar el fichero de configuración y establercer el parámetro anonymous_enable con el valor YES.
Como ya hemos dicho, los comentarios de este fichero nos explican como utilizar las distintas opciones de configuración de vsfptd. Están muy bien para aprender cómo realizar ciertas configuraciones.
Ya hemos configurado el servicio para que acepte conexiones de usuarios anónimos. No, todavía no…. solo hemos cambiado un fichero de configuración. Ahora tenemos que conseguir que nuestro servidor lea de nuevo la configuración del fichero y la aplique, aplicandose así los cambios que hemos hecho.
¡Vamos a conectarnos a nuestro servidor!
Para conectarnos a nuestro servidor FTP, como para conectarnos a cualquier servicio en red, necesitamos un cliente FTP. Necesitamos un programa que sea capaz de comunicarse, utilizando el protolo FTP, con nuestro servidor.
Rellenamos la información de conexión, proporcionando la dirección IP del servidor: la nuestra.
Como nombre de usuario, ninguno, vacío. Queremos acceder como usuario anonimo.
Si todo va bien, nos conectará.
Sin embargo, aunque estamos conectados, no aparece nada en el servidor FTP, ¡está vacío!.
Claro, está vacío porque no hay nada en el directorio ráiz del ftp público. Es decir, no hay nada en el directorio /srv/ftp.
Vamos a ver como ha quedado el directorio raíz del ftp.
Como mínimo todo el mundo puede acceder para lectura.
Vamos a volver al clinte ftp. Tendremos que refrescar para que se actualice la información (CTRL+R o botón secundario refrescar).
Si hacemos doble clic sobre el fichero saludo.txt no se abre, se descarga. Se descargará en el directorio que tengamos seleccionado en la parte izquierda, panel local, de la interfaz de usuario.
Este programa, es un cliente FTP por tanto conoce los entresijos del protocolo FTP y además sabe que nos queremos conectar a un servidor FTP. No hemos tenido que especificar el puerto por el que conectarnos ni el protocolo a utilizar.
Vamos a utilizar ahora otro programa, en este caso un navegador web.
Si ahora, escribimos la dirección IP de nuestro servidor en la barra de direcciones se cargará nuestra página web alojada en este equipo.
Podemos utilizar el navagador, si lo soporta, para conectarnos al servidor FTP del mismo equipo 192.168.21.100. Tan solo tenemos que especificar en la URL que queremos utilizar el protocolo ftp, en lugar del protocolo http o https que es el que utiliza por defecto un navegador web.
Conexión desde otro sistema
Vamos a tratar de conectarnos a los servicios ofrecidos en el sistema AntiX con IP 192.168.21.100 desde otro sistema en la misma red. En esta ocasión un Windows 7.
Ahora vamos a conectarnos al servidor FTP desde el propio navegador Web de Windows.
Un poquito más, la ruta del recurso
Vamos a meter algo más de contenido en nuestro directorio raíz del servidor ftp.
Ahora vamos a echar un vistazo a las URLs de cada recurso.
Algunas conclusiones
Tenemos en un mismo sistema varios servicios en red instalados y escuchando peticiones. En concreto, tenemos, como mínimo, un servidor HTTP y un servidor FTP escuchando peticiones en la misma dirección IP 192.168.21.100.
Nos hemos conectado a ambos servicios utilizando la misma dirección IP, tanto con clientes distintos como con el mismo cliente. Esto se puede hacer gracias a los puertos. Cada aplicación está escuchando en su puerto correspondiente.
De esta forma, cuando nos conectamos al servidor FTP el cliente FTP utiliza el puerto estándar de este protocolo el 20. De la misma forma, el servidor FTP vsftpd está escuchando en su puerto estándar, el 20.
Cuando nos hemos conectado con el navegador web, si no indicamos ningún protocolo en la URL, el navegador se conecta al servidor WEB, utilizando el protocolo https/http. Sin embargo, si le indicamos en la URL que queremos utilizar el protocolo FTP, automáticamente el navegador se conecta al puerto por decto del servicio FTP.
Dejar una respuesta