jueves, agosto 11, 2011

Configurar ProFTPD en Ubuntu para que los usuarios vean sólo el home folder

Me costó mucho encontrar información sobre cómo configurar ProFTPD Server para que los usuarios, al conectarse, vean la carpeta correspondiente como si fuera un root ( / ).

Ejemplo de lo que sucede normalmente

1) Tenemos Ubuntu Server (o similar) con ProFTPD Server.
2) Creamos un usuario con el único fin de ser un login de FTP. Por ejemplo: usuarioftp.
3) Seteamos el "home folder" de este usuario en /home/usuarioftp
4) Entramos por ftp con ese usuario y vemos lo siguiente:


Vemos el home folder del usuario creado pero también podemos ir hacia "arriba" y ver el resto de las carpetas.

Solución

1) Creamos un grupo en Ubuntu que contenga a los usuarios que crearemos sólo con el objetivo de conectarse por FTP. Ejemplo: usuariosftpexternos.

2) Creamos nuestro primer usuario "usuarioftp", seteamos su home folder y lo agregamos al grupo "usuariosftpexternos".

3) Editamos el archivo proftpd.conf que normalmente está en: /etc/proftpd/proftpd.conf

4) Agregamos la siguiente línea:
DefaultRoot ~ usuariosftpexternos
(el símbolo ~ hace referencia al home folder del usuario).

5) Reiniciamos el servicio de ProFTPD.

Listo! De ahora en más, todos los usuarios que creemos en Ubuntu y que pertenezcan al grupo "usuariosftpexternos", accederán a su Home Folder cuando se conecten por FTP y verán esa carpeta como root. Es decir, no podrán ver el resto de las carpetas del servidor.

Explicación

El comando DefaultRoot tiene la siguiente sintáxis:

DefaultRoot folder grupo, [!grupo2]

se lee: "Definí como root la carpeta "folder" para los usuarios que estén "grupo", pero no aplica si el usuario pertenece a "grupo2" (opcional).

La instrucción en el paso 4 se lee: "Definí como root la carpeta "Home Folder" respectiva de los usuarios que estén en el grupo "usuariosftpexternos".