Contenidos
El servicio FTP está basado en el protocolo FTP, del inglés File Transfer Protocol o Protocolo de transferencia de ficheros en redes tipo TCP/IP. El funcionamiento del servicio FTP por defecto utiliza el puerto TCP 20 para la transferencia de datos y el puerto TCP 21 para el control. La forma de transmisión es muy rápida, pero no es segura (aunque se puede cifrar en el protocolo FTPS).
Existen dos tipos de modos de conexión FTP. En el modo activo el canal de datos en el servidor siempre es el puerto 20 mientras que en el lado del cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024, que propone el cliente y el servidor acepta. Este modo es inseguro y suele dar problemas con los cortafuegos.
En el modo pasivo, el cliente se comunica por el canal de control por defecto y el servidor le indica cuál será el nuevo puerto de control (siempre superior a 1024, por ejemplo el 1063) y acatará el puerto siguiente (el 1064 en nuestro ejemplo) como el de datos.
Usuarios y grupos. Acceso anónimo
El acceso a un servidor FTP requiere un nombre de usuario y una contraseña que debe de ser dado de alta en el servidor.
Para evitar tener que hacer una cuenta por cada persona que quiera conectarse al servidor FTP, existe la posibilidad de crear unos usuarios genéricos o particulares: invitados (guest) y anónimos (anonymous).
Los usuarios dados de alta en el servidor o usuarios locales pueden acceder a su carpeta de configuración normal (/home/usuario o /usr/usuario) o bien puede restringirse su movimiento a una carpeta concreta.
El acceso de los usuarios anónimos dependen del servidor (guest, anonymous o ftp suelen ser los nombres más comunes por defecto), estos usuarios no suelen tener muchos permisos, aunque se les puede permitir leer y bajar archivos, pero también podría tener derechos para subir, renombrar, crear carpetas…etc.
Permisos. Cuotas. Límite de ancho de banda
Permisos
Los usuario suben los archivos al servidor FTP con unos permisos que luego pueden cambiar (si tienen la autorización para ello con chmod, ver el cuadro recuerda de la derecha).
Permiso | Explicación |
---|---|
– – – = 0 | no se tiene ningún permiso |
– – x = 1 | solo permiso de ejecución |
– w – = 2 | solo permiso de escritura |
– w x = 3 | permisos de escritura y ejecución |
r – – = 4 | solo permiso de lectura |
r – x = 5 | permisos de lectura y ejecución |
r w – = 6 | permisos de lectura y escritura |
r w x = 7 | todos los permisos establecidos, lectura, escritura y ejecución |
También existe la posibilidad de establecer los permisos por defecto que adoptaran los archivos subidos.
Cuotas
Uno de los parámetros configurables en los servidores FTP es la cuota o espacio máximo de trabajo en el disco duro, que tiene asignado cada usuario y que no puede sobrepasar.
Límite de ancho de banda
Muchas veces tenemos un ancho de banda limitado por la compañía ISP y debemos limitar el ancho de banda de cada usuario para repartir nuestro ancho de banda.
Comandos de control, autenticación, gestión y transferencia de ficheros
Para establecer una conexión en modo texto la sintaxis de la orden ftp es:
ftp [IPoNombre-del-servidor]
Entonces nos pide un usuario (user) que si no tenemos uno propio, solemos tener el de invitado (guest, anonymous…) y luego nos pide una contraseña (en el caso de invitado suele ser nada o te piden tu mail). Es, entonces, cuando aparece ftp> para introducir los comandos básicos.
Comandos de control
Los comandos de control son los que nos permiten establecer el modo de transferencia, por qué puerto…
Los comandos son:
- open servidor Inicia una conexión a un servidor.
- close o disconnect Finaliza una conexión, sin cerrar el cliente.
- bye o quit Finaliza una conexión FTP, cierra el cliente.
- set bin o binary Activa el modo de transferencia binario.
- set ascii Activa el modo de transferencia en modo texto ASCII.
- port puerto Cambia el puerto de transferencia.
- pasv Activa el modo pasivo.
- umask permisos Configura el sistema de permisos en el lado remoto.
Comandos de autenticación
Los comandos de autenticación son los que nos permiten identificarnos, introduciendo un nombre de usuario y contraseña, con FTPS…
Los comandos son:
- user Para cambiar nuestro usuario por otro (pide contraseña)
- pass Para cambiar nuestra contraseña.
- auth Identifica el mecanismo de seguridad a usar.
Comandos de gestión
Los comandos de gestión nos permiten gestionar la conexión (ayuda, cambiar carpeta…).
Los comandos son:
- cd directorio Cambia el directorio de trabajo en el servidor.
- lcd directorio Cambia el directorio de trabajo local
- rm o delete archivo Borra un archivo en el servidor.
- mdelete patrón Borra múltiples archivos usando comodines.
- dir o ls Muestra el contenido del directorio actual del servidor.
- mdir o mls Muestra el contenido del directorio actual del cliente.
- pwd Muestra el directorio activo en el servidor.
- lpwd Muestra el directorio activo en el cliente.
- rename archivo nombrenuevo Cambia el nombre a un archivo.
- ? o help Muestra una lista de los comandos disponibles.
- rmdir directorio Elimina un directorio en el servidor (si está vacío).
- mkdir o mkd Crea el directorio indicado en el servidor.
- lmkdir Crea el directorio indicado en el cliente.
- chmod permisos archivo Cambia los permisos de un archivo en el servidor.
Comandos de transferencia
Los comandos de transferencia nos permiten subir, bajar, renombrar, borrar… archivos y carpetas. Los básicos son:
get archivo Obtiene un archivo, desde el servidor al cliente, lo «baja».
mget archivos Obtiene múltiples archivos usando comodines.
put o send archivo Envía un archivo, desde el cliente al servidor. mput archivos Envía múltiples archivos, los «sube» desde el cliente.
Transferencia en modo texto y binario
En el protocolo FTP existen dos tipos de transferencia, el ASCII y el binario.
Por defecto todo se transmite en binario, es decir bit a bit (ceros y unos). Este método es más lento que el ASCII, que permite transmitir archivos byte a byte, pero tiene el inconveniente de «destruir» archivos durante la transmisión en sistemas operativos con distintos tipos de sistemas de archivo.
El modo binario se recomienda en general, y en particular para archivos de tipo ejecutable (exe, com,…), video, imágenes de sistemas de almacenamiento (iso,…), archivos de aplicaciones (doc, xls, mdb…), archivos empaquetados y/o comprimidos (zip, tar,…)…, mientras que el modo ASCII se recomienda solo para texto puro (txt, html, asp, php, xml, pdf, eps, ps…).