Hola buenas vamos a aprender a montar 1 servidor FTP en ubuntu, en este caso vamos a montar vsftpd.

Primero instalamos el paquete, para ello abrimos una consola y tecleamos:

sudo apt-get install vsftpd

ftp1-logo.png

Bueno ya que está instalado debemos de saber loa archivos de configuración que tenemos para este programa y son 2:

-/etc/vsftpd.user_list es el fichero de configuración de usuarios, carpetas, etc.
-/etc/vsftpd.conf es el fichero de configuración general.

Vamos a realizar una configuración predeterminada fácil para ello editamos el archivo: vsftpd.conf

sudo gedit /etc/vsftpd.conf

Y cambiamos estos parámetros:

# Habilitar el acceso a usuarios anónimos. Para mayor seguridad poner NO.
anonymous_enable=NO
# Permitir el acceso de usuarios locales a sus respectivas carpetas, quitamos la # (descomentamos):
local_enable=YES
# Permitir el modo escritura, quitamos la # (descomentamos):
write_enable=YES
# Mascara del directorio, quitamos la # (descomentamos):
local_umask=022
# Mensaje cuando se conecta alguien, descomentamos y ponemos lo que queramos.
ftpd_banner=Bienvenidos al Servidor FTP de prueba para Zoneros :D By Monino.
# Enjaula a los usuarios dentro de su propio directorio personal. Mejora la seguridad.
chroot_local_user=YES
# Para que los usuarios sólo puedan acceder a las carpetas del FTP y no a todo el sistema.
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

Otras opciones interesantes:


#opciones de transferencia
#ancho banda por usuario anónimo 5kb
anon_max_rate=5100
#ancho de banda por usuario local 5kb
local_max_rate=5100
#número máximo clientes simultáneos
max_clients=5
#máximo conexiones por ip
max_per_ip=2

Cada usuario del sistema accedería a su carpeta personal, pero también podemos crear usuarios para el ftp y asignarle 1 carpeta, por ejemplo, vamos
a crear 2 usuarios:

Usuario: Zonero1
Acceso a su directorio: /home/ftp/zonero1
Sin shell en el sistema y en un entorno chroot

Usuario: Moderador
Acceso a su directorio: /home/ftp
Sin shell en el sistema y en un entorno chroot

Creamos las carpetas de los usuarios:


sudo mkdir /home/ftp/zonero1

Nota: /home/ftp ya lo crea al instalar el servidor ftp.

Antes de instalar el servidor ftp vamos a crear los usuarios y securizarlos para que tengan los mínimos permisos y sólo puedan hacer lo que nosotros definamos.

Crearemos un grupo llamado ftp al cual asociaremos los usuarios.


sudo groupadd ftp

Creamos los usuarios con sus correspondientes características.


sudo useradd -g ftp -d /home/ftp/zonero1 -c ” zonero1 ” zonero1
sudo useradd -g ftp -d /home/ftp/ -c ” moderador ” moderador

Asignamos contraseñas a los usuarios si no nunca conectarían:


sudo passwd zonero1

escribimos la contraseña, la repetimos y hacemos lo mismo para moderador.

Ahora creamos una shell fantasma en el directorio correspondiente.


sudo mkdir /bin/ftp

Editamos el fichero /etc/shells y la añadimos en la ultima línea “/bin/ftp” y guardamos:


sudo gedit /etc/shells

Editamos el fichero /etc/passwd y buscamos las líneas donde están definidos los usuarios que hemos creado antes y les añadimos el shell falso:


zonero1:x:1001:1001: zonero1 :/home/ftp/zonero1:/bin/sh
moderador:x:1002:1001: moderador :/home/ftp/:/bin/sh

pasaría a ser:


zonero1:x:1001:1001: zonero1 :/home/ftp/zonero1:/bin/ftp
moderador:x:1002:1001: moderador :/home/ftp/:/bin/ftp

Ahora vamos a crear el fichero de usuarios:


sudo gedit /etc/vsftpd.chroot_list

Y añadimos los usuarios.

ftp2-logo.png

Reiniciamos el FTP


sudo /etc/init.d/vsftpd restart

Probamos a conectarnos, en este caso usamos Filezilla como cliente FTP, podeis instalarlo desde “Añadir o Quitar”:

ftp3-logo.jpg

Ole! Muy Contento como veis conecta y nos lista los directorios de nuestra carpeta principal y no podemos acceder a las demás.

Probamos con un usuario creado para el FTP.

How-to realizado por monino para LinuxZone.es