Resumen 4 Sri

Servicios de Transferencia de archivo 1.- Funcionalidad del servicio FTP. Antes de comenzar a instalar un servidor de tr

Views 188 Downloads 102 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Servicios de Transferencia de archivo 1.- Funcionalidad del servicio FTP. Antes de comenzar a instalar un servidor de transferencia de archivos, Ana quiere documentarse sobre este servicio. Ya conoce que el servicio de transferencia de archivos estándar es FTP por lo que va a descargarse el RFC correspondiente al protocolo FTP para tratar de comprender el funcionamiento y las características del protocolo. Ello le facilitará la instalación, configuración y administración del servicio. Ana le ha pedido a Jorge información sobre servidores y clientes FTP aconsejables para usar y éste le ha pasado una comparativa entre varios servidores y clientes. En la anterior unidad hemos visto que el servicio web permite transferir archivos hacia los clientes usando los tipos MIME. Hay otros servicios de red que también permiten la transferencia de archivos entre equipos como Samba, correo electrónico o P2P. Pero no podemos entender a éstos como servicios de transferencia de archivos. En un servicio de transferencia de archivos, el principal objetivo es transmitir archivos entre el equipo servidor y los equipos clientes. El servidor dispone de uno o varios directorios o carpetas donde los clientes pueden realizar (si tienen los permisos para ello) cualquiera acción básica sobre archivos y subdirectorios o subcarpetas. Entre esas acciones, un usuario podrá subir o cargar archivos desde su ordenador cliente al ordenador servidor y podrá bajar o descargar archivos desde el ordenador servidor al ordenador cliente. El servicio de transferencia de archivos permitirá con total transparencia que en el cliente se pueda utilizar un sistema de archivos distinto al que se use en el servidor. Por ejemplo, el servidor podrá usar el sistema de archivos ext3 de Linux y el cliente el sistema NTFS de Windows y ello no tendrá ninguna influencia en la transferencia ni en como se tenga que trabajar en el cliente. El protocolo estándar para el servicio de transferencia de archivos es FTP (File Transfer Protocol, traducido como Protocolo de Transferencia de Archivos). Las primeras pruebas del servicio FTP fueron llevadas a cabo en 1971 por el Instituto Tecnológico de Massachusetts. Sobre el protocolo se han ido sucesivas actualizaciones para mejorar su funcionalidad.

1.1.Protocolo FTP. El protocolo FTP es una de los primeros protocolos desarrollados para la arquitectura TCP/IP. Su primera versión, con un funcionamiento muy básico, se describe en el RFC 141. Desde esa primera implementación se han ido desarrollando sucesivas mejoras que se n ido recogiendo en sucesivos documentos RFC. La versión actual del protocolo se recoge en el RFC 959 de octubre de 1985.

FTP es un protocolo del nivel de aplicación. Permite establecer una conexión cliente/servidor para transferir archivos del servidor al cliente (descarga) o del cliente al servidor (subida). Las conexiones FTP se establecen sobre conexiones TCP de nivel de transporte. Los objetivos principales del protocolo FTP se describen en la introducción del RFC 959y son: 

Promover la compartición de archivos entre equipos.



Animar al uso indirecto o implícito (a través de programas) de servidores remotos.



Establecer transferencias de archivos que tengan total independencia de los sistemas de archivos usados en cliente y servidor.



Transferir archivos de forma eficaz y fiable.

FTP permite varias operaciones sobre archivos remotos (ubicados en un servidor) subir archivos, bajar archivos, borrar archivos, crear carpetas. FTP permite que un usuario gestione o administre directamente las transferencias de archivos desde una terminal y mediante un conjunto de comandos FTP disponibles o que lo haga mediante cualquier otro programa (de interfaz gráfica o de texto) que implemente el protocolo. El protocolo FTP no es un protocolo seguro ya que transmite la información en texto plano, tal como es codificada en origen. Aunque al realizar la conexión FTP, hay una autenticación de usuario, se transmiten el nombre ya contraseña sin encriptar. Una solución para tener conexiones FTP seguras es tunelizar las conexiones FTP sobre conexiones seguras bajo el protocolo SSH. Una alternativa para transferencias de archivos seguras es el protocolo SFTP. Este protocolo, al igual que FTP permite realizar una serie de operaciones sobre archivos remotos

1.2.-Funcionamiento.

El funcionamiento de las conexiones FTP se basa en el modelo de conexión cliente/servidor. El servidor pone a disposición de los clientes uno o varios directorios en los que los usuarios pueden realizar acciones sobre sus archivos. Cuando un usuario inicia una conexión con un servidor FTP desde un cliente, es autenticado (se pide su nombre y contraseña) por el servidor. Cada usuario podrá acceder a los directorios en los que tenga permisos de acceso y podrá realizar en ellos las acciones para las que esté autorizado. En las conexiones FTP, a los directorios que el servidor FTP pone a disposición de los clientes se les llama directorios remotos y a los archivos que hay dentro de ellos archivos remotos. A los directorios y archivos de equipos clientes usados en las transferencias los llamaremos directorios locales y archivos locales.

Los comandos FTP son cadenas de caracteres formadas por el nombre del comando y uno o varios parámetros separados con espacios. Los comandos FTP son de tres tipos: 

Comandos de control de acceso: Por ejemplo, para autenticar al usuario (USER y PASS).



Comandos de parámetros de transferencia: Para especificar puerto de conexión, modos de conexión y tipos de transferencia.



Comandos de servicio FTP: Para realizar acciones sobre los directorios y archivos remotos como subir y bajar archivos, crear directorios y borrar archivos.

En las respuestas FTP el servidor envía un código numérico de 3 dígitos con el que indica como ha sido procesado el comando al que corresponde la respuesta. El primero de los dígitos indica si el comando ha sido o no procesado con éxito. Los otros dos dígitos dan mayor detalle del contenido de la respuesta.

Códigos de respuestas FTP.

1.3.de control y de datos. Una conexión FTP entre un cliente y un servidor se desarrolla sobre dos conexiones TCP de nivel de transporte: 

Conexión de control.



Conexión de datos.

A través de la conexión de control el cliente envía los comandos y recibe del servidor las respuestas a los comandos tras haber sido procesados por éste.

La conexión de datos es usada para la transferencia de archivos entre cliente y servidor cuando ha sido solicitada esta transferencia por un comando. Por el ejemplo, si el cliente solicita descargar un archivo, envía al servidor el comando RETR seguido del nombre del archivo a través de la conexión de control. El servidor procesa el comando y pasa a enviar el archivo a través de la conexión de datos (si es necesario abre esta conexión). Cuando termina de enviar el archivo, el servidor envía una respuesta al cliente a través de la conexión de control indicando que el archivo se ha enviado con éxito.

Las conexiones de datos se cierran cada vez que se termina una transferencia de archivos y se inician cada vez que se va a iniciar una nueva transferencia de archivos. La conexión de control se inicia cuando el cliente solicita la conexión con el servidor y se cierra cuando el cliente decide terminar la conexión o también puede cerrarla el servidor cuando ha transcurrido un determinado tiempo sin actividad en la conexión. Cuando se ha establecido una conexión cliente-servidor FTP se inician en cliente y servidor los procesos usuario PI y servidor PI respectivamente. Estos procesos se comunican a través de la conexión de control. El proceso usuario PI se encarga de transmitir a través de la conexión de control los comandos FTP solicitados por el usuario de la máquina desde su interfaz de trabajo y de obtener las respuestas del servidor y entregársela a la interfaz de trabajo del usuario. El proceso servidor PI se encarga de procesar los comandos recibidos, enviar las respuestas y, si procede, iniciar un proceso de transferencia de archivos. Cuando se va a iniciar una conexión de datos entre cliente y servidor FTP se inician en cada máquina un proceso DTP. Los procesos DTP cliente y servidor se comunican para desarrollar la transferencia de un archivo. Cuando termina la transferencia, se cierra la conexión de datos y también se cierran los procesos DTP.

1.4.Modos de conexión del cliente. Laos servidores FTP usan el puerto TCP 21 para atender las conexiones de control FTP, es decir, recibe los comandos en el puerto 21 y envía las respuestas por su puerto 21. Si tiene varias conexiones abiertas, usa para todas ellas el puerto 21 como puerto de escucha de la conexión de control. El cliente abre un puerto superior a 1024 para cada conexión de control que establece con un servidor FTP. Si un cliente FTP tiene iniciadas varias conexiones FTP, tiene un puerto abierto por cada una de las conexiones iniciadas incluso si fueran dos simultáneas con el mismo servidor. Hay dos modos de establecer las conexiones de datos entre cliente y servidor. A estos modos se les llama modos de conexión del cliente y se llaman: 

Modo activo.



Modo pasivo.

En el modo activo, una vez que se ha establecido la conexión de control, para iniciar una conexión de datos se hace lo siguiente: 

El cliente envía al servidor un comando PORT a través de la conexión de control indicando un número de puerto TCP superior a 1024 que pretende abrir para la conexión de datos.



El servidor inicia la conexión de datos (no la transferencia) entre su puerto TCP 20 y el puerto que le ha indicado el cliente. Esto se puede entender por un cortafuegos en el cliente como una amenaza ya que desde el exterior se inicia una conexión solicitando que el cliente abra un puerto.



La conexión de datos se usa para la transferencia de archivos.

En el modo pasivo, una vez que se ha establecido la conexión de control, para iniciar una conexión de datos se hace lo siguiente: 

El cliente envía al servidor un comando PASV indicando que va a establecer conexión en modo pasivo.



El servidor responde con un número de puerto TCP superior a 1024 (aquí no es el puerto 20) que pretende abrir para la conexión de datos. El servidor usa un puerto para cada conexión de datos que tenga iniciada.



El cliente inicia la conexión de datos abriendo un puerto TCP disponible y mayor que 1024 y conectándose con el puerto que le indicó servidor. Cuando llega la solicitud de conexión al servidor, éste abre el puerto que pretendía usar para la conexión. Se transmiten archivos por la conexión de datos.

1.5. Tipos de transferencia.

Para transmitir archivos entre clientes y servidores FTP pueden utilizarse dos tipos de transferencia de datos diferentes: 

Transferencia ASCII.



Transferencia binaria.

Una transferencia ASCII es adecuada para transmitir archivos de texto codificados en ASCII (txt, html). Pero no es adecuada para transmitir otros tipos de archivos ya que en la mayoría de los casos no se completaría la recepción de esos archivos. En la transferencia ASCII se realiza la transmisión analizando byte a byte la información transmitida. Los archivos ASCII terminan con un carácter de control EOF. Al usar una transferencia ASCII, en el momento que se recibe un byte que corresponde a EOF se da por terminada la transmisión. Esto para los archivos ASCII es lo que se debe producir, pero no para otros archivos ya que un byte de un fichero no ASCII puede contener el código correspondiente a EOF en cualquier parte del archivo. Para cambiar de un tipo de transferencia a otro, el cliente debe enviar al servidor el comando FTP TYPE e indicando el tipo de transferencia. Los programas clientes de usuario permiten que el usuario pueda solicitar el cambio del tipo de transferencia.

1.6. Servidores. Existen una gran cantidad de servidores FTP. A la hora de elegir un servidor FTP habrá que evaluar varias de sus características. Algunas de estas características son: Facilidad de instalación y configuración, seguridad del servicio, opciones disponibles de configuración, gestión de cuentas de usuario y permisos de acceso a recursos, limitación del ancho de banda para las transferencias de archivos, número máximo de conexiones simultáneas etc. A continuación se describen algunos de los servidores FTP más destacados.



vsftpd. Sólo para Linux. Es un servidor muy seguro, fácil de instalar y configurar. Los usuarios del sistema Linux en el que se instale el servidor son usuarios para el servicio. La configuración es muy sencilla y se centra fundamentalmente en la seguridad y la eficiencia.



Filezilla Server. Sólo para Windows. Muy fácil de usar. Su mejor característica es la relativa a la configuración de cuentas de usuario y grupos de usuarios y el establecimiento de permisos de acceso, restricciones sobre acciones, cuotas y otras limitaciones. Licencia GPL.



FTP Serv-U. Para Windows y Linux. Muy fácil de usar y muy completo. Es muy potente en lo relativo a opciones de seguridad y establecimiento de restricciones sobre cuotas de disco y velocidades de subida y bajada para usuarios. Licencia de prueba por 30 días. Después sigue funcionando pero en un modo llamado personal con menos funcionalidades. Dispone de otras licencias de pago de los tipos Bronze, Silver y Gold.



Microsoft FTP Server. Sólo para Windows. Está integrado dentro de los sistemas Windows formando parte de Microsoft IIS.



Pure-FTPd. Sólo para Linux. Muy fácil de instalar y configurar. Sus características más destacadas son la seguridad, la regulación del ancho de banda para las transferencias de archivos y la gran cantidad de opciones de configuración. Licencia GPL.

1.7.Clientes. Si hay múltiples servidores FTP, aún existen muchos más clientes FTP. Los sistemas operativos Windows y Linux integran un cliente FTP que se ejecuta en modo comando, es decir, se trabaja con una interfaz en modo texto en la que el usuario ejecuta o envía comandos FTP a los servidores con los que se conecta. Estos clientes se llaman ftp pero no son iguales (los comandos que se pueden ejecutar en las interfaces

de Windows y Linux no tienen porqué ser iguales aunque puedan coincidir en muchos casos). Aparte de estos clientes de interfaz de texto, podemos usar clientes gráficos que tenemos disponibles para descargar e instalar. Normalmente estos clientes también permiten establecer conexiones con otros servidios de transferencia seguros como SFTP. Algunos de estos clientes gráficos son: 

Filezilla Client: Disponible para sistemas Windows y Linux. Licencia GPL. Muy rápido, fácil de configurar y de un buen rendimiento.



Smart FTP: Sólo para Windows. Licencia gratuita de evaluación de 30 días, dispone de las licencias de pago Home, Professional y Ultimate. Destacan su interfaz gráfica y sus numerosas opciones de configuración.



gFTP: Solo para Linux. Licencia GPL. Muy ligero y fácil de usar. Permite establecer conexiones con varios protocolos de transferencia de archivos aparte de FTP. Permite gestionar subidas y bajadas de archivos simultáneas.



cuteFTP: Sólo para Windows. Licencia gratuita de evaluación de 30 días, dispone de las licencias de pago Home, Professional y Lite. Tiene una interfaz muy sencilla en la que basta arrastrar archivos para iniciar una subida o bajada de éstos.



FireFTP: Es un complemento para el navegador Mozilla Firefox que permite usar el navegador como si fuera un cliente FTP. Es multiplataforma, al igual que Firefox. Licencia GPL.

1.8.Navegadores web como clientes FTP. Un navegador web permite establecer conexiones FTP con servidores FTP. Para ello hay que conocer el nombre DNS del equipo servidor FTP o en su lugar la IP del servidor. En el navegador web debemos escribir la URL correspondiente al servidor con el que nos queremos conectar de las formas: 

ftp://nombre_DNS_servidor_FTP



ftp://IP_servidor_FTP

Por ejemplo, para iniciar una conexión con el servidor FTP de RedIRIS, deberías escribir en la URL del navegador: ftp://ftp.rediris.es

Al conectarnos con un servidor FTP, puede pedirse un nombre de usuario y contraseña o permitirse el acceso sin autenticación como usuario anónimo y con permisos de invitado. El usuario con el que realicemos la conexión determinará lo que podemos hacer y los archivos y directorios que podemos ver del servidor FTP.

Los servidores FTP suelen poner a disposición de los usuarios invitados directorios con nombres como public o incoming para que estos puedan acceder a ellos y descargar archivos e incluso crear subdirectorios y subir archivos. En la imagen de la derecha se muestra el acceso al servidor FTP de RedIRIS mediante el navegador Mozilla Firefox.

2.- Instalación del servidor vsftpd. El servidor vsftpd se distribuye bajo una licencia libre GNU GPL y puede descargarse de la página oficial.

También puedes instalar el paquete desde el programa gestor de paquetes Synaptic. Tras haber instalado el servicio, éste queda iniciado y se iniciará automáticamente cada vez que se inicie el sistema. En la configuración inicial, se permite el acceso anónimo al servidor desde clientes FTP y el acceso mediante las cuentas de usuarios locales del sistema. Si los usuarios locales del servidor se conectan remotamente mediante un cliente FTP al servicio FTP podrán acceder a sus carpetas personales en el servidor, es decir que usuario podrá acceder a la carpeta /home/usuario. Si se realiza una conexión anónima, se tiene acceso a la carpeta /srv/ftp que será compartida para todos los accesos anónimos. Las conexiones anónimas se podrán hacer con los nombres de usuarioanonymous y ftp (sin ninguna contraseña).

2.1.Inicio y parada del servidor. Tras instalar el servidor vsftpd Linux Ubuntu, podemos administrar el servicio mediante el script /etc/init.d/vsftpd. Se deben ejecutar como superusuario o utilizando el comando sudo para ejecutarlos. En la administración del servicio podemos iniciarlo, detenerlo, reiníciarlo o comprobar sus estado.

Administración del servicio vsftpd con script.

También podemos usar el comando service para administrar el servicio sabiendo que el nombre con el que se reconoce al servicio en Ubuntu es vsftpd.

Administración del servicio vsftpd con el comando service.

Cuando esta iniciado vsftpd, el servicio debe estar escuchando en el puerto 21. Puedes comprobar con el comando netstat -ltn que hay un servicio escuchando en ese puerto 21.

2.2.Archivos de configuración del servidor. En Linux Ubuntu el único archivo de configuración para el servidor vsftpd es /etc/vsftpd.conf. Este archivo contiene varias directivas para establecer las distintas opciones de configuración.

Dejar espacios entre el nombre de la opción y el carácter "=" o entre este carácter y el valor es incorrecto. Al iniciar el servicio no se interpretaría la directiva y se produciría un error. El contenido inicial de este archivo es:

El archivo /etc/ftpusers contiene una lista de los usuarios del sistema a los que se deniega el acceso mediante ftp. Entre esos usuarios, se deniega el acceso al usuario root como medida de seguridad. El archivo /var/log/vsftp.log registra la información sobre las conexiones ftp establecidas. Es importante consultar este archivo para resolver cualquier incidencia producida durante las conexiones o para hacer una evaluación del comportamiento del servicio.

3.Cliente gráfico Filezilla.

El software Filezilla Client es un cliente gráfico FTP. Es un software multiplataforma desarrollado por Filezilla-Project, de código abierto y de licencia GPL. Para instalar Filezilla Client en Linux Ubuntu/Debian es más recomendable hacerlo a través de la instalación de un paquete Debian ya que la distribución que se puede descargar del sitio oficial es el código fuente del software y necesita compilarse una vez descargado.

Cuando se ha instalado en Ubuntu, el programa se puede ejecutar con el comando filezilla o través del menú Ubuntu seleccionando menú aplicaciones > Internet > FileZilla. Tras iniciar FileZilla, se muestra una interfaz de trabajo muy sencilla como la que se muestra a continuación para Ubuntu. La interfaz para sistemas Windows es muy similar, al menos en la distribución de áreas de trabajo es igual.

3.1.Utilización. La interfaz del cliente Filezilla en Debian/Ubuntu está organizada en varias áreas, tal como se indica en la siguiente imagen.



Menú: En menú archivo se pueden gestionar sitios para configurar conexiones a servidores FTP de forma que seleccionando el sitio se conecta con los datos de conexión establecidos. En menú Editar podemos establecer la configuración del cliente. En menú Ver podemos establecer las áreas vivibles de la interfaz. En menú Transferencia podemos solicitar manualmente una transferencia de archivo e indicar si ésta es ASCII o binaria. En menú servidor podemos realizar varias acciones con el servidor como desconectar, reconectar o enviar un comando FTP.



Barra de herramientas: Contiene botones de varias herramientas para abrir el gestor de sitios, mostrar u ocultar áreas de la interfaz, cancelar operación, actualizar listas de archivos en árboles de directorio, desconectar o reconectar con el servidor.



Barra de conexión rápida: Permite introducir los datos para realizar una conexión (nombre o IP del servidor, nombre y contraseña del usuario y puerto de escucha del servidor).



Área de mensajes: Da información sobre todas las operaciones que se realizan (comandos que se envían, respuestas recibidas y estado de la conexión. Cuando se produce un error se muestra un mensaje en color rojo.



Árboles de directorios: Permiten navegar por los directorios local (en el cliente) y remoto (en el servidor). Del servidor sólo se muestra el árbol correspondiente al directorio o a los directorios en los que el usuario tenga permiso de acceso. Para subir o bajar un archivo basta con arrástralo de un árbol al otro. Se pueden realizar otras acciones sobre los directorios y los archivos seleccionándolos y activando el menú contextual.



Área cola de transferencia: Contiene una lista de los archivos pendientes de ser transferidos. También puede mostrar una lista de transferencias fallidas y una lista de transferencias exitosas.

3.2.Configuración.

El cliente Filezilla de los sistemas Linux se configura en Menú Edición > opciones. En Windows se configura en Menú Herramientas > opciones. En los dos sistemas, la interfaz de configuración es muy similar. Aquí vamos a presentar la configuración del cliente Filezilla en Linux Ubuntu.

A la izquierda de la interfaz se tiene un menú en forma de lista desplegable. Cuando se selecciona una opción de la lista se abre a la derecha una ventana para la configuración de la correspondiente opción. Las opciones principales de configuración son: 

Conexión: configura cuestiones relativas al establecimiento de conexiones y a los modos de conexión activo y pasivo.



Transferencia: configura cuestiones relativas a paradas en las transferencias, limitaciones de velocidad, transferencias ASCII y binarias, etc.



Interfaz: permite configurar la interfaz de usuario de Filezilla.



Edición de archivos: relativo a abrir archivos de textos cuando se descargan.



Registro: para establecer si Filezilla realiza un registro de acciones realizadas.



Depuración: para indicar que tipos de acciones son registradas.

4.Clientes FTP en modo texto.

Tanto en sistema Windows como en sistemas Linux se incluye un cliente FTP llamado ftp. Cuando se ejecuta ftp se accede a una interfaz de usuario en modo texto en la que el usuario puede introducir comandos FTP que son enviados al servidor que los interpreta, realiza las acciones solicitadas y devuelve respuestas el cliente que se muestran como mensajes en la interfaz de usuario.

Si se da la IP del servidor o el nombre del servidor de forma correcta, se establece ya una conexión de control con el servidor y se pide un nombre de usuario y una password o contraseña. Si se ha autenticado correctamente el usuario, podrá introducir comandos y ejecutarlos o, lo que es lo mismo, enviarlos al servidor. Habrá comandos que un usuario no pueda ejecutar por falta de permisos, si los ejecuta el servidor responderá con un mensaje de error.

Si se ejecuta ftp sin parámetros, lógicamente no se establecerá conexión alguna. Para establecerla habrá que ejecutar en la interfaz de ftp el comando open seguido de la IP del servidor o del nombre del servidor.

Los comandos no son enviados al servidor tal como los escribe el usuario sino que el cliente los transforma en comandos FTP reconocidos en el protocolo FTP. Por ejemplo, cuando el usuario ejecuta en la interfaz el comando get para descargar un determinado archivo, el cliente realmente envía al servidor tres comandos: TYPE, PORT y RETR.

4.1. Comandos de conexión.

Los comandos de conexión están relacionados con el inicio y cierre de las conexiones. En la tabla siguiente se muestran los comandos de conexión para el cliente ftp de Linux Ubuntu. Para cada comando se indica la sintaxis del comando, encerrando entre los caracteres < > cada parámetro que se debe añadir al comando. Cuando se ejecute realmente el comando no se deben escribir esos caracteres. En Linux los comandos FTP se deben escribir siempre en minúscula.

Comandos de conexión del cliente ftp.

4.2. Comandos de transferencia. Están relacionados con la transferencia de archivos. En la descripción de la función de cada comando nos referimos a un elemento (archivo o directorio) local como un elemento del sistema de archivos del equipo cliente FTP y nos referimos a un elemento remoto como un elemento del sistema de archivos del servidor FTP al que puede acceder el usuario en la sesión. En una sesión ftp, un usuario tendrá abierto en todo momento un directorio local y un directorio remoto. Los comandos de transferencia son:

Comandos de transferencia de archivos del cliente ftp

Relacionados con comandos de transferencia hay otros comandos para gestionar directorios locales y remotos y para gestionar archivos remotos.

Comandos de gestión de archivos remotos y directorios en el cliente ftp.

4.3. Comandos de control. Los comandos de control permiten realizar acciones de control sobre las transferencias de archivos y sobre el funcionamiento de la interfaz. Entre otras cosas permiten cambiar el modo de transferencia entre binario y ASCII, activar y desactivar mostrar las respuestas en la interfaz (el servidor siempre las enviará) o mostrar información sobre el estado de la conexión.

Comandos de control ftp.

5.Herramientas gráficas de configuración de servidor. Para la configuración de servidores FTP existen diversas herramientas gráficas. Los servidores FTP para sistemas Windows generalmente se distribuyen con herramientas gráficas de configuración y administración.

El servidor vsftpd para sistemas Linux se distribuye sin herramienta gráfica de configuración. Sin embargo, existen herramientas gráficas para administrar este servidor. 

webmin: Esta herramienta que ya hemos usado para configurar otros servidores puede incluir un módulo de configuración y administración del servidor vsfftpd. Dado que este módulo está desarrollado por terceros, hay que descargar primero el software del módulo: vsftpd.tar.gz Habrás descargado el módulo llamado vsftpd.tar.gz. Después hay que instalar el módulo en webmin. Para ello, ejecuta webmin y accede a menú webmin > configuración webmin > módulos webmin > instalar desde archivo local, selecciona el archivo vsftpd.tar.gz, instala el módulo. Si todo ha ido bien ya tendrá el módulo vsftpd en menú servidores dewebmin.



yast2-ftp-server: Es uno de los módulos de la aplicación yast de administración y configuración de sistemas Suse Linux.



system-config-vsftpd: Es un módulo de administración de vsftpd que se puede agregar a la herramienta de administraciónsystem-config de los sistemas Linux CentOS/Fedora/RedHat.

Para administrar el servidor pure-ftpd de sistemas Linux se usa una herramienta específica de configuración y administración del servicio que se llama pureadmin.

5.1.Webmin. Configuración de vsftpd. Para configurar el servidor vsftpd con webmin hay que acceder a menú Servidores > vsftpd. La ventana principal de configuración es bastante simple.

En la ventana principal se tienen los siguientes elementos: 

Enlace Module Config: Permite especificar entre otras cosas el nombre y la ruta del archivo de configuración de vsftpd y del archivo de usuarios virtuales.



Generally: Permite especificar el máximo número de conexiones que se pueden establecer por cada dirección IP cliente, el máximo tiempo de inactividad en una sesión, el máximo intervalo de parada que se puede producir durante una transferencia y el texto de bienvenida en el inicio de sesiones.



Anonymous Configuration: Permite habilitar o deshabilitar los usuarios anónimos y configurar lo que éstos pueden realizar.



Local User: Permite indicar si los usuarios locales pueden iniciar sesiones FTP desde un cliente, si permanecerán "enjaulados" en las sesiones y si pueden escribir en el directorio remoto.



Virtual MySQL Users: Para activar los usuarios virtuales añadiendo unas directivas al archivo de configuración.



Log Infos: Para especificar la ruta y el nombre del archivo de registro del servicio.



Miscellaneus: Tiene opciones variadas, entre ellas para establecer la velocidad máxima de las transferencias para los usuarios anónimos y para los locales.



Manual Entries: Para editar el archivo de configuración.



vsftpf.conf Doc: Documento con explicación de todas las directivas del archivo de configuración.



SSL Cert: Para crear un certificado SSL y realizar conexiones seguras SFTP.



Botones Start, Restart y Stop para iniciar, reiniciar y detener el servicio.

6.Configuración del servicio FTP. En el apartado "Archivos de configuración del servidor" de esta unidad has estudiado las principales directivas de configuración del servidor vsftpd y en el apartado "Webmin. Configuración de vsftpd" acabas de ver cómo se configura el servidor webmin. En este apartado vamos a ver cómo se configuran algunos aspectos de funcionamiento del servidorvsftpd tanto editando el archivo de configuración /etc/vsftpd.conf como trabajando con la herramienta webmin. A continuación, vamos a ver las directivas que habría que escribir en al archivo de configuración para realizar algunas configuraciones básicas y aplicables al funcionamiento general del servidor. 

Si queremos, por ejemplo, que el servidor sólo escuche a los clientes por su dirección IP 192.168.3.1:



Si queremos que las conexiones de datos en modo activo se establezcan por un puerto distinto al 20:



Si queremos mostrar un mensaje informativo al iniciar un cliente una conexión:



Si queremos que se registren en el archivo /var/lib/mensajes/vsftpd mensajes sobre las conexiones FTP realizadas:



Para establecer que el usuario anónimo se llama "soyyo" en lugar de "ftp" (usuario anónimo por defecto).

6.1.Tipos de usuarios y accesos al servicio. El servidor vsftpd permite iniciar acceder al servicio FTP desde cualquier cliente a tres tipos de usuarios: 

Usuarios locales: Usuarios con cuenta de usuario en el sistema servidor. Inician sesiones FTP identificándose con el mismo nombre de cuenta y contraseña que usarían en la máquina servidora para iniciar una sesión de sistema operativo. Cuando inician una sesión FTP, su directorio de trabajo remoto es su directorio personal en el sistema (/home/usuario).



Usuarios anónimos: Son nombres de usuarios que pueden iniciar sesiones FTP sin contraseña, pero si identificándose con un nombre. Por defecto vsftpd admite dos usuarios anónimos llamados anonymous y ftp. El usuario anónimo ftp puede cambiarse en la configuración. Los usuarios anónimos tienen como directorio remoto FTP el directorio /srv/ftp. Este directorio puede cambiarse con la directiva anon_root.



Usuarios virtuales: Son usuarios que no tienen cuentas de usuario en el sistema servidor pero que pueden acceder al servicio FTP. Acceden todos a través de una misma cuenta de usuario del sistema. Cuando haya usuarios virtuales, se puede establecer una configuración de acceso para cada uno de ellos.

Ahora vamos a ver las directivas del archivo de configuración /etc/vsftpd.conf para configurar el acceso al servicio por los usuarios. Si queremos que los usuarios anónimos no tengan acceso al servicio:

Si queremos que los usuarios locales tengan acceso al servicio:

Si queremos que los usuarios virtuales no tengan acceso al servicio:

Si queremos que los usuarios virtuales y anónimos tengan acceso al servicio, que los usuarios locales no tengan acceso al servicio y que además del usuario anónimo anonymous haya otro usuario anónimo llamado invitado.

6.2.Crear usuarios y grupos. Algunos servidores FTP como FileZilla Server permiten administrar cuentas de usuario y grupos de usuarios para acceder al servicio. El servidor vsftpd no permite administrar cuentas de usuario para acceder al servicio. Se puede acceder al servicio mediante las cuentas de usuario creadas en el sistema operativo, es decir, las cuentas locales del servidor.

Dado que estamos trabajando con el servidor vsftpd, si necesitamos una nueva cuenta de usuario para acceder al servicio, deberemos crear una cuenta de usuario con los comandos del sistema operativo y estableciendo cual es el directorio de trabajo para esa cuenta:

Al ejecutar el comando, se pedirá una contraseña de usuario que será la que se usará para acceder al servicio. El modificador –no-create-home especifica que no se cree el directorio de trabajo (se supone que ya está creado). El modificador –shell /bin/falseestablece que el usuario no establezca sesiones del sistema operativo. Para que el usuario pueda trabajar en el directorio /var/web/www deberíamos cambiar su propietario (tanto en el directorio como en todos los objetos del directorio) y si fuera necesario cambiar los permisos sobre ese directorio y sus elementos. Para que el propietario y el grupo propietario del directorio y todos sus objetos sea usuarioweb, hay que ejecutar:

Para que el usuario pueda iniciar sesiones ftp debe pertenecer al grupo de usuarios ftp. Habrá que ejecutar el comando:

Hay varias formas de crear usuarios virtuales de vsftpd. Todos esos usuarios deben estar almacenados en una base de datos. Es posible establecer una configuración personalizada para cada usuario virtual creando un archivo de configuración para cada usuario.

6.3. Permisos. En un servidor FTP podemos establecer permisos para los usuarios que controlarán las acciones que éstos puedan hacer en el directorio remoto con los archivos y con los directorios. Esos permisos

controlarán si un usuario puede crear, modificar, eliminar archivos en el directorio remoto, si puede crear directorios, etc. Aparte de los permisos que se puedan establecer configurando el servidor, los permisos sobre archivos y carpetas limitarán también las acciones que un usuario del servicio FTP pueda realizar. Por ejemplo, si el servicio FTP autoriza a un usuario a escribir en una carpeta y el sistema operativo no le autoriza, ese usuario no podrá escribir archivos en esa carpeta y por tanto no podrá subirlos en una sesión FTP.

La tabla siguiente muestra sobre permisos para usuarios anónimos y locales. Estas directivas están comentadas en el documento que se referencia al principio de este apartado 6 y son las siguientes.

Directivas de configuración de vsftpd para permisos,

La directiva chroot_local_user sirve para mantener enjaulados a los usuarios del servicio cuando han iniciado una sesión FTP. Un usuario inicia una sesión en su directorio de trabajo y si está enjaulado no puede salir de ese directorio y acceder a cualquier directorio del sistema de archivos. Lo que si puede realiza es acceder a cualquier subdirectorio que esté dentro de su directorio de trabajo. Enjaular a los usuarios es una medida de seguridad. Tanto la directiva anon_umask como local_umask indican los permisos con los que se van a crear los archivos subidos al directorio remoto.

6.4. Cuotas.

Algunos servidores FTP permiten realizar la configuración de las cuotas con varias opciones. Pueden establecer una cuota general para todos los usuarios, una cuota diferente para cada usuario, cuotas por periodos de tiempo, etc. El servidor vsftpd no permite administrar cuotas. Sin embargo, hay una forma de establecer cuotas para el servicio, estableciendo cuotas en el sistema operativo para los usuarios. Aunque no es la medida más adecuada es la única posible para aplicar a los servidores FTP que no permiten administrar cuotas. Si se establecen cuotas en el sistema operativo, éstas se aplican a cada cuenta de usuario del sistema y si un usuario inicia sesiones en el sistema, la cuota afecta tanto a los archivos que se almacenan en estas sesiones como a los que se suban por FTP. Cuando en una sesión vsftpd un usuario vaya a sobrepasar la cuota al subir un archivo, el servidor no le responderá con ningún mensaje que indique tal situación, sino que simplemente le indicará que no se puede subir el archivo.

6.5. Limitaciones en las conexiones. En el servidor vsftpd se pueden establecer varias limitaciones sobre las conexiones o sesiones establecidas por los clientes. Vamos a ver varios ejemplos de limitaciones y las directivas necesarias para realizarlas. Puedes comprobar que se pueden establecer varias sesiones simultáneas con un mismo servidor, incluso desde una misma máquina cliente. Para limitar a tres el máximo de conexiones realizadas

desde una misma dirección IP de cliente y que puedan establecer conexiones simultáneas un máximo de diez clientes:

Para limitar la máxima velocidad de transferencia de los usuarios anónimos a 20 KBytes/seg y de los usuarios locales a 50 KBytes/seg:

Para establecer que se desconecte a un cliente, si está inactivo durante seis minutos:

Durante una transferencia de un archivo grande, se transfieren varios bloques de datos. Puede establecerse una limitación para que cuando haya inactividad excesiva durante una transferencia se cancele la transferencia. Para especificar que el tiempo máximo de inactividad durante una transferencia sea de 2 minutos:

Para establecer en 20 segundos el tiempo máximo que un cliente tiene para responder a una conexión activa:

Con webmin pueden establecerse estas limitaciones en los elementos de configuración de la interfaz Miscellaneous y Generally.