Pilaf

From RHS Wiki
Revision as of 20:13, 17 March 2018 by Rafahsolis (talk | contribs) (→‎Deltacopy Server)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Pilaf[edit]

Diagrama Arquitectura y Funcional

Configuracion previa necesaria para copia desde temporales a t302[edit]

AutoLogin Windows[edit]

Pilaf necesita un usuario y password del dominio hardcodeado en el registro para poder iniciar sesion automaticamente al encender y asi poder acceder a las carpetas temporales con ese usuario.

Existe una forma de introducir el password sin hardcodearlo pero a veces falla. Cada vez que se cambia el password se tiene que volver a introducir en la maquina

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

"AutoAdminLogon"="1"
"DefaultUserName"="your-admin-account"
"DefaultDomainName"="yourdomain.local"
"DefaultPassword"="YourAdminPasswordRevealedToThePublicByAStupidAdmin"

Programas necesarios para transferencia segura entre t302 y s314[edit]

Windows[edit]

- Deltacopy (http://www.aboutmyip.com/AboutMyXApp/DeltaCopyDownloadInstaller.jsp) Es un cliente/servidor de rsync grafico para windows para el que no necesitas SSH ni instalar nada mas, la informacion viaja en claro

- Stunnel (https://www.stunnel.org/downloads/stunnel-5.42-win32-installer.exe)

Linux[edit]

- Rsync

sudo apt install rsync

- Stunnel

sudo apt install stunnel4

Instalacion y configuracion para transferencia segura entre t302 y s314[edit]

Windows[edit]

Deltacopy Server[edit]

Lo lanzamos y nos dira que hagamos clic para instalarlo como servicio y posteriormente nos aparecera un semaforo que indica si el servidor esta corriendo o no y dos botones para pararlo o iniciarlo.

Para compartir una carpeta usando rsync debemos ir a "virtual directories" una vez alli darle a <Add New Directory> y introducir el path, no es necesario darle a las opciones de read only o usar autenticacion ya que para eso tenemos stunnel.

Para cambiar el puerto por defecto de rsync (873) o cambiar la ip en la que escucha(por defecto 0.0.0.0) podemos ir al archivo de configuracion de Deltacopy situado en la carpeta donde esta instalado y llamado "deltacd.conf".

En un equipo plataformado del BBVA no se pueden cambiar las reglas de firewall (al menos yo no pude, ya que el FW de windows no se puede activar) por lo que si queremos que el puerto 873 solo este disponible en 127.0.0.1 para evitar accesos que no sean a traves de Stunnel el archivo "deltacd.conf" debe quedar mas o menos asi.

use chroot = false
strict modes = false
port = 873
address = 127.0.0.1
[Backup]

    path = /cygdrive/c/Users/Rafa Marti/Downloads
    comment = Descargas
    read only = false
    auth users = 
    secrets file = 
[enclaro]

    path = /cygdrive/c/Users/Rafa Marti/Downloads/enclaro
    comment = prueba en claro
    read only = false
    auth users = 
    secrets file = 

Stunnel Server[edit]

Para instalar stunnel como servicio de windows debemos ir a la carpeta de instalacion y introducir en cmd:

stunnel --install

Como queremos instalar Stunnel como servidor y no como cliente el archivo de configuracion "stunnel.conf" que esta en la carpeta de instalacion de stunnel quedaria asi:

client = no
sslVersion = TLSv1
verify = 2
CAfile = stunnel.pem
[rsync]
accept = 8888
connect = 127.0.0.1:873
cert = stunnel.pem

Parametros

  • sslVersion: es necesaria para que solo funcione con la version mas segura de TLS
  • verify 2: es para que compruebe si el certificado es correcto y si no rechace la conexion
  • CAfile: es necesario para el funcionamiento en modo servidor.
  • accept: indica el puerto donde queda el servicio stunnel a la escucha
  • connect: indica el puerto al que pasara la conexion el servicio stunnel, en nuestro caso es al servicio rsync que esta disponible solo en local y en el puerto 873
  • cert: necesario para conectarse

Linux[edit]

Stunnel Client[edit]

El archivo de configuracion de stunnel esta en /etc/stunnel/stunnel.conf y quedaria mas o menos asi:

sslVersion = TLSv1
cert = /etc/stunnel/stunnel.pem
client = yes
[rsync]
accept = 127.0.0.1:873
connect = 192.168.65.148:8888

Parametros

  • sslVersion: es necesaria para que solo funcione con la version mas segura de TLS
  • cert: necesario para conectarse, debe ser el mismo que el del servidor
  • client: debe estar a yes para conectarse al servidor stunnel remoto
  • accept: es a donde tenemos que apuntar para conectarnos al rsync remoto
  • connect: es el servidor remoto en el que esta stunnel escuchando en 8888

Comando Rsync[edit]

rsync -avz --log-file="/home/daos/rsync/rsync.log.$(date +%Y%m%d%H%M%S)" --remove-source-files  127.0.0.1::enclaro /home/daos/Desktop/prueba/
  • el flag -a hace muchas cosas entre otras transferir recursivamente
  • -v es para ver mas informacion
  • -z es para que comprima antes de enviar
  • --remove-source-files es para que borre los archivos remotos una vez ya los tenemos copiados en local. OJO: No borra las carpetas remotas solo los archivos
  • 127.0.0.1 es la direccion en la que esta escuchando el cliente stunnel que lanzara la conexion al rsync remoto que esta tras el stunnel remoto
  • enclaro: es el nombre del "virtual directory" creado en Deltacopy en windows
  • /home/daos/Desktop/prueba/ es la direccion local a la que ira a parar la informacion de la carpeta remota
  • el log file es la carpeta en la que queremos que se guarden los logs de rsync

Poner Rsync como Cron en Linux[edit]

pgrep -f "rsync -avz --log-file=/home/daos/rsync/rsync.log" > /dev/null || rsync -avz --log-file="/home/daos/rsync/rsync.log.$(date +%Y%m%d%H%M%S)" --remove-source-files --exclude '*.tmp' 127.0.0.1::enclaro /home/daos/Desktop/prueba/

Al utilizar pgrep con el cron podemos asegurarnos de que no esta corriendo dos rsync contra la misma maquina y asi no chocan entre si. El comando superior esta preparado para funcionar con Pilaf.

Sincronizar Repo Git con codigo s302temporales[edit]

Desde s314 pilaf procesos en /home/turing:

#!/bin/bash
rsync -avz /home/turing/pilaf/ --chmod=777 -p 127.0.0.1::ScriptPilaf

Importante[edit]

Si no funciona, comprobar que tanto stunnel como Deltacopy estan funcionando como servicios en Windows, entrando al administrador de tareas y buscando en la pestaña de servicios. Otra forma de comprobarlo seria con el comando

netstat -aon

para ver que puertos estan abiertos y en que interfaces.

En linux igual.

Si se quiere se puede generar un certificado diferente.