Consul + iptables = :3

Ka 2010 khampani Ho loana ho ne ho e-na le li-server tse 50 le mohlala o bonolo oa marang-rang: backend, frontend le firewall. Palo ea li-server e ile ea eketseha, mohlala o ile oa rarahana le ho feta: ho hlophisa, ho arola li-VLAN tse nang le li-ACL, joale li-VPN tse nang le VRF, VLAN tse nang le ACL ho L2, VRF tse nang le ACL ho L3. Hlooho ea bilika? Ho tla ba monate ho feta hamorao.

Ha ho ne ho e-na le li-server tse 16, ho ne ho se bonolo ho sebetsa ntle le meokho ka likarolo tse ngata tse sa tšoaneng. Kahoo re ile ra tla le tharollo e ’ngoe. Re nkile stack ea Netfilter, ra eketsa Consul ho eona e le mohloli oa data, mme ra fumana firewall e ajoang ka potlako. Ba nkela sebaka sa ACL ho li-routers 'me ba li sebelisa e le firewall ea ka ntle le ea ka hare. Ho laola sesebelisoa ka matla, re thehile sistimi ea BEFW, e neng e sebelisoa hohle: ho tloha ho laola phihlello ea basebelisi ho marang-rang a sehlahisoa ho ea ho arola likarolo tsa marang-rang ho tloha ho tse ling.

Consul + iptables = :3

O tla u bolella kamoo tsohle li sebetsang kateng le hore na ke hobane'ng ha u lokela ho shebisisa tsamaiso ena. Ivan Agarkov (selemo) - hlooho ea sehlopha sa ts'ireletso ea litšebeletso tsa motheo tsa karolo ea Maintenance setsing sa nts'etsopele sa Minsk sa k'hamphani. Ivan ke sebapali sa SELinux, o rata Perl, mme o ngola khoutu. Joaloka hlooho ea sehlopha sa ts'ireletso ea tlhahisoleseding, o lula a sebetsa le li-logs, li-backups le R & D ho sireletsa Wargaming ho li-hackers le ho netefatsa ts'ebetso ea lisebelisoa tsohle tsa papali k'hamphaning.

Tlaleho ea Histori

Pele ke u bolella hore na re e entse joang, ke tla u bolella hore na re fihlile joang tabeng ena le hore na ke hobane'ng ha e ne e hlokahala. Ho etsa sena, a re khutleleng lilemo tse 9 morao: 2010, Lefatše la Litanka le sa tsoa hlaha. Wargaming e ne e na le li-server tse ka bang 50.

Consul + iptables = :3
Chate ea kholo ea seva ea k'hamphani.

Re ne re e-na le mohlala oa marang-rang. Ka nako eo e ne e le molemo ka ho fetisisa.

Consul + iptables = :3
Network model ka 2010.

Ho na le batho ba babe ba ka pele ba batlang ho re senya, empa e na le firewall. Ha ho na firewall ka morao, empa ho na le li-server tse 50 moo, re li tseba kaofela. Tsohle di sebetsa hantle.

Ka lilemo tse 4, likepe tsa seva li ile tsa eketseha ka makhetlo a 100, ho ea ho 5000. Li-network tsa pele tse ka thōko li ile tsa hlaha - ho etsa lipapali: li ne li sitoa ho ea tlhahiso, 'me hangata ho ne ho e-na le lintho tse mathang moo tse ka bang kotsi.

Consul + iptables = :3
Network model ka 2014.

Ka inertia, re ne re sebelisa likotoana tse tšoanang tsa hardware, 'me mosebetsi oohle o ne o etsoa ho VLANs e ka thōko: ACLs e ngotsoe ho VLANs, e lumellang kapa ho hana mofuta o itseng oa ho hokahanya.

Ka 2016, palo ea li-server e fihlile ho 8000 XNUMX. Wargaming e ile ea nka li-studio tse ling, 'me ho ile ha hlaha marang-rang a eketsehileng a amanang. Li bonahala eka ke tsa rona, empa ha ho joalo: VLAN hangata ha e sebetse ho balekane, o tlameha ho sebelisa VPN le VRF, ho itšehla thajana ho ba thata le ho feta. Motsoako oa motsoako oa ACL oa hola.

Consul + iptables = :3
Network model ka 2016.

Qalong ea 2018, likepe tsa mechine li ne li se li le 16 000. Ho ne ho e-na le likarolo tse 6, 'me ha rea ​​ka ra bala tse ling kaofela, ho kenyelletsa le tse koetsoeng tseo ho tsona ho bolokiloeng lintlha tsa lichelete. Marang-rang a Container (Kubernetes), DevOps, marang-rang a maru a hokahaneng ka VPN, mohlala, ho tsoa ho IVS, a hlahile. Ho ne ho e-na le melao e mengata - e ne e le bohloko.

Consul + iptables = :3
Mokhoa oa marang-rang le mekhoa ea ho itšehla thajana ka 2018.

Bakeng sa ho itšehla thajana re sebelisitse: VLAN e nang le ACL ho L2, VRF e nang le ACL ho L3, VPN le tse ling tse ngata. E ngata haholo.

Mathata

E mong le e mong o phela le ACL le VLAN. Molato ke eng? Potso ena e tla arajoa ke Harold, a pata bohloko.

Consul + iptables = :3

Ho ne ho e-na le mathata a mangata, empa ho ne ho e-na le a mahlano a maholo.

  • Keketseho ea theko ea geometri bakeng sa melao e mecha. Molao o mong le o mong o mocha o ile oa nka nako e telele ho feta oa pele, hobane ho ne ho hlokahala pele ho bona hore na ho se ho ntse ho e-na le molao o joalo.
  • Ha ho na firewall ka har'a likarolo. Likarolo li ne li arohane ka tsela e itseng, 'me ho ne ho se ho se na lisebelisoa tse lekaneng ka hare.
  • Melao e ile ea sebelisoa ka nako e telele. Basebetsi ba ne ba ka ngola molao o le mong oa sebaka ka letsoho ka mor'a hora. Ea lefatše lohle e ile ea nka matsatsi a 'maloa.
  • Mathata a nang le melao ea tlhahlobo ea lichelete. Ha e le hantle, ho ne ho sa khonehe. Melao ea pele e ngotsoe morao koana ka 2010, 'me boholo ba bangoli ba eona ha ba sa sebetsa k'hamphani.
  • Boemo bo tlase ba taolo ea litšebeletso tsa motheo. Bona ke bothata bo boholo - re ne re sa tsebe hantle se etsahalang naheng ea rona.

Sena ke kamoo moenjiniere oa marang-rang a neng a shebahala kateng ka 2018 ha a utloa: "U hloka ACL e 'ngoe."

Consul + iptables = :3

Tharollo

Qalong ea 2018, ho ile ha etsoa qeto ea ho etsa ho hong ka eona.

Theko ea ho kopanya e ntse e hōla kamehla. Taba ea pele e ne e le hore litsi tse kholo tsa data li emisitse ho ts'ehetsa li-VLAN le li-ACL tse ka thoko hobane lisebelisoa li ile tsa felloa ke mohopolo.

Tharollo: re tlositse ntlha ea motho mme ra iketsetsa phepelo ea phihlello ho fihla holimo.

Melao e mecha e nka nako e telele ho sebetsa. Tharollo: potlakisa ts'ebeliso ea melao, etsa hore e abuoe le ho tsamaisana. Sena se hloka tsamaiso e ajoang e le hore melao e itlhahisoe ka boeona, ntle le rsync kapa SFTP ho litsamaiso tse sekete.

Ha ho li-firewall ka har'a likarolo. Li-firewall ka har'a likarolo li ile tsa qala ho tla ho rona ha litšebeletso tse fapaneng li hlaha ka har'a marang-rang a tšoanang. Tharollo: sebelisa firewall boemong ba moamoheli - li-firewall tse thehiloeng ho host. Hoo e ka bang hohle moo re nang le Linux, 'me hohle moo re nang le li-iptables, sena ha se bothata.

Mathata a nang le melao ea tlhahlobo. Tharollo: Boloka melao eohle sebakeng se le seng bakeng sa tlhahlobo le taolo, hore re tle re hlahlobe tsohle.

Boemo bo tlase ba taolo holim'a litšebeletso tsa motheo. Tharollo: nka lethathamo la lits'ebeletso tsohle le phihlello lipakeng tsa tsona.

Ena ke ts'ebetso ea tsamaiso ho feta ea tekheniki. Ka nako e 'ngoe re na le likhatiso tse ncha tse 200-300 ka beke, haholo nakong ea lipapatso le matsatsi a phomolo. Ho feta moo, sena ke sa sehlopha se le seng feela sa DevOps ea rona. Ka litokollo tse ngata hakana, ho ke ke ha khoneha ho bona hore na ke likou life, li-IP, le likhokahano tse hlokahalang. Ka hona, re ne re hloka batsamaisi ba tšebeletso ba koetlisitsoeng ka ho khethehileng ba ileng ba botsa lihlopha: “Ho na le eng, hona ke hobane’ng ha le e hlahisitse?”

Kamora tsohle tseo re li hlahisitseng, moenjiniere oa marang-rang ka 2019 o ile a qala ho shebahala tjena.

Consul + iptables = :3

Consum

Re ile ra etsa qeto ea hore re tla beha ntho e 'ngoe le e' ngoe eo re e fumaneng ka thuso ea batsamaisi ba litšebeletso ho Consul 'me ho tloha moo re tla ngola melao ea iptables.

Re ile ra etsa qeto ea ho etsa see joang?

  • Re tla bokella lits'ebeletso tsohle, marang-rang le basebelisi.
  • Ha re theheng melao ea iptables re ipapisitse le eona.
  • Re iketsetsa taolo.
  • ....
  • MOLEMO.

Consul ha se API e hole, e ka matha node e 'ngoe le e' ngoe ebe e ngolla iptables. Ho setseng ke ho tla ka li-control tse iketsang tse tla hloekisa lintho tse sa hlokahaleng, 'me boholo ba mathata a tla rarolloa! Re tla lokisa tse ling ha re ntse re tsamaea.

Hobaneng ha Consul?

E ipakile hantle. Ka 2014-15, re e sebelisitse e le mokokotlo oa Vault, moo re bolokang li-passwords.

Ha e lahleheloe ke data. Nakong ea tšebeliso, Consul ha ea ka ea lahleheloa ke data nakong ea kotsi e le 'ngoe. Ena ke karolo e kholo bakeng sa sistimi ea taolo ea firewall.

Likhokahano tsa P2P li potlakisa ho ata ha phetoho. Ka P2P, liphetoho tsohle li tla kapele, ha ho hlokahale ho ema lihora tse ngata.

E bonolo REST API. Re boetse re nahana ka Apache ZooKeeper, empa ha e na REST API, kahoo o tla tlameha ho kenya lithupa.

E sebetsa joalo ka Key Vault (KV) le Directory (Service Discovery). U ka boloka lits'ebeletso, li-catalogs, le litsi tsa data hang-hang. Sena ha se bonolo ho rona feela, empa le bakeng sa lihlopha tsa boahelani, hobane ha re haha ​​​​tšebeletso ea lefats'e, re nahana haholo.

E ngotsoe ho Go, e leng karolo ea pokello ea Wargaming. Re rata puo ena, re na le bahlahisi ba bangata ba Go.

Sistimi e matla ea ACL. Ho Consul, u ka sebelisa ACLs ho laola hore na ke mang ea ngolang seo. Re netefatsa hore melao ea firewall e ke ke ea kopana le ntho leha e le efe 'me re ke ke ra ba le mathata ka sena.

Empa Consul e boetse e na le mathata a eona.

  • Ha e kenelle setsing sa data ntle le haeba o na le mofuta oa khoebo. E ka fokotsoa feela ke federal.
  • E itšetlehile haholo ka boleng ba marang-rang le mojaro oa seva. Consul e ke ke ea sebetsa hantle joalo ka seva ho seva se phathahaneng haeba ho na le li-lags ho marang-rang, mohlala, lebelo le sa lekanang. Sena se bakoa ke likhokahano tsa P2P le mefuta ea ntlafatso ea kabo.
  • Bothata bo fumanehang ba ho beha leihlo. Boemong ba Consul a ka re ntho e 'ngoe le e' ngoe e lokile, empa o shoele khale.

Re rarolotse boholo ba mathata ana ha re ntse re sebelisa Consul, ke ka lebaka leo re e khethileng. Khampani e na le merero ea mokhoa o mong oa ho khutlela morao, empa re ithutile ho sebetsana le mathata 'me hona joale re lula le Consul.

Kamoo Consul e sebetsang kateng

Re tla kenya li-server tse tharo ho isa ho tse hlano setsing sa data se nang le maemo. Seva e le 'ngoe kapa tse peli li ke ke tsa sebetsa: li ke ke tsa khona ho hlophisa quorum le ho etsa qeto ea hore na ke mang ea nepahetseng le ea fosahetseng ha data e sa lumellane. Ho feta tse hlano ha ho na kelello, tlhahiso e tla theoha.

Consul + iptables = :3

Bareki ba hokahana le li-server ka tatellano efe kapa efe: mahlahana a tšoanang, feela ka folakha server = false.

Consul + iptables = :3

Kamora sena, bareki ba fumana lethathamo la likhokahano tsa P2P mme ba theha likhokahano har'a bona.

Consul + iptables = :3

Boemong ba lefats'e, re hokahanya litsi tse 'maloa tsa data. Li boetse li hokahanya P2P le ho buisana.

Consul + iptables = :3

Ha re batla ho fumana data ho tloha setsing se seng sa data, kopo e tloha ho seva ho ea ho seva. Leano lena le bitsoa Serf protocol. Protocol ea Serf, joalo ka Consul, e hlahisoa ke HashiCorp.

Lintlha tse ling tsa bohlokoa ka Consul

Consul e na le litokomane tse hlalosang hore na e sebetsa joang. Ke tla fana ka lintlha tse khethiloeng feela tse lokelang ho tseba.

Li-server tsa bo-Consul li khetha master ho tsoa har'a bakhethi. Consul e khetha monghali lethathamong la li-server bakeng sa setsi se seng le se seng sa data, 'me likopo tsohle li ea ho eona feela, ho sa tsotelehe palo ea li-server. Ho ba le serame ha ho lebise likhethong hape. Haeba monghali a sa khethoa, likopo ha li sebeletsoe ke mang kapa mang.

A na u ne u batla ho sekala ka holimo? Tšoarelo, che.

Kopo ho setsi se seng sa data e tloha ho monghali ho ea ho mong'a ntlo, ho sa tsotellehe hore na e fihlile ho seva sefe. Monghali ea khethiloeng o fumana 100% ea mojaro, ntle le mojaro oa likopo tsa pele. Li-server tsohle tse setsing sa data li na le kopi ea morao-rao ea data, empa ke e le 'ngoe feela e arabelang.

Mokhoa o le mong feela oa ho lekanya ke ho lumella mokhoa oa khale ho moreki.

Ka mokhoa oa khale, o ka araba ntle le quorum. Ona ke mokhoa oo ka ona re tlohelang ho tsitsa ha data, empa re bala kapele ho feta ka tloaelo, 'me seva efe kapa efe ea arabela. Ka tlhaho, ho rekota feela ka monghali.

Consul ha e kopitse data lipakeng tsa litsi tsa data. Ha mokhatlo o hlophisitsoeng o bokelloa, seva se seng le se seng se tla ba le data ea sona feela. Ho ba bang, kamehla o retelehela ho motho e mong.

Atomicity of operations ha e tiisetsoe kantle ho transaction. Hopola hore hase uena feela ea ka fetolang lintho. Haeba u e batla ka tsela e fapaneng, etsa khoebo ka senotlolo.

Ts'ebetso ea ho thibela ha e tiise ho notlela. Kopo e tsoa ho monghali ho ea ho setsebi, eseng ka ho toba, kahoo ha ho na tiiso ea hore ho thibela ho tla sebetsa ha u thibela, ka mohlala, setsing se seng sa data.

ACL hape ha e tiisetse ho fihlella (maemong a mangata). ACL e ka 'na ea se ke ea sebetsa hobane e bolokiloe setsing se le seng sa boitsebiso ba mokhatlo - setsing sa data sa ACL (Primary DC). Ha DC e sa u arabe, ACL e ke ke ea sebetsa.

Monghali a le mong ea leqhoa o tla etsa hore 'muso oohle o hoama. Ka mohlala, ho na le litsi tsa data tsa 10 mokhatlong o kopanetsoeng, 'me motho o na le marang-rang a mabe,' me monghali a le mong o hlōleha. E mong le e mong ea buisanang le eena o tla khomarela selikalikoe: ho na le kopo, ha ho na karabo ho eona, khoele ea hoama. Ha ho mokhoa oa ho tseba hore na sena se tla etsahala neng, ka mor'a hora kapa tse peli feela mokhatlo oohle o tla oa. Ha ho letho leo u ka le etsang ka eona.

Boemo, quorum le likhetho li sebetsoa ka khoele e arohaneng. Ho khethoa hape ho ke ke ha etsahala, boemo bo ke ke ba bontša letho. U nahana hore u na le Consul e phelang, ua botsa, 'me ha ho letho le etsahalang - ha ho na karabo. Ka nako e ts'oanang, boemo bo bontša hore ntho e 'ngoe le e' ngoe e lokile.

Re kopane le bothata bona mme re ile ra tlameha ho aha likarolo tse ikhethileng tsa litsi tsa data ho bo qoba.

Mofuta oa khoebo oa Consul Enterprise ha o na bofokoli bo kaholimo. E na le mesebetsi e mengata ea bohlokoa: ho khetha bakhethi, kabo, ho eketsa. Ho na le "empa" e le 'ngoe feela - mokhoa oa ho fana ka laesense bakeng sa tsamaiso e abuoang e theko e boima haholo.

Ho hakela bophelo: rm -rf /var/lib/consul - pheko ea mafu ohle a moemeli. Haeba ho na le ho hong ho sa sebetseng bakeng sa hau, hlakola feela data ea hau ebe u khoasolla data ho tsoa kopi. Mohlomong, Consul e tla sebetsa.

BEFW

Joale ha re bue ka seo re se kentseng ho Consul.

BEFW ke khutsufatso ea BackEndFbohaleWkaofela. Ke ile ka tlameha ho reha sehlahisoa ka tsela e itseng ha ke theha polokelo e le hore ke behe liteko tsa pele ho eona. Lebitso lena le ntse le le teng.

Lithempleite tsa molao

Melao e ngotsoe ka li-syntax tsa iptables.

  • -N BEFW
  • -P KENYA LEROTHOLI
  • -A PUTLO -m state-state E MANANE, E HLOMILWE -j AMOHELA
  • -A PUTLO -i lo -j AMOHELA
  • -A PUTLO -j BEFW

Ntho e 'ngoe le e' ngoe e kena ka ketane ea BEFW, ntle le ESTABLISHED, RELATED le localhost. Template e ka ba eng kapa eng, ona ke mohlala feela.

BEFW e thusa joang?

Litšebeletso

Re na le tšebeletso, kamehla e na le kou, node eo e tsamaeang ho eona. Ho tsoa sebakeng sa rona, re ka botsa moemeli sebakeng sa heno mme ra fumana hore re na le mofuta o itseng oa ts'ebeletso. U ka boela ua beha li-tag.

Consul + iptables = :3

Ts'ebeletso efe kapa efe e sebetsang le e ngolisitsoeng ho Consul e fetoha molao oa iptables. Re na le SSH - port e bulehileng ea 22. Sengoloa sa Bash se bonolo: curl le iptables, ha ho letho le leng le hlokahalang.

Batsoali

Joang ho bula phihlello eseng ho motho e mong le e mong, empa ka khetho? Kenya manane a IP polokelong ea KV ka lebitso la ts'ebeletso.

Consul + iptables = :3

Mohlala, re batla hore bohle ba marangrang a leshome ba khone ho fumana litšebeletso tsa SSH_TCP_22. Kenya sebaka se le seng se senyenyane sa TTL? mme jwale re na le ditumello tsa nakwana, mohlala, tsa letsatsi.

Lisebelisoa

Re hokahanya lits'ebeletso le bareki: re na le ts'ebeletso, polokelo ea KV e loketse e mong le e mong. Hona joale ha re fane ka phihlello ho motho e mong le e mong, empa ka mokhoa o ikhethileng.

Consul + iptables = :3

Lihlopha

Haeba re ngola likete tsa IPs bakeng sa ho fihlella nako le nako, re tla khathala. Ha re tle ka lihlopha - karoloana e arohaneng ea KV. Ha re e bitse Alias ​​(kapa lihlopha) 'me re boloke lihlopha moo ho latela molao-motheo o tšoanang.

Consul + iptables = :3

Ha re hokahaneng: joale re ka bula SSH eseng ka kotloloho bakeng sa P2P, empa bakeng sa sehlopha sohle kapa lihlopha tse 'maloa. Ka mokhoa o ts'oanang, ho na le TTL - o ka eketsa sehlopha mme oa tlosa sehlopheng ka nakoana.

Consul + iptables = :3

Ho kopanya

Bothata ba rona ke taba ea motho le boiketsetso. Ho fihlela joale re e rarolotse ka tsela ena.

Consul + iptables = :3

Re sebetsa le Puppet, mme re fetisetsa tsohle tse amanang le sistimi (khoutu ea kopo) ho bona. Puppetdb (PostgreSQL ea kamehla) e boloka lethathamo la lits'ebeletso tse sebetsang moo, li ka fumanoa ka mofuta oa lisebelisoa. Ha u le moo u ka fumana hore na ke mang ea etsang kopo moo. Re boetse re na le kopo ea ho hula le ho kopanya sistimi ea kopo bakeng sa sena.

Re ngotse befw-sync, tharollo e bonolo e thusang ho fetisa data. Taba ea pele, li-cookies tsa sync li fumaneha ka puppetdb. HTTP API e hlophisitsoe moo: re kopa hore na re na le litšebeletso life, ke eng e lokelang ho etsoa. Ebe ba etsa kopo ho Consul.

Na ho na le kopanyo? E: ba ngotse melao mme ba lumella Pull Requests hore e amoheloe. A na u hloka boema-kepe bo itseng kapa ho eketsa moamoheli sehlopheng se itseng? Pull Request, hlahloba - ha ho sa na "Fumana li-ACL tse ling tse 200 'me u leke ho etsa ho hong ka hona."

Ntlafatso

Pinging localhost ka ketane ea molao e se nang letho e nka 0,075 ms.

Consul + iptables = :3

Ha re kenye liaterese tsa li-iptable tse 10 ho ketane ena. Ka lebaka leo, ping e tla eketseha ka makhetlo a 000: iptables e na le linear ka ho feletseng, ho sebetsana le aterese ka 'ngoe ho nka nako.

Consul + iptables = :3

Bakeng sa firewall moo re fallelang likete tsa ACLs, re na le melao e mengata, 'me sena se hlahisa latency. Sena se fosahetse bakeng sa liprothokholo tsa lipapali.

Empa haeba re beha 10 liaterese ho ipset Ping e tla fokotseha.

Consul + iptables = :3

Taba ke hore "O" (algorithm e rarahaneng) bakeng sa ipset e lula e lekana le 1, ho sa tsotellehe hore na ho na le melao e mengata hakae. Ke 'nete, ho na le moeli - ho ke ke ha e-ba le melao e fetang 65535. Hona joale re phela le sena: u ka li kopanya, ua li atolosa, ua etsa li-ipsets tse peli ho e le 'ngoe.

Boloka

Tsoelo-pele e utloahalang ea ts'ebetso ea ho pheta-pheta ke ho boloka tlhahisoleseding e mabapi le bareki bakeng sa tšebeletso ho ipset.

Consul + iptables = :3

Hona joale re na le SSH e tšoanang, 'me ha re ngole 100 IPs hang-hang, empa re beha lebitso la ipset eo re lokelang ho buisana le eona, le molao o latelang. DROP. E ka fetoloa molao o le mong "Ke mang ea sieo mona, DROP", empa e hlakile haholoanyane.

Hona joale re na le melao le lihlopha. Mosebetsi o ka sehloohong ke ho etsa sete pele o ngola molao, hobane ho seng joalo iptables e ke ke ea ngola molao.

Sekema se akaretsang

Ka mokhoa oa setšoantšo, ntho e 'ngoe le e' ngoe eo ke e buileng e shebahala tjena.

Consul + iptables = :3

Re itlama ho Puppet, ntho e 'ngoe le e 'ngoe e romelloa ho moamoheli, lits'ebeletso mona, ipset mono, le mang kapa mang ea sa ngolisoang moo ha a lumelloe.

Lumella & latola

Ho pholosa lefatše ka potlako kapa ho thibela motho ka potlako, qalong ea liketane tsohle re entse li-ipsets tse peli: rules_allow и rules_deny. E sebetsa joang?

Mohlala, motho e mong o etsa moroalo Webosaeteng ea rona ka bots. Nakong e fetileng, o ne o tlameha ho fumana IP ea hae ho tloha litsing, ho e isa ho baenjiniere ba marang-rang, e le hore ba ka fumana mohloli oa sephethephethe le ho mo thibela. E shebahala e fapane hona joale.

Consul + iptables = :3

Re e romela ho Consul, ema metsotsoana ea 2,5, 'me e felile. Kaha Consul e aba kapele ka P2P, e sebetsa hohle, karolong efe kapa efe ea lefatše.

Hang ha ka tsela e itseng ke ile ka emisa WOT ka ho feletseng ka lebaka la phoso ka firewall. rules_allow - ena ke inshorense ea rona khahlanong le linyeoe tse joalo. Haeba re entse phoso kae-kae ka firewall, ntho e 'ngoe e koetsoe kae-kae, re ka lula re romella maemo 0.0/0ho thonaka tsohle kapele. Hamorao re tla lokisa tsohle ka letsoho.

Lihlopha tse ling

O ka eketsa lihlopha tse ling tsa sebaka $IPSETS$.

Consul + iptables = :3

Molelmong oa eng? Ka linako tse ling motho o hloka ipset, mohlala, ho etsisa ho koaloa ha karolo e itseng ea sehlopha. Mang kapa mang a ka tlisa lihlopha, a li rehe, 'me li tla nkuoa ho Consul. Ka nako e ts'oanang, lihlopha li ka kenya letsoho melaong ea iptables kapa tsa sebetsa e le sehlopha NOOP: Ho lumellana ho tla bolokoa ke daemon.

Basebelisi

Pejana, ho ne ho le tjena: mosebelisi o hokahane le marang-rang mme a amohela li-parameter ka domain. Pele ho fihla li-firewall tsa moloko o mocha, Cisco o ne a sa tsebe ho utloisisa hore na mosebedisi o hokae le hore na IP e hokae. Ka hona, phihlello e ne e fanoe feela ka lebitso la moamoheli oa mochini.

Re ile ra etsa’ng? Re ile ra manganga nakong eo re fumanang aterese. Hangata sena ke dot1x, Wi-Fi kapa VPN - tsohle li feta ka RADIUS. Bakeng sa mosebelisi e mong le e mong, re theha sehlopha ka lebitso la mosebelisi mme re beha IP ho eona ka TTL e lekanang le eona dhcp.lease - hang ha e fela, molao o tla nyamela.

Consul + iptables = :3

Joale re ka bula phihlello ea lits'ebeletso, joalo ka lihlopha tse ling, ka lebitso la mosebelisi. Re tlositse bohloko ho mabitso a baeti ha ba fetoha, mme re tlositse moroalo ho lienjiniere tsa marang-rang hobane ha li sa hloka Cisco. Hona joale baenjiniere ba ngolisa phihlello ho li-server tsa bona.

Ho kenya letsoho

Ka nako e ts'oanang, re ile ra qala ho qhaqha mohatla. Baokameli ba litšebeletso ba ile ba nka lethathamo, 'me ra hlahloba marang-rang a rona kaofela. A re li arole ka lihlopha tse tšoanang, 'me ho li-server tse hlokahalang lihlopha li ile tsa eketsoa, ​​mohlala, ho hana. Hona joale ho itšehla thajana ho tšoanang ho fella ka melao_ho latola tlhahiso, empa eseng tlhahisong ka boeona.

Consul + iptables = :3

Morero o sebetsa ka potlako le ka mokhoa o bonolo: re tlosa li-ACL tsohle ho li-server, re laolla lisebelisoa, 'me re fokotsa palo ea li-VLAN tse ka thōko.

Taolo ya botshepehi

Nakong e fetileng, re ne re e-na le mochine o khethehileng o tlalehileng ha motho e mong a fetola molao oa firewall ka letsoho. Ke ne ke ngola linter e kholo bakeng sa ho hlahloba melao ea firewall, ho ne ho le thata. Botšepehi bo se bo laoloa ke BEFW. Ka cheseho o tiisa hore melao eo a e etsang ha e fetohe. Haeba motho a fetola melao ea firewall, e tla fetola ntho e 'ngoe le e' ngoe morao. “Ka potlako ke ile ka theha moemeli e le hore nka sebetsa ke le hae”—ha ho sa na mekhoa e joalo.

BEFW e laola ipset ho tsoa lits'ebeletso le lenane ho befw.conf, melao ea litšebeletso ho ketane ea BEFW. Empa ha e hlokomele liketane tse ling le melao le li-ipsets tse ling.

Tšireletso ea kotsi

BEFW e lula e boloka boemo bo botle ba ho qetela bo tsebahalang ka kotloloho mmusong.bin binary structure. Haeba ho na le ho hong ho sa tsamaeeng hantle, e lula e khutlela sebakeng sena.bin.

Consul + iptables = :3

Ena ke inshorense khahlanong le ts'ebetso e sa tsitsang ea Consul, ha e sa romele data kapa motho e mong a entse phoso mme a sebelisa melao e ke keng ea sebelisoa. Ho etsa bonnete ba hore ha re siuoe re se na firewall, BEFW e tla khutlela boemong ba morao-rao haeba phoso e etsahala neng kapa neng.

Maemong a thata, sena ke tiiso ea hore re tla sala le firewall e sebetsang. Re bula li-network tsohle tse grey ka tšepo ea hore admin o tla tla ho e lokisa. Ka letsatsi le leng ke tla beha sena ho li-configs, empa joale re na le marang-rang a mararo a grey: 10/8, 172/12 le 192.168/16. Ka har'a Consul ea rona, ena ke karolo ea bohlokoa e re thusang ho tsoela pele.

Demo: nakong ea tlaleho, Ivan o bontša mokhoa oa demo oa BEFW. Ho bonolo ho shebella pontšo видео. Demo source code e teng ho GitHub.

mamena

Ke tla u bolella ka litšitšili tseo re kopaneng le tsona.

ipset eketsa set 0.0.0.0/0. Ho etsahala'ng haeba u eketsa 0.0.0.0/0 ho ipset? Na li-IP kaofela li tla eketsoa? Na Internet e tla ba teng?

Che, re tla fumana phoso e re jellang lihora tse peli tsa ho phomola. Ho feta moo, kokoana ha e so sebetse ho tloha 2016, e fumaneha RedHat Bugzilla tlas'a nomoro ea #1297092, 'me re e fumane ka phoso - ho tsoa tlalehong ea moqapi.

Hona joale ke molao o thata ho BEFW hore 0.0.0.0/0 e fetoha liaterese tse peli: 0.0.0.0/1 и 128.0.0.0/1.

ipset tsosolosa set <faele. IPset e etsa eng ha u e bolella restore? Na u nahana hore e sebetsa joalo ka iptables? Na e tla khutlisa data?

Ha ho letho le joalo - le kopanya, 'me liaterese tsa khale ha li ee kae kapa kae, ha u thibele phihlello.

Re fumane bothata ha re leka ho itšehla thajana. Hona joale ho na le tsamaiso e rarahaneng haholo - sebakeng sa restore tshoaroa create temp, joale restore flush temp и restore temp. Qetellong ya swap: bakeng sa atomic, hobane ha o ka e etsa pele flush 'me motsotsong ona pakete e 'ngoe e fihla, e tla lahloa' me ho na le ho hong ho tla senyeha. Kahoo ho na le boselamose bo itseng moo.

consul kv fumana -datacenter=tse ling. Joalokaha ke boletse, re nahana hore re kopa data, empa re tla fumana data kapa phoso. Re ka etsa sena sebakeng sa heno ka Consul, empa tabeng ena ka bobeli li tla hoama.

Moreki oa lehae oa Consul ke sekoaelo holim'a HTTP API. Empa e leketla feela mme ha e arabe ho Ctrl+C, kapa Ctrl+Z, kapa eng kapa eng, feela kill -9 ho console e latelang. Re ile ra kopana le sena ha re ntse re haha ​​sehlopha se seholo. Empa ha re na tharollo; re ntse re itokisetsa ho lokisa phoso ena ho Consul.

Moetapele oa Consul ha a arabe. Mong'a rona setsing sa data ha a arabe, re nahana: "Mohlomong algorithm ea ho khetha e tla sebetsa hona joale?"

Che, e ke ke ea sebetsa, 'me ho shebella ho ke ke ha bontša letho: Consul e tla re ho na le index ea boitlamo, moetapele o fumanoe, ntho e' ngoe le e 'ngoe e ntle.

Re sebetsana joang le see? service consul restart ka cron hora e 'ngoe le e 'ngoe. Haeba u na le li-server tse 50, ha ho letho le leholo. Ha ho na le 16 ea bona, u tla utloisisa hore na e sebetsa joang.

fihlela qeto e

Ka lebaka leo, re fumane melemo e latelang:

  • Tšireletso ea 100% ea mechini eohle ea Linux.
  • Lebelo.
  • Boiketsetso.
  • Re ile ra lokolla li-hardware le lienjiniere tsa marang-rang bokhobeng.
  • Menyetla ea ho kopanya e hlahile e batlang e se na moeli: esita le ka Kubernetes, esita le ka Ansible, esita le ka Python.

Минусы: Consul, eo hona joale re lokelang ho phela ka eona, le litšenyehelo tse phahameng haholo tsa phoso. Ka mohlala, hang ka 6pm (nako ea pele Russia) ke ne ke hlophisa ntho e itseng lethathamong la marang-rang. Re ne re ntse re haha ​​​​insulation ka BEFW ka nako eo. Ke entse phoso kae-kae, ho bonahala eka ke bontšitse maske a fosahetseng, empa ntho e 'ngoe le e' ngoe e ile ea oa ka metsotsoana e 'meli. Tlhokomelo ea khanya, motšehetsi ea mosebetsing o tla a matha: "Re na le tsohle!" Hlooho ea lefapha le ile la fetoha hlooho ha a hlalosetsa khoebo hore na ke hobane'ng ha sena se etsahetse.

Litšenyehelo tsa phoso li phahame hoo re tlileng le mokhoa oa rona o rarahaneng oa thibelo. Haeba u kenya ts'ebetsong sena sebakeng se seholo sa tlhahiso, ha ho hlokahale hore u fane ka token e kholo holim'a Consul ho bohle. Sena se tla fela hampe.

Litsenyehelo. Ke ngotse khoutu bakeng sa lihora tse 400 ke le mong. Sehlopha sa ka sa batho ba 4 se qeta lihora tse 10 ka khoeli ho tšehetsa bohle. Ha ho bapisoa le theko ea firewall efe kapa efe e ncha, ke mahala.

Merero. Morero oa nako e telele ke ho fumana lipalangoang tse ling ho nka sebaka kapa ho tlatsana le Consul. Mohlomong e tla ba Kafka kapa ntho e tšoanang. Empa lilemong tse tlang re tla phela Consul.

Merero ea hang-hang: ho kopanngoa le Fail2ban, ka ho beha leihlo, ka li-nftables, mohlomong le kabo e meng, metrics, tlhahlobo e tsoetseng pele, ts'ebetso. Tšehetso ea Kubernetes e boetse e le kae-kae mererong, hobane joale re na le lihlopha tse 'maloa le takatso.

Tse ling ho tsoa ho meralo:

  • batla lintho tse sa tloaelehang sephethephetheng;
  • tsamaiso ea 'mapa oa marang-rang;
  • Tšehetso ea Kubernetes;
  • ho bokella liphutheloana bakeng sa litsamaiso tsohle;
  • Web-UI.

Re lula re sebeletsa ho holisa tlhophiso, ho eketsa metrics le ho ntlafatsa.

Kenela morero. Morero o ile oa bonahala o le motle, empa, ka bomalimabe, e ntse e le morero oa motho a le mong. Tloho ho GitHub 'me u leke ho etsa ho hong: itlama, leka, etsa tlhahiso ea ho hong, fana ka tlhahlobo ea hau.

Khabareng re ntse re itokisetsa Saint HighLoad++, e tla etsahala ka April 6 le 7 St. Petersburg, 'me re mema baetsi ba lisebelisoa tse phahameng tsa thepa. etsa kopo ya tlaleho. Libui tse nang le boiphihlelo li se li ntse li tseba seo li lokelang ho se etsa, empa ho ba qalang ho bua re khothaletsa bonyane ho leka. Ho nka karolo sebokeng e le sebui ho na le melemo e mengata. U ka bala hore na ke life, mohlala, qetellong Sengoloa sena.

Source: www.habr.com

Eketsa ka tlhaloso