Base de Conocimiento Base de Conocimiento

« Volver a Administración de...

Servidor de Protocolo de Transferencia de Archivos (FTP) en Ubuntu

Servidor FTP#

El Protocolo de Transferencia de Archivos (FTP) es un protocolo TCP, que nos permite subir y descargar archivos, funciona según el modelo cliente/servidor. Esta continuamente escuchando por el puerto 21 tcp para las peticiones de conexión de clientes remotos, cuando recibe una petición la gestiona, establece la conexión y ejecuta las ordenes enviadas por el cliente.

El acceso a un servidor FTP puede hacerse de dos maneras:

  • anónimo.
  • Autenticado.

Instalación de vsftpd#

Existen una gran variedad de servidores FTP para GNU/Linux, pero se le elige vsftpd ya que muy facil de configurar y es uno de servidores FTP mas seguros. Para poder hacer la instalación del servidor vsftpd tendremos que hacer lo siguiente.

root@server1:~#apt-get update
root@server1:#apt-get install vsftpd}}}

Ya que termine de descargar y instalar los paquetes tenemos que hacer varios pasos para que funcione nuestro servidor ftp.

Creación del grupo#

Ahora tenemos que crear un grupo el cual controle al servicio de vsftpd de la siguiente manera:

root@server1:~#groupadd ftp

Creación del home#

Tenemos que crear el deposito o el home donde el usuario va alojar su información, cuando el servidor vsftpd termina de instalarse crea una carpeta en home quedando de la siguiente manera /home/ftp, pero tu puedes tener tus usuarios en otras rutas como /var/ftp.

root@server1:~#mkdir /home/ftp/rodmen

Creación de shell FTP#

Lo que haremos es crear un shell virtual o fantasma, para que los usuarios no puedan conectarse a una sesión del sistema operativo.

root@server1:~#mkdir /bin/ftp

Ya que lo creamos,ahora tenemos que editar el siguiente archivo.

root@server1:~#vim /etc/shells

Agregar al final del archivo /etc/ftp.

/bin/bash 
/bin/rbash /bin/ftp}}}

Creando usuarios FTP#

Para poder crear usuarios para nuestro servicio ftp se ocupa el siguiente comando.

root@server1:~#useradd -g ftp -d /home/ftp/rodmen -s /bin/ftp rodmen

Tenemos que agregarle una contraseña a nuestro usuario creado.

root@server1:~#passwd rodmen
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully root@server1:#}}}

Ahora hay que darle permiso al usuario pueda ser el dueño de su deposito.

root@server1:~#cd /home/ftp
root@server1:#chown rodmen.ftp rodmen/ -}}}

Ficheros de configuración#

El servidor vsfptd tiene dos archivos muy importantes de configuración:

|/etc/vsftpd.conf|Este es el archivo de configuración de nuestro servidor ftp.|
|/etct/vsftpd.chroot_list|Lista de los usuarios que van estar enjaulados.|

Configuración de vsftpd#

En este momento comenzaremos a configurar nuestro servidor vsftpd. Antes de se recomiendo ampliamente crear una copia de respaldo de archivo de configuración:

root@server1:~#cd /etc
root@server1:/etc#cp vsftpd.conf vsftpd.conf-ori}}}

Comenzaremos a editar el archivo de configuración del servicio vsftpd.conf.

root@server1:/etc#vim vsftpd.conf

En el archivo tendremos que cambiar varios parámetros:

Parámetro anonymous_enable#

Desactivar acceso a usuarios anónimos, para mayor seguridad.

anonymous_enable=NO

Parámetro local_enable#

Permitir a los usuarios autenticados tener sus propias carpetas locales, le quitamos la # para que se active.

#local_enable=YES
local_enable=YES}}}

Parámetro write_enable#

Permitir el modo de escritura en su carpeta, le quitamos el #.

#write_enable=YES
write_enable=YES}}}

Parámetro local_umask#

Permitimos la a través de este parámetro enmascararlo con algún permisos en especial al momento de subir la información.

#local_umask=000
local_umask=037}}}

En este caso estamos indicándole al parámetro, va tener permisos de rwx para el usuario, r-- para el grupo y --- otro ningún permiso.

Enjaulando a los usuarios FTP.#

Habilitamos el enjaulamiento de los usuarios dentro de su directorio personal y también para acceder a sus carpetas por FTP.

#chroot_local_user=YES

  1. chroot_list_enable=YES

chroot_local_user=YES chroot_list_enable=YES}}}

Habilitamos la siguiente linea que manda a llamar aun archivo, este archivo lo tiene que crear y dentro de este agregar los cuentas de los usuario enjaulados.

#chroot_list_file=/etc/vsftpd.chroot_list
chroot_list_file=/etc/vsftpd.chroot_list}}}

Al terminar de configurar el archivo de vsftpd.conf

root@server1:/etc# touch vsftpd.chroot_list
root@server1:/etc#echo “rodmen”>> vsftpd.chroot_list}}}

Control del ancho de banda#

Se le pueden agregar mas opciones al final del archivo.

anon_max_rate=5100  

  1. Ancho de banda para usuario anónimo 5kb.

local_max_rate=5100 #Ancho de banda por usuario local 5kb. max_clients=3 #Numero máximo clientes conectados. max_per_ip=2 #Numero máximo de conexiones por ip.}}}

Reinicio del servidor FTP#

Solo tenemos que reiniciar el servicio de vsftpd para poder cargar los cambios que hemos realizado al servidor.

root@server1:/etc#/etc/init.d/vsftpd restart
Stopping FTP server: vsftpd [OK] Starting FTP server: vsftpd [OK]}}}

Comandos FTP#

Para poder utilizar ahora nuestro servidor FTP seria por medio de comandos, por esto se muestra la lista de comando de ftp y su descripcion.

COMANDOSDESCRIPCION
cd
[
rutaRemota
]
Cambia de directorio dentro del servidor remoto
lcd
[
rutaLocal
]
Cambia de directorio en el equipo local
chgrp
[
grp
]
[
rutaRemota
]
Cambia el grupo de trabajo de un fichero remoto. El
[
grp
]
tiene que ser un Group ID
chmod
[
opciones
]
[
rutaRemota
]
Cambia los permisos de Lectura, Escritura o de Ejecución a un fichero remoto
chown
[
own
]
[
rutaRemota
]
Cambia el grupo de trabajo de un fichero remoto. El
[
own
]
tiene que ser un User ID
get
[
rutaRemota
]
[
rutaLocal
]
Copia un recurso remoto en un equipo local
lmkdir
[
rutaLocal
]
Crea una carpeta en el equipo local
mkdir
[
rutaRemota
]
Crea una carpeta en el equipo remoto
put
[
rutaLocal
]
[
rutaRemota
]
Sube un fichero o archivo desde una ruta local hasta una ruta remota
pwdImprime la ruta remota en la cual estamos trabajando
exitSalimos de SFTP
rename
[
rutaLocal
]
[
rutaRemota
]
Renombra un un fichero remoto
rmdir
[
rutaRemota
]
Borra una carpeta remota
rm
[
rutaRemota
]
Borra un fichero remoto
Promedio (1 Votar)
La valoración media es de 5.0 estrellas de 5.
Comentarios