Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

Linux - Tutorial vsFTPd - Actualizado 2013

Imprimir
Categoría: Software - Linux
Escrito por Ch4rl1X Visitas: 2514

¿Cómo instalar vsFTPd en Ubuntu/Kubuntu?.

Para los que no tienen claro para que sirve, dense una vuelta por la querida Wikipedia ->enlace<-

Vamos a ver desde 0 como instalar un servidor FTP para que nos funcione.

A la acción!

Lo primero que hacemos es instalar el programa:

apt-get install vsftpd (logueamos antes como super usuario).

instalación VSFTPD

Y luego seguimos, configurando el archivo vsftpd.conf que vamos a encontrar en la carpeta /etc.

Aquí voy a aclarar algo, éste tutorial está encarado para hacer funcionar vsFTPd, el cuál no indica que sea la manera más óptima que se utilice, éso queda a su criterio :).

Detallemos los puntos a activar:

# Run standalone?  vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES

Como lo dice claramente la configuración, vsFTPd se inicia con el sistema, si esa opción está activada.

Esta es opcional, depende de lo que queramos hacer.

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO

En mi caso la tengo desactivada.

Para no crear los archivos de logueo de usuario porque en mi esquema; los usuarios del sistema no loguean, uso el local enable.

# Uncomment this to allow local users to log in.
local_enable=YES

Con la siguiente directiva activamos la escritura.

# Uncomment this to enable any form of FTP write command.
write_enable=YES

Activo el mensaje de bienvenida personalizado.


# You may fully customise the login banner string:
ftpd_banner=Bienvenido al servicio vsFTPd de Pepito-Grillo!.

Le digo a vsFTPd que use solo el directorio local para el usuario generado (de lo contrario me mostraría todo el árbol de directorio del sistema y ninguno quiere eso :)).

# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
chroot_local_user=YES

En fin, son sólo las básicas, las que no coloco... es porque no las considero relevantes para el tutorial.

Con lo anterior tenemos el queridísimo vsFTPd configurado, ahora nos queda otra parte interesante, que tiene que ver con lo fundamental ¿Quienes van a usar el servicio y cómo crear su acceso?

Aquí voy a pegar algunos screens para iniciados, que si tienen duda sobre comandos básicos les recomiendo que peguen una leída a los comandos básicos que se han posteado en éste mismo blog, con los que explico allí debería ser suficiente para realizar sin problemas este tuto.

creandoDirectorios

En ese caso creo la carpeta sobre el home, pero queda a su criterio hacerla sobre el que les parezca :).

Ahora, como estamos creando un usuario de FTP, tenemos claro que hay un grupo "ftp", por ése motivo vamos a crear nuestros usuarios sobre el grupo mencionado.

Y aquí, de pasada, explicamos el comando useradd.

useradd -g ftp -d /home/ftp/pepito -c "Pepito" Pepito

Explicación:

useradd: No es necesario ni mencionarlo... pero por las dudas... Se crea el usuario.

-g: Indicamos a que grupo pertenece (como dijimos antes, es del grupo "ftp").

-d: Indicamos el directorio al que pertenece.

Y en las últimas 2 directivas se indica el nombre de quién va a usar la cuenta y el nombre de usuario que se va a loguear (ni hablar de la gran diferencia que existe sobre una cosa y la otra).

Y con eso tenemos creado nuestro usuario a la perfección, pero nos queda lo fundamental, una contraseña de ingreso. Para ésto usamos el comando "passw" seguido del nombre de usuario al que le queremos crear/modificar la contraseña. Quiero aclarar que cuando digo seguido significa también un espacio.

Sintaxis: passw Pepito ->Estamos en linux, no??. Bien por ése motivo, todos los comandos que corramos sobre el sistema son "case sensitive", traduciendo... tenemos que respetar mayúsculas y todo tipo de acentuación que utilizemos :).

Algo que concede vsFTPd, es la posibilidad de conectarse a través de una shell remota, no vamos a ver que significa ésto... ya que es muy complejo, si lo prometo para la próxima.
Por ahora sólo vamos a desactivar la shell para el usuario que acabamos de crear.

Sintaxis: usermod -s /bin/false Pepito

Lógicamente, como es falsa, le damos de alta al archivo de shells de nuestro sistema (sino, no nos va a dejar conectar a nuestro FTP).

Comando: kate /etc/shells ->Ok, dejemos claro que estoy en Kubuntu, que kate no es una familiar mía ni nada por el estilo, sino que es un editor de texto que viene dentro de los repositorios que se instalan por defecto con éste S.O. :).

Bien, luego del pequeño chascarrillo continuamos con el ingreso de la shell falsa y aquí hago un screen para que vean como exactamente tiene que quedar :).

 cargando shell falsa

Luego de crear la shell falsa, necesitamos una cosilla más para que no, nos tire el típico error:

Error refused

Cambiamos el atributo de la carpeta raíz:

Sintaxis: chmod 555 /home/ftp/pepito

Y a la carpeta interna que llamamos docs, le decimos que somos usuarios y que estamos dentro del grupo.

Sintaxis: chown Pepito:ftp /home/ftp/pepito/docs

Y con ésto deberíamos tener nuestro servidor FTP perfectamente corriendo!. Con el correr de los tutoriales, vamos a ver cómo administrar cuotas para los usuarios, tema importantísimo para la completa administración de nuestro servicio vsFTPd.

P.D.: Importante reiniciar el servicio de vsFTPd para su correcto funcionamiento, luego de todos los procesos que hayamos hecho.

Comando: service vsftpd restart

Espero que sirva!.

Saludos, Ch4rl1x.

Actualización para los que tengan problemas:

La situación se da cuando tenés permisos en nivel de usuario y grupo. vSFTPd nunca va a copiar los directorios con los permisos correctamente, entonces para esta nueva configuración modificamos el archivo de configuración en las siguientes líneas.

Habilitar el uso de local umask (sacarle el numeral a -> local_umask=002 colocar tal cual)
Luego nos vamos hasta la línea que dice -> anon_mkdir_write_enable=YES y abajo colocar la siguiente:
file_open_mode=0777
Con estos comandos cada archivo que subamos por FTP a nuestros sites van a estar con los siguientes permisos:
775. De manera que el usuario y grupo van a tener todos los permisos asignados. Ideal si a nuestro FTP le sumamos un servidor apache.

Saludos nuevamente, Ch4rl1X!