domingo, 26 de enero de 2020

Instalación servidor FTP y Ejercicio FTP

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