Instalar Servidor FTP en Ubuntu o Raspberry Pi OS
Vamos a instalar un servidor FTP con conexión segura TLS para compartir nuestros archivos.
Así podemos compartir las descargas de Transmission, aMule con nuestros amigos, familia etc
En este tutorial, permitiremos que el usuario del sistema y los que se añadan posteriormente se conecten al servidor utilizando su cuenta shell local.
Los pasos a seguir son los siguientes:
1. Instalación del servidor
2. Creación de directorios
3. Configuración del servidor
4. Añadir usuarios.
5. Acceso al servidor
6. Crear una carpeta compartida.
1. La instalación
La instalación es muy sencilla, basta con teclear el siguiente comando en una terminal:sudo apt-get install vsftpd
Una vez terminada la instalación es recomendable hacer una copia del archivo de configuración vsftpd.conf y así poder restaurarlo en caso de problemas.
Lo hacemos con el siguiente comando:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
2. Creación de directorios.
Por motivos de seguridad, tenemos que restringir el servidor FTP a un directorio específico. Vsftpd usa jaulas chroot para lograr esto. Con chroot habilitado, un usuario local está restringido a su directorio de inicio (por defecto).
Estando posicionados en nuestra carpeta HOME, creamos nuestro directorio con:sudo mkdir FTP
Damos propiedad a nadie y a ningún grupo del directorio FTP así:
sudo chown nobody:nogroup FTP
Y eliminamos los permisos de escritura:
sudo chmod a-w FTP
Comprobamos cómo han quedado los permisos:
sudo ls -la FTP
total 8
dr-xr-xr-x 2 nobody nogroup 4096 May 21 11:32 .
drwxr-x--- 3 raspberry raspberry 4096 May 22 11:32 ..
Dentro del directorio restringido (FTP) crearemos un directorio que será el contenedor de los archivos:
sudo mkdir FTP/Descargas
Le asignaremos la propiedad (cambia el nombre de usuario por el tuyo)
sudo chown raspberry:raspberry FTP/Descargas
Así el directorio "Descargas" será propiedad del usuario raspberry y del grupo del mismo nombre.
Podemos crear un archivo de ejemplo.
echo "archivo de ejemplo vsftpd" | sudo tee FTP/Descargas/ejemplo.txt
3. Configuración del servidor.
Para acceder a la configuración del servidor, utilizaremos un editor de textos como nano.sudo gedit /etc/vsftpd.conf
Tenemos que comprobar, cambiar o añadir si fuese necesario las siguientes lineas
14 listen=YES
22 listen_ipv6=NO
28 local_enable=YES
31 write_enable=YES
122 chroot_local_user=NO
123 chroot_list_enable=YES
125 chroot_list_file=/etc/vsftpd.chroot_list
151 ssl_enable=YES
155 utf8_filesystem=YES
157 user_sub_token=$USER
158 local_root=/home/$USER/FTP
160 listen_port=60001
161 pasv_min_port=60000
162 pasv_max_port=60002
Nota:
- Línea 14 en "Yes" si unas una conexión ipv4
- Línea 22 "NO" si no usas una conexión ipv6
- Línea 28 permitir a los usuarios locales
- Línea 31 permitir escribir en el directorio.
- Línea 57 Activa el registro de sucesos del servidor.
- Línea 122 si la dejamos en YES entraremos a todas las carpetas de la cuenta HOME y nos pasamos por el arco del triunfo las líneas 157 y 158. (la dejamos con # para ignorar)
- Línea 123 activa la lista chroot que permite usuarios conectarse
- Línea 125 ruta al archivo de usuarios permitidos
- Línea 151 Habilita el protocolo de acceso seguro al servidor
- Línea 155 permite leer caracteres especiales como la ñ y la tilde.
- Línea 157 Permite que los usuarios vayan a una ruta de inicio personalizada.
- Línea 158 Ruta a la carpeta de inicio de sesión personalizada.
- Línea 160 puerto externo de conexión
- Línea 161 Puerto mínimo aleatorio de conexión
- Línea 162 Puerto máximo aleatorio de conexión
Si decidimos cambiar el puerto por defecto (21) y conectar por el 60001, tendremos problemas para entrar desde fuera de nuestra red local. Para tener solucionar esto, usaremos las líneas 160, 161 y 162. Tened en cuenta que en el router tenemos que abrir el rango de puertos comprendidos entre el 60000:60002. Con ese rango de puertos solo se pueden conectar 3 usuarios a la vez. (si necesitas que accedan mas usuarios, aumenta el rango de puertos)
4. Creación del usuario
Para que un usuario tenga acceso al servidor se tienen que cumplir 2 requisitos:
4.1. Que sea un usuario local del sistema
4.2. Que esté habilitado en la lista de acceso al servidor.
Creamos un nuevo usuario con el siguiente comando:
sudo adduser usuario
Y una vez creado, pasamos a 4.2
4.2. Habilitar usuarios en la lista de acceso.
echo "raspberry" | sudo tee -a /etc/vsftpd.chroot_list
cat /etc/vsftpd.chroot_list
El resultado deber ser "raspberry"
5. Acceso al Servidor
6. Crear una carpeta compartida
Se puede crear un carpeta compartida para que los usuarios puedan subir sus archivos y los puedan compartir con el resto de usuarios. Cada usuario es propiedad de sus archivos y solo él puede modificarlos o borrarlos.
Creamos la carpeta compartida:
La carpeta Común se ha creado con root, por lo que es propiedad del mismo. Cambiamos al propietario de nuestro sistema, en mi caso raspberry
Ahora todos los usuarios del grupo pueden añadir y borrar de la carpeta y se puede leer, pero no escribir en cada uno de los otros archivos, pero sólo el propietario del archivo puede eliminar.
Comandos útiles
sudo systemctl eneable vsftpd
Deshabilitar del inicio del sistema.
sudo systemctl disable vsftpd
Comentarios
Publicar un comentario