Jan 22, 2009

Servicio FTP mediante vsftpd

En el artículo anterior, se expuso el desarrollo de un espacio compartido en red mediante GlusterFS. A través de esta aplicación, establecimos un directorio común de trabajo (/var/www/html/) para los servidores Apache de los dos nodos traseros. Este área compartida también será utilizada por el servicio FTP que configuraremos en dichos nodos a través de vsftpd.

Vsftpd es un servidor FTP para los sistemas operativos de tipo GNU/Linux. Vamos a comenzar instalando vsftpd (versión 2.0.7) en ambos nodos traseros (LB1 y LB2).

root@lb1:~# aptitude install vsftpd

root@lb2:~# aptitude install vsftpd


Después vamos a editar su fichero de configuración (/etc/vsftpd.conf), dejando las opciones que vienen por defecto y modificando las mostradas a continuación.

root@lb1:~# cat /etc/vsftpd.conf
...
# El demonio vsftpd permanecerá a la escucha de peticiones de conexión
listen=YES
...
# No permitir el acceso al servicio FTP a usuarios anónimos
anonymous_enable=NO
...
# Permitir el acceso FTP a usuarios locales del sistema
local_enable=YES
...
# Permitir la escritura en el servidor
write_enable=YES
...
# Cambiar a 022 los permisos de los usuarios locales
local_umask=022
...
# Mensaje de bienvenida para los usuarios que se logueen
ftpd_banner=Welcome to LB1 FTP service.
...
# Enjaular a los usuarios que se conecten (sólo podrán moverse por aquellas carpetas para las que tengan permiso)
chroot_local_user=YES


Este fichero de configuración será común para los dos nodos, por eso sólo se ha mostrado el de la máquina LB1. La única diferencia en el fichero de configuración del nodo LB2, será el mensaje de bienvenida para el usuario.

root@lb2:~# cat /etc/vsftpd.conf
...
# Mensaje de bienvenida para los usuarios que se logueen
ftpd_banner=Welcome to LB2 FTP service.
...


El resto de operaciones que quedan por completar, serán similares en ambos nodos. Por dicho motivo sólo se expondrán las del nodo LB1.

A continuación habrá que crear un usuario denominado userftp, el cual utilizaremos para acceder al servicio FTP. A través del fichero /etc/passwd, asociaremos a dicho usuario la carpeta compartida en red (/var/www/html/).

root@lb1:~# adduser userftp

root@lb1:~# cat /etc/passwd

...
userftp:x:1001:1001:,,,:/var/www/html/:/bin/sh

Y el último paso consistirá en otorgar permisos de lectura, escritura y ejecución a dicho directorio. Para que los cambios surjan efecto, reiniciaremos el servicio FTP.

root@lb1:~# chmod 777 /var/www/html/

root@lb1:~# /etc/init.d/vsftpd restart

1 comment:

  1. Solo un pequeño inciso sobre la máscara umask 022. Esa máscara esta en octal en lógica negativa, de forma que los permisos creados en el sistema serán los que resulten de aplicar estas formulas:

    Para ficheros: 666 and (not 022) = 666 and 755 = 644 (rw-r--r--)

    Para directorios: 777 and (not 022) = 777 and 755 = 755 (rwxr-xr-x)

    ReplyDelete