Base de Conocimiento
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 updateroot@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 rodmenEnter 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/ftproot@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 /etcroot@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=YESlocal_enable=YES}}}
Parámetro write_enable#
Permitir el modo de escritura en su carpeta, le quitamos el #.
#write_enable=YESwrite_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=000local_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
- 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_listchroot_list_file=/etc/vsftpd.chroot_list}}}
Al terminar de configurar el archivo de vsftpd.conf
root@server1:/etc# touch vsftpd.chroot_listroot@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
- 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 restartStopping 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.
| COMANDOS | DESCRIPCION | |
|---|---|---|
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 | |
| pwd | Imprime la ruta remota en la cual estamos trabajando | |
| exit | Salimos de SFTP | |
rename [rutaLocal ] [rutaRemota ] | Renombra un un fichero remoto | |
rmdir [rutaRemota ] | Borra una carpeta remota | |
rm [rutaRemota ] | Borra un fichero remoto |
| | Tweet | Este obra está bajo una licencia Creative Commons Atribución-NoComercial-CompartirIgual 2.5 México. | ![]() |
