Nombre:
Misael Acosta Ayala
ID:
2011-3779
Asignatura:
Sistemas Operativos III
Instructor:
José Doñe
Tema:
Servidor FTP
Instalación del servidor FTP
Para iniciar con la instalación del servidor FTP, tenemos que abrir la terminal root.
El servidor FTP que usaré será ProFTPd, para poder instalarlo debes escribir en la terminal apt- get install proftpd y presionar Enter.
A principio de la instalación, verás aparecer una pantalla gris (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.
Para este tutorial, seleccionaré la opción “Independiente”.
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.
Ahora, configuraremos el servidor ftp modificando el archivo proftpd.conf. Escribe en la terminal gedit /etc/proftpd/proftpd.conf.En la primera parte, desactiva el soporte la IPv6 y cambia ServerName (nombre del servidor).
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 cuando instalas el ProFTPd en este caso /home/ftp.
Dentro del directorio /home/ftp, está un archivo Welcome.msg que contiene el mensaje de bienvenida para cuando el usuario se autentique. Para habilitar que se muestre ese mensaje, descomenta (quitar el símbolo #) de las líneas: DisplayLogin y DisplayChdir.
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.
Para que los cambios tengan efecto, debemos de reiniciar el servicio ProFTPd, escribiendo /etc/init.d/proftpd restart
Verifica que el directorio ftp, se encuentra en /home. Entonces, escribe cd /home para dirigirte a home y luego ls.
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.
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.
Subir y bajar archivos por líneas de comandos Subir
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.
Escribe help para visualizar todos los comando que puedes utilizar dentro del modo ftp>
Para subir archivo, utilizaremos el comando put + el nombre del archivo. 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 pruebaftp.jpg. Put pruebaftp.jpg
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
Para realizar una descarga, se utiliza el comando get seguido del nombre del archivo. En mi directorio ftp esta un archivo llamado pruebaftp.jpg y es el que utilizaré para la demostración.
Si deseas descargar varios archivos al mismo tiempo, puedes usar el comando mget seguido de los nombres de los archivos a descargar.
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.
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.
Script para subir un backup al servidor ftp
Crear backupPrimero, crearemos el script que creará el backup ó copia de seguridad. Para eso escribe gedit [nombre del archivo].sh
Detalles del script
#!/bin/bash
Indica bajo que shell se ejecutará este script.
Echo
Sirve para poner mensajes dentro del script var1=/home/gregorio/
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.
FECHA=`date +%Y-%m-%d`
La variable FECHA mantiene almacenada el día, mes y año, del momento que se ejecutó el archivo .sh. Este almacenamiento no es permanente.
sleep 2
Agrega una demora de 2 segundos para que se procese la otra línea.
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/misael/*.tar.gz /home/misael/Escritorio/backup_ftp
Indica que se mueva todos los archivos que tengan por extensión .tar.gz al directorio Escritorio a la carpeta backup_ftp.
Cuando hayas creado el archivo.sh verás este icono, que te permitirá identificarlo de entre los otros.
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 cual debes escribir chmod 755 backup_ftp
Vamos a probar el script. Escribe sh ftpbackup.sh y presiona Enter.
Script para subir el backup
Para crear el script escribimos gedit subirbackup.sh
Luego escribimos los siguientes parámetros en nuestro script
Detalles del script
#!/bin/bash
Indica bajo que shell se ejecutará este script.
Echo
Sirve para poner mensajes dentro del script FECHA=`date +%Y-%m-%d`
La variable FECHA mantiene almacenada el día, mes y año, del momento que se ejecutó el archivo .sh. Este almacenamiento no es permanente.
HOST=192.168.1.1
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=misael
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/misael/Escritorio/backup-ftp
El comando cd te permite cambiar de directorio, entonces aquí debes especificar la ruta en la cual se encuentra el backup que subirás.
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 conexión con el nombre ó valor guardado en la variable HOST. El símbolo $ es para que ejecute la información almacenada en esa variable.
quote USER $USER
Quote= envía comando ftp arbitrario. Aquí se pide que se ejecute la información 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 información que almacena la variable PASSWD, que en este caso es la contraseña 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
quit
Comando que me permite salir del modo ftp>
END_SCRIPT
Finaliza el script dentro del ftp.
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:
Vamos a probar el script. Escribe sh subirbackup.sh y presiona Enter.
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.
Script para descargar el backup
Este script es el mismo que el anterior solo hay que cambiarle un comando por otro.
Tenemos que crear el archivo, con el comando gedit [nombre del archivo].sh. En mi caso bajarbackup.sh
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/misael/Escritorio
Para ejecutarlo, escribe sh bajarbackup.sh en la terminal.
Estando en el directorio Escritorio, escribe ls para mostrar el contenido.
Programa script con CRON
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:
[minuto] [hora] [dia_del_mes] [mes] [dia_de_la_semana] [comando]
El que está marcado de rojo indica que el backup se llevara a cabo todos los viernes a las 9:58 a.m., el que esta de rojo indica que el backup se subirá al servidor FTP a las 10:00 a.m. y el color naranja indica que el backup será descargado los sábados a las 10:00 a.m.
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.