6,626 bytes added
, 13:25, 14 March 2018
= Pilaf =
[https://www.lucidchart.com/invitations/accept/3a44a7b6-b1b3-4099-8feb-942fee40e067 Diagrama Arquitectura y Funcional]
== Configuracion previa necesaria para copia desde temporales a t302==
=== AutoLogin Windows ===
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]
<source>
"AutoAdminLogon"="1"
"DefaultUserName"="your-admin-account"
"DefaultDomainName"="yourdomain.local"
"DefaultPassword"=
"YourAdminPasswordRevealedToThePublicByAStupidAdmin"
</source>
== Programas necesarios para transferencia segura entre t302 y s314 ==
=== Windows ===
- '''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 ===
- '''Rsync'''
<source lang="bash">
sudo apt install rsync
</source>
- '''Stunnel'''
<source lang="bash">
sudo apt install stunnel4
</source>
== Instalacion y configuracion para transferencia segura entre t302 y s314 ==
=== Windows ===
==== Deltacopy Server ====
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.
<source>
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 =
</source>
==== Stunnel Server ====
Para instalar stunnel como servicio de windows debemos ir a la carpeta de instalacion y introducir en cmd:
<source>
stunnel --install
</source>
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:
<source>
client = no
sslVersion = TLSv1
verify = 2
CAfile = stunnel.pem
[rsync]
accept = 8888
connect = 127.0.0.1:873
cert = stunnel.pem
</source>
'''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 ===
==== Stunnel Client ====
El archivo de configuracion de stunnel esta en /etc/stunnel/stunnel.conf y quedaria mas o menos asi:
<source>
sslVersion = TLSv1
cert = /etc/stunnel/stunnel.pem
client = yes
[rsync]
accept = 127.0.0.1:873
connect = 192.168.65.148:8888
</source>
'''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 ====
<source>
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/
</source>
* 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==
<source>
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/
</source>
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 ==
Desde s314 pilaf procesos en /home/turing:
<source>
#!/bin/bash
rsync -avz /home/turing/pilaf/ --chmod=777 -p 127.0.0.1::ScriptPilaf
</source>
== Importante ==
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
<source>
netstat -aon
</source>
para ver que puertos estan abiertos y en que interfaces.
En linux igual.
Si se quiere se puede generar un certificado diferente.