Servidor FTP

Rocío Alt. Abreu Ortiz 2009-3393 Servidor FTP FTP (File Transfer Protocol, Protocolo de Transferencia de Archivos) es u

Views 211 Downloads 96 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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

El servidor FTP que usaré será ProFTPd, debe ser uno de los mejores servidores ftp que existen para Linux (también se lo puede utilizar en otros sistemas operativos). Es seguro, sumamente flexible, modular y fácil de configurar. Entre todas las características que tiene, las más rescatables son:   

Permite autenticar usuarios con casi cualquier cosa. Se pueden utilizar servidores virtuales de ftp. Se pueden tener múltiples servidores brindando servicio de ftp anónimo.

Es modular (lo que permite extender su funcionalidad ampliamente), un usuario con acceso por ftp únicamente no requiere de una configuración especial, y su código 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 instalación, verás aparecer una pantalla azul (esto es en mi caso), en la cual tendrás 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 tráfico que tendrá tu servidor de archivos (FTP).

Rocío Alt. Abreu O. 2009-3393

Servidor FTP Para este tutorial, seleccionaré la opción “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 configuración del ProFTPd: /etc/init.d/proftd : fichero que inicia el servidor ftp. /usr/bin/proftpd : archivo ejecutable. /etc/proftpd.conf : Es el fichero de configuración del servidor. /etc/ftpusers : fichero que contiene una lista de usuarios que no se podrán conectar al servidor.

Rocío 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 versión del protocolo IP) y cambia ServerName (nombre del servidor).

6- Configuraremos el servidor ftp, para que sólo un usuario especifico puede acceder a los archivos compartidos en el ftp. Para esto debes ubicar la línea que dice DefaultRoot e indicar el directorio ftp que se crea automáticamente 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 auténtique.

Rocío Alt. Abreu O. 2009-3393

Servidor FTP

Para habilitar que se muestre ese mensaje, descomenta (quitar el símbolo #) de las líneas: DisplayLogin y DisplayChdir.

8- Para designar que usuario tendrá el acceso al servidor, debes ubicar la línea 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.

Rocío 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 dirección 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.

Rocío Alt. Abreu O. 2009-3393

Servidor FTP

Subir y bajar archivos por líneas de comandos Subir 1- En primer lugar, debemos ingresar al servidor, escribiendo ftp [nombre del servidor] ó [dirección IP] Recuerda que para ingresar deberás introducir el nombre de usuario que especificaste en el archivo /etc/proftpd/proftpd.conf, junto a su contraseña. Dirígete al lugar donde está el archivo que subirás.

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.

Rocío Alt. Abreu O. 2009-3393

Servidor FTP

No se te puede olvidar especificar la extensión si posee. Entonces, como pudieron ver más arriba estoy en la carpeta Escritorio, ahí está el archivo que subiré llamado Holapruebaftp.jpg. Put Holapruebaftp.jpg

4- Para subir más de un archivo al mismo tiempo, puedes emplear el comando mput seguido de los nombre de los archivos con su extensión.

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 demostración.

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.

Rocío 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 están tus descargas.

Rocío 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 código abierto y libre. Hay soporte para los protocolos FTP, FTPS (sólo conexión de control), HTTP, HTTPS, SFTP y FSP. También ofrece soporte como servidor proxy para FTP y HTTP y transferencias de ficheros FXP (transfiriendo ficheros entre dos servidores remotos vía FTP). La interfaz gráfica utiliza una distribución de doble panel, con el sistema de ficheros local en el panel izquierdo y el sistema remoto en el panel derecho.

Instalación de gFTP Para instalarlo, solo tienes que estar conectado a internet y escribir en la terminal apt-get install gftp. Verás que se iniciará a descargar los paquetes, solo tendrás que esperar a que concluya todo y listo.

Rocío 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 dirección 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 contraseña.

Luego, de haber introducido la información especificada anteriormente, haz click en el icono de las computadoras para conectarte.

Rocío 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 líneas de comando.

4- Para subir uno o más archivos, solo tienes que dirigirte al directorio en donde están, seleccionarlo y hacer click en el botón Se transfiere el archivo, y podrás verlo en el área del directorio remoto.

Rocío 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 botón.

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

Rocío Alt. Abreu O. 2009-3393

Servidor FTP

Si haces una descarga de un o unos archivo/s que pensen más de 2 MB, podrás ver el progreso de la transferencia y lo que va sucediendo por medio de líneas 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

Rocío 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 función 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 ubicación del directorio Documentos, del cuál se creará el script. cd $var1 El comando cd se emplea para cambiar de directorio, y en este caso se dirigirá a la ruta ó ubicación que guarda var1. var2=Documentos Esta variable guarda la palabra Documentos para ser utilizada en otra línea más 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 día, mes y año, 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 línea.

Rocío Alt. Abreu O. 2009-3393

Servidor FTP

tar -cvzf $var2$FECHA.tar.gz /$var1/$var2 La línea 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 línea dice: “Créame un nuevo archivo, muéstrame todo lo que sucede, comprímelo y empaquétalo. 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 agregándole 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 extensión .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 verás 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”. Ubícate en el directorio Escritorio y escribe mkdir backup_ftp.

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

Estos son permisos POSIX (Portable Operating System Interface UniX), Sistema de permisos estándar en sistemas Unix. Divide los permisos de cada fichero en tres niveles, dueño, grupo y resto, aplicándole a cada usuario el nivel correspondiente. Para cada nivel existen 3 tipos de permiso, lectura, escritura y ejecucion.

Rocío 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.

Fíjate que se ha producido ningún error durante su ejecución, por lo tanto el script es funcional. Dirígete a la carpeta backup_ftp, y revisa que este el paquete .tar.gz

Rocío 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 ejecutarán los comandos.

Rocío 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 autenticación, del mensaje que sigue. FECHA=`date +%Y-%m-%d` La variable FECHA mantiene almacenada el día, mes y año, del momento que se ejecuto el archivo .sh. Este almacenamiento no es permanente. HOST=192.168.1.115 La variable HOST, almacena la dirección IP del servidor ftp, también 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 configuración del ProFTPd lo especificamos. PASSWD=contraseña La variable PASSWD tiene almacenado la contraseña 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 cuál se encuentra el backup que subirás. 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 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. Guárdalo y cierra la ventana. Tendrás un archivo similar a este:

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

Rocío 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.

Buscándolo directamente por medio gráfico.

Rocío 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 cámbiale donde dice put Documentos$FECHA.tar.gz por el comando get. Cambia el directorio hacía donde se guardará el archivo una vez descargado. En la parte cd /home/rocio/Escritorio.

Guárdalo y cierra la ventana. 3- Para ejecutarlo, escribe sh bajarbackup.sh en la terminal.

Rocío 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 automáticamente. Escribe en la consola crontab –e y se abrirá el editor nano para realizar la programación. Crontab –e se emplea para facilitar la información al cron de los programas que hay programados para ser ejecutados. La sintaxis de la línea a añadir en este archivo para programar una nueva tarea es: [hora] [minuto] [dia_del_mes] [mes] [dia_de_la_semana] [comando]

Rocío 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 línea a añadir 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 símbolo asterisco ( * ) significa que abarcará todos los días, horas, etc., según el campo que se especifique. Para el otro archivo, he especificado que se ejecute a las 2:00 p.m todos los sábados.

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.

Rocío Alt. Abreu O. 2009-3393