educación, informática y demás

Redes de computadores

GNU/Linux Server. Configuración avanzada de vsftpd

Vamos a realizar algunas configuraciones más elaboradas del servidor FTP vsftpd.

Puedes consultar información en el manual del servidor FTP en este sitio web.

Comprobando la configuración actual

Como ya sabemos este fichero contiene muchos comentarios que son muy útiles a la hora de configurar nuestro servidor. No obstante, si queremos comprobar que configuración efectiva estamos utilzando tantos comentarios nos dificultan su comprensión.

Vamos a mostrar solo las líneas que no son comentario, es decir aquellas que no empiezan por #.

De esta forma podemos comprobar qué configuración tenemos actualmente almacenada en el fichero de un vistazo sin comentarios.

Habilitando usuarios locales

Podemos configurar nuestro servidor FTP vsftpd para que permita conexiones de usuarios locales del sistema. Estos usuarios tendrán que iniciar sesión en el ftp con su nombre de usuario – login – y contraseña – password.

El parámetro de configuración que permite o deshabilta el acceso de usuarios locales es local_enable. Si hemos hecho algún cambio en el fichero de configuración y queremos que se haga efectivo, deberíamos reiniciar el servidor.

Comprobamos si está funcionando correctamente.

Vamos a probar a iniciar sesión a través del ftp con un usuario local, por ejemplo marinapg.

Comprobamos que existe el usuario

Vamos a hacer las pruebas en local.

Rellenamos los campos, con la dirección IP del servidor, nombre del usuario y contraseña. Aunque estemos en local, podemos utilizar la dirección IP de este equipo dentro de la LAN privada, o podríamos utilizar localhost. En este caso, vamos a usar la IP.

Nos hemos conectado como podemos observar, aparece el directorio personal del usuario marinapg.

Nos podemos mover por el sistema de ficheros, como si estuvieramos con un navegador de sistema de ficheros. Esto tiene riesgos.

Otro problema es que el nombre de usuario y la contraseña se envían por el protocolo FTP como texto en claro, es decir si alguien está escuchando en la red y captura los paquetes de inicio de sesión tendrá el nombre de usuario y la contraseña. Solución: usar sftp.

Otro detalle, ahora mismo nuestro usuario no puede escribir en su directorio personal. Esto es así porque el servidor FTP lo tenemos configurado para que no permita escritura.

Permitir escrituras a través del FTP

Vamos a configurar nuestro servidor para que permita operaciones de escritura. Para ello buscamos el parémetro de configuración write_enable.

Este parámetro controla si se permiten o bloquean las operaciones de escritura a través del servidor FTP. Vamos a habilitarlo.

Por supuesto, para que un usuario pueda realizar operaciones de escritura en el sistema de ficheros donde está el servidor tendrá que tener permisos de escritura en dicho directorio. Esto sucederá cuando nos conectemos con un usuario local en su directorio personal, como hemos hecho con marinapg hace un momento.

Descomentamos y guardamos. Desde una terminal podemos comprobar la configuración actual, si queremos.

Ahora tenemos que reiniciar el servidor para que surtan efecto los cambios en el fichero de configuración.

Ahora nos conectamos de nuevo para comprobar si tenemos permisos de escritura. Esta vez, vamos a conectarnos con otro cliente ftp distinto.

Vamos a crear un directorio llamado servidores.

Vamos a cambiar de directorio al directorio raíz del FTP público que está en /srv/ftp. Para ello tendremos que escribir la ruta del directorio /srv/ftp en el cuadro de direcciones.

Vamos a tratar de crear un directorio llamado servidor dentro de este directorio como hicimos en el directorio personal de marinapg.

No podemos hacerlo, porque no tenemos permiso. Aunque se haya habilitado la escritura a través del FTP si el usuario no tiene permiso de escritura en ese directorio no podrá escribir.

Creando un directorio de acceso público en el FTP

Podemos crear un directorio dentro de /srv/ftp para que un usuario concreto o grupo de usuarios pueda subir ficheros y comportarlos con el resto de usuarios: con alguno, con algun grupo o con todos.

Para ello solo tenemos que crear un directorio dentro /srv/ftp y ajustar propietario, grupo y permisos en función de lo que queramos conseguir.

Vamos a hacer un pequeño caso práctico con marinapg. Crearemos un directorio llamado apuntes en el que el usuario marinapg podrá acceder para subir ficheros. El resto de usuarios tan solo podrá acceder para leer.

Ahora tan solo tenemos que cambiar el propietario del directorio puesto que los permisos que están establecidos cumplen con lo que nos piden.

Vamos a comprobarlo…

Vamos a crear un directorio

Hemos creado un directorio usando FTP. Podemos subir ficheros si queremos.

Vamos a ver si los ficheros se han creado y qué permisos tienen.

Nos encontramos con que los ficheros pertenecen a marinapg y el grupo marinapg. Es como si marinapg hubiera creado los ficheros en local. Realmente, lo que ha sucedido es que se ha hecho a través del servidor FTP con la cuenta de marinagp.

Tenemos un problema con el directorio, puesto que los permisos que se han establecido no permiten a los otros, resto de usuarios, acceder dentro del directorio.

Configurando la máscara de ficheros y directorios

Dejar una respuesta