sábado, 17 de febrero de 2018

Instalación y configuración de FTP en linux-ubuntu con proFTPd

proFTPd es uno de los servidores FTP más potentes y completos disponibles para la mayoría de distribuciones de Linux. LAMPP incluye proFTPD, que es un servidor FTP de código abierto. Esto facilita la transferencia de archivos a/y desde un entorno LAMPP mediante FTP.

Instalación de proFTPd

Desde la terminal ejecutamos 

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 podemos seleccionar la opción “inetd” para ahorrar recursos del sistema. Si no debemos instalarlo como “independiente”.


Configuración de proFTPd

El archivo de configuración principal de proFTPd se encuentra en /etc/proftpd/proftpd.conf. Desde aquí deberemos configurar nuestro servidor FTP.
Debemos hacer es establecer una carpeta como directorio principal para los usuarios de FTP. 

sudo nano /etc/proftpd/proftpd.conf


Instalación y configuración de FTP en linux-ubuntu con proFTPd


Buscamos la línea comentada “DefaultRoot” y la descomentamos borrando la almohadilla #. Esto permitirá que cada usuario acceda a su cuenta del FTP, estos accederán directamente a su carpeta “home”.

Si por el contrario lo que queremos es que todos los usuarios que inician sesión tengan por defecto a una misma carpeta, cambiaremos el parámetro DefaultRoot y añadimos la ruta a la que queramos que accedan. Por ejemplo, una carpeta llamada “proftpd” dentro de /home/ y que todos los usuarios por defecto accedan a ella. El archivo de configuración quedará de la siguiente manera:

#DefaultRoot            
DefaultRoot      /home/proftpd

También podemos hacer que todos los usuarios accedan por defecto a una carpeta, excepto un usuario que queremos que acceda a otra o,  tenga permisos de administrador y pueda acceder a todo el disco.

Es ese caso:
El parámetro DefaultRoot tiene la siguiente estructura:
DefaultRoot [directorio] [grupo de usuarios que tendrán ese directorio por defecto] [Grupo de usuarios a los que no se les aplicará ese directorio]
Es decir, si tenemos dos usuarios, uno únicamente podrá acceder a su directorio mientras que el otro podrá acceder a todo el disco duro. Debemos añadir las siguientes líneas:

DefaultRoot /home/ftp usuario1
DefaultRoot / usuario2

De esta manera, cuando el usuario2 accede al servidor tendrá control completo sobre todos los archivos del disco, mientras el usuario1 sólo podrá gestionar su carpeta.
A continuación reiniciaremos el servidor para que se apliquen los cambios.

sudo /etc/init.d/proftpd restart

Probar proFTPd

Si no  tenemos instalado un cliente FTP primero debemos instalarlo, en este caso utilizaremos filezilla que también es de distribución libre.
Abrimos un terminal y escribimos: 

sudo apt-get install filezilla 

Para ilustrarlo, suponemos que tenemos un script PHP simple llamado ejemplo.php en un directorio personal que contiene el siguiente código, que deseemos transferir al servidor LAMPP.

<!-- ejemplo.php -->
<html>
 <head></head>
 <body>
   <h2><?php echo "Hola. Hoy es ". date('l'); ?>.</h2>
 </body>
</html>

Para transferir archivos a través del servidor proFTPD, primero debemos configurar las reglas de acceso FTP. Para ello debemos abrir un nuevo terminal Linux y asegurarnos de iniciarlo como root.

sudo su

Creamos un nuevo grupo llamado ftp. Este grupo contendrá las cuentas de usuario permitidas para subir archivos a través de FTP.

groupadd ftp

Agregamos nuestra cuenta (en este ejemplo, angel) al nuevo grupo. Añada otros usuarios si es necesario.

usermod -G ftp angel

Cambiamos la propiedad y los permisos del subdirectorio htdocs del directorio de instalación de LAMPP (normalmente, / opt / lampp) para que el nuevo grupo de ftp pueda escribir.

cd /opt/lampp
chown root.ftp htdocs
chmod 775 htdocs

Si utilizamos LAMPP en un escenario de usuario único y sólo habrá un usuario que transfiera archivos a través de FTP, podemos omitir la creación de un nuevo grupo y en su lugar simplemente transferir la propiedad completa del directorio htdocs / a ese usuario.

Nos aseguramos que proFTPD está activo en el panel de control de LAMPP. Podemos transferir ahora archivos al servidor LAMPP siguiendo estos pasos:

Iniciamos un cliente FTP e introducimos los detalles de conexión como se indica a continuación.  Ahora solo será cuestión de activar el cliente FTP en Sistema -> Preferencias -> Menu Principal ->FileZilla 

Si estamos conectando al servidor desde el mismo sistema, utilizaremos "127.0.0.1" como dirección del host. Si se estamos conectados desde un sistema diferente, utilizamos el nombre de host de red o la dirección IP del servidor LAMPP.
Utilizamos  "21" como puerto. Introducimos el nombre de usuario y contraseña de Linux como credenciales de FTP.

Configurar un servicio FTP en Ubuntu con LAMPP-proFTPD

El cliente FTP ahora debe conectarse al servidor y entramos en el directorio /opt/lampp/htdocs/, que es la raíz del documento del servidor Web predeterminado.

Transferimos el archivo desde su directorio principal al servidor utilizando convenciones de transferencia FTP normales. Si estamos utilizando un cliente FTP gráfico, normalmente podemos arrastrar y soltar el archivo de un directorio a otro. Si estamos utilizando un cliente FTP de línea de comandos, podemos utilizar el comando FTP PUT.
Una vez que el archivo se transfiere correctamente, deberíamos poder verlo en acción navegando por http://localhost/ejemplo.php, como se muestra a continuación:

FTP con LAMPP

Crear usuarios y contraseñas para el FTP

Proftpd utiliza los usuarios del sistema por defecto. Para crear un usuario debemos teclear.

sudo adduser miusuario

Estableceremos la contraseña para el mismo:

sudo passwd usuario 

Ahora, “miusuario” podrá conectarse a FTP y accederá, por defecto, a la carpeta especificada en DefaultRoot.

Podemos controlar los usuarios que pueden y no pueden iniciar sesión en nuestro servidor. Abrimos el archivo de configuración y añadimos lo siguiente al final de este:

<Limit LOGIN>  
AllowUser miusuario
DenyAll
</Limit>

Otros parámetros que podemos utilizar son:

AllowUser: Da permisos a un usuario.
DenyUser: Bloquea el acceso a un usuario.
DenyAll: Bloquea el acceso a todos los usuarios salvo los  especificados con AllowUser.

AllowAll: Permite que los usuarios “anonymous” se conecten al FTP.
Por ejemplo, para permitir las conexiones anónimas a un FTP añadimos dentro del grupo anterior el parámetro AllowAll.

<Limit LOGIN> 
AllowUser miusuario 
AllowAll 
</Limit>

Podemos consultar los usuarios que están conectados al servidor FTP en tiempo real con los siguientes comandos:

ftpwho
ftptop


Más información en 

No hay comentarios:

Publicar un comentario