Mi Blog

No te olvides seguirme en Facebook.

Tan solo tienes que hacer click en Me Gusta

 

 

x

⋆ Cómo crear usuarios virtuales en ProFTPD

⋆ Cómo crear usuarios virtuales en ProFTPD

(Tiempo estimado: 5 - 10 minutos)

Crear usuarios virtuales en ProFTPD es muy sencillo y útil. A veces es necesario crear un servidor de ficheros FTP donde se quieran generar cuentas de usuario de acceso al servidor pero que no tengan acceso al sistema y que tampoco estén creados a nivel de sistema operativo. Existen diferentes tipos de usuarios de acceso a un servidor FTP y cada uno tiene su utilidad.

Seguid leyendo si queréis aprender a configurar y habilitar usuarios virtuales en ProFTPD... ¡es muy sencillo!

 

 

¿QUÉ ES UN USUARIO VIRTUAL?

El servidor de ficheros ProFTPD soporte diferentes tipos de usuarios a la hora de acceder al servidor. En este tutorial se va a explicar como habilitar y configurar el acceso a usuarios virtuales. Los diferentes tipos de usuarios que soporta ProFTPD son los siguientes:

  • Usuario de sistema: Son los usuarios propios del sistema operativo. Cuando se accede al servidor FTP con una cuenta de usuario, normalmente se accede a la carpeta $HOME del usuario.
  • Usuario anónimo: El usuario anonymous, es un usuario que suele estar presente en muchos servidores FTP donde queremos tener un acceso público para las descargas de ficheros. Este usuario únicamente suele tener permiso de lectura y su password suele ser cualquier cadena de texto.
  • Usuario virtual: Son usuarios independientes de los usuarios de sistema. Realmente no existen como usuarios normales del sistema operativo.

 

 

Un usuario virtual, no tiene cuenta REAL en el sistema.

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un equipo con GNU/Linux y ProFTPD instalado
  • Conexión a Internet si el servidor está en Internet
  • Cliente FTP

 

 

2.- CONFIGURACIÓN INICIAL

Siguiendo el anterior tutorial de Cómo instalar y configurar ProFTPD en GNU/Linux Debian, partiremos de la configuración realizada en dicho tutorial donde activamos y configuramos un servidor FTP para usuarios de sistema y usuarios anónimos. Para cualquier detalle o duda, podéis visitarlo. La configuración inicial de ProFTPD es la siguiente y será la que modificaremos en los pasos posteriores para habilitar Usuarios Virtuales:

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell no

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>
 

 

 

Recordad que es necesario realizar las operaciones con usuario root o con sudo.

 

 

3.- MODIFICACIONES NECESARIAS EN PROFTPD

Al fichero de configuración de ProFTPD mostrado en el punto 2, debemos añadirle las siguientes líneas de configuración o bien comprobar que ya existen:

Include /etc/proftpd/modules.conf
DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

 

 

4.- CREACIÓN DE USUARIOS

Si recordamos del tutorial mencionado en el paso 2, el raíz del ftp se encuentra en /srv/ftp. Lo que vamos a hacer es crear un directorio personal para cada usuario virtual, ya que al no existir los usuarios en el sistema, tampoco existe el directorio habitual /home/<usuario>. Para ello, crearemos los siguientes usuarios virtuales: "john", "charles" y "jason". Sus directorios personales estarán ubicados en los directorios: /srv/ftp_john , /srv/ftp_charles y /srv/ftp_jason.

Primero crearemos los 3 directorios personales para cada usuario:

raul@ns1:~$ sudo mkdir /srv/ftp_john
raul@ns1:~$ sudo mkdir /srv/ftp_charles
raul@ns1:~$ sudo mkdir /srv/ftp_jason

 

 

Para guardar un poco de sintonía con el directorio original /srv/ftp, modificaremos tanto el usuario como el grupo, aunque tampoco es muy importante ya que posteriormente les daremos permisos en el sistema de 777:

raul@ns1:~$ sudo chown ftp.nogroup /srv/ftp_john /srv/ftp_charles /srv/jason
raul@ns1:~$ sudo chmod 777 /srv/ftp_john /srv/ftp_charles /srv/jason

 

 

Crearemos el fichero de usuarios vacío para que posteriormente se vayan añadiendo los usuarios virtuales que creemos:

raul@ns1:~$ sudo touch /etc/proftpd/ftpd.passwd

  

 

Ahora si, crearemos los 3 usuarios virtuales. Deberemos seleccionar un uid y gid que no exista en el sistema. LSe pueden ver los que ya están siendo usados se pueden ver en el fichero /etc/passwd. Por ejemplo, en este ejemplo se han seleccionado valores altos para evitar que coincidan con posibles usuarios del sistema. También hay que indicarle el $HOME del usuario y que la shell a utilizar sea /bin/false:

raul@ns1:~$ sudo ftpasswd --passwd --name=john --uid=2000 --gid=2000 --home=/srv/ftp_john --shell=/bin/false
raul@ns1:~$ sudo ftpasswd --passwd --name=charles --uid=2001 --gid=2001 --home=/srv/ftp_charles --shell=/bin/false
raul@ns1:~$ sudo ftpasswd --passwd --name=jason --uid=2002 --gid=2002 --home=/srv/ftp_jason --shell=/bin/false

 

 

 

 

5.- OPERACIONES SOBRE LOS USUARIOS

A continuación se muestran algunos de los comandos más utilizados a la hora de gestionar usuarios virtuales. En las siguientes dos líneas, se puede ver como bloquear/desbloquear la cuenta de usuario de john:

raul@ns1:~$ sudo ftpasswd --passwd --name=john --lock
raul@ns1:~$ sudo ftpasswd --passwd --name=john --unlock

 

 

En la siguiente línea muestro como borrar el usuario charles:

raul@ns1:~$ sudo ftpasswd --passwd --name=charles --delete-user

 

 

Si queremos cambiar la contraseña de un usuario, debemos ejecutar lo siguiente. Pongo un ejemplo para cambiar la contraseña del usuario jason:

raul@ns1:~$ sudo ftpasswd --passwd --name=jason --change-password 

 

 

Existen muchas otras opciones que pueden verse utilizando la ayuda del comando ftpasswd:

raul@ns1:~$ sudo ftpasswd --help

 

 

6.- PROBANDO LOS USUARIOS VIRTUALES

A continuación se pueden ver 3 capturas de pantalla creando un directorio y un fichero en cada $HOME de cada uno de los usuarios:

Usuarios Virtuales ProFTPD$HOME de John

 

  

Usuarios Virtuales ProFTPD$HOME de charles

 

 

Usuarios Virtuales ProFTPD$HOME de Jason

 

 

7.- CONFIGURACIÓN FINAL

El fichero de configuración final de proftpd.conf, para usuarios de sistema, usuarios anónimos y usuarios virtuales queda de la siguiente forma:

Include /etc/proftpd/modules.conf

ServerName "Debian"
ServerType standalone
DefaultServer on
UseIPv6 off

DefaultRoot ~
RequireValidShell off
AuthUserFile /etc/proftpd/ftpd.passwd

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
RequireValidShell off

<Directory *>
<Limit WRITE>
Deny All
</Limit>
</Directory>

<Directory upload>
<Limit STOR,MKD>
Allow all
</Limit>
</Directory>

</Anonymous>

 

 

ENJOY!


Raúl Prieto Fernández

Sitio Web: raulprietofernandez.net

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Código de seguridad
Refescar