You are on page 1of 14

SERVICIO FTP EN LINUX

Manual de Instalación y Configuración del Servicio


FTP sobre la plataforma Linux, Distribución 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 cliente-
servidor. 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 comunicación 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 algún 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 través del protocolo FTP. Se
distingue principalmente porque sus valores predeterminados son
muy seguros y por su sencillez en la configuración.
Actualmente se presume que vsftpd es quizá el servidor FTP más
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 contraseñas 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.
INSTALACIÓN Y CONFIGURACIÓN FTP

Antes de todo, lo primero que tenemos que verificar es la conexión


a internet, es decir, si se debe configurar la dirección 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 contraseña; además se debe
Actualizar los repositorios de Ubuntu con el comando apt-get
update. Esto lo haremos entrando a la línea 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 librería que permite la comunicación 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) values


(‘localhost’,’andres’,password(‘123’));

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, select_priv) values


(‘localhost’,’vsftpd’,’andres’,’Y’);
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 a modificar el archivo de configuracion


vsftpd.conf

#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 contraseña 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 contraseña,
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 información


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 información 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 Máquina Virtual, llamada SUN VIRTUALBOX 3.1.0 para Linux,
descargado de http://www.virtualbox.org/wiki/Downloads.

You might also like