Sei sulla pagina 1di 24

Roco Alt.

Abreu Ortiz 2009-3393

Servidor FTP
FTP (File Transfer Protocol, Protocolo de Transferencia de Archivos) es un protocolo de
red que permite transferir archivos de forma rpida y sencilla entre ordenadores. Se
utiliza para compartir archivos y directorios, pudiendo establecer autentificacin de
usuarios (con nombre y contrasea) y permisos sobre los elementos compartidos.
Los servidores FTP se usan principalmente para tres cosas:
1. Subir las pginas web al hosting.
2. Como servidor de archivos de libre acceso (denominado FTP annimo). Los FTP
annimos son servidores FTP a los que puede conectarse cualquiera empleando
como usuario anonymous y como password cualquier direccin de correo (servir
cualquier secuencia de caracteres que incluya "@").
3. Hacer backup (copia de seguridad).
Este protocolo se implementa con arquitectura cliente-servidor, por lo que necesita:

Un servidor FTP que se est ejecutando en la mquina remota, y que por defecto,
estar escuchando en los puertos 20 y 21 TCP (el puerto 20 se utiliza para la
transmisin de datos y el puerto 21 para los comandos de control).

un cliente FTP para conectarnos al servidor.

Instalacin del servidor FTP


1- Para iniciar con la instalacin del servidor FTP, tenemos que abrir la terminal root,
haciendo click en Aplicaciones Accesorios Terminal root.

Servidor FTP

El servidor FTP que usar ser ProFTPd, debe ser uno de los mejores servidores ftp
que existen para Linux (tambin se lo puede utilizar en otros sistemas operativos). Es
seguro, sumamente flexible, modular y fcil de configurar. Entre todas las
caractersticas que tiene, las ms rescatables son:

Permite autenticar usuarios con casi cualquier cosa.


Se pueden utilizar servidores virtuales de ftp.
Se pueden tener mltiples servidores brindando servicio de ftp annimo.

Es modular (lo que permite extender su funcionalidad ampliamente), un usuario con


acceso por ftp nicamente no requiere de una configuracin especial, y su cdigo es
libre (esta licenciando bajo GLP).
2- Para poder instalarlo debes escribir en la terminal apt-get install proftpd y
presionar Enter.

3- A principio de la instalacin, vers aparecer una pantalla azul (esto es en mi caso),


en la cual tendrs que elegir el modo en que se ejecutar ProFTPd, ya sea de inetd
o independiente. A la hora de seleccionar, ten presente la cantidad de trfico que
tendr tu servidor de archivos (FTP).

Roco Alt. Abreu O. 2009-3393

Servidor FTP
Para este tutorial, seleccionar la opcin Independiente.

4- Para verificar que nuestro servidor ftp est instalado, utilizaremos el comando
service status-all

Tenemos que tener en cuenta los siguientes ficheros que son cruciales para la
configuracin del ProFTPd:
/etc/init.d/proftd : fichero que inicia el servidor ftp.
/usr/bin/proftpd : archivo ejecutable.
/etc/proftpd.conf : Es el fichero de configuracin del servidor.
/etc/ftpusers : fichero que contiene una lista de usuarios que no se podrn conectar al
servidor.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

5- Ahora, configuraremos el servidor ftp modificando el archivo proftpd.conf. Escribe en


la terminal nano /etc/proftpd/proftpd.conf
En la primera parte, desactiva el soporte la IPv6 (actualmente no se est empleando
esa versin del protocolo IP) y cambia ServerName (nombre del servidor).

6- Configuraremos el servidor ftp, para que slo un usuario especifico puede acceder a
los archivos compartidos en el ftp. Para esto debes ubicar la lnea que dice
DefaultRoot e indicar el directorio ftp que se crea automticamente instalas el
ProFTPd en este caso /home/ftp.

7- Dentro del directorio /home/ftp, esta un archivo Welcome.msg que contiene el


mensaje de bienvenida para cuando el usuario se autntique.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Para habilitar que se muestre ese mensaje, descomenta (quitar el smbolo #) de las
lneas: DisplayLogin y DisplayChdir.

8- Para designar que usuario tendr el acceso al servidor, debes ubicar la lnea que
dice: # Set the user and group that the server normally runs at. Especifica el
usuario que desees, y que ya est creado en el sistema operativo.

Por ltimo, guarda los cambios presionando CTRL + O y cierra la ventana presionando
CTRL + X.
9- Para que los cambios tengan efecto, debemos de reiniciar el servicio ProFTPd,
escribiendo /etc/init.d/proftpd restart

10- Verifica que el directorio ftp, se encuentra en /home. Entonces, escribe cd .. para
dirigirte a home y luego ls.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

11- Hay que modificar los permisos del directorio ftp, para que sea permitido subir y
descargar archivos. Para eso emplear el comando chmod 777 ftp. Luego escribe
ls l para comprobar que los permisos se le han otorgado.

12- Para especificar que el nombre que le pusimos al servidor ftp este vinculado con la
direccin IP del servidor, hay que modificar el fichero /etc/hosts. Para eso escribe
nano /etc/hosts.

Vuelve y reinicia el servidor ftp, escribiendo /etc/init.d/proftpd restart.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Subir y bajar archivos por lneas de comandos


Subir
1- En primer lugar, debemos ingresar al servidor, escribiendo ftp [nombre del
servidor] [direccin IP] Recuerda que para ingresar debers introducir el nombre
de usuario que especificaste en el archivo /etc/proftpd/proftpd.conf, junto a su
contrasea.
Dirgete al lugar donde est el archivo que subirs.

Usuario ftp

Mensaje de bienvenida.

2- Escribe help para visualizar todos los comando que puedes utilizar dentro del modo
ftp>

3- Para subir archivo, utilizaremos el comando put + el nombre del archivo.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

No se te puede olvidar especificar la extensin si posee. Entonces, como pudieron


ver ms arriba estoy en la carpeta Escritorio, ah est el archivo que subir llamado
Holapruebaftp.jpg. Put Holapruebaftp.jpg

4- Para subir ms de un archivo al mismo tiempo, puedes emplear el comando mput


seguido de los nombre de los archivos con su extensin.

Descargar
1- Para realizar una descarga, se utiliza el comando get seguido del nombre del
archivo. En mi directorio ftp esta un archivo llamado PruebaFTP.docx y es el que
utilizar para la demostracin.

2- Si deseas descargar varios archivos al mismo tiempo, puedes usar el comando


mget seguido de los nombres de los archivos a descargar.
Observa como primero tienes que confirmar
que ese es el archivo que deseas, y luego
procede a descargarse.

Te indica que se ha transferido, e


inmediatamente se repite el proceso con el
siguiente archivo.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Si te preguntas en que parte de tu sistema operativo se encuentran los archivos y/o


documentos que descargaste, un comando til es lcd que te muestra la ruta del
directorio local.

Renombrar archivos.
Para cambiarle el nombre a un archivo que hayas descargado, solo tienes que emplear
el comando rename [nombre anterior] [nombre nuevo].

Salir del modo ftp>


Para salir del modo ftp>, puedes hacer uso de varios comandos entre ellos: bye, quit y
disconnect

Ya en el prompt local, escribe dir para comprobar que estn tus descargas.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Subir y bajar archivo utilizando un cliente FTP.


El cliente ftp que utilizar, ser gFTP. gFTP es un cliente FTP multihilo de cdigo
abierto y libre. Hay soporte para los protocolos FTP, FTPS (slo conexin de
control), HTTP, HTTPS, SFTP y FSP. Tambin ofrece soporte como servidor proxy para
FTP y HTTP y transferencias de ficheros FXP (transfiriendo ficheros entre dos
servidores remotos va FTP).
La interfaz grfica utiliza una distribucin de doble panel, con el sistema de ficheros
local en el panel izquierdo y el sistema remoto en el panel derecho.

Instalacin de gFTP
Para instalarlo, solo tienes que estar conectado a internet y escribir en la terminal
apt-get install gftp. Vers que se iniciar a descargar los paquetes, solo tendrs que
esperar a que concluya todo y listo.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Subir archivos.
1- Tenemos que abrir el cliente ftp, para eso haz click en Aplicaciones Internet
gFTP.

2- Esta es la interfaz de nuestro cliente gFTP, en la casilla servidor debes escribir la


direccin IP del servidor ftp o el nombre del mismo, el puerto es 21 por default, en la
casilla Usuario debes escribir el nombre que especificaste en el archivo proftpd.conf
con su respectiva contrasea.

Luego, de haber introducido la informacin especificada anteriormente, haz click en


el icono de las computadoras para conectarte.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

3- Observa que del lado derecho aparecen los archivos ubicados en el servidor desde
ah puedes observar los archivos para descargar.

Directorio
remoto.

Directorio
local.

Area para observar el progreso de


la transferencia.

En esta rea se te muestra todo


por lneas de comando.

4- Para subir uno o ms archivos, solo tienes que dirigirte al directorio en donde estn,
seleccionarlo y hacer click en el botn
Se transfiere el archivo, y podrs verlo en el rea del directorio remoto.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

5- En esta imagen puedes observar la subida de varios archivos al mismo tiempo, solo
tiene que seleccionarlos y hacer click en el botn.

Descargar archivos
1- Para descargar archivos por medio del cliente gFTP, solo tiene que seleccionar
el archivo y hacer click en el botn .
Observa en la imagen, como del lado del directorio local, estn seleccionados los
archivos (calculadora.sh, Compartir, usuarios.sh). Luego de haber hecho click en el
botn de descarga, aparecen del lado del directorio remoto.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Si haces una descarga de un o unos archivo/s que pensen ms de 2 MB, podrs ver el
progreso de la transferencia y lo que va sucediendo por medio de lneas de comandos.

Script para subir un backup al servidor ftp


Crear backup
1- Primero, crearemos el script que crear el backup copia de seguridad. Para eso
escribe gedit [nombre del archivo].sh

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Detalles del script


#!/bin/bash
Indica bajo que shell se ejecutar este script. Recuerda el Shell es un programa
interface, que se provee como un elemento comunicacional entre el usuario y el sistema
operativo. Tiene como funcin aceptar los comandos escritos y ejecutarlos.
echo "**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--*"
echo "||

Se acaba de iniciar un script para crear un backup ||"

echo "**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--**--*"
Mensaje de bienvenida para que el usuario sepa que script se est ejecutando.
echo ""
Para separar el mensaje de bienvenida, del mensaje que sigue.
echo "El backup de la carpeta Documentos, acaba de iniciar!!!"
Indica basado en que carpeta se crear el backup.
var1=/home/rocio/
Esta variable guarda la ubicacin del directorio Documentos, del cul se crear el script.
cd $var1
El comando cd se emplea para cambiar de directorio, y en este caso se dirigir a la ruta
ubicacin que guarda var1.
var2=Documentos
Esta variable guarda la palabra Documentos para ser utilizada en otra lnea ms abajo.
echo "La carpeta de destino es backup_ftp ubicada en el Escritorio"
Le muestra al usuario en donde se guardar el backup una vez haya finalizado el script
FECHA=`date +%Y-%m-%d`
La variable FECHA mantiene almacenada el da, mes y ao, del momento que se
ejecuto el archivo .sh. Este almacenamiento no es permanente.
echo "Comprimiendo los datos...."
sleep 2
Agrega una demora de 2 segundos para que se procese la otra lnea.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

tar -cvzf $var2$FECHA.tar.gz /$var1/$var2


La lnea tar cvzf $var2$FECHA.tar.gz $/var1/$var2 es la que se encarga de
comprimir el directorio indicado en var2 que se encuentra en la ruta indicada en var1.
Entonces, en un lenguaje simple esta lnea dice: Crame un nuevo archivo, mustrame
todo lo que sucede, comprmelo y empaqutalo. El nombre con el cual se crear el
nuevo archivo est indicado en $var2$FECHA que indica que ser el mismo nombre
del archivo original pero agregndole la fecha. Esto te ayuda a tener un orden entre las
diversas copias que puedes tener.
mv /home/rocio/*.tar.gz /home/rocio/Escritorio/backup_ftp
indica que se mueva todos los archivo que tengan por extensin .tar.gz al directorio
Escritorio a la carpeta backup_ftp.
echo ""
echo "El backup ha sido realizado satisfactoriamente"
Mensaje que indica que ha finalizado y que todo ha salido bien.
Cuando hayas creado el archivo.sh vers este icono, que te permitir identificarlo
de entre los otros.

2- Ahora tenemos que crear la carpeta que enunciamos en el contenido del script
backup_ftp. Ubcate en el directorio Escritorio y escribe mkdir backup_ftp.

Debes darle permisos a la carpeta para que permita leer y escribir, por lo cul debes
escribir chmod 755 backup_ftp

Estos son permisos POSIX (Portable Operating System Interface UniX), Sistema de
permisos estndar en sistemas Unix. Divide los permisos de cada fichero en tres
niveles, dueo, grupo y resto, aplicndole a cada usuario el nivel correspondiente. Para
cada nivel existen 3 tipos de permiso, lectura, escritura y ejecucion.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

3- Para comprobar que el directorio backup_ftp ha sido creado de manera exitosa,


introduce el comando ls l.

4- Vamos a probar el script. Escribe sh ftpbackup.sh y presiona Enter.

Fjate que se ha producido ningn error durante su ejecucin, por lo tanto el


script es funcional.
Dirgete a la carpeta backup_ftp, y revisa que este el paquete .tar.gz

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Script para subir el backup


1- Para crear el archivo .sh (script), tienes que escribir gedit subirbackup.sh.

2- Una vez se abra la ventana lo primero que debes escribir es #! /bin/bash indicando
bajo que Shell se ejecutarn los comandos.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Detalles del script


#!/bin/bash
echo "Conectando y autenticando con el servidor de FTP"
Mensaje que da inicio e indica que lo primero que se har es conectarse y autenticarse
en el servidro FTP.
echo ""
Para separar el mensaje de autenticacin, del mensaje que sigue.
FECHA=`date +%Y-%m-%d`
La variable FECHA mantiene almacenada el da, mes y ao, del momento que se
ejecuto el archivo .sh. Este almacenamiento no es permanente.
HOST=192.168.1.115
La variable HOST, almacena la direccin IP del servidor ftp, tambin puedes escribir
aqu el nombre en caso de que lo tengas especificado.
USER=rocio
Esta variable USER almacena el nombre del usuario que puede entrar al ftp. Recuerda
que en la parte de la configuracin del ProFTPd lo especificamos.
PASSWD=contrasea
La variable PASSWD tiene almacenado la contrasea del usuario, la misma que
introduces cuando accedes al ftp por la terminal.
cd /home/rocio/Escritorio/backup_ftp
El comando cd te permite cambiar de directorio, entonces aqu debes especificar la ruta
en la cul se encuentra el backup que subirs.
echo "Enviando backup de la carpeta Documentos"
Este es un mensaje para orientar en que parte est el proceso.
A partir de aqu todos los comandos empleados ser dentro del modo ftp>
ftp -n $HOST << END_SCRIPT
Aqu se enuncia el comando ftp n que permite iniciar la conexin con el nombre
valor guardado en la variable HOST. El smbolo $ es para que ejecute la informacin
almacenada en esa variable.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

quote USER $USER


Quote= enva comando ftp arbitrario. Aqu se pide que se ejecute la informacin que
almacena la variable USER, que en este caso es el nombre del usuario ftp.
quote PASS $PASSWD
Aqu se pide que se ejecute la informacin que almacena la variable PASSWD, que en
este caso es la contrasea del usuario ftp
binary
Para configurar y transferir archivos tipo binario.
put Documentos$FECHA.tar.gz
El comando put, permite subir archivo. En este caso, ser el archivo ubicado en la
carpeta /home/rocio/Escritorio/backup_ftp llamado Documentos + la fecha.tar.gz
sleep 3
Agrega una demora de 2 segundos para que se procese la otra lnea.
quit
Comando que me permite salir del modo ftp>
END_SCRIPT
Finaliza el script dentro del ftp.
echo "Archivo enviado correctamente"
echo "rox-ftpserver!

3- Una vez hayas escrito el contenido del script, y hayas verificado que corresponde a
tus datos. Gurdalo y cierra la ventana. Tendrs un archivo similar a este:

4- Vamos a probar el script. Escribe sh subirbackup.sh y presiona Enter.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

5- Vamos a comprobar que el paquete o archivo se encuentra el directorio del ftp, en


mi caso es en /home/ftp. Dentro de este directorio escribe ls para lista el contenido.

Buscndolo directamente por medio grfico.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Script para descargar el backup


Este script es el mismo que el anterior solo hay que cambiarle un comando por otro.
1- Tenemos que crear el archivo, con el comando gedit [nombre del archivo].sh. En
mi caso bajarbackup.sh
2- Escribe el mismo contenido que tiene el script para subir un backup, y solo cmbiale
donde dice put Documentos$FECHA.tar.gz por el comando get. Cambia el
directorio haca donde se guardar el archivo una vez descargado. En la parte cd
/home/rocio/Escritorio.

Gurdalo y cierra la ventana.


3- Para ejecutarlo, escribe sh bajarbackup.sh en la terminal.

Roco Alt. Abreu O. 2009-3393

Servidor FTP

4- Estando en el directorio Escritorio, escribe ls para mostrar el contenido.

Programa script con CRON


1- Para programar los script con CRON, es decir que se ejecute automticamente.
Escribe en la consola crontab e y se abrir el editor nano para realizar la
programacin.
Crontab e se emplea para facilitar la informacin al cron de los programas que hay
programados para ser ejecutados.
La sintaxis de la lnea a aadir en este archivo para programar una nueva tarea es:
[hora] [minuto] [dia_del_mes] [mes] [dia_de_la_semana] [comando]

Roco Alt. Abreu O. 2009-3393

Servidor FTP

Yo he especificado que se ejecute a las 1:00 p.m, los viernes de cada semana. De esta forma,
para programar la tarea de subir el backup todos los viernes a las 1:00, la lnea a aadir en el
archivo abierto por nano con las tareas de cron asociadas al usuario, deber ser la siguiente:

0 0 * * 5 sh /home/rocio/Escritorio/subirbackup.sh
El smbolo asterisco ( * ) significa que abarcar todos los das, horas, etc., segn el campo que
se especifique.
Para el otro archivo, he especificado que se ejecute a las 2:00 p.m todos los sbados.

0 0 * * 6 sh /home/rocio/Escritorio/bajarbackup.sh
Para guardar presiona CTRL + O y cierra la ventana presionando CTRL + X
Para visualizar el contenido de crontab, escribe crontab l para listar los archivos
programados.

Roco Alt. Abreu O. 2009-3393

Potrebbero piacerti anche