El protocolo FTP (File Transfer Protocol / Protocolo de Transferencia de Archivos) es uno de los protocolos más usados desde sus inicios en el año de 1971 para todo el tema relacionado con la transferencia de archivos entre una red local o a través de Internet tomando como principio la arquitectura de cliente / servidor y para ejecutar esta tarea será necesario contar con credenciales de acceso.
Los puertos usados para el servicio de FTP son el 20 y el 21.
Ventajas de usar FTP
Dentro de las
ventajas que tenemos al usar FTP encontramos las siguientes:
- Posibilidad de compartir archivos entre uno o más equipos.
- Transferencia de datos segura e íntegra.
- Transferencia veloz.
- Es posible reanudar una descarga en caso de presentar error.
- Transferir archivos de gran tamaño.
Desventajas de usar FTP
Del mismo modo existen algunas
desventajas cuando usamos FTP, algunas de estas son:
- No es posible la automatización de los procesos.
- Este tipo de conexión no es 100% confiable.
- Los datos son enviados a la red sin encriptación lo cual lo exponen a ataques.
Aunque existen desventajas FTP es un protocolo muy práctico para la transferencia de información. Hoy aprenderemos a instalar un servidor FTP en Ubuntu 16.10. Para esto usaremos VSFTPD.
Qué es VSFTPD
VSFTPD es un sistema de servidor FTP el cual cuenta con licencia GPL para sistemas UNIX en el cual obviamente se encuentra Linux y gracias a su sencillez, seguridad y rapidez se convertirá en uno de los mejores servidores FTP para entornos Linux.
Características de VSFTPD
Sus principales
características son:
- Es posible configurar dirección IP virtuales.
- Podemos usar usuarios virtuales.
- Incluye encriptación de la información usando la integración SSL
- Soporta IPv6.
- Regula el ancho de banda para distribuir mejor la carga de red.
- Es posible configurar de manera individual cada usuario y cada IP.
Como vemos tenemos grandes ventajas usando VSFTPD en Ubuntu 16.10. A continuación veremos el proceso de instalación y configuración de VSFTPD en Ubuntu.
1. Cómo actualizar e instalar sistema Ubuntu
Paso 1
En primer lugar, antes de instalar cualquier aplicación en Ubuntu 16.10 es importante que actualicemos los paquetes y repositorios actuales, para ello usaremos el siguiente comando:
sudo apt-get update
Paso 2
Una vez actualizado el sistema procedemos a la instalación de la herramienta VSFTPD usando el siguiente comando. Después ingresamos la
letra S para confirmar la descarga e instalación de la aplicación.
sudo apt-get install vsftpd
De este modo hemos instalado VSFTPD en Ubuntu 16.10.
2. Cómo configurar VSFTPD en Ubuntu
Una vez instalada la aplicación debemos acceder a la ruta
/etc/vstfpd.conf para realizar los respectivos ajustes de funcionamiento.
Paso 1
Es recomendable
crear una copia de dicho archivo, así en caso de algún error tendremos disponible un respaldo del mismo, podemos usar el siguiente comando.
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Paso 2
Una vez tengamos el
respaldo del archivo de configuración de VSFTPD procedemos a acceder a él usando el editor deseado: nano o vi, en este caso usaremos nano:
sudo nano /etc/vsftpd.conf
Paso 3
Allí será necesario
navegar sobre el archivo usando las flechas de desplazamiento y
modificar los siguientes campos o comprobar que tengan los valores mencionados:
Listen:YES
esta opción nos permite establecer que VSFTPD sea ejecutado al inicio del sistema.
Listen_ipv6=YES
Cumple la misma función que el anterior, pero para el direccionamiento IPv6.
anonymous_enable=YES
Este valor permite que usuarios anónimos tengan acceso al sistema usando FTP, el valor por defecto es NO, pero podemos editarlo en base a los requisitos de acceso.
Local_enable=YES
Permite el acceso de usuarios locales usando FTP.
write_enable=YES
Esta opción permite el uso de comandos con el fin de editar el sistema de ficheros.
Local_umask=022
El valor por defecto establecido es 022 y este valor hace referencia a la máscara de permisos que será usada para los usuarios.
anon_upload_enable=YES
Este parámetro permite que los usuarios anónimos tengan la posibilidad de subir archivos al servidor FTP.
anon_mkdir_write_enable=YES
Este parámetro permite que los usuarios anónimos tengan la facultad de crear directorios en el servidor FTP.
dirmessage_enable=YES
Esta opción despliega un mensaje cuando un directorio ha sufrido un cambio.
use_localtime=YES
Esta opción despliega la hora local de los directorios en el servidor FTP.
xferlog_enable=YES
Este valor almacena los registros de acceso para subir y descargar archivos en el servidor FTP.
connect_from_port_20=YES
Este valor indica el puerto de transferencia de archivos el cual por defecto con VSFTPD es el puerto 20.
chown_uploads=YES / chown_username=whoever
Estos dos valores cumplen el papel de modificar el propietario de los archivos que son subidos al servidor por los usuarios anónimos y esto es con el fin de tener un mayor control sobre estos.
xferlog_file=/var/log/vsftpd.log
En esta línea encontramos el directorio de los archivos de registro.
xferlog_std_format=YES
Esta opción nos permite editar el estándar que rige el formato del archivo ftpd xferlog.
idle_session_timeout=600
Usando esta línea determinamos el tiempo de inactividad antes de que la sesión FTP sea cerrada de manera automática.
data_connection_timeout=120
Con este valor determinamos el tiempo de inactividad para la conexión de datos.
nopriv_user=ftpsecure
Con este valor creamos un usuario especial que tendrá acceso al servidor FTP sin privilegios.
async_abor_enable=YES
Esta opción le permite al servidor FTP reconocer palabras asíncronas como ABORT pero lo ideal es no activarlo por seguridad.
ascii_upload_enable=YES / ascii_download_enable=YES
Estas opciones permiten que el servidor FTP acepte las peticiones ASCII.
ftpd_banner=Welcome to blah FTP service
Esta opción nos da la posibilidad de editar el mensaje de bienvenida al inicio de sesión FTP.
deny_email_enable=YES / banned_email_file=/etc/vsftpd.banned_emails
Estas opciones nos permiten denegar los correos anónimos y crear un archive indicando que direcciones están restringidas, de este modo evitaremos ataques DoS.
chroot_local_user=YES
Activando esta opción permitimos que los usuarios locales que acceden vía FTP solo tengan acceso a su carpeta Home.
Paso 4
También encontramos una serie de opciones en un grupo llamado
Customization – Personalización dentro del archivo mencionado y estas son:
secure_chroot_dir=/var/run/vsftpd/empty
Este es un directorio vacío y es usado para la seguridad del chroot().
pam_service_name=vsftpd
Este valor indica el nombre del servicio PAM que el servidor FTP usará.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
En esta línea encontramos la ruta del certificado RSA el cual es usado por la encriptación SSL.
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
En esta línea encontramos la clave privada RSA la cual es usada por la encriptación SSL.
Paso 5
Una vez definamos los parámetros de acuerdo a las necesidades que tengamos
guardamos el archivo usando la combinación de teclas:
Ctrl + O
Salimos del editor usando esta combinación:
Ctrl + X
3. Cómo reiniciar del servidor VSFTPD en Ubuntu
Paso 1
Siempre que efectuemos alguna modificación en el archivo de configuración de VSFTPD debemos reiniciar el servicio para aplicar los cambios, para ello usaremos el siguiente comando:
sudo service vsftpd restart
Paso 2
Si deseamos
detener el servicio usaremos el siguiente comando.
sudo service vsftpd stop
Paso 3
Para iniciarlo nuevamente usaremos el siguiente comando.
sudo service vsftpd start
4. Cómo acceder remotamente usando FTP
Una vez configurados estos parámetros en VSFTPD podemos acceder desde otro equipo en la red local para subir o descargar archivos.
Paso 1
En este caso lo haremos desde Windows 10, por ello abrimos una consola de símbolo del sistema e ingresamos la sintaxis
ftp (Dirección IP). Allí será necesario ingresar nuestras credenciales de acceso para establecer la conexión de forma correcta.
Paso 2
A partir de este punto ya tenemos acceso al servidor FTP de Ubuntu 16.10 y podremos transferir archivos.
Existen algunos comandos que podemos usar en el servidor FTP a través de VSFTPD, algunos de estos son:
Binary
Este comando indica al servidor FTP que el tipo de transferencia sea en forma binaria.
Ascii
Este comando indica que la transferencia de archivos será ASCII o formato de texto.
Bell
Esta opción permite que el servidor emita un sonido cuando hayan concluido la ejecución de los comandos.
bye, quit
Esta opción finaliza la sesión actual con el servidor FTP y regresa a la terminal.
delete y mdelete
Estos comandos pueden borrar uno o varios archivos en el servidor FTP.
Put
Con este comando podemos subir archivos al servidor FTP.
Close
Con este comando terminamos la sesión en el FTP.
Open
Este comando nos permite conectarnos con un FTP remoto.
Rename
Usando esta opción podremos renombrar archivos en el servidor FTP.
Como vemos tenemos diversas opciones para el uso del servidor FTP gracias a VSFTPD de una manera segura y con una transferencia de archivos completa e íntegra. Usemos al máximo estas herramientas que tenemos disponible para una de las tareas frecuentes como lo es la transferencia de archivos en entornos Linux. Si eres un asiduo de Linux, quizás también te interese cómo instalar un servidor FTP en la distro de CentOS 7.