Zita rangu ndinonzi Denis Rozhkov, ndiri mukuru wekugadzira software kukambani yeGazinformservice, muchikwata chezvigadzirwa. . Mitemo uye mitemo yemakambani inoisa zvimwe zvinodiwa zvekuchengetedzwa kwekuchengetedza data. Hapana anoda kuti mapato echitatu awane ruzivo rwezvakavanzika, saka zvinotevera zvakakosha kune chero purojekiti: kuzivikanwa uye kuvimbiswa, kutonga kuwana data, kuve nechokwadi chekuvimbika kweruzivo muhurongwa, kutema zviitiko zvekuchengetedza. Naizvozvo, ini ndoda kutaura nezve mamwe mapoinzi anonakidza nezve DBMS chengetedzo.
Chinyorwa chakagadzirwa zvichibva pahurukuro pa vakarongeka . Kana usingadi kuverenga, unogona kuona:

Chinyorwa chichava nezvikamu zvitatu:
- Nzira yekuchengetedza sei zvinongedzo.
- Chii chinonzi ongororo yezviito uye maitiro ekurekodha zviri kuitika padivi re database uye nekubatanidza kwairi.
- Nzira yekudzivirira sei data mu database pachayo uye ndeapi matekinoroji aripo kune izvi.

Zvitatu zvikamu zveDBMS kuchengetedza: kuchengetedzwa kwekubatanidza, kuongorora chiitiko uye kuchengetedza data
Kuchengetedza hukama hwako
Iwe unogona kubatana kune dhatabhesi zvakananga kana zvisina kunanga kuburikidza newebhu maapplication. Sezvo mutemo, mushandisi webhizimisi, kureva, munhu anoshanda neDBMS, anopindirana nayo zvisina kunanga.
Usati wataura nezve kuchengetedza zvinongedzo, unofanirwa kupindura mibvunzo yakakosha inotaridza kuti matanho ekuchengetedza achagadziriswa sei:
- Mushandisi webhizinesi mumwechete akaenzana nemumwe mushandisi weDBMS?
- kana kuwana kuDBMS data kunopihwa chete kuburikidza neAPI yaunodzora, kana kuti matafura anowanikwa zvakananga;
- ingave iyo DBMS yakagoverwa kune yakaparadzana yakadzivirirwa chikamu, inodyidzana nayo uye sei;
- kana kubatanidza / proxy uye zvikamu zvepakati zvinoshandiswa, izvo zvinogona kuchinja ruzivo pamusoro pekuti kubatana kunovakwa sei uye ndiani ari kushandisa database.
Zvino ngationei kuti ndeapi maturusi anogona kushandiswa kuchengetedza zvinongedzo:
- Shandisa database firewall class solutions. Iyo yekuwedzera dhizaini yedziviriro, padiki, inowedzera kujeka kwezviri kuitika muDBMS, uye nepamusoro, iwe unozokwanisa kupa yakawedzera kuchengetedzwa kwedata.
- Shandisa password mitemo. Kushandiswa kwavo kunoenderana nekuti chivakwa chako chakavakwa sei. Chero zvazvingaitika, imwe password mufaira yekumisikidza yewebhu application inobatanidza kuDBMS haina kukwana kudzivirira. Pane akati wandei eDBMS maturusi anotendera iwe kudzora kuti mushandisi uye password inoda kuvandudzwa.
Iwe unogona kuverenga zvakawanda nezve mushandisi rating mabasa , unogonawo kuziva nezve MS SQL Vulnerability Assessmen .
- Pfumisa mamiriro echirongwa nemashoko anodiwa. Kana iyo sangano iri opaque, iwe haunzwisisi kuti ndiani ari kushanda muDBMS mukati mehutano hwayo, iwe unogona, mukati mehutano hwekushanda kuri kuitwa, kuwedzera ruzivo pamusoro pekuti ndiani ari kuita chii uye nei. Ruzivo urwu runogona kuoneka muongororo.
- Gadzira SSL kana iwe usina network yekuparadzanisa pakati peDBMS uye yekupedzisira vashandisi; haisi muVLAN yakaparadzana. Mumamiriro ezvinhu akadaro, zvakakosha kuchengetedza chiteshi pakati pemutengi neDBMS pachayo. Zvishandiso zvekuchengetedza zviripo zvakare mune yakavhurika sosi.
Izvi zvichakanganisa sei kuita kweDBMS?
Ngatitarisei muenzaniso wePostgreSQL kuti tione kuti SSL inobata sei CPU mutoro, inowedzera nguva uye inoderedza TPS, uye kuti ichapedza zviwanikwa zvakawandisa kana ukaigonesa.
Kurodha PostgreSQL uchishandisa pgbench chirongwa chiri nyore chekumhanyisa bvunzo dzekuita. Inoita nhevedzano imwe chete yemirairo yadzokororwa, pamwe muzvikamu zvakafanana zvedhatabhesi, uyezve inoverengera avhareji yemutengo wekutengesa.
Edza 1 isina SSL uye uchishandisa SSL - iyo yekubatanidza inotangwa kune yega yega kutengeserana:
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"vs
pgbench.exe --connect -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"Edza 2 isina SSL uye uchishandisa SSL - kutengeserana kwese kunoitwa mukubatana kumwe:
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres sslmode=require
sslrootcert=rootCA.crt sslcert=client.crt sslkey=client.key"vs
pgbench.exe -c 10 -t 5000 "host=192.168.220.129 dbname=taskdb user=postgres"Zvimwe zvirongwa:
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000Mhedzisiro yebvunzo:
HAPANA SSL
SSL
Kubatana kunotangwa kune yese kutengeserana
latency average
171.915 ms
187.695 ms
tps kusanganisira kubatanidza kumisikidza
58.168112
53.278062
tps isingasanganisi yekubatanidza kumisikidza
64.084546
58.725846
CPU
24%
28%
Zvese kutengeserana kunoitwa mukubatana kumwe
latency average
6.722 ms
6.342 ms
tps kusanganisira kubatanidza kumisikidza
1587.657278
1576.792883
tps isingasanganisi yekubatanidza kumisikidza
1588.380574
1577.694766
CPU
17%
21%
Pamitoro yakareruka, pesvedzero yeSSL inofananidzwa nekuyerwa kukanganisa. Kana huwandu hwe data inotamiswa hwakakura kwazvo, mamiriro acho anogona kunge akasiyana. Kana tikamisa chinongedzo chimwe pakutengeserana (izvi hazviwanzo, kazhinji chinongedzo chinogovaniswa pakati pevashandisi), iwe une nhamba huru yekubatanidza/kudimburwa, kukanganisa kunogona kunge kudiki. Ndiko kuti, panogona kunge paine njodzi dzekuderera kwekuita, zvisinei, mutsauko hauna kukura zvakanyanya sekusashandisa dziviriro.
Ndapota cherechedza kuti pane mutsauko wakasimba kana iwe uchienzanisa maitiro ekushanda: uri kushanda mukati mechikamu chimwe chete kana mune zvakasiyana. Izvi zvinonzwisisika: zviwanikwa zvinoshandiswa pakugadzira imwe neimwe yekubatanidza.
Takanga tine nyaya patakabatanidza Zabbix mu trust mode, kureva kuti, md5 haina kuongororwa, pakanga pasina chikonzero chechokwadi. Ipapo mutengi akakumbira kugonesa md5 yekusimbisa maitiro. Izvi zvakaisa mutoro unorema paCPU, uye kuita kwakadzikira. Takatanga kutsvaga nzira dzekugadzirisa. Imwe yemhinduro dzinogoneka kudambudziko ndeyekuita zvirambidzo zvenetiweki, ita maVLAN akasiyana eDBMS, wedzera zvigadziriso kuti zvijeke kuti ndiani ari kubatanidza kubva kupi uye kubvisa huchokwadi. kazhinji kushandiswa kwenzira dzakasiyana-siyana kuvimbiswa kunokanganisa kushanda uye kunoda kutora zvinhu izvi mupfungwa paunenge uchigadzira simba rekombiyuta yemaseva (hardware) yeDBMS.
Mhedziso: mune akati wandei mhinduro, kunyangwe madiki nuances muhuchokwadi anogona kukanganisa zvakanyanya chirongwa uye zvakaipa kana izvi zvikajeka chete kana zvaitwa mukugadzira.
Action audit
Audit inogona kunge isiri DBMS chete. Odhisheni ndeyekuwana ruzivo nezve zviri kuitika muzvikamu zvakasiyana. Izvi zvinogona kunge zviri dhatabhesi firewall kana sisitimu yekushandisa pakavakirwa iyo DBMS.
Mukushambadzira Enterprise level DBMSs zvese zvakanaka nekuongorora, asi mune yakavhurika sosi - kwete nguva dzose. Hezvino izvo PostgreSQL ine:
- default log - yakavakirwa-mukati matanda;
- extensions: pgaudit - kana kutema matanda kusina kukwana kwauri, unogona kushandisa zvigadziriso zvakasiyana zvinogadzirisa mamwe matambudziko.
Kuwedzera kune iyo mushumo muvhidhiyo:
"Basic statement regging inogona kupihwa neyakajairika matanda nzvimbo ine log_statement = zvese.
Izvi zvinotenderwa kutarisisa uye kumwe kushandiswa, asi hazvipi nhanho yeruzivo inowanzodiwa pakuongorora.
Hazvina kukwana kuve nerunyoro rwese maoparesheni akaitwa padhatabhesi.
Izvo zvinofanirwa kuve zvakare zvinogoneka kuwana zvirevo zvakananga izvo zvinofarirwa nemuongorori.
Kudhirowa kwakajairwa kunoratidza zvakakumbirwa nemushandisi, nepo pgAudit inotarisa pane zvese zvakaitika apo dhatabhesi payakaita mubvunzo.
Semuenzaniso, muongorori angangoda kuona kuti imwe tafura yakagadzirwa mukati mehwindo rekuchengetedza rakanyorwa.
Izvi zvingaite senge ibasa rakareruka rine basic auditing uye grep, asi ko kana iwe ukaunzwa nechimwe chinhu chakadai (chinovhiringidza nemaune) muenzaniso:
DO$$
TANGIRA
EXECUTE 'CREATE TABLE import' || 'ant_table(id int)';
END$$;
Kudhirowa kwakajairika kunokupa izvi:
LOG: chirevo: ITA $$
TANGIRA
EXECUTE 'CREATE TABLE import' || 'ant_table(id int)';
END$$;
Zvinotaridza kuti kutsvaga tafura yekufarira kungangoda ruzivo rwekodhi mune zviitiko apo matafura anogadzirwa zvine simba.
Izvi hazvina kunaka, sezvo zvingave zviri nani kungotsvaga nezita retafura.
Apa ndipo panouya pgAudit inobatsira.
Nekupinza kwakafanana, inoburitsa ichi chinobuda murogi:
ONGORORO: CHIDZIDZO,33,1,BASA,ITA,,,"ITA $$
TANGIRA
EXECUTE 'CREATE TABLE import' || 'ant_table(id int)';
END$$;"
ONGORORO: CHIDZIDZO, 33,2, XNUMX, DDL, GADZIRA TABLE, TABLE, public.important_table, GADZIRA TABLE yakakosha_tafura (id INT)
Kwete chete iyo DO block yakanyorwa, asiwo iyo yakazara mavara eCREATE TABLE ine chirevo cherudzi, rudzi rwechinhu, uye zita rakazara, zvichiita kuti kutsvaga kuve nyore.
Paunenge uchitema ZVINOKOSHA uye DML zvirevo, pgAudit inogona kugadziridzwa kuti inyore yakaparadzana yekupinda yehukama hwega hwega hunotaurwa muchirevo.
Hapana parsing inodikanwa kuti uwane zvirevo zvese zvinobata imwe tafura () ».
Izvi zvichakanganisa sei kuita kweDBMS?
Ngatimhanyei bvunzo nekuongorora kwakazara kunogoneswa uye tione zvinoitika kuPostgreSQL kuita. Rega tigone kugonesa kudhirowa kwedatabase kune ese ma parameter.
Isu tinoshandura chero chinhu mufaira yekumisikidza, chinonyanya kukosha ndechekuvhura debug5 modhi kuti uwane ruzivo rwakanyanya.
postgresql.conf
log_destination = 'stderr'
logging_collector = on
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = debug5
log_min_error_statement = debug5
log_min_duration_statement = 0
debug_print_parse = on
debug_print_rewritten = on
debug_print_plan = on
debug_pretty_print = on
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_hostname = on
log_lock_wait = on
log_replication_commands = on
log_temp_files = 0
log_timezone = 'Europe/Moscow'
PaPostgreSQL DBMS ine ma parameter e1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD, tinoitisa bvunzo nhatu dzemutoro tichishandisa mirairo:
$ pgbench -p 3389 -U postgres -i -s 150 benchmark
$ pgbench -p 3389 -U postgres -c 50 -j 2 -P 60 -T 600 benchmark
$ pgbench -p 3389 -U postgres -c 150 -j 2 -P 60 -T 600 benchmarkMiedzo mhinduro:
Hapana kutema miti
Nekutema matanda
Yese database yekuzadza nguva
43,74 sec
53,23 sec
RAM
24%
40%
CPU
72%
91%
Muedzo wekutanga (1 kubatana)
Nhamba yekutengeserana mumaminitsi gumi
74169
32445
Transactions/sec
123
54
Average Latency
405 ms
925 ms
Bvunzo 2 (150 kubatana ne100 zvinogoneka)
Nhamba yekutengeserana mumaminitsi gumi
81727
31429
Transactions/sec
136
52
Average Latency
550 ms
1432 ms
Nezve saizi
DB saizi
2251 MB
2262 MB
Database log size
0 MB
4587 MB
Pazasi mutsetse: kuongororwa kwakazara hakuna kunaka. Iyo data kubva kuongororo ichave yakakura senge data iri mudhatabhesi pachayo, kana kutopfuura. Kuwanda kwekutema miti kunogadzirwa paunenge uchishanda neDBMS idambudziko rinowanzoitika mukugadzira.
Ngatitarisei mamwe ma parameters:
- Iyo inomhanya haichinje zvakanyanya: pasina kutema - 43,74 masekonzi, nekucheka - 53,23 masekondi.
- RAM uye CPU kuita kuchatambura nekuti iwe unofanirwa kugadzira faira rekuongorora. Izvi zvinoonekwa zvakare mukubudirira.
Sezvo huwandu hwekubatanidza hunowedzera, sechisikigo, kuita kunoderera zvishoma.
Mumakambani ane audit zvakatonyanya kuoma:
- kune data rakawanda;
- kuongororwa kunodiwa kwete chete kuburikidza ne syslog muSIEM, asiwo mumafaira: kana chimwe chinhu chikaitika kune syslog, panofanira kuva nefaira pedyo nedhesi iyo data inochengetwa;
- sherufu yakasiyana inodiwa pakuongorora kuitira kuti usaparadza I / O disks, sezvo inotora nzvimbo yakawanda;
- Izvo zvinoitika kuti ruzivo rwekuchengetedza vashandi vanoda GOST zviyero kwese kwese, ivo vanoda nyika kuzivikanwa.
Kurambidza kuwana data
Ngatitarisei matekinoroji anoshandiswa kuchengetedza data uye kuiwana mukutengesa maDBMS uye yakavhurika sosi.
Chii chaunogona kushandisa kazhinji:
- Encryption uye obfuscation yemaitiro uye mabasa (Kupeta) - ndiko kuti, maturusi akasiyana uye zvishandiso zvinoita kuti kodhi inoverengeka isaverengeke. Ichokwadi, saka haigoni kuchinjwa kana kugadziriswa zvakare. Iyi nzira dzimwe nguva inodiwa kanenge kudivi reDBMS - iyo logic yezvirambidzo rezinesi kana mvumo yekumisikidza inovharirwa chaizvo pamaitiro uye nhanho yebasa.
- Kuderedza kuoneka kwedata nemitsara (RLS) ndipo apo vashandisi vakasiyana vanoona tafura imwe, asi kuumbwa kwakasiyana kwemitsara mairi, ndiko kuti, chimwe chinhu hachigone kuratidzwa kune mumwe munhu padanho remutsara.
- Kugadzirisa iyo data inoratidzwa (Masking) ndipo apo vashandisi mune imwe koramu yetafura vanoona data kana chete asterisks, ndiko kuti, kune vamwe vashandisi ruzivo ruchavharwa. Iyo tekinoroji inosarudza kuti ndeupi mushandisi anoratidzwa izvo zvinoenderana nedanho ravo rekuwana.
- Chengetedzo DBA/Application DBA/DBA yekuwana control iri, asi, nezve kurambidza kupinda kuDBMS pachayo, kureva kuti, vashandi vekuchengetedza ruzivo vanogona kupatsanurwa kubva kune dhatabhesi maneja uye maapplication administrator. Kune mashoma akadaro matekinoroji mune yakavhurika sosi, asi kune akawanda awo mune zvekutengesa DBMSs. Izvo zvinodiwa kana paine vashandisi vazhinji vane mukana kune maseva ivo pachavo.
- Kurambidza kupinda kune mafaera pane iyo faira system level. Iwe unogona kupa kodzero uye mukana wekuwana kune madhairekitori kuitira kuti mumwe nemumwe maneja awane chete kune inodiwa data.
- Inosungirwa kuwana uye kuchenesa ndangariro - matekinoroji aya haawanzo kushandiswa.
- Kupedzisa-kusvika-kumagumo encryption zvakananga kubva kuDBMS ndeye mutengi-parutivi encryption ine kiyi manejimendi padivi reseva.
- Data encryption. Semuyenzaniso, columnar encryption ndipo paunoshandisa michina inovharidzira koramu imwe chete yedatabase.
Izvi zvinokanganisa sei kuita kweDBMS?
Ngatitarisei muenzaniso weiyo columnar encryption muPostgreSQL. Pane pgcrypto module, inokutendera iwe kuti uchengetedze minda yakasarudzwa mune encrypted fomu. Izvi zvinobatsira kana imwe chete data yakakosha. Kuti uverenge minda yakavharidzirwa, mutengi anotumira kiyi yekutsikisa, sevha inobvisa data uye inodzosera kumutengi. Pasina kiyi, hapana anogona kuita chero chinhu nedata rako.
Ngatiedze ne pgcrypto. Ngatigadzire tafura ine encrypted data uye yenguva dzose data. Pazasi pane mirairo yekugadzira matafura, mumutsetse wekutanga kune murairo unobatsira - kugadzira iyo yekuwedzera pachayo nekunyoresa DBMS:
CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));Tevere, ngatiedzei kugadzira data data kubva patafura yega yega uye titarise nguva dzekuuraya.
Kusarudza kubva patafura isina encryption basa:
psql -c "timing" -c "select * from t1 limit 1000;" "host=192.168.220.129 dbname=taskdb
user=postgres sslmode=disable" > 1.txtStopwatch yabatidzwa.
id | text1 | chinyorwa2
——+——--+——--
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
...
997 | 997 | 997
998 | 998 | 998
999 | 999 | 999
1000 | 1000 | 1000
(1000 mitsetse)
Nguva: 1,386 ms
Sarudzo kubva patafura ine encryption basa:
psql -c "timing" -c "select id, decrypt(text1, 'key'::bytea, 'bf'),
decrypt(text2, 'key'::bytea, 'bf') from t2 limit 1000;"
"host=192.168.220.129 dbname=taskdb user=postgres sslmode=disable" > 2.txtStopwatch yabatidzwa.
id | decrypt | decrypt
——+—————+—————
1 | x31 | x31
2 | x32 | x32
3 | x33 | x33
...
999 | x393939 | x393939
1000 | x31303030 | x31303030
(1000 mitsetse)
Nguva: 50,203 ms
Mhedzisiro yebvunzo:
Pasina encryption
Pgcrypto (decrypt)
Sample 1000 mitsara
1,386 ms
50,203 ms
CPU
15%
35%
RAM
+ 5%
Encryption ine simba guru pakuita. Zvinogona kuoneka kuti nguva yakawedzera, sezvo decryption mashandiro eiyo encrypted data (uye decryption kazhinji ichiri yakaputirwa mune yako logic) inoda zvakakosha zviwanikwa. Ndokunge, iyo pfungwa yekuvharisa makoramu ese ane imwe data azere nekudzikira kwekuita.
Nekudaro, encryption haisi bara resirivha rinogadzirisa matambudziko ese. Iyo decrypted data uye decryption kiyi panguva yekuita decrypting uye kuendesa iyo data iri pane server. Naizvozvo, makiyi anogona kubvumwa nemumwe munhu ane mukana wakazara kune dhatabhesi server, senge system administrator.
Kana paine kiyi imwe yekoramu yese yevashandisi vese (kunyangwe isiri yevose, asi yevatengi veakaganhurwa seti), izvi hazvisi nguva dzose zvakanaka uye zvakarurama. Ndosaka vakatanga kuita end-to-end encryption, muDBMS vakatanga kufunga nezvesarudzo dzekunyorera data pane mutengi uye server divi, uye iwo makiyi-vault storages akaonekwa - akasiyana zvigadzirwa zvinopa kiyi manejimendi paDBMS. side.

Chengetedzo maficha mune yekutengesa uye yakavhurika sosi DBMS
Mabasa
Tora
Password Policy
Audit
Kuchengetedza iyo source code yemaitiro uye mabasa
RLS
Encryption
pangataura
vezvokutengeserana
+
+
+
+
+
MsSql
vezvokutengeserana
+
+
+
+
+
vezvokutengeserana
+
+
+
+
Extensions
PostgreSQL
Free
Extensions
Extensions
-
+
Extensions
MongoDb
Free
-
+
-
-
Inowanikwa muMongoDB Enterprise chete
Tafura iri kure nekukwana, asi mamiriro acho ndeaya: muzvigadzirwa zvekutengesa, matambudziko ekuchengetedza akagadziriswa kwenguva yakareba, munzvimbo yakazaruka, sekutonga, mamwe marudzi e-add-ons anoshandiswa kuchengetedza, mabasa mazhinji anoshaikwa. , dzimwe nguva unofanira kuwedzera chimwe chinhu. Semuenzaniso, password policy - PostgreSQL ine akawanda akasiyana ekuwedzera (, , , , ), iyo inoshandisa mitemo yepassword, asi, mumaonero angu, hapana kana chimwe chazvo chinovhara zvese zvinodiwa zvechikamu chemakambani epamba.
Zvekuita kana iwe usina chaunoda chero kupi? Semuenzaniso, iwe unoda kushandisa chaiyo DBMS iyo isina mabasa ayo mutengi anoda.
Ipapo iwe unogona kushandisa wechitatu-bato mhinduro dzinoshanda neDBMS dzakasiyana, semuenzaniso, Crypto DB kana Garda DB. Kana isu tichitaura nezve mhinduro kubva kuchikamu chemumba, saka ivo vanoziva nezveGOSTs zviri nani pane yakavhurika sosi.
Yechipiri sarudzo ndeyekunyora zvaunoda iwe pachako, shandisa kuwana data uye encryption mukushandisa padanho rekuita. Ichokwadi, zvichava zvakanyanya kuoma neGOST. Asi kazhinji, iwe unogona kuvanza iyo data sezvinodiwa, woiisa muDBMS, wozoitora uye woinyora sezvinodiwa, padanho rekushandisa. Panguva imwecheteyo, nekukurumidza funga nezve kuti iwe uchadzivirira sei aya algorithms mukushandisa. Mune maonero edu, izvi zvinofanira kuitwa pamwero weDBMS, nokuti ichashanda nokukurumidza.
Chirevo ichi chakatanga kuburitswa pa ne Mail.ru Cloud Solutions. Tarisamamwe maitiro uye kunyorera kune zviziviso zvezviitiko paTeregiramu .
Chii chimwe chekuverenga pamusoro penyaya:
- .
- .
Source: www.habr.com

