====== 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 ======
[[http://www.winton.org.uk/zebedee/manual.html|Manuál]]
==== 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"