Está en la página 1de 14

SERVICIO FTP EN LINUX

Manual de Instalacin y Configuracin del Servicio FTP sobre la plataforma Linux, Distribucin Ubuntu 9.04.

JUAN BEDOYA YOJAN USME ANDRES VELEZ RICARDO CANO

REDES 20111

SERVICIO NACIONAL DE APRENDIZAJE SENA MEDELLIN 2009

SERVICIO FTP File transfer protocol (protocolo de transferencia de archivos) ftp es un protocolo que nos permite trabajar con archivos ya sea (copiar , modificar , borrar) desde un host hacia un servidor remoto, entre sistemas conectados a tcp basado en la arquitectura clienteservidor. Desde un eqipo cliente se puede conectar a un servidor para descargar archivos o para enviar archivos, independiente del OS que utiliza cada equipo. Un servidor ftp es un programa especial que se ejecuta en un equipo generalmente conectado a internet aunque puede estar conectado a otro tipo de redes. Una de las aplicaciones del ftp suele ser el alojamiento web en el que sus clientes utilizan el servicio para subir sus paginas web o archivos corrientes este servidor tambien puede ser utilizado como servidor de backup para realizar copias de seguridad y para esto existen protocolos de comunicacin de ftp para que los datos se transmitan cifrados como el sftp (secure file transfer protocol). Cliente ftp El cliente ftp es un progrma que se instala en un ordenador de usuario y emplea el protocolo ftp con el objetivo de transferir archivos ya sea para descargar o subir archivos. Para utilizar un cliente ftp se debe conocer el nombre del archivo el lugar donde se encuentra (en caso de querer subir un archivo al servidor) y la carpeta en la que se encuentra. Algunos clientes ftp basicos en modo consola vienen ya integrados en algunos sistemas operativos como windows, DOS, linux, unix. Aunque muchos navegadores tienen ya integrado ftp. resulta mas seguro y mas confiable que a la hora de conectarse con servidores no anonimos utilizar un programa cliente. Acceso anonimo Los servidores ftp anonimos ofrecen sus servicios libremente a todos los usuarios y permiten acceder a los archivos sin un nombrede usuario o una cuenta de usuario es la manera mas comoda fuera del servicio web de tener acceso a cualquier tipo de

informacion sin que para ello el administrador tenga que crear una cuenta para cada usuario. Para acceder a algn servidor ftp de tipo anonimo o (ftp anonymous) simplemente hay que digitar la palabra anonymous y tendras acceso a este servicio. Acceso de usuario Si deseamos tener privilegios como acceso a cualquier parte del sistema de archivos del servidor ftp de modificacion de archivos existentes y con posibilidad de subir nuestros propios archivos generalmente se suele utilizar una cuenta de archivos. En el servidor ftp se guardan las cuentas de todos los usuarios que pueden acceder al servidor ftp simplemente se ingresa el nombre de usuario y un password. Acerca de vsftpd. Vsftpd (Very Secure FTP Daemon) es un software utilizado para implementar servidores de archivos a travs del protocolo FTP. Se distingue principalmente porque sus valores predeterminados son muy seguros y por su sencillez en la configuracin. Actualmente se presume que vsftpd es quiz el servidor FTP ms seguro del mundo. Libpam Es un modulo o libreria que enlaza la base de datos con el servidor ftp, esto permite utilizar los usuarios y contraseas que estemos utilizando en la base de datos. MYSQL Motor de base de datos en el cual se va a incluir el nombre de los usuarios que iniciaran sesion en nuestro servidor ftp, se utliza una base de datos para evitar la creacion de multiples cuentas en la maquina que tiene nuestro servidor ftp, por eso se usa una base de datos para evitar gastar recursos y brindar seguridad.

INSTALACIN Y CONFIGURACIN FTP

Antes de todo, lo primero que tenemos que verificar es la conexin a internet, es decir, si se debe configurar la direccin de un proxy, o si esta directamente conectado. Si es el caso que debemos configurar o exportar el proxy digitamos el siguiente comando por consola o por terminal: export http_proxy=http:// y la direccion de ip del proxy con el numero de puerto de http que es el puerto 80. Ahora si, pasamos a instalar y configurar el servicio FTP en Ubuntu. Primero, se debe entrar en modo Superusuario con el comando sudo bash, si lo requiere se da la contrasea; adems se debe Actualizar los repositorios de Ubuntu con el comando apt-get update. Esto lo haremos entrando a la lnea de comandos, que en Linux es llamado Terminal. Y pasamos a instalar los paquetes necesarios con la siguiente linea de comandos: apt-get install vsftpd mysql-server y libpam-mysql. Con esta linea de comandos instalaremos el paquete ftp, el servidor mysql, y la librera que permite la comunicacin entre mysql y ftp.
Nota:se puede instalar los tres paquetes de una vez, o si se quiere se puede instalar cada uno.

Despues de instalar los paquetes procedemos a ingresar al motor de base de datos mysql con el comando: mysql -u root -p. Ahora creamos el usario para mysql con esto se elimina la necesidad de usar el root de mysql cuando ftp necesite realizar alguna accion.

Despues de los pasos anteriores que eran los pasos basicos de instalacion de los paquetes, continuamos ingresando a la base de datos con el comando use mysql precedido del punto y coma. Creamos el usuario en mysql con esta liena de comandos:

insert into user (host, user , password) (localhost,andres,password(123));

values

al frente agregamos los valores correspondientes ya sean nombre del host, nombre del usuario, el password va dentro de parentesis y con comilla al principio y comilla al final despues de copiar este comando al final de la sintaxis terminamos con punto y coma. Luego agregamos una nueva base de datos con esta linea de comandos:

insert into db (host, db, user, (localhost,vsftpd,andres,Y);

select_priv)

values

Luego actualizamos los privilegios del usuario anteriormente creado en nuestra base de datos: flush privileges; El siguiente paso es crear la base de datos para vsftpd, digitamos la siguiente linea de comandos:

create database vsftpd;


Luego ingresamos a la base de datos creada con el siguiente comando: use vsftpd; Creamos la tabla para el catalogo de usuarios que le vamos a asociar al ftp. Create table seguido del nombre que le vamos a dar a dicha tabla por ejemplo: Create table `usuarios` (el nombre de la tabla debe escribirse con

dos apostrofes) y terminar con un parentesis abierto. En la siguiente linea agregamos el nombre de la columna `usuario` y varchar que significa el numero maximo de caracteres que va a tener la columna, el not null default que es para que no quede vacia la columna , este comando seguido de dos comillas y una coma. `usuario` varchar(30) not null default ' ', y el password igual solamente que al final se agregan solamente las dos comillas y se omite la coma: `password` varchar(50) not null default '' y al final parentesis cerrado y punto y coma. );

Despues de esto salimos de mysql y continuaremos con los demas pasos. Agregamos el usuario para el ftp con mysql, con la siguiente linea

de comandos: #useradd --home /home/andres --gid nogroup -m --shell /bin/false andres despues pasamos vsftpd.conf a modificar el archivo de configuracion

#nano /etc/vsftpd.conf modificando los siguientes parametros el resultado sera este omitiendo el numeral Estos son las lineas que debe dejarse para que el servicio pueda arrancar: listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES nopriv_user=andres (el nombre que le dimos al crear nuestro usuario) chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem guest_enable=YES guest_username=andres local_root=/home/andres/$USER (el nombre de la ruta ) user_sub_token=$USER virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf

despues de esto modificamos el archivo de configuracion del libpam con el editor nano. Este archivo es el encargado de informarle al vsftpd de donde debe sacar la informacion acerca de los usuarios . Para modificar el fichero entramos por esta ruta: #nano /etc/pam.d/vsftpd

Este fichero sera editado con el fin de enlazar mysql y vsftpd. Dgitaremos las siguientes lineas: auth required /lib/security/pam_mysql.so user=andres passwd=PASSWORDQUEPUSISTE host=localhost db=vsftpd table=usuarios usercolumn=usuario passwdcolumn=password crypt=2 modificamos el nombre de usuario y el password el password que ponemos aqu es el que le dimos al usuario que creamos para mysql. account required /lib/security/pam_mysql.so user=andres passwd=PASSWORDQUEPUSISTE host=localhost db=vsftpd table=usuarios usercolumn=usuario passwdcolumn=password crypt=2 modificamos el nombre de usuario y el password.

Luego, como prueba, creamos un usuario en la tabla de usuarios el cual se va a llamar felipe. Para esto ingresamos nuevamente a mysql. Recordemos como hacerlo: mysql -u root p Damos la contrasea y listo estaremos dentro de mysql. Cambiamos la db (base de datos) (creada con anterioridad), usando esta linea: Use vsftpd; All digitamos la siguiente linea de comandos: insert into usuarios (usuario, password) values ( 'felipe',password('123')); Con esta estamos creando un usuario con su respectiva contrasea, dentro de la tabla ya creada (usuarios). Luego, creamos el directorio home para el usuario en el root de nuestra maquina # mkdir /home/andres/felipe Entramos en el home de andres, usuario creado para el ftp: # cd /home/andres Nos paramos con el comando cd en /home/andres, con mkdir creas el directorio para el usuario de prueba felipe. Cambiamos el propietario del nuevo usuario con el siguiente comando: chown andres:nogroup felipe Para terminar reiniciamos el servicio con el comando: #service vsftpd restart

Ya reiniciado nuestro servicio procedemos a verificarlo entrando al ftp. Para esto escribimos #ftp localhost El nos pide que ingresemos el usuario que en este caso es el reemplazado anteriormente felipe y damos el password. Nos debe aparecer login successful

As comprobamos que nuestro ftp con mysql esta listo. Algunos comandos en mysql: use vsftpd; "Con este comando ingresamos en la base de datos llamada vsftpd" show tables; "Este comando sirve para mostrar el nombre de la tabla" show databases; nos muestra la lista de las bases de datos de

nuestro servidor. select *from usuarios; "Este comando nos muestra los usuarios que se encuentran dentro de la tabla usuarios" describe usuarios; "este comando nos muetra una informacin detallada de la tabla usuarios" select User from user; "este comando nos sirve para ver los usuarios que se encuentran dentro del motor mysql y solo funciona parado en use mysql;

Despues comprobamos que usuarios existen dentro de nuestra tabla con el comando select *from usuarios; (el nombre de nuestra tabla) y comprobamos que el password esta encriptado. Ahora, si deseamos obtener informacin sobre una tabla, para saber qu campos tiene y de qu tipo, podremos utilizar el comando describe seguido del nombre de la tabla.

Agradecimientos Ricardo Cano

NOTA: Se debe tener en cuenta que este servicio fue configurado en una Mquina Virtual, llamada SUN VIRTUALBOX 3.1.0 para Linux, descargado de http://www.virtualbox.org/wiki/Downloads.

También podría gustarte