Konslu + iptables = :3

Fl-2010 il-kumpanija wargaming kien hemm 50 server u mudell ta’ netwerk sempliċi: backend, frontend u firewall. In-numru ta 'servers kiber, il-mudell sar aktar kumpless: staging, VLANs iżolati b'ACLs, imbagħad VPNs b'VRFs, VLANs b'ACLs fuq L2, VRFs b'ACLs fuq L3. Kap qed iddur? Ikun aktar pjaċevoli aktar tard.

Meta kien hemm 16 server, sar impossibbli li taħdem mingħajr tiċrit b'tant segmenti eteroġeni. Għalhekk ħriġna b’soluzzjoni oħra. Ħadna l-munzell Netfilter, żidna l-Konsul miegħu bħala sors tad-dejta, u ksibna firewall mqassam malajr. Huma ssostitwixxu l-ACLs fuq ir-routers u użawhom bħala firewall estern u intern. Biex timmaniġġja l-għodda b'mod dinamiku, żviluppajna s-sistema BEFW, li ntużat kullimkien: mill-ġestjoni tal-aċċess tal-utent għan-netwerk tal-prodott sa l-iżolament tas-segmenti tan-netwerk minn xulxin.

Konslu + iptables = :3

Huwa jgħidlek kif jaħdem kollox u għaliex għandek tagħti ħarsa aktar mill-qrib lejn din is-sistema. Ivan Agarkov (annumuor) huwa l-kap tal-grupp tas-sigurtà tal-infrastruttura tad-diviżjoni tal-Manutenzjoni fiċ-ċentru tal-iżvilupp ta’ Minsk tal-kumpanija. Ivan huwa fan SELinux, iħobb Perl, u jikteb kodiċi. Bħala l-kap tal-grupp tas-sigurtà tal-informazzjoni, jaħdem regolarment bi zkuk, backups u R&D biex jipproteġi Wargaming mill-hackers u jiżgura t-tħaddim tas-servers tal-logħob kollha fil-kumpanija.

Historical informazzjoni

Qabel ma ngħidilkom kif għamilna, ngħidilkom kif wasalna għal dan l-ewwel u għaliex kien meħtieġ. Biex tagħmel dan, ejja mmorru lura 9 snin: 2010, Dinja tat-Tankijiet għadha kif dehru. Wargaming kellu madwar 50 server.

Konslu + iptables = :3
Ċart tat-tkabbir tas-server tal-kumpanija.

Kellna mudell tan-netwerk. Għal dak iż-żmien kien ottimali.

Konslu + iptables = :3
Mudell tan-netwerk fl-2010.

Hemm guys ħżiena fuq in-naħa ta 'quddiem li jridu jkissruna, iżda għandu firewall. M'hemm l-ebda firewall fuq il-backend, iżda hemm 50 server hemm, nafuhom kollha. Kollox jaħdem tajjeb.

F'4 snin, il-flotta tas-server kibret 100 darba, għal 5000. L-ewwel netwerks iżolati dehru - staging: ma setgħux imorru għall-produzzjoni, u ħafna drabi kien hemm affarijiet għaddejjin hemmhekk li jistgħu jkunu perikolużi.

Konslu + iptables = :3
Mudell tan-netwerk fl-2014.

Permezz ta 'inerzja, użajna l-istess biċċiet ta' ħardwer, u x-xogħol kollu sar fuq VLANs iżolati: ACLs huma miktuba fil-VLANs, li jippermettu jew jiċħdu xi tip ta 'konnessjoni.

Fl-2016, in-numru ta 'servers laħaq 8000. Wargaming assorbit studios oħra, u netwerks affiljati addizzjonali dehru. Jidher li huma tagħna, iżda mhux pjuttost: VLAN ħafna drabi ma taħdimx għall-imsieħba, trid tuża VPN ma 'VRF, l-iżolament isir aktar ikkumplikat. It-taħlita ta 'insulazzjoni ACL kibret.

Konslu + iptables = :3
Mudell tan-netwerk fl-2016.

Sal-bidu tas-sena 2018, il-flotta ta 'magni kienet kibret għal 16 000. Kien hemm 6 segmenti, u ma ngħoddux il-bqija, inklużi dawk magħluqa li fihom kienet maħżuna dejta finanzjarja. Dehru netwerks tal-kontejners (Kubernetes), DevOps, netwerks tal-cloud konnessi permezz ta 'VPN, pereżempju, minn IVS. Kien hemm ħafna regoli - kien uġigħ.

Konslu + iptables = :3
Mudell tan-netwerk u metodi ta’ iżolament fl-2018.

Għall-iżolament użajna: VLAN b'ACL fuq L2, VRF b'ACL fuq L3, VPN u ħafna aktar. Iżżejjed.

Problemi

Kulħadd jgħix b'ACL u VLAN. X'hemm ħażin? Din il-mistoqsija se titwieġeb minn Harold, li jaħbi l-uġigħ.

Konslu + iptables = :3

Kien hemm ħafna problemi, iżda kien hemm ħames problemi kbar.

  • Żieda ġeometrika fil-prezz għal regoli ġodda. Kull regola ġdida ħadet aktar żmien biex tiżdied minn dik ta 'qabel, għax kien meħtieġ li l-ewwel jara jekk kienx hemm diġà tali regola.
  • L-ebda firewall ġewwa s-segmenti. Is-segmenti kienu b'xi mod separati minn xulxin, u diġà ma kienx hemm biżżejjed riżorsi ġewwa.
  • Ir-regoli ġew applikati għal żmien twil. L-operaturi jistgħu jiktbu regola lokali waħda bl-idejn f'siegħa. Dik globali ħadet diversi jiem.
  • Diffikultajiet fir-regoli tal-awditjar. B'mod aktar preċiż, ma kienx possibbli. L-ewwel regoli nkitbu lura fl-2010, u ħafna mill-awturi tagħhom ma baqgħux ħadmu għall-kumpanija.
  • Livell baxx ta' kontroll tal-infrastruttura. Din hija l-problema ewlenija - ma konniex nafu tajjeb x'kien qed jiġri f'pajjiżna.

Hekk deher inġinier tan-netwerk fl-2018 meta sema': "Għandek bżonn aktar ACL."

Konslu + iptables = :3

Soluzzjonijiet

Fil-bidu tal-2018, ġie deċiż li tagħmel xi ħaġa dwarha.

Il-prezz tal-integrazzjoni qed jikber kontinwament. Il-punt tat-tluq kien li ċentri tad-dejta kbar waqfu jappoġġaw VLANs u ACLs iżolati minħabba li l-apparati spiċċaw mingħajr memorja.

Soluzzjoni: neħħejna l-fattur uman u awtomatizzajna l-provvista ta 'aċċess għall-massimu.

Ir-regoli l-ġodda jieħdu ħafna żmien biex japplikaw. Soluzzjoni: tħaffef l-applikazzjoni tar-regoli, tagħmilha mqassma u parallela. Dan jeħtieġ sistema distribwita sabiex ir-regoli jitwasslu huma stess, mingħajr rsync jew SFTP għal elf sistema.

L-ebda firewall ġewwa s-segmenti. Firewall fi ħdan segmenti beda jiġi għandna meta servizzi differenti dehru fi ħdan l-istess netwerk. Soluzzjoni: uża firewall fil-livell tal-host - firewalls ibbażati fuq il-host. Kważi kullimkien għandna Linux, u kullimkien għandna iptables, din mhix problema.

Diffikultajiet fir-regoli tal-awditjar. Soluzzjoni: Żomm ir-regoli kollha f'post wieħed għar-reviżjoni u l-ġestjoni, sabiex inkunu nistgħu nivverifikaw kollox.

Livell baxx ta' kontroll fuq l-infrastruttura. Soluzzjoni: agħmel inventarju tas-servizzi u l-aċċessi kollha bejniethom.

Dan huwa aktar proċess amministrattiv milli wieħed tekniku. Xi drabi jkollna 200-300 ħarġa ġdida fil-ġimgħa, speċjalment waqt promozzjonijiet u vaganzi. Barra minn hekk, dan huwa biss għal tim wieħed tad-DevOps tagħna. B'tant rilaxxi, huwa impossibbli li wieħed jara liema portijiet, IPs, u integrazzjonijiet huma meħtieġa. Għalhekk, kellna bżonn maniġers tas-servizz imħarrġa b’mod speċjali li staqsew lit-timijiet: “X’hemm xorta waħda u għaliex ġibtuha?”

Wara dak kollu li nedejna, inġinier tan-netwerk fl-2019 beda jidher bħal dan.

Konslu + iptables = :3

Konslu

Iddeċidejna li npoġġu dak kollu li sibna bl-għajnuna tas-service managers fil-Konslu u minn hemm niktbu regoli tal-iptables.

Kif iddeċidejna li nagħmlu dan?

  • Aħna se niġbru s-servizzi, in-netwerks u l-utenti kollha.
  • Ejja noħolqu regoli iptables ibbażati fuqhom.
  • Aħna awtomatizzat il-kontroll.
  • ....
  • QLIGĦ.

Consul mhix API remota, tista 'taħdem fuq kull node u tikteb lil iptables. Li jibqa 'huwa li toħroġ b'kontrolli awtomatiċi li se jnaddfu affarijiet mhux meħtieġa, u ħafna mill-problemi jiġu solvuti! Aħna ser naħdmu l-bqija kif immorru.

Għaliex Konslu?

Wera ruħu tajjeb. Fl-2014-15, użajna bħala backend għal Vault, li fih naħżnu passwords.

Ma jitlifx id-data. Matul il-ħin tal-użu, Konslu ma tilifx dejta waqt inċident wieħed. Dan huwa vantaġġ kbir għal sistema ta 'ġestjoni tal-firewall.

Il-konnessjonijiet P2P jaċċelleraw it-tixrid tal-bidla. Bil-P2P, il-bidliet kollha jiġu malajr, m'hemmx għalfejn tistenna għal sigħat.

API REST konvenjenti. Konna wkoll ikkunsidrajna Apache ZooKeeper, iżda m'għandux REST API, għalhekk ikollok tinstalla krozzi.

Jaħdem kemm bħala Key Vault (KV) kif ukoll Direttorju (Service Discovery). Tista 'taħżen servizzi, katalgi, u ċentri tad-dejta f'daqqa. Dan huwa konvenjenti mhux biss għalina, iżda wkoll għal timijiet ġirien, għaliex meta nibnu servizz globali, naħsbu kbar.

Miktub f'Go, li huwa parti mill-munzell Wargaming. Aħna nħobbu din il-lingwa, għandna ħafna żviluppaturi tal-Go.

Sistema ACL qawwija. F'Consul, tista' tuża ACLs biex tikkontrolla min jikteb xiex. Aħna niggarantixxu li r-regoli tal-firewall mhux se jikkoinċidu ma 'xi ħaġa oħra u mhux se jkollna problemi b'dan.

Iżda l-Konslu għandu wkoll l-iżvantaġġi tiegħu.

  • Ma tiskalax f'ċentru tad-dejta sakemm ma jkollokx verżjoni kummerċjali. Huwa skalabbli biss mill-federazzjoni.
  • Dipendenti ħafna fuq il-kwalità tan-netwerk u t-tagħbija tas-server. Konslu mhux se jaħdem sew bħala server fuq server okkupat jekk ikun hemm xi dewmien fin-netwerk, pereżempju, veloċità irregolari. Dan huwa dovut għal konnessjonijiet P2P u taġġorna l-mudelli tad-distribuzzjoni.
  • Diffikultà fil-monitoraġġ tad-disponibbiltà. Fl-istatus ta’ Konslu jista’ jgħid li kollox sew, imma miet żmien twil ilu.

Solvejna ħafna minn dawn il-problemi waqt li nużaw lil Consul, u għalhekk għażilna. Il-kumpanija għandha pjanijiet għal backend alternattiv, iżda tgħallimna nittrattaw il-problemi u bħalissa qed ngħixu mal-Konsul.

Kif jaħdem il-Konslu

Se ninstallaw minn tlieta sa ħames servers f'ċentru tad-dejta kondizzjonali. Server wieħed jew tnejn ma jaħdmux: ma jkunux jistgħu jorganizzaw kworum u jiddeċiedu min għandu raġun u min għandu żball meta d-dejta ma taqbilx. Aktar minn ħamsa ma jagħmilx sens, il-produttività se tonqos.

Konslu + iptables = :3

Il-klijenti jgħaqqdu mas-servers fi kwalunkwe ordni: l-istess aġenti, bil-bandiera biss server = false.

Konslu + iptables = :3

Wara dan, il-klijenti jirċievu lista ta 'konnessjonijiet P2P u jibnu konnessjonijiet bejniethom.

Konslu + iptables = :3

Fil-livell globali, aħna nikkonnettjaw diversi ċentri tad-dejta. Huma wkoll jgħaqqdu P2P u jikkomunikaw.

Konslu + iptables = :3

Meta rridu nġibu data minn ċentru tad-data ieħor, it-talba tmur minn server għal server. Din l-iskema tissejjaħ Protokoll tas-serv. Il-protokoll Serf, bħal Consul, huwa żviluppat minn HashiCorp.

Xi fatti importanti dwar il-Konslu

Konslu għandu dokumentazzjoni li tiddeskrivi kif taħdem. Se nagħti biss fatti magħżula li ta’ min ikun jaf.

Is-servers tal-konsli jagħżlu kaptan minn fost il-votanti. Konslu jagħżel kaptan mil-lista ta 'servers għal kull ċentru tad-dejta, u t-talbiet kollha jmorru għalih biss, irrispettivament min-numru ta' servers. L-iffriżar tal-kaptan ma jwassalx għal elezzjoni mill-ġdid. Jekk il-kaptan ma jintgħażel, it-talbiet ma jiġu moqdija minn ħadd.

Ridt skala orizzontali? Skużani, le.

Talba lil ċentru tad-dejta ieħor tmur minn kaptan għal kaptan, irrispettivament minn liema server waslet. Il-kaptan magħżul jirċievi 100% tat-tagħbija, ħlief għat-tagħbija fuq talbiet bil-quddiem. Is-servers kollha fiċ-ċentru tad-dejta għandhom kopja aġġornata tad-dejta, iżda wieħed biss jirrispondi.

L-uniku mod biex tiskala huwa li tkun attivata l-mod stale fuq il-klijent.

Fil-modalità stale, tista' tirrispondi mingħajr kworum. Dan huwa mod li fih naqtgħu l-konsistenza tad-dejta, iżda naqraw ftit aktar malajr mis-soltu, u kull server jirrispondi. Naturalment, ir-reġistrazzjoni biss permezz tal-kaptan.

Konslu ma tikkopja dejta bejn iċ-ċentri tad-dejta. Meta federazzjoni tiġi mmuntata, kull server ikollu biss id-dejta tiegħu stess. Għal oħrajn, dejjem idur lejn xi ħadd ieħor.

L-atomiċità tal-operazzjonijiet mhix garantita barra minn tranżazzjoni. Ftakar li m'intix l-uniku wieħed li tista' tbiddel l-affarijiet. Jekk tridu b'mod differenti, wettaq transazzjoni b'serratura.

L-operazzjonijiet tal-imblukkar ma jiggarantixxux l-illokkjar. It-talba tmur minn kaptan għal kaptan, u mhux direttament, għalhekk m'hemm l-ebda garanzija li l-imblukkar jaħdem meta timblokka, pereżempju, f'ċentru tad-dejta ieħor.

L-ACL lanqas ma jiggarantixxi aċċess (f'ħafna każijiet). L-ACL jista 'ma jaħdimx minħabba li huwa maħżun f'ċentru tad-dejta tal-federazzjoni wieħed - fiċ-ċentru tad-dejta tal-ACL (DC Primarju). Jekk id-DC ma jirrispondikx, l-ACL ma jaħdimx.

Kaptan iffriżat wieħed iwassal biex il-federazzjoni kollha tiffriża. Pereżempju, hemm 10 ċentri tad-dejta f'federazzjoni, u wieħed għandu netwerk ħażin, u kaptan wieħed ifalli. Kull min jikkomunika miegħu se jkun imwaħħal f'ċirku: hemm talba, m'hemm l-ebda tweġiba għaliha, il-ħajta tiffriża. M'hemm l-ebda mod li tkun taf meta dan se jiġri, biss f'siegħa jew tnejn il-federazzjoni kollha se taqa '. M'hemm xejn li tista 'tagħmel dwar dan.

L-istatus, il-kworum u l-elezzjonijiet huma ttrattati b'fil separat. L-elezzjoni mill-ġdid mhux se ssir, l-istatus ma juri xejn. Taħseb li għandek Konslu ħaj, tistaqsi, u ma jiġri xejn - m'hemm l-ebda risposta. Fl-istess ħin, l-istatus juri li kollox huwa tajjeb.

Iltqajna ma 'din il-problema u kellna nibnu mill-ġdid partijiet speċifiċi ta' ċentri tad-dejta biex nevitawha.

Il-verżjoni tan-negozju ta' Consul Enterprise m'għandhiex xi wħud mill-iżvantaġġi ta' hawn fuq. Għandu ħafna funzjonijiet utli: l-għażla tal-votanti, id-distribuzzjoni, l-iskala. Hemm "iżda" waħda biss - is-sistema ta 'liċenzjar għal sistema mqassma hija għalja ħafna.

Hacking tal-Ħajja: rm -rf /var/lib/consul - kura għall-mard kollu tal-aġent. Jekk xi ħaġa ma taħdimx għalik, sempliċement ħassar id-dejta tiegħek u tniżżel id-dejta minn kopja. Ħafna probabbli, Konslu se jaħdem.

BEFW

Issa ejja nitkellmu dwar dak li żidna mal-Konslu.

BEFW huwa akronimu għal BackEndFireWkollha. Kelli nsemmi l-prodott b'xi mod meta ħloqt ir-repożitorju sabiex inpoġġi fih l-ewwel impenji tat-test. Dan l-isem jibqa’.

Mudelli tar-regoli

Ir-regoli huma miktuba fis-sintassi iptables.

  • -N BEFW
  • -P INPUT WAQT
  • -A INPUT -m stat—stat RELATATI, STABBILITI -j AĊĊETTA
  • -A INPUT -i lo -j AĊĊETTA
  • -A INPUT -j BEFW

Kollox imur fil-katina BEFW, ħlief ESTABLISHED, RELATED u localhost. Il-mudell jista 'jkun xi ħaġa, dan huwa biss eżempju.

Kif huwa utli BEFW?

Servizzi

Għandna servizz, dejjem għandu port, node li fuqu jimxi. Min-node tagħna, nistgħu nistaqsu lokalment lill-aġent u nsib li għandna xi tip ta 'servizz. Tista 'wkoll tpoġġi tikketti.

Konslu + iptables = :3

Kwalunkwe servizz li jkun qed jaħdem u reġistrat mal-Konsul jinbidel f’regola iptables. Għandna SSH - port miftuħ 22. L-iskrittura Bash hija sempliċi: curl u iptables, m'hemm bżonn xejn aktar.

Klijenti

Kif tiftaħ aċċess mhux għal kulħadd, iżda b'mod selettiv? Żid listi IP mal-ħażna KV bl-isem tas-servizz.

Konslu + iptables = :3

Pereżempju, irridu li kulħadd fuq l-għaxar netwerk ikun jista’ jaċċessa s-servizz SSH_TCP_22. Żid qasam TTL żgħir wieħed? u issa għandna permessi temporanji, pereżempju, għal ġurnata.

Aċċessi

Aħna ngħaqqdu servizzi u klijenti: għandna servizz, il-ħażna KV hija lesta għal kull wieħed. Issa nagħtu aċċess mhux lil kulħadd, iżda b'mod selettiv.

Konslu + iptables = :3

Gruppi

Jekk niktbu eluf ta 'IPs għall-aċċess kull darba, se ngħejja. Ejja noħorġu bi gruppi - subsett separat f'KV. Ejja nsejħulha Alias ​​(jew gruppi) u taħżen gruppi hemmhekk skond l-istess prinċipju.

Konslu + iptables = :3

Ejja ngħaqqdu: issa nistgħu niftħu SSH mhux speċifikament għal P2P, iżda għal grupp sħiħ jew diversi gruppi. Bl-istess mod, hemm TTL - tista 'żżid ma' grupp u tneħħi mill-grupp temporanjament.

Konslu + iptables = :3

Integrazzjoni

Il-problema tagħna hija l-fattur uman u l-awtomazzjoni. S'issa solvejna b'dan il-mod.

Konslu + iptables = :3

Aħna naħdmu ma 'Puppet, u nittrasferixxu dak kollu li għandu x'jaqsam mas-sistema (kodiċi tal-applikazzjoni) lilhom. Puppetdb (PostgreSQL regolari) jaħżen lista ta 'servizzi li qed jaħdmu hemm, jistgħu jinstabu skond it-tip ta' riżorsa. Hemmhekk tista' ssir taf min qed japplika fejn. Għandna wkoll sistema ta' talba ta' ġibda u ta' għaqda għal dan.

Aħna ktibna befw-sync, soluzzjoni sempliċi li tgħin biex tittrasferixxi d-data. L-ewwel, il-cookies tas-sinkronizzazzjoni huma aċċessati minn puppetdb. Hemm API HTTP konfigurata: nitolbu liema servizzi għandna, x'għandu jsir. Imbagħad jagħmlu talba lill-Konslu.

Hemm integrazzjoni? Iva: kitbu r-regoli u ppermettew li jiġu aċċettati Pull Requests. Għandek bżonn ċertu port jew żid host ma 'xi grupp? Iġbed Talba, reviżjoni - mhux aktar "Sib 200 ACLs ieħor u pprova tagħmel xi ħaġa dwarha."

Ottimizzazzjoni

Il-pinging ta' localhost b'katina ta' regola vojta jieħu 0,075 ms.

Konslu + iptables = :3

Ejja nżidu 10 indirizz iptables ma 'din il-katina. Bħala riżultat, il-ping se jiżdied 000 darbiet: iptables huwa kompletament lineari, l-ipproċessar ta 'kull indirizz jieħu xi żmien.

Konslu + iptables = :3

Għal firewall fejn jemigraw eluf ta 'ACLs, għandna ħafna regoli, u dan jintroduċi latency. Dan huwa ħażin għall-protokolli tal-logħob.

Imma jekk inpoġġu 10 indirizz f'ipset Il-ping saħansitra se jonqos.

Konslu + iptables = :3

Il-punt huwa li "O" (kumplessità tal-algoritmu) għal ipset hija dejjem ugwali għal 1, irrispettivament minn kemm hemm regoli. Veru, hemm limitazzjoni - ma jistax ikun hemm aktar minn regoli 65535. Għalissa ngħixu ma 'dan: tista' tgħaqqadhom, tespandihom, tagħmel żewġ ipsets f'wieħed.

Ħażna

Kontinwazzjoni loġika tal-proċess ta' iterazzjoni qed taħżen informazzjoni dwar il-klijenti għas-servizz f'ipset.

Konslu + iptables = :3

Issa għandna l-istess SSH, u ma niktbux 100 IP f'daqqa, iżda ssettja l-isem tal-ipset li miegħu għandna bżonn nikkomunikaw, u r-regola li ġejja DROP. Jista 'jiġi kkonvertit f'regola waħda "Min mhux hawn, DROP", iżda huwa aktar ċar.

Issa għandna regoli u settijiet. Il-kompitu ewlieni huwa li tagħmel sett qabel tikteb ir-regola, għax inkella iptables mhux se jikteb ir-regola.

Skema ġenerali

Fil-forma ta 'dijagramma, dak kollu li għedt jidher bħal dan.

Konslu + iptables = :3

Aħna nimpenjaw ruħhom għal Puppet, kollox jintbagħat lill-host, servizzi hawn, ipset hemm, u kull min mhux reġistrat hemm mhux permess.

Ippermetti u tiċħad

Biex issalva d-dinja malajr jew tiddiżattiva malajr lil xi ħadd, fil-bidu tal-ktajjen kollha għamilna żewġ ipsets: rules_allow и rules_deny. Kif taħdem?

Pereżempju, xi ħadd qed joħloq tagħbija fuq il-Web tagħna bil-bots. Preċedentement, kellek issib l-IP tiegħu miċ-zkuk, teħodha lill-inġiniera tan-netwerk, sabiex ikunu jistgħu jsibu s-sors tat-traffiku u jipprojbixxuh. Jidher differenti issa.

Konslu + iptables = :3

Nibagħtuha lill-Konslu, stenna 2,5 sekondi, u lest. Peress li l-Konslu jqassam malajr permezz tal-P2P, jaħdem kullimkien, fi kwalunkwe parti tad-dinja.

Ladarba I b'xi mod kompletament waqaf WOT minħabba żball mal-firewall. rules_allow - din hija l-assigurazzjoni tagħna kontra każijiet bħal dawn. Jekk għamilna żball x'imkien mal-firewall, xi ħaġa tkun imblukkata x'imkien, nistgħu dejjem nibagħtu kondizzjonali 0.0/0biex malajr jiġbor kollox. Aktar tard nirranġaw kollox bl-idejn.

Settijiet oħra

Tista 'żżid kwalunkwe sett ieħor fl-ispazju $IPSETS$.

Konslu + iptables = :3

Għalxiex? Kultant xi ħadd jeħtieġ ipset, pereżempju, biex jimita l-għeluq ta 'xi parti tal-cluster. Kulħadd jista’ jġib kull sett, semmihom, u jinġabru mingħand il-Konslu. Fl-istess ħin, settijiet jistgħu jew jipparteċipaw fir-regoli iptables jew jaġixxu bħala tim NOOP: Il-konsistenza se tinżamm mid-daemon.

Membri

Preċedentement, kien bħal dan: l-utent konness man-netwerk u rċieva parametri permezz tad-dominju. Qabel il-miġja ta 'firewalls ta' ġenerazzjoni ġdida, Cisco ma kienx jaf kif jifhem fejn kien l-utent u fejn kien l-IP. Għalhekk, l-aċċess ingħata biss permezz tal-hostname tal-magna.

X’għamilna? Imwaħħla fil-mument li rċevejna l-indirizz. Normalment dan huwa dot1x, Wi-Fi jew VPN - kollox jgħaddi minn RADIUS. Għal kull utent, noħolqu grupp bl-isem tal-utent u npoġġu IP fih b'TTL li huwa ugwali għad-dhcp.lease tiegħu - hekk kif tiskadi, ir-regola tisparixxi.

Konslu + iptables = :3

Issa nistgħu niftħu aċċess għas-servizzi, bħal gruppi oħra, bl-isem tal-utent. Aħna neħħejna l-uġigħ tal-ismijiet tal-host meta jinbidlu, u neħħejna l-piż mill-inġiniera tan-netwerk għax m'għadhomx jeħtieġu Cisco. Issa l-inġiniera nfushom jirreġistraw aċċess fuq is-servers tagħhom.

Insulazzjoni

Fl-istess ħin, bdejna nżarmaw l-insulazzjoni. Il-maniġers tas-servizz ħadu inventarju, u analizzajna n-netwerks kollha tagħna. Ejja naqsmuhom fl-istess gruppi, u fuq is-servers meħtieġa l-gruppi ġew miżjuda, pereżempju, biex jiċħdu. Issa l-istess iżolament tal-istadju jispiċċa fir-regoli_ċaħda tal-produzzjoni, iżda mhux fil-produzzjoni nnifisha.

Konslu + iptables = :3

L-iskema taħdem malajr u sempliċement: inneħħu l-ACLs kollha mis-servers, inħottu l-ħardwer, u nnaqqsu n-numru ta 'VLANs iżolati.

Kontroll tal-integrità

Preċedentement, kellna grillu speċjali li rrapporta meta xi ħadd biddel regola tal-firewall manwalment. Kont qed nikteb linter enormi għall-iċċekkjar tar-regoli tal-firewall, kien diffiċli. L-integrità issa hija kkontrollata minn BEFW. Huwa jassigura b’żelu li r-regoli li jagħmel ma jinbidlux. Jekk xi ħadd ibiddel ir-regoli tal-firewall, dan ibiddel kollox lura. “Malajr waqqaft prokura biex inkun nistaʼ naħdem mid-dar”—m’hemmx aktar għażliet bħal dawn.

BEFW jikkontrolla l-ipset mis-servizzi u l-lista f'befw.conf, ir-regoli tas-servizzi fil-katina BEFW. Iżda ma jimmonitorjax ktajjen u regoli oħra u ipsets oħra.

Protezzjoni mill-ħabta

BEFW dejjem jaħżen l-aħħar stat tajjeb magħruf direttament fl-istruttura binarja state.bin. Jekk xi ħaġa tmur ħażin, dejjem tmur lura għal dan state.bin.

Konslu + iptables = :3

Din hija assigurazzjoni kontra l-operat tal-Konslu instabbli, meta ma bagħatx data jew xi ħadd għamel żball u uża regoli li ma jistgħux jiġu applikati. Biex niżguraw li ma nibqgħux mingħajr firewall, BEFW se terġa 'lura għall-aħħar stat jekk iseħħ żball fi kwalunkwe stadju.

F'sitwazzjonijiet kritiċi, din hija garanzija li se nibqgħu b'firewall li jaħdem. Niftħu n-netwerks griżi kollha bit-tama li l-amministratur jiġi u jirranġaha. Xi darba se npoġġi dan fil-konfigurazzjonijiet, iżda issa għandna biss tliet netwerks griżi: 10/8, 172/12 u 192.168/16. Fi ħdan il-Konslu tagħna, din hija karatteristika importanti li tgħinna niżviluppaw aktar.

Demo: matul ir-rapport, Ivan juri l-mod demo ta 'BEFW. Huwa aktar faċli li tara d-dimostrazzjoni video. Kodiċi tas-sors Demo disponibbli fuq GitHub.

Iżvantaġġi

Jien ngħidlek dwar il-bugs li ltqajna magħhom.

ipset żid issettja 0.0.0.0/0. X'jiġri jekk iżżid 0.0.0.0/0 ma' ipset? L-IPs kollha se jiżdiedu? L-aċċess għall-Internet se jkun disponibbli?

Le, se jkollna bug li jiswielna sagħtejn waqfien. Barra minn hekk, il-bug ilu ma jaħdimx mill-2016, jinsab fir-RedHat Bugzilla taħt in-numru #1297092, u sibnieh b'inċident - minn rapport tal-iżviluppatur.

Issa hija regola stretta f'BEFW dik 0.0.0.0/0 jinbidel f'żewġ indirizzi: 0.0.0.0/1 и 128.0.0.0/1.

ipset restore set < fajl. X'jagħmel ipset meta tgħidlu restore? Taħseb li taħdem l-istess bħal iptables? Se jirkupra data?

Xejn bħal dan - tagħmel amalgamazzjoni, u l-indirizzi qodma ma jmorru imkien, ma timblokkax l-aċċess.

Sibna bug meta ttestjaw l-iżolament. Issa hemm sistema pjuttost kumplessa - minflok restore miżmum create temp, allura restore flush temp и restore temp. Fl-aħħar tat-tpartit: għall-atomiċità, għax jekk tagħmel dan l-ewwel flush u f'dan il-mument jasal xi pakkett, jintrema u xi ħaġa tmur ħażin. Allura hemm daqsxejn ta 'maġija sewda hemmhekk.

konsul kv get -datacenter=other. Kif għedt, naħsbu li qed nitolbu għal xi dejta, iżda jew se nġibu dejta jew żball. Nistgħu nagħmlu dan permezz tal-Konslu lokalment, iżda f'dan il-każ it-tnejn se jiffriżaw.

Il-klijent tal-Konslu lokali huwa wrapper fuq l-API HTTP. Iżda biss hang u ma jirrispondix għal Ctrl+C, jew Ctrl+Z, jew xi ħaġa, biss kill -9 fil-console li jmiss. Dan iltqajna meta konna nibnu cluster kbir. Imma għad m'għandniex soluzzjoni; qed nippreparaw biex nirranġaw dan l-iżball fil-Konslu.

Konslu mexxej mhux qed jirrispondi. Il-kaptan tagħna fiċ-ċentru tad-dejta mhux qed jirrispondi, naħsbu: "Forsi l-algoritmu ta' għażla mill-ġdid se jaħdem issa?"

Le, mhux se taħdem, u l-monitoraġġ ma juri xejn: Konslu jgħid li hemm indiċi ta 'impenn, instab mexxej, kollox tajjeb.

Kif nittrattaw dan? service consul restart fil cron kull siegħa. Jekk għandek 50 server, l-ebda big deal. Meta jkun hemm 16 minnhom, tifhem kif taħdem.

Konklużjoni

Bħala riżultat, irċevejna l-vantaġġi li ġejjin:

  • Kopertura 100% tal-magni kollha Linux.
  • Veloċità.
  • Awtomazzjoni.
  • Ħelsna l-inġiniera tal-ħardwer u tan-netwerk mill-iskjavitù.
  • Dehru possibbiltajiet ta 'integrazzjoni li huma kważi illimitati: anke ma' Kubernetes, anke ma 'Ansible, anke ma' Python.

Cons: Konslu, li issa għandna ngħixu, u l-ispiża għolja ħafna ta 'żball. Bħala eżempju, darba fis-6 pm (prime time fir-Russja) kont qed neditja xi ħaġa fil-listi tan-netwerks. Konna biss nibnu insulazzjoni f'BEFW dak iż-żmien. Għamilt żball x'imkien, jidher li indikajt il-maskra ħażina, iżda kollox waqa 'f'żewġ sekondi. Il-monitoraġġ jixgħel, il-persuna ta' appoġġ li tkun qed taħdem tiġi tiġri: "Għandna kollox!" Il-kap tad-dipartiment sar griż meta spjega lin-negozju għaliex ġara dan.

L-ispiża tal-iżball hija tant għolja li ħriġna bil-proċedura ta' prevenzjoni kumplessa tagħna stess. Jekk timplimenta dan fuq sit ta 'produzzjoni kbir, m'għandekx bżonn tagħti token kaptan fuq Konslu lil kulħadd. Dan se jispiċċa ħażin.

Spejjeż Jien ktibt kodiċi għal 400 siegħa biss. It-tim tiegħi ta’ 4 persuni jqatta’ 10 sigħat fix-xahar fuq appoġġ għal kulħadd. Meta mqabbel mal-prezz ta 'kwalunkwe firewall ta' ġenerazzjoni ġdida, huwa b'xejn.

Pjanijiet. Il-pjan fit-tul huwa li jinstab trasport alternattiv biex jissostitwixxi jew jikkumplimenta lil Konslu. Forsi se jkun Kafka jew xi ħaġa simili. Imma fis-snin li ġejjin se ngħixu fuq Konslu.

Pjanijiet immedjati: integrazzjoni ma 'Fail2ban, b'monitoraġġ, b'nftables, possibilment ma' distribuzzjonijiet oħra, metriċi, monitoraġġ avvanzat, ottimizzazzjoni. L-appoġġ ta 'Kubernetes huwa wkoll x'imkien fil-pjanijiet, għaliex issa għandna diversi clusters u x-xewqa.

Aktar mill-pjanijiet:

  • tfittxija għal anomaliji fit-traffiku;
  • Ġestjoni ta' mapep tan-netwerk;
  • appoġġ Kubernetes;
  • L-immuntar ta' pakketti għas-sistemi kollha;
  • Web-UI.

Qegħdin naħdmu kontinwament biex nespandu l-konfigurazzjoni, inżidu l-metriċi u l-ottimizzazzjoni.

Ingħaqad mal-proġett. Il-proġett irriżulta li kien jibred, iżda, sfortunatament, għadu proġett ta 'persuna waħda. Ejja GitHub u pprova tagħmel xi ħaġa: ikkommetti, ittestja, tissuġġerixxi xi ħaġa, agħti l-valutazzjoni tiegħek.

Sadanittant qed nippreparaw għal Saint HighLoad++, li se ssir fis-6 u s-7 ta’ April f’San Pietruburgu, u nistiednu lill-iżviluppaturi ta’ sistemi ta’ tagħbija għolja japplikaw għal rapport. Kelliema b'esperjenza diġà jafu x'għandhom jagħmlu, iżda għal dawk ġodda biex jitkellmu nirrakkomandaw mill-inqas Ipprova. Il-parteċipazzjoni fil-konferenza bħala kelliem għandha numru ta’ vantaġġi. Tista' taqra liema minnhom, pereżempju, fl-aħħar Dan l-artiklu.

Sors: www.habr.com

Żid kumment