educatica!

educación, informática y demás

Redes de computadores

GNU/Linux Server. Más sobre configuración FTP

Mensaje de bienvenida

Para configurar el mensaje de bienvenida que se muestra a los usuario que se conecten a nuestro servidor podemos utilizar el parámetro de configuración ftpd_banner.

Si no lo encotnramos entre tanto comentario, pdoemos utilizar la función de búsqueda de nuestro editor de texto favorito.

Descomentamos la línea y ponemos el texto que nosotros queramos.

Guardamos los cambios y reiniciamos el servidor para que cargue y aplique la nueva configuración.

Vamos a instalar un cliente ftp en modo texto para agilizar las pruebas con nuestro servidor FTP.

Vamos a conectarnos con este cliente

Esto también funcionará en otro cliente FTP, como gFTP.

Enjaulando a los usuarios locales

Ya hemos visto como podemos conectarnos con usuarios locales a través del FTP. Estos usuario tienen como directorio de partida su directorio personal, pero pueden moverse, por defecto, por el sistema de ficheros remoto a través del cliente FTP.

Es decir, el servidor FTP les permite moverse por todo el sistema de archivos subyacente.

Vamos a iniciar sesión con marinapg.

Vamos a ver los comandos que tenemos disponibles.

Vamos a cambiar de directorio con el comando cd.

Esta situación podría crear una vulnerabilidad en el sistema. Si las credenciales de marinapg se ven comprometidas por un atacante remoto, éste podrá acceder a todos los recursos del sistema de ficheros a los que marinapg tuviera acceso de forma remota.

Si queremos evitar este tipo de riesgos, podemos enjaular a los usuarios locales en su directorio personal. De esta forma, el usuario no podrá salir de su directorio personal. Esto presenta ventajas e inconvenientes. Por ejemplo, el inconveniente principal es que no puede acceder a directorios fuera de su directorio personal como /srv/ftp.

Si enjaulamos a marinapg no podrá gestionar su directorio apuntes en el directorio raíz público del FTP.

Enjaulando a todos los usuarios locales

Para enjaular a todos los usuarios locales usamos el parámetro de configuración chroot_local_user.

Lo unico que tenemos que hacer es descomentar la línea, activando la opción chroot_local_user.

Guardamos y reiniciamos el servidor.

Vamos a iniciar sesión en el FTP con marinapg.

Al intentar iniciar sesión nos muestra un mensaje de error: Rechanzado ejecutar con permisos de escritura dentro de un chroot().

Esto es una configuración de seguridad de vsftpd que no permite escrituras en directorios chroot o jaula por motivos de seguridad. Tenemos dos opciones, o quitamos la escritura en todo el FTP o habilitamos la escritura en las jaulas.

Reiniciamos de nuevo el servidor después de grabar.

Lista de excepciones

Hemos configurado nuestro servidor FTP pàra que los usuarios locales no puedan salirse de su directorio personal. Esta configuración está fenomenal para casi todos los usuarios.

Pero hay excepciones, resulta que en nuestro sistema el usuario marinapg se encarga de gestionar la compartición de apuntes en el directorio ráiz público del FTP. Por tanto, tiene que poder acceder al directorio /srv/ftp/apuntes utilizando el servidor FTP. Es decir, necesitamos que salga de la jaula.

El servidor VSFTPD nos permite hacer esto gracias al uso de dos parámetros y un fichero con una lista de usuarios.

El parámetro chroot_list_enable, habilita (o no) la lista de usuarios que están en la excepción de la configuración de chroot. Es decir, si se habilita el enjalumiento para todos los usuarios, chroot_local_user=YES, los que estén en la lista no estarán enjaulados. Y viceversa, si chroot_local_user=NO, los que estén en la lista estarán enjaulados.

O sea, la lista es una lista de usuarios que son la exepción al comportmiento general configurado en chroot_local_user.

El parámetro chroot_list_file determina la ruta del fichero en el que se encuentra la lista de usuarios, un usuario por línea.

Ahora tendríamos que crear la lista de usuarios con el editor de textos y la guardamos en el fichero /etc/vsftpd.chroot_list.

Como siempre, como hemos cambiado la configuración del servidor tendremos que reiniciarlo.

Vamos a conectarnos con marinapg y a ver si nos podemos salir del directorio personal.

Vamos a probar con otro usuario a ver si puede salirse de su directorio personal.

Alumno está enjaulado en su directorio personal. De hecho, a través del FTP, el directorio ráiz de alumno es su propio directorio personal. Por eso no puede cambiar de directorio fuera de su directorio personal, porque el directorio ráiz de un sistema de ficheros no tiene padre.

El directorio raíz que se muestra a través del FTP es el directorio personal del usuario en el sistema de ficheros donde está instalado el servidor.

Configurando escritura para usuarios anónimos

No es recomendable que los usuarios anónimos de un servidor FTP puedan subir ficheros o crear directorios, puesto que no sabemos qué usuario realiza cada operación.

No obstante, se puede configurar para que los usuarios anónimos puedan escribir.

Para ello, primero tenemos que tener habilitado los usuarios anónimos y las operaciones de escritura a través de nuestro FTP.

Ahora buscamos un par de parámetros que permitirán subir ficheros a usuarios anónimos y crear directorios.

Con esto lo único que hemos hecho es cambiar un fichero de texto plano, tendremos que guardar y reiniciar el servidor para que lea los cambios en la configuración.

Aún así, lo único que hemos hecho es decirlel al servidor FTP que permita que los usaurios anónimos suban ficheros y creen directorios, pero tendrán que tener permisos para ello en el directorio raíz del FTP público, es decir en /srv/ftp. No es buena idea, en absoluto, dar permiso de escritura sobre todo el directorio /srv/ftp. De hecho, esto no funcionará. El servidor no nos dejará acceder.

ESTO NO SE RECOMIENDA y posiblemente el servidor FTP no deje acceder.

Para permitir que los usuarios anónimos puedan escribir lo que se suele hacer es crear un directorio dentro del directorio raíz público del FTP dónde los usuarios anónimos tengan permiso de escritura.

Primero dejamos el directorio como estaba.

Ahora creamos un directorio publico para usuarios anónimos, por ejemplo uploads.

Hemos creado un directorio llamado uploads dentro de /srv/ftp. Después hemos configurado los permisos de dicho directorio en el sistema de ficheros para que cualquier usuario pueda acceder y realizar operaciones de lectura y escritura. Ahora, si cualqueir usuario, incluido los anónimos, accede a este directorio tendrá permisos locales de escritura y permisos a través del FTP de escritura por las opciones de configuración que hemos editado.

Vamos a ver si se ha creado el directorio.

Podemos acceder desde Windows con el explorador de ficheros o con un cliente FTP como FileZilla FTP Client para ver que todo esto funciona en remoto exactamente igual que hemos hecho hasta ahora aquí.

Accediendo con nombres de dominio

Hemos configurado un servidor DNS en nuestor sistema GNU/Linux AntiX que da soporte al dominio castelar.ex. Ahora lo que tenemos que hacer es configurar los equipos para que utilicen como servidor DNS el servidor DNS de nuestro dominio.

Una vez hecho esto podemos acceder a los distintos servicios disponibles en nuestra red utilizando su nombre de dominio completo.

Vamos a entrar con marinapg.

Deja un comentario

Tema creado por Anders Norén