¿Qué es FTP?
Las siglas FTP vienen de File Transfer Protocol, que si lo traducimos al español quiere decir Protocolo de Transferencia de Ficheros. Gracias al FTP puedes transferir fácilmente todo tipo de archivos de una computadora a otra.
Las conexiones a través de un FTP están diseñadas para ser veloces, maximizando así la tasa de transferencia de información, más no realmente seguras, ya que la información se maneja (incluso los passwords) como texto simple.
Los clientes FTP suelen venir preinstalados en algunos sistemas operativos, pero también pueden escogerse programas multiplataforma como Filezilla.
Instalando FTP
En la siguiente guía instalaremos vsftpd (very secure FTP daemon) en la computadora a la cual queremos acceder posteriormente de forma remota. vsftpd es un servidor FTP para sistemas tipo Unix, licenciado bajo la Licencia Pública General de GNU. Crearemos un usuario para que pueda ser usado en el servicio y daremos los permisos necesarios para modificar las carpetas compartidas.
Iniciemos. Actualizamos el repositorio de software de nuestro servidor. Para eso, simplemente hay que ejecutar desde la terminal lo siguiente:
sudo apt update
Una vez hecho esto, instalaremos FTP con el siguiente comando:
sudo apt install vsftpd
Una vez finalizada la instalación, vamos a editar el archivo de configuración de vsftpd de la siguiente manera:
sudo nano /etc/vsftpd.conf
Dentro del archivo de configuración "descomentamos", es decir eliminamos el # de las siguientes líneas:
write_enable=YES
local_umask=022
chroot_local_user=YES
chroot_list_enable=YES
Y agregaremos estas linea al final del archivo:
allow_writeable_chroot=YES
pasv_enable=Yes
pasv_min_port=40000
pasv_max_port=40100
Cerramos el documento con crtl + X y aceptamos guardar las modificaciones
Si todo a salidos bien, debemos reiniciar el servidor FTP:
sudo service vsftpd restart
Hasta acá ya tenemos instalado el servidor FTP. Lo que haremos ahora será crear un usuario y que este posea los permisos para conectarse mediante algún cliente del estilo de Filezilla.
Crearemos el usuario ahora:
sudo useradd -m usuario1 -s /usr/sbin/nologin
En este comando la palabra usuario1 es un ejemplo, este debe ser reemplazado por el nombre de usuario de tu preferencia. Luego de haberlo creado, vamos a generarle una contraseña:
sudo passwd usuario1
Nos pedirá que especifiquemos una contraseña dos veces; lo hacemos y, si no muestra ningún error, ya estamos más cerca de terminar.
Por último, debemos indicar en un archivo que ese usuario esté permitido conectarse.
Abriremos /etc/shells de la siguiente manera:
sudo nano /etc/shells
Abierto el archivo, agregamos la siguiente linea:
/usr/sbin/nologin
Cerramos el documento con crtl + X y aceptamos guardar las modificaciones
Como último paso, crearemos el archivo vsftpd.chroot_list, donde agregaremos nuestro usuario:
sudo nano /etc/vsftpd.chroot_list
Aparecerá un archivo en blanco, en el escribiremos el nombre del usuario que creamos anteriormente:
usuario1
Cerramos el documento con crtl + X y aceptamos guardar las modificaciones
Si todo a salido bien, debemos reiniciar el servidor FTP:
sudo service vsftpd restart
y si no hay errores, el servicio ya está activo y listo para usarse.
Desde la otra computadora, desde donde quieres acceder a la computadora con el servicio FTP, podemos usar un software cliente como Filezilla, en el cual ingresaremos los siguientes datos:
usuario: usuario1 clave: contraseña usuario1
host: IP o dominio de la computadora
y le damos click a "Conexión rápida".
Ya podrás navegar entre las carpetas de la computadora donde instalamos vsftpd, pero aún no podrás copiar o mover archivos, para ello debes darle los permisos necesarios a las carpetas que quieres compartir, para ello, ocupamos el siguiente comando en la computadora donde instalamos vsftpd:
sudo chmod -R 777 /home/usuario/carpeta_a_compartir
/home/usuario/carpeta_a_compartir es solo a manera de ejemplo, ahi debes colocar la ruta y nombre de la carpeta que deseas compartir. Luego de esto ya podrás copiar y mover los archivos dentro de esa carpeta a través del cliente FTP.
sudo systemctl status vsftpd
sudo systemctl stop vsftpd
sudo systemctl start vsftpd
sudo systemctl restart vsftpd