Vamos a aprender como tener nuestro propio servidor ftp en linux Ubuntu – usando VSFTPD , y basándonos en el blog de CWFLORES.
Primero instalar el paquete, algo muy fácil desde terminal con:
sudo apt-get install vsftpd
..
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.
# 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: invitado
Acceso a su directorio: /home/ftp/invitado
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/invitado
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/invitado -c ” invitado ” invitado
sudo useradd -g ftp -d /home/ftp/ -c ” moderador ” moderador
Asignamos contraseñas a los usuarios si no nunca conectarían:
sudo passwd invitado
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:
invitado:x:1001:1001: zonero1 :/home/ftp/invitado:/bin/sh
moderador:x:1002:1001: moderador :/home/ftp/:/bin/sh
pasaría a ser:
invitado:x:1001:1001: invitado :/home/ftp/invitado:/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.
...
Reiniciamos el FTP
sudo /etc/init.d/vsftpd restart
Probemos si podemos accesar:.
..
Ya tenemos listo el servidor FTP, pueden entrar poniendo ftp://su_ip
También se pueden conectar con un cliente FTP.