Vous êtes sur la page 1sur 10

INSTALACION Y CONFIGURACION DE UN FTP EN LINUX

Marco Terico Qu es un FTP? FTP (sigla en ingls de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informtica, es un protocolo de red para la transferencia 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. El servicio FTP es ofrecido por la capa de aplicacin del modelo de capas de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el 21. Un problema bsico de FTP es que est pensado para ofrecer la mxima velocidad en la conexin, pero no la mxima seguridad, ya que todo el intercambio de informacin, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningn tipo de cifrado, con lo que un posible atacante puede capturar este trfico, acceder al servidor, o apropiarse de los archivos transferidos. Para solucionar este problema son de gran utilidad aplicaciones como scp y sftp, incluidas en el paquete SSH, que permiten transferir archivos pero cifrando todo el trfico. Servidor FTP Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su funcin es permitir el intercambio de datos entre diferentes servidores/ordenadores. Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores personales, por lo que un usuario normalmente utilizar el FTP para conectarse remotamente a uno y as intercambiar informacin con l. Las aplicaciones ms comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus pginas web y sus archivos correspondientes; o como servidor de backup (copia de seguridad) de los archivos importantes que pueda tener una empresa. Para ello, existen protocolos de comunicacin FTP para que los datos se transmitan cifrados, como el SFTP (Secure File Transfer Protocol). Cliente FTP Cuando un navegador no est equipado con la funcin FTP, o si se quiere cargar archivos en un ordenador remoto, se necesitar utilizar un programa cliente FTP. Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos. Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra. Algunos clientes de FTP bsicos en modo consola vienen integrados en los sistemas operativos, incluyendo Microsoft Windows, DOS, GNU/Linux y Unix. Sin embargo, hay disponibles clientes con opciones aadidas e interfaz grfica. Aunque muchos navegadores tienen ya integrado FTP, es ms confiable a la hora de conectarse con servidores FTP no annimos utilizar un programa cliente.

Acceso annimo Los servidores FTP annimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' o una cuenta de usuario. Es la manera ms cmoda fuera del servicio web de permitir que todo el mundo tenga acceso a cierta informacin sin que para ello el administrador de un sistema tenga que crear una cuenta para cada usuario. Si un servidor posee servicio 'FTP anonymous' solamente con teclear la palabra anonymous, cuando pregunte por tu usuario tendrs acceso a ese sistema. No se necesita ninguna contrasea preestablecida, aunque tendrs que introducir una slo para ese momento, normalmente se suele utilizar la direccin de correo electrnico propia. Solamente con eso se consigue acceso a los archivos del FTP, aunque con menos privilegios que un usuario normal. Normalmente solo podrs leer y copiar los archivos que sean pblicos, as indicados por el administrador del servidor al que nos queramos conectar. Normalmente, se utiliza un servidor FTP annimo para depositar grandes archivos que no tienen utilidad si no son transferidos a la mquina del usuario, como por ejemplo programas, y se reservan los servidores de pginas web (HTTP) para almacenar informacin textual destinada a la lectura en lnea. Acceso de usuario Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificacin de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la informacin de las distintas cuentas de usuario que pueden acceder a l, de manera que para iniciar una sesin FTP debemos introducir una autentificacin (en ingls: login) y una contrasea (en ingls: password) que nos identifica unvocamente. Cliente FTP basado en Web Un cliente FTP basado en Web no es ms que un cliente FTP al cual podemos acceder a travs de nuestro navegador web sin necesidad de tener otra aplicacin para ello. El usuario accede a un servidor web (HTTP) que lista los contenidos de un servidor FTP. El usuario se conecta mediante HTTP a un servidor web, y el servidor web se conecta mediante FTP al servidor FTP. El servidor web acta de intermediario haciendo pasar la informacin desde el servidor FTP en los puertos 20 y 21 hacia el puerto 80 HTTP que ve el usuario. Siempre hay momentos en que nos encontramos fuera de casa, no llevamos el ordenador porttil encima y necesitamos realizar alguna tarea urgente desde un ordenador de acceso pblico, de un amigo, del trabajo, la universidad, etc. Lo ms comn es que no estn instaladas las aplicaciones que necesitamos y en muchos casos hasta carecemos de los permisos necesarios para realizar su instalacin. Otras veces estamos detrs de un proxy o cortafuegos que no nos permite acceder a servidores FTP externos. Al disponer de un cliente FTP basado en Web podemos acceder al servidor FTP remoto como si estuviramos realizando cualquier otro tipo de navegacin web. A travs de un cliente FTP basado en Web podrs, crear, copiar, renombrar y eliminar archivos y directorios. Cambiar permisos, editar, ver, subir y descargar archivos, as como cualquier otra funcin del protocolo FTP que el servidor FTP remoto permita. Acceso de invitado El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores.

La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la mquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma acceder a un entorno restringido, algo muy similar a lo que sucede en los accesos annimos, pero con ms privilegios.

Modos de conexin del cliente FTP FTP admite dos modos de conexin del cliente. Estos modos se denominan activo (o Estndar, o PORT, debido a que el cliente enva comandos tipo PORT al servidor por el canal de control al establecer la conexin) y pasivo (o PASV, porque en este caso enva comandos tipo PASV). Tanto en el modo Activo como en el modo Pasivo, el cliente establece una conexin con el servidor mediante el puerto 21, que establece el canal de control. Modo Activo El modo activo es el mtodo original utilizado por el protocolo FTP para la transferencia de datos a la aplicacin cliente. Cuando el cliente FTP inicia una transferencia de datos, el servidor abre una conexin desde el puerto 20 en el servidor para la direccin IP y un puerto aleatorio sin privilegios (mayor que 1024) especificado por el cliente. Este arreglo implica que la mquina cliente debe poder aceptar conexiones en cualquier puerto superior al 1024. Con el crecimiento de las redes inseguras, tales como Internet, es muy comn el uso de cortafuegos para proteger las mquinas cliente. Debido a que estos cortafuegos en el lado del cliente normalmente rechazan las conexiones entrantes desde servidores FTP en modo activo, se cre el modo pasivo. (La flecha indica de quien a quien se inicia) Cliente N ---------> Server 21 Cliente N+1 <--------- Server 20

Modo Pasivo La aplicacin FTP cliente es la que inicia el modo pasivo, de la misma forma que el modo activo. El cliente FTP indica que desea acceder a los datos en modo pasivo y el servidor proporciona la direccin IP y el puerto aleatorio, sin privilegios (mayor que 1024) en el servidor. Luego, el cliente se conecta al puerto en el servidor y descarga la informacin requerida. Mientras que el modo pasivo resuelve el problema de la interferencia del cortafuegos en el lado del cliente con las conexiones de datos, tambin puede complicar la administracin del cortafuegos del lado del servidor. Una de las formas de limitar el nmero de puertos abiertos en el servidor y de simplificar la tarea de crear reglas para el cortafuegos del lado del servidor, es limitando el rango de puertos sin privilegios ofrecidos para las conexiones pasivas. (La flecha indica de quien a quien se inicia) Cliente N --------> Server 21 Cliente N+1 ---------> Server 20

Como hemos explicado antes, en el modo activo se abre una conexin para datos desde el servidor FTP al cliente FTP, esto es, una conexin de fuera hacia adentro, entonces, si el cliente FTP se encuentra detrs de un firewall, este filtrara o bloqueara la conexin entrante. En el modo pasivo es el cliente FTP el que inicia tanto la conexin de control como la de datos, con lo cual el firewall no tendr ninguna conexin entrante que filtrar.

VSFTPD VSFTPD lo cual significa Very Secure FTP Daemon, es un servidor FTP para sistemas basados en UNIX, incluyendo a Linux. Su licencia esta bajo GNU General Public Licence, (open source). Soporta IPv6 y SSL. Vsftp es el principal servidor FTP en distribuciones Linux como Ubuntu, CentOS, Fedora, NimbleX y RHEL. Para ms informacin: https://security.appspot.com/vsftpd.html

Procedimiento

Suponiendo que ya hemos instalado en algn servidor, pc o mquina virtual alguna distribucin GNU/Linux, en este caso nos referimos a CentOS 5.6 con SELINUX deshabilitado. Instalacin de software. La instalacin de VSFTPD es relativamente sencilla, solo tecleamos lo siguiente con a travs de yum.
[root@mail ~]# yum -y install vsftpd . . . Installed: vsftpd.i386 0:2.0.5-21.el5 Complete!

Archivos de configuracin de VSFTPD La configuracin de VSFTPD se realizara sobre dos ficheros distintos, uno de configuracin general propio de VSFTPD y otro para especificar al servidor FTP los usuarios que harn uso del acceso de invitado. El primer fichero de configuracin de VSFTPD lo encontramos en la siguiente ruta

/etc/vsftpd/vsftpd.conf

El segundo fichero de configuracin debe ser creado por usted mismo ya que de otra forma nunca podr especificar al servidor FTP los usuarios que harn uso del acceso de invitado. La ruta en la que se debe crear dicho fichero es la siguiente: /etc/vsftpd/ Y ser nombrado con el nombre siguiente: chroot_list A este fichero debern ser agregados los nombres de los usuarios de FTP que trabajaran en su directorio de trabajo, de esta manera se restringe a estos usuarios el acceso a otras partes del sistema operativo, cualquier otro usuario no agregado a este archivo podr acceder a cualquier parte del sistema operativo, lo cual es un grave fallo de seguridad.

Al final nuestros archivos debern estar ubicados en las siguientes rutas:


/etc/vsftpd/vsftpd.conf ---> Fichero de configuracin propio de VSFTPD /etc/vsftpd/chroot_list ---> Fichero que definir los usuarios que tendrn acceso al FTP. [RECUERDE QUE ESTE FICHERO DEBE SER GENERADO POR USTED]

El siguiente paso ser editar y configurar los ficheros que previamente creamos. Configuracin del fichero vsftpd.conf Para llevar a cabo la configuracin de este fichero le recomendamos usar el editor de textos VIM. A continuacin le presentamos las diferentes opciones que pueden ser habilitadas o negadas en el fichero de configuracin vsftpd.conf Habilitando o negando accesos annimos al servidor FTP Al haber abierto el fichero trate de buscar la linea siguiente: Para habilitar el acceso annimo al servidor FTP solo deber teclear la palabra YES, caso contrario si usted desea tener deshabilitada esta opcin solo deber teclear la palabra NO.
anonymous_enable=YES|NO

Habilitar o negar autenticarse a los usuarios Para habilitar o negar los accesos autenticados de los usuarios locales en el servidor FTP deber buscar la siguiente linea:
local_enable=YES|NO

Deber teclear la palabra YES para habilitar la autenticacion , caso contrario si usted desea tener deshabilitada esta opcin solo deber teclear la palabra NO. Habilitar o negar la escritura en el servidor FTP Para habilitar o negar la escritura en el servidor FTP deber buscar la siguiente lnea
write_enable=YES|NO

Una vez ubicada esta linea recuerde borrar (si es que esta) el signo de numero (#) para habilitar esta funcin. Establezca el valor YES o NO de acuerdo a lo que se requiera. Estableciendo un mensaje de bienvenida en el servidor FTP Este parmetro sirve para establecer un mensaje de bienvenida el cual ser mostrado cada vez que un usuario acceda al servidor de archivos. Una vez ubicada esta lnea recuerde borrar (si es que esta) el signo de numero (#) para habilitar esta funcin. Para agregar este mensaje al servidor FTP deber buscar la siguiente linea y editarla.
ftpd_banner=Bienvenido al Servidor FTP de ISC

Habilitar el acceso de invitado para ciertos usuarios de FTP Para limitar a los usuarios a trabajar en su propia carpeta de trabajo se debern editar las siguientes lineas del fichero vsftpd.conf
chroot_list_enable=YES |NO

Una vez ubicada esta lnea recuerde borrar (si es que esta) el signo de numero (#) para habilitar esta funcin. Habilitar este parmetro indicara al servidor FTP que el usuario solo podr trabajar dentro de su carpeta de trabajo, para ello solo habr que teclear la palabra YES, en caso contrario use la palabra NO El siguiente parmetro se encuentra en funcin del anterior, de forma que si usted lo habilito tambin tendr que habilitar este ltimo, para ello solo deber borrar el caracter de numero (#)
chroot_list_file=/etc/vsftpd/chroot_list

El parmetro /etc/vsftpd/chroot_list indica la ruta en la cual se encuentra el fichero con los nombres de los usuarios que sern limitados a trabajar en su propia carpeta de trabajo Recuerde que usted creo previamente este fichero. Habilitar al usuario annimo la funcin de subir contenido al servidor FTP Para habilitar o negar al usuario annimo el subir datos al servidor FTP deber buscar la siguiente linea:
anon_upload_enable=YES|NO

Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta funcin. Establezca el valor YES o NO de acuerdo a lo que se requiera. Habilitar al usuario annimo la funcin de crear carpetas en servidor FTP Para habilitar o negar al usuario crear carpetas en servidor FTP deber buscar la siguiente linea:
anon_mkdir_write_enable=YES|NO

Una vez ubicada esta linea recuerde borrar ( si es que esta ) el signo de numero (#) para habilitar esta funcin. Establezca el valor YES o NO de acuerdo a lo que se requiera. Estableciendo permisos de escritura, lectura y ejecucin al contenido albergado en el servidor FTP La siguiente linea Indica que los archivos subidos al servidor quedarn con los permisos 022, es decir, slo escritura para el grupo y los dems.
local_umask=022

Si tu deseas agregar otro tipo de permisos sobre el contenido que sera albergado en tu servidor FTP solo debers modificar el valor 022 por el que tu creas mas conveniente. Nosotros recomendamos usar el permiso 664
local_umask=664

Es decir, lectura y escritura para el propietario del fichero, y slo lectura para el grupo y los dems

Limitando la tasa de transferencia a los usuarios annimos Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios annimos, solamente deber agregar la siguiente linea al final del archivo
anon_max_rate=10240

Como podemos observar hemos limitado la tasa de transferencia a solo 10 Kb para los usuarios annimos, usted podr definir ese parmetro de acuerdo a sus necesidades. Limitando la tasa de transferencia a los usuarios autenticados Usted puede limitar la tasa de transferencia ( en bytes ) para los usuarios annimos, solamente deber agregar la siguiente linea al final del archivo
local_max_rate=10240

Como podemos observar hemos limitado la tasa de transferencia a solo 10 Kb para los usuarios autenticados, usted podr definir ese parmetro de acuerdo a sus necesidades. Limitando el nmero de conexiones hacia el servidor FTP Usted podr establecer un nmero mximo de conexiones que podrn acceder simultneamente al servidor FTP, para ello solo habr que aadir la siguiente linea al final de archivo.
max_clients=3

Como podemos observar hemos limitado el acceso a solamente 3 clientes FTP Limitando el nmero de conexiones por IP hacia el servidor FTP Usted podr establecer un nmero mximo de conexiones desde una misma direccin IP que podrn acceder simultneamente al servidor FTP, para ello solo habr que aadir la siguiente lnea al final de archivo.
max_per_ip=3

Como podemos observar hemos limitado el acceso a simultneo a solamente 3 IPs. Al final del archivo agregamos 2 lneas; una con el puerto mnimo y otra con el puerto mximo que utilizara el servicio del FTP.
pasv_min_port=30300 pasv_max_port=30303

Lo anterior es en base al lmite de conexiones que hayamos declarado en la lnea max_clientes y a cmo funciona el modo PASIVO, por cuestiones de seguridad debemos considerar abrir solamente los puertos necesarios en nuestro firewall para NO exponer el acceso a nuestro servidor por alguien indeseado y/o sufrir un ataque. Es decir, si por ejemplo sabemos que solo tenemos definido un mximo de 3 clientes y declaramos ya nuestros puertos mnimos y mximos en el archivo vsftpd.conf, entonces debemos de abrir un rango de 3 puertos, como se muestra en la siguiente lnea escrita en el archivo de configuracin del iptables:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 30300:30303 -j ACCEPT

Abrir puertos para el servidor FTP Para que nuestro servidor FTP pueda recibir peticiones necesitamos abrir los puertos 20 y 21 en nuestro firewall:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT

Configuracin del fichero chroot_list La configuracin de este fichero es relativamente fcil, solo deber aadir dentro de l los nombres de los usuarios que sern limitados a trabajar dentro de su carpeta personal de trabajo. Ejemplo:
[root@ localhost ~]# vi /etc/vsftpd/chroot_list paty angelica erika viridiana

Al terminar solo deber guardar los cambios hechos al fichero.

Iniciar , detener o reiniciar el servidor FTP Para iniciar el servidor FTP por primera vez solo deber teclear en terminal el siguiente comando:
[root@ localhost ~]# /etc/init.d/vsftpd start

Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor FTP. Estas opciones pueden ser consultadas en la siguiente tabla:

Como alternativa tambin podemos ocupar el siguiente comando para iniciar el servidor FTP
[root@ localhost ~]# service vsftpd start

Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root.

Creacin de cuentas de usuario en el servidor FTP Crear cuentas de usuario en el servidor FTP es un proceso muy parecido a dar de alta usuarios en Linux. La sintaxis general para dar de alta usuarios es la siguiente: Las opciones utilizadas son explicadas en la siguiente tabla:

Ejemplo:
[root@ localhost ~]# useradd -d /usr/share/ftpjavier -s /sbin/nologin javier

Adicionalmente se tiene que asignar una contrasea al usuario FTP.


[root@ localhost ~]# passwd javier Cambiando la contrasea del usuario . Nueva UNIX contrasea: xxxxxxxxxx Vuelva a escribir la nueva UNIX contrasea:xxxxxxxxxx passwd: todos los tokens de autenticacin se actualizaron exitosamente.

Explicacin: Como podemos observar, estamos creando una cuenta en el servidor ftp, para ello estamos usando el Comando
useradd

El parmetro siguiente es
-d /home/ftp/Javier

Este parmetro le indica a Linux que la carpeta de trabajo de Javier est ubicada en la ruta
/home/ftp/javier

El ultimo parmetro
-s /sbin/nologin

Le indica a Linux que el usuario no podr iniciar sesin en el sistema lo cual es ideal para usuarios con acceso a FTP pero sin acceso al intrprete de comandos. Para verificar el acceso desde otro equipo podemos hacerlo mediante algn cliente FTP como FILEZILLA o desde el mismo Command Prompt de alguna PC con Windows.