Task #963
closedImplementovat zrcadlení databáze klientů z Warden na Warden-sandbox s možností testovacích klientů
0%
Description
- Chceme, aby Warden-sandbox co nejpřesněji odrážel stav Warden, tj. klienti, kteří fungují na Warden, fungovali i na Warden-sandbox. Jinými slovy - chceme mít možnost nového klienta poslat na Warden-dev, a po otestování funkčnosti pouze změní URL na Warden a má slušnou jistotu, že vše bude ok.
- Chceme ale také umožnit čistě testovací klienty na Warden-sandbox, kteří nebudou mít protějšek na Warden.
Related issues
Updated by Pavel Kácha over 11 years ago
- Subject changed from Implementovat zrcadlení databáze z Warden na Warden-sandbox s možností testovacích klientů to Implementovat zrcadlení databáze klientů z Warden na Warden-sandbox s možností testovacích klientů
Updated by Jan Soukal over 11 years ago
S Tomem jsme problém řešili a usoudili jsme, že implementovat skripty, které by za nás řídily registrace klientů není vhodná varianta. Místo toho musí existovat odpovědná osoba (nebo více osob) odpovídající za registrace, která manuálně zajistí konzistenci obou databází (tedy sandbox a provozní). Vzhledem k tomu, že existence sandbox serveru je v tuto chvíli spíše "interní" a není nijak zakomponovaná do celého balíku warden-serveru, asi to ani jinak být nemůže (pokud tedy nechceme držet separátní skripty pro nás a pro vydávané balíčky).
Navrhli následující pravidla (která vycházejí z naší debaty v rámci VC):- každý klient, který je registrován na warden.cesnet.cz musí být identicky zaregistrován i na warden-sandbox.cesnet.cz a vice versa s výjimkou ryze testovacích klientů (níže),
- každý klient, který je vymazán (vzhledem k vyšším verzím např. i zneplatněn, atd.) musí být vymazán i z warden-sandbox.cesnet.cz a vice versa s výjimkou ryze testovacích klientů (níže),
- testovací klient je registrován pouze na warden-sandbox.cesnet.cz a neočekává se u něj v budoucnu přesměrování na provozní server (jde tedy o ryze testovacího/pokusného/analytického klienta),
- testovací klienti dostávají client_id shora rozsahu, aby se nepletly mezi "ostré" klienty.
Aktuální podobu tabulky clients z warden.cesnet.cz jsem přehodil i na sandbox. Současně jsem updatoval původní klienty z warden-sandbox dle výše uvedených pravidel (tedy dal jsem jim client_id 2147483647 a postupně nižší). Tabulka clients na warden-sandbox tedy nyní vypádá následovně:
mysql> select * from clients order by client_id asc; +------------+-------------------------------+---------------------+------------------------+--------------------------+-------------+------------+--------------------+---------------------------------------+--------------------+ | client_id | hostname | registered | requestor | service | client_type | type | receive_own_events | description_tags | ip_net_client | +------------+-------------------------------+---------------------+------------------------+--------------------------+-------------+------------+--------------------+---------------------------------------+--------------------+ | 1 | warden.cesnet.cz | 2011-11-21 14:57:46 | plesnik@cesnet.cz | ScanDetector | s | NULL | NULL | testing | 195.113.0.0/16 | | 2 | warden.cesnet.cz | 2011-11-21 14:58:28 | plesnik@cesnet.cz | HoneyScan | s | NULL | NULL | testing | 195.113.0.0/16 | | 3 | warden.cesnet.cz | 2011-11-21 14:59:07 | plesnik@cesnet.cz | PhiGaro | s | NULL | NULL | testing | 195.113.0.0/16 | | 4 | nfsen.ics.muni.cz | 2011-11-21 15:34:13 | drasar@ics.muni.cz | ScanDetector_1.0 | s | NULL | NULL | Network, Flow, ScanDetector | 147.251.0.0/16 | | 5 | nfsen.ics.muni.cz | 2012-06-26 09:57:47 | husakm@ics.muni.cz | honeyscan | s | NULL | NULL | Network, Flow, honeyscan | 147.251.0.0/16 | | 6 | au1.cesnet.cz | 2011-11-23 10:06:05 | pavel.vachek@cesnet.cz | CESNET_IDS | s | NULL | NULL | Network, Connection, Honeypot, LaBrea | 195.113.205.178/32 | | 7 | au2.cesnet.cz | 2011-11-23 10:06:48 | pavel.vachek@cesnet.cz | IDS.CZ | s | NULL | NULL | Network, Connection, Honeypot, LaBrea | 195.113.205.179/32 | | 11 | nfsen.ics.muni.cz | 2012-08-13 10:39:16 | vizvary@ics.muni.cz | SSHBruteForce-1_N | s | NULL | NULL | Network, NetFlow | 147.251.14.40/32 | | 12 | holly.cesnet.cz | 2012-08-13 10:39:40 | kostenec@civ.zcu.cz | KippoHoneypot | s | NULL | NULL | Network, Honeypot, Kippo | 195.113.187.243/32 | | 13 | queeg.cesnet.cz | 2012-08-13 10:39:56 | kostenec@civ.zcu.cz | DionaeaHoneypot | s | NULL | NULL | Network, Honeypot, Dionaea | 195.113.187.242/32 | | 14 | bee.net.vutbr.cz | 2012-08-13 10:40:14 | slama@cis.vutbr.cz | HPScan | s | NULL | NULL | Network, Honeypot | 147.229.0.0/16 | | 18 | au1.cesnet.cz | 2011-12-12 12:55:39 | pavel.vachek@cesnet.cz | CESNET_SSERV | s | NULL | NULL | External, SServ | 195.113.205.178/32 | | 23 | afrodita.civ.zcu.cz | 2012-06-13 14:31:03 | bodik@civ.zcu.cz | labrea | s | NULL | NULL | Network, IDS, Labrea | 147.228.52.15/32 | | 24 | buldocek.vsb.cz | 2012-08-13 10:30:27 | orkac@cesnet.cz | cz.vsb.buldocek.kippo | s | NULL | NULL | Network, Honeypot, Kippo | 158.196.158.115/32 | | 25 | buldocek.vsb.cz | 2012-08-13 10:36:55 | orkac@cesnet.cz | cz.vsb.buldocek.fail2ban | s | NULL | NULL | Network, Connection, Log, Fail2ban | 158.196.158.115/32 | | 26 | kryten.cesnet.cz | 2012-06-11 09:00:57 | kostenec@civ.zcu.cz | DionaeaHoneypot | s | NULL | NULL | Network, Honeypot, Dionaea | 195.113.161.12/32 | | 27 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | bruteforce | t | NULL | 147.228.52.15/32 | | 28 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | darkspace | t | NULL | 147.228.52.15/32 | | 29 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | malware | t | NULL | 147.228.52.15/32 | | 30 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | other | t | NULL | 147.228.52.15/32 | | 31 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | portscan | t | NULL | 147.228.52.15/32 | | 32 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | tarpit | t | NULL | 147.228.52.15/32 | | 33 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | TEST | t | NULL | 147.228.52.15/32 | | 34 | afrodita.civ.zcu.cz | 2012-06-14 08:40:02 | bodik@civ.zcu.cz | NULL | r | webattack | t | NULL | 147.228.52.15/32 | | 35 | afrodita.civ.zcu.cz | 2012-06-28 11:05:15 | bodik@civ.zcu.cz | hihat | s | NULL | NULL | Network, Content, Data, Honeypot, IDS | 147.228.52.15/32 | | 36 | miel.opf.slu.cz | 2012-06-28 16:04:11 | macura@opf.slu.cz | Kippo | s | NULL | NULL | Network, Honeypot, Kippo | 193.84.209.123/32 | | 37 | afrodita.civ.zcu.cz | 2012-07-09 12:13:02 | bodik@civ.zcu.cz | NULL | r | spam | t | NULL | 147.228.52.15/32 | | 38 | jovado.opf.slu.cz | 2012-07-15 15:23:15 | macura@opf.slu.cz | NULL | r | bruteforce | t | NULL | 193.84.208.32/32 | | 40 | netman.civ.zcu.cz | 2012-09-04 12:30:54 | kostenec@civ.zcu.cz | test | s | NULL | N | testing | 147.228.52.72/32 | | 42 | mentat-dev.cesnet.cz | 2012-09-04 12:32:56 | kostenec@civ.zcu.cz | test | r | test | f | testing | 195.113.161.43/32 | | 46 | collector-test.liberouter.org | 2012-09-25 13:26:41 | izadnik@fit.vutbr.cz | NULL | r | dos | t | NULL | 147.251.21.0/24 | | 47 | collector-test.liberouter.org | 2012-09-25 13:27:01 | izadnik@fit.vutbr.cz | NULL | r | portscan | t | NULL | 147.251.21.0/24 | | 49 | nfsen.ics.muni.cz | 2012-10-01 13:23:41 | cegan@ics.muni.cz | NULL | r | portscan | f | NULL | 147.251.0.0/16 | | 51 | netman.civ.zcu.cz | 2012-10-13 20:09:00 | kostenec@civ.zcu.cz | NULL | r | bruteforce | f | NULL | 147.228.52.72/32 | | 52 | netman.civ.zcu.cz | 2012-10-13 20:09:14 | kostenec@civ.zcu.cz | NULL | r | spam | f | NULL | 147.228.52.72/32 | | 53 | netman.civ.zcu.cz | 2012-10-13 20:09:19 | kostenec@civ.zcu.cz | NULL | r | portscan | f | NULL | 147.228.52.72/32 | | 54 | collector-test.liberouter.org | 2012-10-18 13:00:48 | izadnik@fit.vutbr.cz | NULL | r | bruteforce | t | NULL | 147.251.21.0/24 | | 55 | collector-test.liberouter.org | 2012-10-18 13:00:56 | izadnik@fit.vutbr.cz | NULL | r | spam | t | NULL | 147.251.21.0/24 | | 56 | collector-test.liberouter.org | 2012-10-18 13:01:12 | izadnik@fit.vutbr.cz | NULL | r | phishing | t | NULL | 147.251.21.0/24 | | 57 | collector-test.liberouter.org | 2012-10-18 13:01:22 | izadnik@fit.vutbr.cz | NULL | r | botnet_c_c | t | NULL | 147.251.21.0/24 | | 60 | warden-c.cesnet.cz | 2012-10-23 14:47:33 | soukal@cesnet.cz | TestingTool | s | NULL | NULL | Testing | 195.113.233.117/32 | | 61 | warden-c.cesnet.cz | 2012-10-23 14:48:36 | soukal@cesnet.cz | NULL | r | portscan | t | NULL | 195.113.233.117/32 | | 62 | nfsen-devel.ics.muni.cz | 2012-11-07 09:59:22 | vizvary@ics.muni.cz | RdpMonitor | s | NULL | NULL | Network, Flow, IDS, RdpMonitor | 147.251.14.39/32 | | 65 | collector.liberouter.org | 2012-12-12 05:56:17 | izadnik@fit.vutbr.cz | HostStats | s | NULL | NULL | Network, ... /*zkraceno*/ | 147.229.2.0/24 | | 66 | esb.metacentrum.cz | 2013-02-15 15:15:55 | bodik@civ.zcu.cz | NULL | r | portscan | t | NULL | 147.251.11.15/24 | | 67 | esb.metacentrum.cz | 2013-02-15 15:16:04 | bodik@civ.zcu.cz | NULL | r | bruteforce | t | NULL | 147.251.11.15/24 | | 68 | esb.metacentrum.cz | 2013-02-15 15:16:11 | bodik@civ.zcu.cz | NULL | r | probe | t | NULL | 147.251.11.15/24 | | 69 | esb.metacentrum.cz | 2013-02-15 15:16:16 | bodik@civ.zcu.cz | NULL | r | spam | t | NULL | 147.251.11.15/24 | | 70 | esb.metacentrum.cz | 2013-02-15 15:16:22 | bodik@civ.zcu.cz | NULL | r | phishing | t | NULL | 147.251.11.15/24 | | 71 | esb.metacentrum.cz | 2013-02-15 15:16:33 | bodik@civ.zcu.cz | NULL | r | botnet_c_c | t | NULL | 147.251.11.15/24 | | 72 | esb.metacentrum.cz | 2013-02-15 15:16:40 | bodik@civ.zcu.cz | NULL | r | dos | t | NULL | 147.251.11.15/24 | | 73 | esb.metacentrum.cz | 2013-02-15 15:16:45 | bodik@civ.zcu.cz | NULL | r | malware | t | NULL | 147.251.11.15/24 | | 74 | esb.metacentrum.cz | 2013-02-15 15:16:51 | bodik@civ.zcu.cz | NULL | r | copyright | t | NULL | 147.251.11.15/24 | | 75 | esb.metacentrum.cz | 2013-02-15 15:16:56 | bodik@civ.zcu.cz | NULL | r | webattack | t | NULL | 147.251.11.15/24 | | 76 | esb.metacentrum.cz | 2013-02-15 15:17:02 | bodik@civ.zcu.cz | NULL | r | other | t | NULL | 147.251.11.15/24 | | 77 | bee.net.vutbr.cz | 2013-02-26 16:01:50 | slama@cis.vutbr.cz | NULL | r | _any_ | t | NULL | 147.229.0.0/16 | | 78 | collector.liberouter.org | 2013-03-13 12:23:51 | ibartosv@fit.vutbr.cz | NULL | r | _any_ | t | NULL | 147.229.2.0/24 | | 79 | collector-test.liberouter.org | 2013-03-13 12:24:53 | ibartosv@fit.vutbr.cz | NULL | r | _any_ | t | NULL | 147.251.21.0/24 | | 80 | grey.cesnet.cz | 2013-03-19 08:52:58 | ph@cesnet.cz | NULL | r | _any_ | t | NULL | 195.113.134.228/32 | | 2147483645 | warden-c.cesnet.cz | 2013-03-04 15:40:33 | soukal@ics.muni.cz | NULL | r | portscan | t | NULL | 195.113.233.117/32 | | 2147483646 | warden-c.cesnet.cz | 2013-03-04 15:38:37 | soukal@ics.muni.cz | test | s | NULL | NULL | test | 195.113.233.117/32 | | 2147483647 | grey.cesnet.cz | 2013-03-01 16:38:51 | ph@cesnet.cz | WardenTestGrey | s | NULL | NULL | test | 195.113.134.228/32 | +------------+-------------------------------+---------------------+------------------------+--------------------------+-------------+------------+--------------------+---------------------------------------+--------------------+ 62 rows in set (0.00 sec)TODO:
- Souběžně jsem si všiml, že máme v tabulce clients definován client_id jako signed INT. Proberu to ještě s Tomem, ale nevím, k čemu nám to vlastně je. Jestli by nebyl vhodnější unsigned INT nebo třeba MEDIUMINT.
Updated by Pavel Kácha over 11 years ago
S Tomem jsme problém řešili a usoudili jsme, že implementovat skripty, které by za nás řídily registrace klientů není vhodná varianta.
Jaké argumenty pro/proti jste zvážili?
Updated by Jan Soukal over 11 years ago
Pavel Kácha wrote:
S Tomem jsme problém řešili a usoudili jsme, že implementovat skripty, které by za nás řídily registrace klientů není vhodná varianta.
Jaké argumenty pro/proti jste zvážili?
Argument pro automatizované řešení je zřejmý: lze snáze zajistit, že obě databáze (ostrá i sandbox) budou vuči sobě konzistentní.
Ale...
Ovšem vzhledem k tomu, že existence sandboxu nemá nic společného se samotným serverovým balíkem, který by, dle mého názoru, měl být samonosný systém, bylo by přidání další funkcionality krokem směrem od takto zvolené architektury. Rostly by nároky na údržbu a v samotné architektuře teď ani není prostor, jak toto rozumně realizovat (alespoň myslím). Způsob, že by např. administrační funkce na ostrém serveru sahaly i do kompetence sandbox serveru jdou mimo rámec toho, kam warden směřujeme. Odpovědnost za zachování konzistence prostě zůstane na správci obou warden serverů, resp. na správci obou warden systémů. Je to samozřejmě k diskuzi a je možné to udělat i jinak, ale tuto variantu jsme s Tomem zvolili jako v současnosti nejlepší cena/výkon.
Updated by Pavel Kácha over 11 years ago
Jsem zmaten. Pro začátek:
- Jak zrcadlení klientů mezi dvěma servery souvisí se serverovým balíkem?
- Jak administrační funkce souvisí se směřováním Wardenu?
Nevidím rozdíl v zajištění konzistence správcem a zajištění konzistence skriptem, kromě ušetření práce.
Updated by Jan Soukal over 11 years ago
Pavel Kácha wrote:
- Jak zrcadlení klientů mezi dvěma servery souvisí se serverovým balíkem?
Serverový balík nepracuje s níčím jako sandbox serverem. Uvažuje se pouze ostrá instalace. Warden-sandbox je pouze naše "lokální" rozšíření nabízené funkcionality.
- Jak administrační funkce souvisí se směřováním Wardenu?
Nemyslím, že by součástí balíku měly být skripty obsluhující údržbu čistě lokální mutace systému (warden-sandbox v našem případě).
Nevidím rozdíl v zajištění konzistence správcem a zajištění konzistence skriptem, kromě ušetření práce.
Pokud máš na mysli naše interní skripty, pak souhlasím. Bavíme-li se o skriptech jako součásti balíku serveru, pak viz výše.
Updated by Pavel Kácha over 11 years ago
- Jak zrcadlení klientů mezi dvěma servery souvisí se serverovým balíkem?
Serverový balík nepracuje s níčím jako sandbox serverem. Uvažuje se pouze ostrá instalace. Warden-sandbox je pouze naše "lokální" rozšíření nabízené funkcionality.
Ano.
- Jak administrační funkce souvisí se směřováním Wardenu?
Nemyslím, že by součástí balíku měly být skripty obsluhující údržbu čistě lokální mutace systému (warden-sandbox v našem případě).
Jistě.
Nevidím rozdíl v zajištění konzistence správcem a zajištění konzistence skriptem, kromě ušetření práce.
Pokud máš na mysli naše interní skripty, pak souhlasím. Bavíme-li se o skriptech jako součásti balíku serveru, pak viz výše.
Skript, který bude existovat v jedné instanci, právě na warden-sandbox. Maximálně může být v contribu, pokud usoudíme, že se hodí i někomu jinému. Stále ale přesně nechápu, proč jste proti strojově zajištěné konzistenci, stále si myslím, že má jen výhody.
P.S.: Dva měsíce na diskusi o odhadem dvacetiřádkovém skriptu jsou poměrně dlouho.
Updated by Pavel Kácha almost 11 years ago
- Status changed from New to Closed
"After all is said and done, more is said than done. " -- Ezop
Takže skript je patnáctiřádkový, po stopadesátiřádkové diskusi.
/usr/local/bin/mirrorClientsToSandbox.sh na warden.cesnet.cz, spouštět po přidání klienta, zmirroruje klientskou databázi na warden-sandbox. Case closed.