Introducción
proFTPd es uno de los servidores FTP más potentes y completos disponibles para la mayoría de distribuciones de Linux. Este servidor FTP es el favorito de muchos administradores de sistemas por la configurabilidad que es capaz de proporcionarnos.
Instalación y Configuración Básica
Se deberá de instalar el paquete llamado proftpd
sudo apt-get install proftpd
Durante la instalación nos preguntará sobre el tipo de instalación que queremos. En caso de hacer poco uso del servidor FTP se recomienda seleccionar la opción “inetd” para ahorrar recursos del sistema. Si vamos a hacer un uso considerable del servidor FTP con varios usuarios, se debería de seleccionar como “independiente”. Dejémoslo en “independiente”.
El archivo de configuración principal de proFTPd se encuentra en /etc/proftpd/proftpd.conf. Desde aquí deberemos configurar la mayoría de los aspectos de nuestro servidor FTP.
sudo nano /etc/proftpd/proftpd.conf
Lo primero que debemos hacer es establecer una carpeta como directorio principal para todos los usuarios del FTP. Buscaremos la línea comentada “DefaultRoot” y la descomentamos borrando el caracter #. Esto nos va a permitir que cuando cada usuario acceda a su cuenta del FTP, estos accederán directamente a su carpeta “home”.
Ahora reinicie el demonio proftpd.
sudo service proftpd restart
Comprobaremos que esta funcionando bien nuestro servidor… Digitar:
ftp localhost
- Ingresar el nombre de usuario con el que se logueó al sistema
- Luego le pediré la clave. Ingresarla.
- Digitar ahora el comando: ls
Deberá de mostrarle sus archivos.
Para salir de ésta sesión, digitar el comando quit
Usar una misma carpeta para todos los usuarios
Si queremos que todos los usuarios que inicien sesión accedan por defecto a una misma carpeta, debemos cambiar el parámetro DefaultRoot y añadir la ruta a la que queramos que accedan.
Para nuestro ejemplo, crearemos una carpeta llamada proftpd en /home/ (le asignaremos permiso 777 a la carpeta) y modificaremos el archivo de configuración, de tal manera asignarle al parámetro DefaultRoot la ruta del directorio creado:
sudo mkdir /home/proftpd
sudo chmod 777 /home/proftpd
sudo nano /etc/proftpd/proftpd.conf
Modificar el parámetro de tal manera quede así:
DefaultRoot /home/proftpd
y crearemos un archivo vacío llamado hola.txt en /home/proftpd
sudo touch /home/proftpd/hola.txt
Reiniciar el demonio y comprobar que funcione (hacer las pruebas anteriores con el comando ftp).
sudo service proftpd stop
sudo service proftpd start
Usar una misma carpeta para algunos usuarios
También podemos hacer que todos los usuarios accedan por defecto a una carpeta (como en el paso anterior) salvo un usuario que queremos que acceda a otra o, simplemente, tenga permiso de administrador y pueda acceder a todo el disco.
Para el ejemplo, crearemos 2 usuarios: usuario_a & usuario_b
sudo useradd usuario_a
sudo useradd usuario_b
El parámetro DefaultRoot tiene la siguiente estructura:
DefaultRoot [directorio] [Grupo de usuarios con acceso ese directorio por defecto] [Grupo de usuarios a los que no se les aplicará ese directorio]
En nuestro caso, usuario_a únicamente podrá acceder al directorio /home/proftpd, mientras que usuario_b podrá acceder a todo el disco duro.
Ahora, debemos modificar los siguientes aspectos del archivo de configuración:
sudo nano /etc/proftpd/proftpd.conf
DefaultRoot /home/proftpd usuario_a
DefaultRoot / usuario_b
Reiniciar el servicio proftpd.
sudo service proftpd restart
Puede verificar siempre con el comando ftp, cerrando y abriendo sesión de cada usuario.
Al iniciar sesión en el servidor ftp con el usuario_a, debería ver el archivo touch.
Al entrar al servidor ftp con el usuario_b, al inicio estaría en su home pero, si se digita el comando cd / podrá ver los archivos de la raíz.
Archivo Log (Registro o eventos en el servicio FTP)
El archivo log esta en: /var/log/proftpd/proftpd.log
sudo tail -f /var/log/proftpd/proftpd.log
Otros parámetros interesante
- ServerName: Nos permite establecer un nombre al servidor.
- AccessGrantMsg: Mensaje de bienvenida. (Hay que añadir dicho parámetro al final del archivo manualmente).
Ejemplo:
AccessGrantMsg “Bienvenido a mi FTP” - AccessDenyMsg: Mensaje de error al iniciar. (Hay que añadirlo manualmente al final del archivo).
Reinicie el demonio.
sudo service proftpd restart
Permitir y denegar usuarios
Podemos controlar los usuarios que pueden y no pueden iniciar sesión en nuestro servidor de una forma muy sencilla. Para ello, abrimos el archivo de configuración y añadiremos lo siguiente al final de este:
sudo nano /etc/proftpd/proftpd.conf
<Limit LOGIN>
AllowUser usuario_a
DenyAll
</Limit>
Por cierto… dejaremos la configuración de proftpd a DefaultRoot ~ así para que el home establecido al usuario sea su directorio raíz en FTP.
Guardar los cambios y reiniciar el servicio.
sudo service proftpd restart
Otros parámetros que podemos utilizar aquí (por ahora dejamos nuestro archivo de configuración como lo tenemos) son:
- AllowUser: Nos ofrece permitir el acceso a un usuario específico.
- DenyUser: Bloqueamos el acceso a un usuario específico.
- DenyAll: Bloqueamos el acceso a todos los usuarios salvo a los que especifiquemos con AllowUser.
- AllowAll: Permite que los usuarios como “anonymous” se conecten al FTP.
Al entrar con el usuario_b al servidor ftp, nos daré error de acceso por permisos, dado que únicamente tiene permitido el acceso al usuario_a
Comente las líneas que ha creado ( donde esta <limit…. Hasta </limit> ) para continuar con el siguiente punto.
Conexiones anónimas
Si queremos permitir las conexiones anónimas a nuestro FTP, debemos descomentar los siguientes parámetros de configuración:
<Anonymous ~ftp>
User ftp
Group nogroup
#Estas 3 líneas deben de agregarlas
<Limit LOGIN>
AllowAll
</Limit>
UserAlias anonymous ftp
RequireValidShell off
MaxClients 10
#Con estas líneas delimitamos el acceso para que sea de sólo lectura
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Reiniciamos el servicio proftpd y Ahora ingrese al con el comando ftp y el usuario anonymous. Le pedirá como contraseña que ingrese su dirección de correo, pero realmente puede digitar cualquier cosa ahí.
Comandos útiles
A continuación, los comandos utilizados en ftp y su descripción:
Pruebas desde Windows con FileZilla
Desde equipos Windows, usted puede conectarse a un servidor FTP mediante un cliente ftp. De por sí, Windows tiene el comando ftp activo (hasta donde sé) pero, creo que sería más fácil utilizar un cliente gráfico… Para eso, se puede instalar y usar FileZilla.
La instalación, solo es de dar Next, Next, Next (típico de Windows…) y, una vez finalizado y se entra en él, usted puede hacer la prueba de conexión rellenando la información de arriba, como se muestra en la imagen:
Solo que en lugar de localhost, colocar la IP del servidor FTP (es obvio pero es una aclaración necesaria…)
En el explorador de archivos de la izquierda se encuentra su sistema de archivo local, y en la derecha, deberá de aparecer el sistema de archivo remoto (FTP).
Bien, eso es todo. FileZilla no es complicado de usar, pero igual… si desean un mini tutorial del mismo, me avisan en los comentarios y me animo a hacerlo.
Saludos!
Comentarios por Facebook
comentarios