Uživatelské nástroje

Nástroje pro tento web


progs:synchronizer

Synchonizace

Synchonizer

Program pro synchronizaci databází OBISu.

Návratové kódy (ERRORLEVEL):

  • 0: Bez problému
  • 1: Exception – synchronizace nedokončena
  • 2: Warning Critical – při běhu došlo ke kritickým problémům (tj. chyběly položky v DEST databázi)
  • 3: Warning – došlo k méně významným kolizím



Příkazy pro synchonizer:

  • cdb id databaze syncjmeno (nemusi byt v common_uzivatele, pouze 8 znaku - orezava se)
  • date id_databaze_na_kterou_je_omezeni_uplatneno databaze_odkud_jde_datum explicitni_datum [date] – nastavuje datum pro open, opt, check, sync; Nikam nic nezapisuje

V případě, že je použit nepovinný parametr date, vezme se toto datum.

  • open id_otevirane_databaze – open 0
  • opt id_databaze – opt 0
  • check master_db slave_db rusit (0 rusit master, 1 rusit slave) – check 0 1 1
  • sync source_db dest_db – synchronizace databazi; po uspesnem zakonceni nastavi datum do dest_db dle posledniho zaznamu z logu source_db s uzivatelem ze source_db
  • del id_databaze – maze log do nastaveneho datumu datumu
  • ddb id_databaze – odpojeni databaze
  • exit – ukončí program
  • exec file_name – spusti příkazy ze souboru
  • echo text – zobrazí text, slouží k zpřehlednění logů
  • cmd sql_command – spustí sql příkaz bez výstupu
  • time – zobrazí aktuální čas
  • savelast to_db from_db – nastaví datum poslední synchronizace v databázi to_db z databáze from_db
  • debug level – nastaví úroveň logování (0-jen warningy, 1-detailní)

Spouštění synchronizace ve Windows (náhrada cron)

schtasks /create /tn "OBISSync" /tr c:\obis4\sync\synchronizer.cmd /sc daily /st 01:30

Nastavení synchronizace

Aby bylo možno synchronizovat změny mezi databázemi je nutné zapnout logování změn ( menu - ostatní → nastavení → synchronizace). Zde se vypíší všechny tabulky u kterých se mají změny logovat. Lze použít i prefix tabulky (název před prvním _). Pokud chceme logovat USER tabulky s názvem např. v_faktury_uhrhl, můžeme zapsat v=Y. Budou se tak logovat všechny USER tabulky začínající v_. Jinak musíme vypsat celý název tabulky. Tedy v_faktury_uhrhl=Y.

Logování všech modulů

COMMON=Y
COMMON_LOG=N
COMMON_SYSLOG=N
COMMON_LOGCTRL=N
COMMON_NAST=N
PARTNERI=Y
ROZPOCTY=Y
ZAKAZKY=Y
SKLAD=Y
PROST=Y
UCTO=Y
MAJETEK=Y
FAKTURY=Y
UKOLY=Y
*.ukoly_zmeny=n
*.ukoly_zmenypol=n
DOKUMENTY=Y

Tunel Stunnel

Vytvoření obousměrného tunelu mezi centrálním serverem a pobočkou.

http://www.stunnel.org/

Generovaní certifikátu

Vytvoření self-signed certifikátu a klíče pro pobočku resp. server s platností 10 let.

openssl req -new -x509 -days 3650 -nodes -out pobocka.pem -keyout pobocka.key
openssl req -new -x509 -days 3650 -nodes -out server.pem -keyout server.key

Konfigurace serveru Linux

Testováno s verzí 4.29 z balíku Debian 6.0.4 a Ubuntu 10.10.

Soubory server.key server.pem a pobocka.pem jsou v /etc/stunnel/

chown stunnel4 server.key server.pem pobocka.pem
chmod 600 server.key

Konfigurační soubor /etc/stunnel/stunnel.conf

; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/server.pem
key = /etc/stunnel/server.key

; Protocol version (all, SSLv2, SSLv3, TLSv1)
;sslVersion = SSLv3

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside the chroot jail
pid = /stunnel4.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = zlib

; Authentication stuff
;verify 2 umoznuje pouziti CA Chains
verify = 3
; It's often easier to use CAfile
CAfile = /etc/stunnel/pobocka.pem

; Some debugging stuff useful for troubleshooting
;debug = 7
;output = /var/log/stunnel4/stunnel.log
;pro spojeni pobocka->server
[firebird]
accept = 11965
connect = 3050

;pro spojeni server->pobocka
[firebird-pobocka]
client = yes
accept = 13051
connect = pobocka_ip:11965

Konfigurace pobocky

Soubory pobocka.key pobocka.pem a server.pem jsou v /etc/stunnel/

chown stunnel4 pobocka.key server.pem pobocka.pem
chmod 600 pobocka.key

Konfigurační soubor /etc/stunnel/stunnel.conf

; Certificate/key is needed in server mode and optional in client mode
cert = /etc/stunnel/pobocka.pem
key = /etc/stunnel/pobocka.key

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = all

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
; PID is created inside the chroot jail
pid = /stunnel4.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = zlib

; Authentication stuff
;verify 2 umoznuje pouziti CA Chains
verify = 3
; It's often easier to use CAfile
CAfile = /etc/stunnel/server.pem

; Some debugging stuff useful for troubleshooting
;debug = 7
;output = /var/log/stunnel4/stunnel.log

;pro spojeni server->pobocka
[firebird]
accept = 11965
connect = 3050

;pro spojeni pobocka->server
[firebird-server]
client = yes
accept = 13051
connect = server_ip:11965

Konfigurace ve Windows

Testováno s verzí 4.53 a 5.01

Nainstalovat z ftp://ftp.stunnel.org/stunnel/ stunnel-*-installer.exe do c:\stunnel\

Nahrát odpovídající *.key a *.pem do c:\stunnel\

V stunnel.conf je nutné zakázat FIPS, pro server a client prohodit odkazy na certifikaty v stunnel.conf:

; Certificate/key is needed in server mode and optional in client mode
cert = pobocka.pem
key = pobocka.key

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = all
;ve windows nelze fips pouzit: sslVersion = TLSv1 is required in FIPS mode
; Disable FIPS mode to allow non-approved protocols and algorithms
;fips = no

; Authentication stuff
verify = 3
; It's often easier to use CAfile
CAfile = server.pem

; Some debugging stuff useful for troubleshooting
;debug = 7
;output = stunnel.log
;linux test
;foreground = yes
;pid = /tmp/stunnel4.pid

;pro spojeni pobocka->server
[firebird-server]
client = yes
accept = 13051
connect = server_ip:11965

Instalace jako service

Jako správce spustit (lze ze startmenu - programy - stunnel - service install pravým tlačítkem na myši):

c:\stunnel\stunnel.exe -install

Různé klíče pro klienty (notebooky)

klientské certifikáty *.key uložit do adresáře /var/lib/stunnel4/certs a vytvořit hashe

cd /var/lib/stunnel4/cert
/usr/lib/ssl/misc/c_hash *.pem
ln -s jmeno.key hash_dle_predchoziho_prikazu

na serveru nahradit pouziti CAfile za CApath

; Authentication stuff
;verify = 2
verify = 3
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
CApath = /certs

klientská strana je beze změn

Pripojeni k databazi

isql localhost/13051:/path/data.fdb

Tunel Zebedee

Generování klíče

zebedee -p > myclient.key
zebedee -P -f myclient.key > myclient.id
cat myclient.id >> /etc/zebedee/client.idlist

Server config

verbosity 2             # Slightly more than basic messages
server true             # Yes, it's a server!
detached true           # Run detached from terminal
udpmode false           # Are we operating in UDP mode?

logfile '/var/log/zebedee.log'
checkidfile '/etc/zebedee/client.idlist'

redirect 3050
targethost localhost            # Redirection is to the local machine

compression zlib:9              # Allow maximum zlib compression
keylength 256                   # Allow keys up to 256 bits
keylifetime 36000               # Shared keys last 10 hours
maxbufsize 16383                # Allow maximum possible buffer size

Klient config

verbosity 2 # Basic messages only
server false  # It's a client
detached true # Detach from terminal
logfile 'c:\zebedee\client.log'
include c:\zebedee\myclient.key
tunnel 13050:localhost:3050
serverhost host.domain.org

Instalace ve Windows jako Service

zebedee -n "Zebedee1" "-Sinstall=c:\zebedee\config.zbd"
progs/synchronizer.txt · Poslední úprava: 2023/10/30 07:29 autor: Karel Petrů