Obsah
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.
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"