Upload
martin-santiago-rosas
View
8
Download
0
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.