Consal + iptables = :3

I 2010 an chuideachta Wargaming bhí 50 freastalaí ann agus samhail líonra shimplí: inneall, aghaidh agus balla dóiteáin. D'fhás líon na bhfreastalaithe, d'éirigh an tsamhail níos casta: stáitsiú, VLANanna scoite le ACLanna, ansin VPNanna le VRFanna, VLANanna le ACL ar L2, VRFanna le ACLanna ar L3. Tá ceann ag sníomh? Beidh sé níos mó spraoi níos déanaí.

Nuair a bhí 16 freastalaí ann, bhí sé dodhéanta oibriú gan deora leis an oiread sin deighleoga ilchineálacha. Mar sin tháinig muid suas le réiteach eile. Thógamar an stack Netfilter, chuir an Consal leis mar fhoinse sonraí, agus fuaireamar balla dóiteáin a dáileadh go tapa. Chuir siad in ionad ACLanna ar ródairí agus d'úsáid siad iad mar bhalla dóiteáin seachtrach agus inmheánach. Chun an uirlis a bhainistiú go dinimiciúil, d'fhorbair siad an córas BEFW, a úsáideadh i ngach áit: ó rochtain úsáideoirí ar an líonra táirgí a bhainistiú go dtí deighleoga líonra a leithlisiú óna chéile.

Consal + iptables = :3

Inseoidh sé duit conas a oibríonn sé go léir agus cén fáth ar cheart duit breathnú níos géire ar an gcóras seo. Ivan Agarkov (annmuor) atá ina cheannaire ar ghrúpa slándála bonneagair na rannóige Cothabhála ag ionad forbartha Minsc de chuid na cuideachta. Is lucht leanúna SELinux é Ivan, is breá le Perl, agus scríobhann cód. Mar cheann an ghrúpa um shlándáil faisnéise, oibríonn sé go rialta le logaí, cúltacaí agus T&F chun Wargaming a chosaint ó hackers agus chun oibriú gach freastalaithe cluiche sa chuideachta a chinntiú.

Faisnéis Stairiúil

Sula n-inseoidh mé duit conas a rinne muid é, inseoidh mé duit conas a tháinig muid chuige seo ar an gcéad dul síos agus cén fáth go raibh gá leis. Chun seo a dhéanamh, a ligean ar dul ar ais 9 mbliana: 2010, Domhanda na Umair chuma díreach. Bhí thart ar 50 freastalaí ag Wargaming.

Consal + iptables = :3
Cairt fás freastalaí cuideachta.

Bhí samhail líonra againn. Ar feadh an ama sin bhí sé optamach.

Consal + iptables = :3
Múnla líonra i 2010 saor in aisce,.

Tá drochdhaoine ar an taobh tosaigh atá ag iarraidh sinn a bhriseadh, ach tá balla dóiteáin aige. Níl aon bhalla dóiteáin ar an inneall, ach tá 50 freastalaí ann, tá aithne againn orthu go léir. Oibríonn gach rud go maith.

I 4 bliana, d'fhás an cabhlach freastalaí 100 uair, go 5000. Bhí an chuma ar na chéad líonraí scoite - stáitse: níorbh fhéidir leo dul chuig táirgeadh, agus is minic a bhí rudaí ag rith ann a d'fhéadfadh a bheith contúirteach.

Consal + iptables = :3
Múnla líonra i 2014 saor in aisce,.

Trí táimhe, d'úsáideamar na píosaí crua-earraí céanna, agus rinneadh an obair ar fad ar VLANanna iargúlta: scríobhtar ACLanna chuig na VLANanna, a cheadaíonn nó a dhiúltaíonn nasc de chineál éigin.

In 2016, shroich líon na bhfreastalaithe 8000. Ghlac Wargaming le stiúideonna eile, agus bhí líonraí cleamhnaithe breise le feiceáil. Dealraíonn sé gur linne iad, ach ní leor: ní minic go n-oibríonn VLAN do chomhpháirtithe, caithfidh tú VPN a úsáid le VRF, éiríonn aonrú níos casta. D'fhás an meascán inslithe ACL.

Consal + iptables = :3
Múnla líonra i 2016 saor in aisce,.

Faoi thús 2018, bhí an cabhlach de mheaisíní tar éis fás go 16. Bhí 000 dheighleog ann, agus níor chomhaireamh muid an chuid eile, lena n-áirítear cinn dúnta ina raibh sonraí airgeadais stóráilte. Tá líonraí coimeádáin (Kubernetes), DevOps, líonraí scamall ceangailte trí VPN, mar shampla, ó IVS, le feiceáil. Bhí go leor rialacha ann - bhí sé pianmhar.

Consal + iptables = :3
Samhail líonra agus modhanna leithlisithe in 2018.

Le haghaidh aonrú a d’úsáideamar: VLAN le ACL ar L2, VRF le ACL ar L3, VPN agus go leor eile. An iomarca.

Fadhbanna

Cónaíonn gach duine le ACL agus VLAN. Céard atá mícheart? Beidh an cheist seo a fhreagairt ag Harold, i bhfolach ar an pian.

Consal + iptables = :3

Bhí go leor fadhbanna ann, ach bhí cúig cinn ollmhór ann.

  • Méadú praghas geoiméadrach le haghaidh rialacha nua. Thóg sé níos faide gach riail nua a chur leis ná an ceann roimhe seo, toisc go raibh sé riachtanach ar dtús féachaint an raibh riail den sórt sin ann cheana féin.
  • Gan balla dóiteáin taobh istigh de mhíreanna. Bhí na codanna deighilte ar bhealach éigin óna chéile, agus ní raibh go leor acmhainní istigh cheana féin.
  • Cuireadh na rialacha i bhfeidhm ar feadh i bhfad. D'fhéadfadh oibreoirí riail áitiúil amháin a scríobh de láimh in uair an chloig. Thóg an ceann domhanda roinnt laethanta.
  • Deacrachtaí le rialacha iniúchta. Níos cruinne, ní raibh sé indéanta. Scríobhadh na chéad rialacha siar in 2010, agus níor oibrigh an chuid is mó dá n-údair don chuideachta a thuilleadh.
  • Leibhéal íseal rialaithe bonneagair. Seo an phríomhfhadhb - ní raibh a fhios againn go maith cad a bhí ar siúl inár dtír.

Seo an chuma a bhí ar innealtóir líonra in 2018 nuair a chuala sé: “Tá níos mó ACL de dhíth.”

Consal + iptables = :3

Réitigh

Ag tús 2018, socraíodh rud éigin a dhéanamh faoi.

Tá praghas na gcomhtháthaithe ag fás i gcónaí. Ba é an pointe tosaigh ná gur stop lárionaid mhóra sonraí ag tacú le VLANanna agus ACLanna iargúlta mar gur rith na gléasanna as cuimhne.

Réiteach: bhaineamar an fachtóir daonna amach agus rinneamar soláthar rochtana ar an uasmhéid a uathoibriú.

Tógann sé go leor ama na rialacha nua a chur i bhfeidhm. Réiteach: dlús a chur le cur i bhfeidhm na rialacha, déan é a dháileadh agus a chomhthreomhar. Éilíonn sé seo córas dáilte ionas go seachadtar na rialacha iad féin, gan rsync nó SFTP chuig míle córas.

Gan balla dóiteáin taobh istigh de mhíreanna. Thosaigh balla dóiteáin laistigh de chodanna ag teacht chugainn nuair a tháinig seirbhísí éagsúla chun cinn laistigh den líonra céanna. Réiteach: bain úsáid as balla dóiteáin ar an leibhéal óstach - ballaí dóiteáin óstach-bhunaithe. Beagnach i ngach áit tá Linux againn, agus i ngach áit a bhfuil iptables againn, ní fadhb é seo.

Deacrachtaí le rialacha iniúchta. Réiteach: Coinnigh na rialacha go léir in aon áit amháin le haghaidh athbhreithnithe agus bainistíochta, ionas gur féidir linn gach rud a iniúchadh.

Leibhéal íseal rialaithe ar bhonneagar. Réiteach: déan fardal de gach seirbhís agus rochtain eatarthu.

Is próiseas riaracháin níos mó é seo ná próiseas teicniúil. Uaireanta ní mór dúinn 200-300 eisiúintí nua in aghaidh na seachtaine, go háirithe le linn ardú céime agus laethanta saoire. Thairis sin, níl sé seo ach le haghaidh foireann amháin dár DevOps. Leis an oiread sin eisiúintí, tá sé dodhéanta a fheiceáil cad iad na calafoirt, IPanna, agus comhtháthú atá ag teastáil. Mar sin, bhí bainisteoirí seirbhíse sainoilte ag teastáil uainn a d’fhiafraigh de na foirne: “Cad atá ann ar aon nós agus cén fáth ar thug tú suas é?”

Tar éis gach rud a sheolamar, thosaigh innealtóir líonra i 2019 ag breathnú mar seo.

Consal + iptables = :3

Consal

Shocraigh muid go gcuirfinn gach rud a d’aimsigh muid le cabhair ó bhainisteoirí seirbhíse isteach sa Chonsal agus as sin go scríobhfaimis rialacha iptables.

Conas a shocraigh muid é seo a dhéanamh?

  • Baileoimid gach seirbhís, líonra agus úsáideoir.
  • Déanaimis rialacha iptables a chruthú bunaithe orthu.
  • Déanaimid rialú a uathoibriú.
  • ....
  • BRABÚ.

Ní API iargúlta é Consal, is féidir é a reáchtáil ar gach nód agus scríobh chuig iptables. Níl fágtha ach rialuithe uathoibríocha a dhéanamh a ghlanfaidh rudaí nach bhfuil gá leo, agus déanfar an chuid is mó de na fadhbanna a réiteach! Oibreoimid amach an chuid eile de réir mar a théann muid ar aghaidh.

Cén fáth Consal?

Tá sé cruthaithe go maith é féin. In 2014-15, d’úsáideamar é mar inneall do Vault, ina stórálaimid pasfhocail.

Ní chailleann sonraí. Le linn an ama úsáide, níor chaill Consal sonraí le linn timpiste amháin. Is buntáiste ollmhór é seo do chóras bainistíochta balla dóiteáin.

Luathaíonn naisc P2P scaipeadh an athraithe. Le P2P, tagann gach athrú go tapa, ní gá fanacht uaireanta.

Áisiúil REST API. Mheasamar freisin Apache ZooKeeper, ach níl API REST aige, mar sin beidh ort crutches a shuiteáil.

Oibríonn sé mar Eochair cruinneachán (KV) agus Eolaire (Fionnachtain Seirbhíse). Is féidir leat seirbhísí, catalóga agus ionaid sonraí a stóráil ag an am céanna. Tá sé seo áisiúil ní hamháin dúinn, ach freisin d'fhoirne comharsanacha, mar gheall ar sheirbhís dhomhanda a thógáil, is dóigh linn go mór.

Scríofa in Go, atá mar chuid den Stack Wargaming. Is breá linn an teanga seo, tá go leor forbróirí Go againn.

Córas cumhachtach ACL. In Consal, is féidir leat ACLanna a úsáid chun rialú a dhéanamh ar cé a scríobhann cad é. Ráthaímid nach mbeidh na rialacha balla dóiteáin forluí le haon rud eile agus ní bheidh fadhbanna againn leis seo.

Ach tá a míbhuntáistí ag an gConsal freisin.

  • Ní scála laistigh d'ionad sonraí mura bhfuil leagan gnó agat. Níl sé inscálaithe ach trí chónaidhm.
  • Ag brath go mór ar cháilíocht an líonra agus ualach an fhreastalaí. Ní oibreoidh Consal i gceart mar fhreastalaí ar fhreastalaí gnóthach má tá aon mhoill sa líonra, mar shampla, luas míchothrom. Tá sé seo mar gheall ar naisc P2P agus samhlacha dáileadh nuashonraithe.
  • Deacracht monatóireacht a dhéanamh ar infhaighteacht. I stádas Consal is féidir leis a rá go bhfuil gach rud go breá, ach fuair sé bás i bhfad ó shin.

Réitíomar an chuid is mó de na fadhbanna seo agus Consal á úsáid againn, agus is é sin an fáth a roghnaigh muid é. Tá pleananna ag an gcuideachta le haghaidh inneall eile, ach tá sé foghlamtha againn déileáil le fadhbanna agus táimid ag maireachtáil le Consal faoi láthair.

Conas a oibríonn Consal

Cuirfimid trí nó cúig fhreastalaí isteach i lárionad sonraí coinníollach. Ní oibreoidh freastalaí nó dhó: ní bheidh siad in ann córam a eagrú agus cinneadh a dhéanamh cé atá ceart agus cé atá mícheart nuair nach ionann na sonraí. Níos mó ná cúig a dhéanann aon chiall, beidh an táirgiúlacht titim.

Consal + iptables = :3

Ceanglaíonn cliaint leis na freastalaithe in aon ord: na gníomhairí céanna, leis an bhratach amháin server = false.

Consal + iptables = :3

Tar éis seo, faigheann cliaint liosta de naisc P2P agus tógann siad naisc eatarthu féin.

Consal + iptables = :3

Ar an leibhéal domhanda, nascaimid roinnt ionad sonraí. Nascann siad freisin P2P agus cumarsáid.

Consal + iptables = :3

Nuair is mian linn sonraí a aisghabháil ó ionad sonraí eile, téann an t-iarratas ó fhreastalaí go freastalaí. Tugtar an scéim seo Prótacal serf. Tá an prótacal Serf, cosúil le Consal, forbartha ag HashiCorp.

Roinnt fíricí tábhachtacha faoin gConsal

Tá doiciméid ag an gConsal a chuireann síos ar an gcaoi a n-oibríonn sé. Ní thabharfaidh mé ach fíricí roghnaithe is fiú a fhios.

Roghnaíonn freastalaithe Consal máistir as measc na vótálaithe. Roghnaíonn Consal máistir ón liosta freastalaithe do gach ionad sonraí, agus ní théann gach iarratas chuige ach amháin, beag beann ar líon na bhfreastalaithe. Ní atoghchán mar thoradh ar mháistirreo. Mura roghnaítear an máistir, ní fhreastalaíonn aon duine ar iarratais.

Ar theastaigh scálú cothrománach uait? Tá brón orm, níl.

Téann iarratas chuig ionad sonraí eile ó mháistir go máistir, is cuma cén freastalaí a tháinig sé. Faigheann an máistir roghnaithe 100% den ualach, ach amháin an t-ualach ar iarratais ar aghaidh. Tá cóip cothrom le dáta de na sonraí ag gach freastalaí san ionad sonraí, ach ní fhreagraíonn ach duine amháin.

Is é an t-aon bhealach le scála ná mód sean a chumasú ar an gcliant.

I mód sean, is féidir leat freagairt gan córam. Is modh é seo ina ndéanaimid comhsheasmhacht sonraí a thabhairt suas, ach a léamh beagán níos tapúla ná mar is gnách, agus freagraíonn aon fhreastalaí. Ar ndóigh, a thaifeadadh ach amháin tríd an máistir.

Ní dhéanann Consal sonraí a chóipeáil idir ionaid sonraí. Nuair a chuirtear cónaidhm le chéile, ní bheidh ach a shonraí féin ag gach freastalaí. I gcás daoine eile, casann sé i gcónaí le duine eile.

Ní ráthaítear atomacht oibríochtaí lasmuigh d’idirbheart. Cuimhnigh nach tusa an t-aon duine atá in ann rudaí a athrú. Más mian leat é a mhalairt, déan idirbheart le glas.

Ní ráthaíonn oibríochtaí blocála glasáil. Téann an t-iarratas ó mháistir go máistir, agus ní go díreach, mar sin níl aon ráthaíocht ann go n-oibreoidh an blocáil nuair a dhéanann tú blocáil, mar shampla, i lárionad sonraí eile.

Ní ráthaíonn ACL rochtain freisin (go minic). B'fhéidir nach n-oibreoidh an ACL toisc go bhfuil sé stóráilte i lárionad sonraí cónaidhm amháin - i lárionad sonraí ACL (Bunscoil DC). Mura bhfreagraíonn an DC tú, ní oibreoidh an ACL.

Cuirfidh máistir reoite amháin faoi deara an chónaidhm iomlán a reo. Mar shampla, tá 10 n-ionad sonraí i gcónaidhm, agus tá droch-ghréasán ag ceann amháin, agus teipeann ar mháistir amháin. Beidh gach duine a dhéanann cumarsáid leis i bhfostú i gciorcal: tá iarratas ann, níl aon fhreagra air, reoiteann an snáithe. Níl aon bhealach le fios cathain a tharlóidh sé seo, ach i gceann uair nó dhó a thitfidh an chónaidhm iomlán. Níl aon rud is féidir leat a dhéanamh faoi.

Láimhseáiltear stádas, córam agus toghcháin le snáithe ar leith. Ní tharlóidh atoghadh, ní thaispeánfaidh an stádas rud ar bith. Is dóigh leat go bhfuil Consal beo agat, iarrann tú, agus ní tharlaíonn aon rud - níl aon fhreagra ann. Ag an am céanna, léiríonn an stádas go bhfuil gach rud go breá.

Thángamar ar an bhfadhb seo agus bhí orainn codanna sonracha d'ionaid sonraí a atógáil chun é a sheachaint.

Níl cuid de na míbhuntáistí thuas ag an leagan gnó de Consul Enterprise. Tá go leor feidhmeanna úsáideacha aige: vótálaithe a roghnú, dáileadh, scálú. Níl ach “ach” amháin ann - tá an córas ceadúnaithe do chóras dáilte an-chostasach.

Hacking saoil: rm -rf /var/lib/consul - leigheas ar gach galair den ghníomhaire. Mura n-oibríonn rud éigin duit, níl le déanamh ach do shonraí a scriosadh agus na sonraí a íoslódáil ó chóip. Is dócha, beidh Consal ag obair.

BEFW

Anois déanaimis labhairt ar an méid atá curtha againn le Consal.

BEFW is acrainm do BackEndFiWgo léir. Bhí orm an táirge a ainmniú ar bhealach éigin nuair a chruthaigh mé an stór chun na chéad ghealltanais tástála a chur isteach ann. Fanann an t-ainm seo.

Teimpléid rialacha

Tá na rialacha scríofa i gcomhréir iptables.

  • -N BEFW
  • -P titim isteach
  • -A IONCHUR -m stát — luaigh GAOLMHARA,BUANAITHE -j GLACADH
  • -A INPUT -i lo -j GLACADH
  • -A INPUT -j BEFW

Téann gach rud isteach sa slabhra BEFW, ach amháin ESTABLISHED, RELATED agus localhost. Is féidir leis an teimpléad a bheith rud ar bith, tá sé seo ach sampla.

Cén chaoi a bhfuil BEFW úsáideach?

Seirbhísí

Tá seirbhís againn, bíonn port aige i gcónaí, nód ar a ritheann sé. Ón nód againn, is féidir linn a iarraidh go háitiúil ar an ngníomhaire agus a fháil amach go bhfuil seirbhís de chineál éigin againn. Is féidir leat clibeanna a chur freisin.

Consal + iptables = :3

Is riail iptables í aon seirbhís atá á rith agus atá cláraithe le Consal. Tá SSH againn - port oscailte 22. Tá an script Bash simplí: curl agus iptables, níl aon rud eile ag teastáil.

Cliaint

Conas rochtain a oscailt ní do gach duine, ach go roghnach? Cuir liostaí IP le stóras KV de réir ainm na seirbhíse.

Consal + iptables = :3

Mar shampla, ba mhaith linn go mbeadh gach duine ar an deichiú líonra in ann rochtain a fháil ar an tseirbhís SSH_TCP_22. Cuir réimse beag TTL amháin leis? agus anois tá ceadanna sealadacha againn, mar shampla, ar feadh lae.

Rochtainí

Ceanglaíonn muid seirbhísí agus cliaint: tá seirbhís againn, tá stóráil KV réidh le haghaidh gach ceann acu. Anois tugaimid rochtain ní do gach duine, ach go roghnach.

Consal + iptables = :3

Grúpaí

Má scríobhaimid na mílte IP le haghaidh rochtana gach uair, éireoidh muid tuirseach. Déanaimis teacht suas le grúpálacha - fo-thacar ar leith i KV. Glaoimis Alias ​​​​(nó grúpaí) air agus déanaimid grúpaí a stóráil ann de réir an phrionsabail chéanna.

Consal + iptables = :3

Déanaimis ceangal: anois is féidir linn SSH a oscailt ní go sonrach le haghaidh P2P, ach le haghaidh grúpa iomlán nó roinnt grúpaí. Ar an mbealach céanna, tá TTL - is féidir leat a chur le grúpa agus a bhaint as an ngrúpa go sealadach.

Consal + iptables = :3

Comhtháthú

Is é ár bhfadhb an fachtóir daonna agus uathoibriú. Go dtí seo tá sé réitithe againn ar an mbealach seo.

Consal + iptables = :3

Oibrímid le Puipéad, agus aistrímid gach rud a bhaineann leis an gcóras (cód an iarratais) chucu. Stórálann Puppetdb (PostgreSQL rialta) liosta de na seirbhísí atá ar siúl ann, is féidir iad a fháil de réir cineáil acmhainne. Is féidir leat a fháil amach ansin cé atá ag déanamh iarratais cén áit. Tá córas iarratais tarraingthe agus cumaisc againn chuige seo freisin.

Scríobhamar befw-sync, réiteach simplí a chuidíonn le sonraí a aistriú. Ar dtús, faigheann pupetdb rochtain ar fhianáin sioncronaithe. Tá API HTTP cumraithe ansin: iarraimid cad iad na seirbhísí atá againn, cad is gá a dhéanamh. Ansin déanann siad iarratas chuig an gConsal.

An bhfuil comhtháthú ann? Sea: scríobh siad na rialacha agus cheadaigh siad glacadh le hIarratais Tarraingthe. An bhfuil calafort áirithe uait nó óstach a chur le grúpa éigin? Tarraing Iarratas, athbhreithniú - níl a thuilleadh "Faigh 200 ACL eile agus déan iarracht rud éigin a dhéanamh faoi."

Leas iomlán a bhaint

Tógann sé 0,075 ms chun óstach áitiúil a phingeáil le slabhra rialacha folamh.

Consal + iptables = :3

Cuirimis 10 seoladh iptables leis an slabhra seo. Mar thoradh air sin, méadóidh an ping 000 huaire: tá iptables go hiomlán líneach, tógann próiseáil gach seoladh roinnt ama.

Consal + iptables = :3

Maidir le balla dóiteáin ina n-aistrímid na mílte ACL, tá go leor rialacha againn, agus tugann sé seo isteach latency. Tá sé seo olc do phrótacail chearrbhachais.

Ach má chuir muid 10 seoladh i ipset Laghdóidh an ping fiú.

Consal + iptables = :3

Is é an pointe ná go mbíonn “O” (castacht algartam) don ipset cothrom le 1 i gcónaí, is cuma cé mhéad rialacha atá ann. Fíor, tá teorainn ann - ní féidir níos mó ná rialacha 65535 a bheith ann. Faoi láthair táimid ag maireachtáil leis seo: is féidir leat iad a chomhcheangal, iad a leathnú, dhá ipset a dhéanamh i gceann amháin.

Stóráil

Leanúint loighciúil den phróiseas atriallta is ea faisnéis a stóráil faoi chliaint don tseirbhís in ipset.

Consal + iptables = :3

Anois tá an SSH céanna againn, agus ní scríobhaimid 100 IP ag an am céanna, ach socróimid ainm an ipset a gcaithfimid cumarsáid a dhéanamh leis, agus an riail seo a leanas DROP. Is féidir é a thiontú ina riail amháin “Cé nach bhfuil anseo, DROP”, ach tá sé níos soiléire.

Anois tá rialacha agus tacair againn. Is é an tasc is mó ná sraith a dhéanamh roimh an riail a scríobh, mar ar shlí eile ní scríobhfaidh iptables an riail.

Scéim ghinearálta

I bhfoirm léaráide, is cosúil le gach rud a dúirt mé.

Consal + iptables = :3

Táimid tiomanta do Puipéad, seoltar gach rud chuig an ósta, seirbhísí anseo, ipset ann, agus ní cheadaítear aon duine nach bhfuil cláraithe ann.

Ceadaigh & diúltaigh

Chun an domhan a shábháil go tapa nó duine a dhíchumasú go tapa, rinneamar dhá ipset ag tús na slabhraí go léir: rules_allow и rules_deny. Conas a oibríonn sé?

Mar shampla, tá duine ag cruthú ualach ar ár nGréasán le róbónna. Roimhe seo, bhí ort a IP a fháil ó na logaí, é a ghlacadh chuig innealtóirí líonra, ionas go bhféadfadh siad foinse an tráchta a aimsiú agus é a thoirmeasc. Breathnaíonn sé difriúil anois.

Consal + iptables = :3

Cuirimid chuig an gConsal é, fan 2,5 soicind, agus déantar é. Ós rud é go dáileann Consal go tapa trí P2P, oibríonn sé i ngach áit, in aon chuid den domhan.

Nuair a stop mé go hiomlán ar bhealach WOT mar gheall ar botún leis an balla dóiteáin. rules_allow - is é seo ár n-árachas i gcoinne cásanna den sórt sin. Má rinne muid botún áit éigin leis an balla dóiteáin, tá rud éigin bac áit éigin, is féidir linn a sheoladh i gcónaí coinníollach 0.0/0chun gach rud a phiocadh suas go tapa. Níos déanaí déanfaimid gach rud a shocrú de láimh.

Leagann eile

Is féidir leat aon tacair eile a chur sa spás $IPSETS$.

Consal + iptables = :3

I gcomhair Cad? Uaireanta bíonn ipset ag teastáil ó dhuine éigin, mar shampla, chun múchadh cuid den bhraisle a aithris. Is féidir le duine ar bith tacair ar bith a thabhairt, iad a ainmniú, agus déanfar iad a phiocadh suas ón gConsal. Ag an am céanna, is féidir le tacair páirt a ghlacadh i rialacha iptables nó gníomhú mar fhoireann NOOP: Coinneofar comhsheasmhacht ag an deamhan.

Baill

Roimhe seo, bhí sé mar seo: an t-úsáideoir ceangailte leis an líonra agus paraiméadair a fuarthas tríd an bhfearann. Roimh theacht ballaí dóiteáin ghlúin nua, ní raibh a fhios ag Cisco conas a thuiscint cá raibh an t-úsáideoir agus cá raibh an IP. Mar sin, níor deonaíodh rochtain ach trí óstainm an mheaisín.

Cad a rinne muid? Chuaigh muid i bhfostú faoin nóiméad a fuaireamar an seoladh. De ghnáth is é seo dot1x, Wi-Fi nó VPN - téann gach rud trí RADIUS. I gcás gach úsáideoir, cruthaímid grúpa de réir ainm úsáideora agus cuirimid IP ann le TTL atá comhionann lena dhcp.lease - chomh luath agus a rachaidh sé in éag, imeoidh an riail.

Consal + iptables = :3

Anois is féidir linn rochtain ar sheirbhísí, cosúil le grúpaí eile, a oscailt de réir ainm úsáideora. Bhaineamar an phian as óstainmneacha nuair a athraíonn siad, agus bhaineamar an t-ualach as innealtóirí líonra toisc nach bhfuil Cisco ag teastáil uathu a thuilleadh. Anois cláraíonn innealtóirí iad féin rochtain ar a gcuid freastalaithe.

Insliú

Ag an am céanna, thosaigh muid ag díchóimeáil an insliú. Ghlac bainisteoirí seirbhíse fardal, agus rinneamar anailís ar ár líonraí go léir. Déanaimis iad a roinnt sna grúpaí céanna, agus ar na freastalaithe riachtanacha cuireadh na grúpaí leis, mar shampla, a dhiúltú. Anois críochnaíonn an leithlisiú stáitse céanna i rialacha_deny an táirgthe, ach ní sa táirgeadh féin.

Consal + iptables = :3

Oibríonn an scéim go tapa agus go simplí: bainimid gach ACL ó na freastalaithe, díluchtaítear na crua-earraí, agus laghdaítear líon na VLANanna scoite.

Rialú sláine

Roimhe seo, bhí truicear speisialta againn a thuairiscigh nuair a d'athraigh duine riail balla dóiteáin de láimh. Bhí lintéir ollmhór á scríobh agam chun rialacha balla dóiteáin a sheiceáil, bhí sé deacair. Tá sláine á rialú anois ag BEFW. Cinntíonn sé go díograiseach nach n-athraíonn na rialacha a dhéanann sé. Má athraíonn duine na rialacha balla dóiteáin, athróidh sé gach rud ar ais. “Chuir mé seachfhreastalaí ar bun go tapa ionas go mbeinn in ann oibriú ó bhaile”—níl a thuilleadh roghanna dá leithéid.

Rialaíonn BEFW an ipset ó na seirbhísí agus liostaítear in befw.conf, na rialacha seirbhísí sa slabhra BEFW. Ach ní dhéanann sé monatóireacht ar shlabhraí agus rialacha eile agus ipsets eile.

Cosaint tuairteála

Stórálann BEFW an dea-staid dheireanach i gcónaí go díreach i struchtúr dénártha state.bin. Má théann rud éigin mícheart, rolladh sé ar ais go dtí an state.bin seo i gcónaí.

Consal + iptables = :3

Is árachas é seo i gcoinne oibríocht Chonsal éagobhsaí, nuair nár sheol sé sonraí nó nuair a rinne duine éigin botún agus nuair a d’úsáid sé rialacha nach féidir a chur i bhfeidhm. Chun a chinntiú nach bhfágfar muid gan balla dóiteáin, rachaidh BEFW ar ais go dtí an staid is déanaí má tharlaíonn earráid ag am ar bith.

I gcásanna criticiúla, is ráthaíocht é seo go mbeidh balla dóiteáin oibre fágtha againn. Osclaímid gach líonra liath le súil go dtiocfaidh an riarthóir agus é a shocrú. Lá éigin cuirfidh mé é seo sna cumraíochtaí, ach anois níl ach trí líonra liath againn: 10/8, 172/12 agus 192.168/16. Laistigh dár gConsal, is gné thábhachtach é seo a chuidíonn linn tuilleadh forbartha a dhéanamh.

Taispeántas: le linn na tuarascála, léiríonn Ivan modh taispeána BEFW. Tá sé níos éasca féachaint ar an léiriú físeán. Cód foinse taispeána ar fáil ar GitHub.

Pitfalls

Inseoidh mé duit faoi na fabhtanna a bhuaileamar.

ipset cuir tacar 0.0.0.0/0. Cad a tharlóidh má chuireann tú 0.0.0.0/0 le ipset? An gcuirfear gach IP leis? An mbeidh rochtain ar an Idirlíon ar fáil?

Ní hea, gheobhaidh muid fabht a chosnaíonn dhá uair an chloig d’am neamhfhónaimh dúinn. Ina theannta sin, níor oibrigh an fabht ó 2016, tá sé lonnaithe i RedHat Bugzilla faoin uimhir # 1297092, agus fuaireamar é trí thimpiste - ó thuarascáil forbróra.

Is riail dhian anois ag BEFW é sin 0.0.0.0/0 ina dhá sheoladh: 0.0.0.0/1 и 128.0.0.0/1.

tacar ais ipset < comhad. Cad a dhéanann ipset nuair a insíonn tú é restore? An gceapann tú go n-oibríonn sé mar an gcéanna le iptables? An mbeidh sé sonraí a aisghabháil?

Ní dhéanfaidh aon ní mar sin - déanann sé cumasc, agus ní théann na sean-seoltaí aon áit, ní chuireann tú bac ar rochtain.

Fuaireamar fabht agus aonrú á thástáil. Anois tá córas sách casta - in ionad restore á reáchtáil create tempansin restore flush temp и restore temp. Ag deireadh na babhtála: le haghaidh adamhach, mar má dhéanann tú é ar dtús flush agus ag an nóiméad seo sroicheann paicéad éigin, cuirfear i leataobh é agus rachaidh rud éigin mícheart. Mar sin tá beagán draíochta dubh ann.

consul kv faigh -datacenter=eile. Mar a dúirt mé, is dóigh linn go bhfuil muid ag iarraidh roinnt sonraí, ach beidh muid a fháil ceachtar sonraí nó earráid. Is féidir linn é seo a dhéanamh trí Consal go háitiúil, ach sa chás seo beidh an dá reo.

Is fillteán é an cliant Consal áitiúil thar an API HTTP. Ach tá sé ar crochadh agus ní fhreagraíonn sé do Ctrl+C, nó Ctrl+Z, nó rud ar bith, amháin kill -9 sa chéad consól eile. Thángamar ar seo agus muid ag tógáil braisle mór. Ach níl réiteach againn fós; táimid ag ullmhú chun an earráid seo a réiteach i gConsal.

Níl an ceannaire Consal ag freagairt. Níl ár máistir san ionad sonraí ag freagairt, is dóigh linn: "B'fhéidir go n-oibreoidh an t-algartam athroghnaithe anois?"

Ní bheidh, ní oibreoidh sé, agus ní thaispeánfaidh an mhonatóireacht rud ar bith: déarfaidh an Consal go bhfuil innéacs gealltanais ann, fuarthas ceannaire, tá gach rud ceart go leor.

Conas a dhéileálaimid leis seo? service consul restart in cron gach uair. Má tá 50 freastalaí agat, níl aon rud mór. Nuair a bhíonn 16 acu ann, tuigfidh tú conas a oibríonn sé.

Conclúid

Mar thoradh air sin, fuaireamar na buntáistí seo a leanas:

  • Clúdach 100% ar gach meaisín Linux.
  • Luas.
  • Uathoibriú.
  • Saorthaíomar innealtóirí crua-earraí agus líonra ón sclábhaíocht.
  • Is cosúil go bhfuil féidearthachtaí imeasctha beagnach gan teorainn: fiú le Kubernetes, fiú le Ansible, fiú le Python.

CONS: Consal, a bhfuil againn anois chun cónaí, agus an costas an-ard earráid. Mar shampla, uair amháin ag 6 pm (príomh-am sa Rúis) bhí mé ag eagarthóireacht rud éigin sna liostaí líonraí. Ní raibh muid ach ag tógáil inslithe ag BEFW ag an am. Rinne mé botún áit éigin, is cosúil gur léirigh mé an masc mícheart, ach thit gach rud i dhá soicind. Lasann an mhonatóireacht, tagann an duine tacaíochta atá ar dualgas ag rith: “Tá gach rud againn!” Tháinig dath liath ar cheann na roinne nuair a mhínigh sé don ghnó cén fáth ar tharla sé seo.

Tá costas na n-earráidí chomh hard sin go bhfuil ár nós imeachta coiscthe casta féin againn. Má chuireann tú é seo i bhfeidhm ar shuíomh mór táirgeachta, ní gá duit máistirchomhartha thar Chonsal a thabhairt do gach duine. Beidh deireadh leis seo go dona.

An costas. Scríobh mé cód ar feadh 400 uair amháin. Caitheann mo fhoireann de 4 daoine 10 n-uaire in aghaidh na míosa ar thacaíocht do gach duine. I gcomparáid le praghas aon bhalla dóiteáin giniúna nua, tá sé saor in aisce.

Pleananna. Is é an plean fadtéarmach ná malairt iompair a aimsiú chun an Consal a athsholáthar nó a chomhlánú. B'fhéidir go mbeidh sé Kafka nó rud éigin cosúil leis. Ach sna blianta atá le teacht beimid ag maireachtáil ar Chonsal.

Pleananna láithreacha: comhtháthú le Fail2ban, le monatóireacht, le nftables, b'fhéidir le dáiltí eile, méadracht, monatóireacht chun cinn, leas iomlán a bhaint. Tá tacaíocht Kubernetes freisin áit éigin sna pleananna, mar anois tá roinnt braislí agus an fonn.

Tuilleadh ó na pleananna:

  • cuardach a dhéanamh ar aimhrialtachtaí sa trácht;
  • bainistiú léarscáil líonra;
  • tacaíocht Kubernetes;
  • pacáistí a chur le chéile do gach córas;
  • Chomhéadain Ghréasáin.

Táimid ag obair i gcónaí ar an chumraíocht a leathnú, méadracht a mhéadú agus leas iomlán a bhaint.

Bí ar an tionscadal. D'éirigh leis an tionscadal a bheith fionnuar, ach, ar an drochuair, tá sé fós ina thionscadal aon-duine. Teacht go dtí GitHub agus déan iarracht rud éigin a dhéanamh: tiomnaigh, tástáil, mol rud éigin, tabhair do mheasúnú.

Idir an dá linn táimid ag ullmhú le haghaidh Saint HighLoad++, a bheidh ar siúl ar 6 agus 7 Aibreán i St Petersburg, agus tugaimid cuireadh d'fhorbróirí córais ard-ualach iarratas a dhéanamh ar thuarascáil. Tá a fhios ag cainteoirí a bhfuil taithí acu cheana féin cad atá le déanamh, ach dóibh siúd nach bhfuil nua ag labhairt molaimid ar a laghad bain triail as. Tá roinnt buntáistí ag baint le páirt a ghlacadh sa chomhdháil mar chainteoir. Is féidir leat na cinn a léamh, mar shampla, ag an deireadh An t-alt seo.

Foinse: will.com

Add a comment