Instalación servidor FTP
¿Qué es FTP?
El Protocolo de transferencia de archivos (FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red, basado en la arquitectura cliente-servidor.
Lo normal es utilizar un cliente como Filezilla, para conectarse al FTP:
Como se instala:
Se instala con el siguiente comando:
- sudo apt-get update && sudo apt-get upgrade (Si no lo tienes actualizado).
- sudo apt-get install vsftpd
Cuando se termina de instalar podemos editarlo en el siguiente fichero de configuración:
- sudo nano /etc/vsftpd.conf
Y tenemos que configurar lo siguiente:
Y ademas tenemos que descomentar más abajo:
write_enable=YES
Se guarda.
Y se reinicia el servicio con:
sudo service vsftpd restart
Puertos que hay que abrir con el FTP:
Siempre el 21 TCP.
Y cuando se quiere utilizar de manera segura y transferencia mucha
20 TCP.
Osea que hay que abrir el puerto: 20 y 21.
Para abrir los puertos nos vamos al VBox, nos vamos a "Archivo","Preferencias", "Red", seleccionamos el icono de configuración, "Reenvío de puertos", y aquí dentro lo dejamos tal que así:
Y ahora nos vamos a descargar el Filezilla.
Filezilla no solamente utilizan los puertos, 20 y 21, utilizan conexiones pasivas: que son puertos aleatorios que abren, para conectarse.
Para configurar lo mas compatible tenemos que ir:
sudo nano/etc/vsftpd.conf
Descomentar: connect_from_port_20=YES
Y al final del documento tenemos que poner:
pasv_max_port=9001
pasv_min_port=9000
pasv_enable=NO
Y lo guardamos y lo reiniciamos
sudo service vsftpd restart
Ahora volvemos al VBox y abrimos los puertos 9000 y 9001, o los puertos que necesites.
Para conectarlo con el HOST, tienes que abrir los puertos en el Firewall también.
Una vez tengamos esto configurado, nos vamos al Filezilla:
Configuración Filezilla:
Para poder conectarnos tenemos que seguir estos pasos:
1º: Nos vamos a "Archivos", "Gestor de sitios" y le damos a "Nuevo sitio"
A la derecha nos vamos a "General" y lo quedamos tal que así:
Protocolo: FTP
Servidor: La IP de la máquina HOST. Puerto: 21
Cifrado: Usar FTP explícito.
Avanzado:
Tipo de servidor: Predeterminado
Opciones de transferencia:
Modo de transferencia "Activo".
Y le damos a "Conectar", Y nos debería de salir tal que esto:
Ahora vamos a darle un enfoque diferente, vamos a crear un usuario, el cual solamente va a tener acceso al FTP con su carpeta expecífica, los demás usuarios no tendrán acceso.
1º Añadir el usuario que queramos:
- sudo adduser "nombre_usuario" y pones la información correspondiente.
2º Creas la carpeta ftp dentro de la carpeta del usuario:
- sudo mkdir /home/mateos/ftp
3º Estableces la propiedad de la carpeta:
- sudo chown nobody:nogroup /home/mateos/ftp
4º Finalmente, elimina los permisos de escritura:
- sudo chmod a-w /home/mateos/ftp
5º Ahora, usa el siguiente comando para verificar los permisos:
- sudo ls -la /home/mateos/ftp
y tendria que quedar asi:
- total 8
dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 .
drwxr-xr-x 3 mateos mateos 4096 Jun 29 11:32 ..
6º Crearemos el directorio contenedor de archivos y asignaremos la propiedad:
- sudo mkdir /home/mateos/ftp/files
- sudo chown mateos:mateos /home/mateos/ftp/files
7º Agrega un archivo de prueba al directorio:
- echo "Hola" | sudo tee /home/mateos/ftp/files/ejemplo.txt
8º Vamos al archivo de configuración ftp:
- sudo nano /etc/vsftpd.conf
Y ponemos las siguientes configuraciones:
Descomentamos esto estas líneas:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
ESTOS SE AGREGAN ABAJO DEL TODO:
user_sub_token=$USER
local_root=/home/$USER/ftp
pasv_min_port = 9000
pasv_max_port = 9001 (PUERTOS)
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
9º Procederemos con la creación y adición de nuestro usuario al archivo:
- echo "mateos" | sudo tee -a /etc/vsftpd.userlist
Y verificamos que el usuario esté realmente activo ejecutando el siguiente comando:
- cat /etc/vsftpd.userlist
10º Reinicia el servicio utilizando el siguiente comando para cargar los cambios de configuración:
- sudo systemctl restart vsftpd
11º Ahora vamos al Filezilla y vamos a comprobar que se puede entrar con el usuario "mateos"
Como podemos comprobar, solamente sale la carpeta "files" creada anteriormente y el fichero "ejemplo.txt" dentro de esa carpeta.
Si nos intentamos conectar con otro usuario no podríamos, nos saldría el error:
Para meter más usuarios tendriamos que:
1º Añadir al usuario que queramos en la lista de usuarios permitidos:
- echo "antonio" | sudo tee -a /etc/vsftpd.userlist
2º Creas la carpeta ftp dentro de la carpeta del usuario:
- sudo mkdir /home/antonio/ftp
3º Estableces la propiedad de la carpeta:
- sudo chown nobody:nogroup /home/antonio/ftp
4º Finalmente, elimina los permisos de escritura:
- sudo chmod a-w /home/antonio/ftp
5º Crearemos el directorio contenedor de archivos y asignaremos la propiedad:
- sudo mkdir /home/antonio/ftp/hola
- sudo chown mateos:mateos /home/antonio/ftp/hola
6º Agregamos un archivo de prueba al directorio para comprobarlo:
- echo "Adios" | sudo tee /home/antonio/ftp/files/adios.txt
7º Reiniciamos el servicio:
- sudo systemctl restart vsftpd
Y ahora si nos metemos en el Filezilla con el usuario correspondiente, nos debería aparecer esto:
No hay comentarios:
Publicar un comentario