FTP (siglas en inglés de File Transfer Protocol, ‘Protocolo de Transferencia de Archivos’) en informática, es un protocolo de red para latransferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.
Vamos a usar el ftp server que recomienda ubuntu, vsftpd, es ligero, robusto, escalable y seguro.
Instalamos el server ftp:
~$ sudo apt-get install vsftpd
Ya lo tienes funcionando pero con la configuración por defecto. Esta configuración no se adapta al uso común. Tienes un server escuchando en el puerto 21 con acceso anonymous y permisos de lectura. El servicio FTP es ofrecido por la capa de aplicación del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza entexto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos. /home/ftp que por defecto esta vacio. Aqui podría haber un agujero de seguridad si no administramos bien los permisos, por ello lo mejor es retirar el acceso anonimo.
Abrimos el archivo de configuración: sudo gedit /etc/vsftpd.conf
Realizamos los siguientes cambios:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
ftpd_banner=Bienvenid@s al Servidor FTP X
chroot_local_user=YES
Reiniciamos el server FTP :
sudo /etc/init.d/vsftpd restart
Ya esta nuestro login será nuestro usuario y contraseña de linux, hay que olvidarse de crear cuentas FTP ni historias así. Para añadir permisos a otros usuarios tendras que crear cuentas con adduser
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/ R
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.confori
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
#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 #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.
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 [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
lpwd Imprime la ruta local en la cual estamos
trabajando
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
Articulo extraído íntegramente de http://khrizoto.wordpress.com/2012/07/26/instalar-ftp-server-en-ubuntu-12-04/
No hay comentarios:
Publicar un comentario