24
Rocío 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 rápida y sencilla entre ordenadores. Se utiliza para compartir archivos y directorios, pudiendo establecer autentificación de usuarios (con nombre y contraseña) y permisos sobre los elementos compartidos. Los servidores FTP se usan principalmente para tres cosas: 1. Subir las páginas web al hosting. 2. Como servidor de archivos de libre acceso (denominado FTP anónimo). Los FTP anónimos son servidores FTP a los que puede conectarse cualquiera empleando como usuario anonymous y como password cualquier dirección 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 máquina remota, y que por defecto, estará escuchando en los puertos 20 y 21 TCP (el puerto 20 se utiliza para la transmisión de datos y el puerto 21 para los comandos de control). un cliente FTP para conectarnos al servidor. Instalación del servidor FTP 1- Para iniciar con la instalación del servidor FTP, tenemos que abrir la terminal root, haciendo click en Aplicaciones Accesorios Terminal root.

Servidor FTP

Embed Size (px)

DESCRIPTION

Manual de servidor FTP en Debian 6

Citation preview

  • 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

    Roco Alt. Abreu O. 2009-3393

    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).

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

    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.

    Dirgete al lugar donde est el archivo que subirs.

    Usuario ftp

    Mensaje de bienvenida.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    3- Observa que del lado derecho aparecen los archivos ubicados en el servidor desde

    ah puedes observar los archivos para descargar.

    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.

    Directorio

    local.

    Directorio

    remoto.

    Area para observar el progreso de

    la transferencia.

    En esta rea se te muestra todo

    por lneas de comando.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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]

  • Servidor FTP

    Roco Alt. Abreu O. 2009-3393

    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.