ProFTPd (proftpd.org, paquete proftpd), es uno de los servidores más utilizados en Linux, es muy configurable y está bien documentado.
Durante la instalación nos preguntará si queremos ejecutar ProFTPd como demonio independiente o mediante inetd (escogeremos standalone) y se creará el usuario ftp, con directorio personal /home/ftp, shell /bin/false y sin contraseña. El directorio /home/ftp sólo contiene el archivo welcome.msg, cuyo contenido se muestra al conectarse.
El archivo de configuración de ProFTPd es /etc/proftpd/proftpd.conf. Veamos algunas de sus principales directivas:
- directorio al que entrará el usuario (por defecto es su directorio
personal "~"):
DefaultChdir ~
- directorio donde se encierra el servidor, de modo que no se pueda
acceder a directorios superiores. Esto equivale a chrootear el server. Nunca
debemos poner el directorio raíz ("/"), ya que los usuarios
tendrán acceso a todo el sistema.
DefaultRoot ~
- mostrar o no los links (off/on).
ShowSymlinks off
- si queremos aplicar directivas sólo a un directorio, las pondremos dentro de
un bloque Directory:
<Directory [directorio]> directivas... </Directory> - para indicarle a ProFTPd que un directorio debe ser tratado como un directorio
de acceso anónimo y aplicarle directivas específicas, usaremos:
<Anonymous [directorio]> directivas... </Anonymous> - podemos especificar quién puede hacer qué:
<Limit [LOGIN] [READ] [WRITE] [STOR] [ALL]> quien... </Limit> - para limitar el acceso usaremos:
<Limit LOGIN> quien... </Limit>
Grabamos los cambios y reiniciamos el demonio proftpd:
# /etc/init.d/proftpd restart |
Para probar el servidor nos conectaremos con un cliente FTP (ftp://<IP_del_servidor>), nos loguearemos con usuario y contraseña y comprobaremos que accedemos a la carpeta personal, que podemos subir y bajar archivos al servidor y que no podemos escalar en el árbol de directorios.
Comandos de ProFTPd
ProFTPd proporciona varios comandos útiles.
- El comando ftpwho nos permite ver qué usuarios están conectados en un
momento dado, qué están haciendo y desde cuándo están conectados:
$ ftpwho standalone FTP daemon [2178], up for 2 hrs 22 min 2420 francis [2m 36s] 2m 01s idle Service class - 1 user - El comando ftptop monitoriza ProFTPd en tiempo real:
$ ftptop
- Para expulsar a un usuario del servidor FTP, miraremos el ID de su proceso
con cualquiera de los dos comandos anteriores (ftpwho o ftptop)
y mataremos el proceso. Por ejemplo, para tirar al usuario francis, cuyo ID
es 2420, haremos:
# kill -9 2420
Frontales gráficos para configurar ProFTPd
- GProFTPd (gadmintools.org, paquete gproftpd): frontal para configurar ProFTPd escrito en GTK.