Konsil + iptables = :3

Nan 2010 konpayi an Wargaming te gen 50 serveurs ak yon modèl rezo senp: backend, frontend ak firewall. Nimewo a nan sèvè te grandi, modèl la te vin pi konplèks: Stage, VLAN izole ak ACLs, Lè sa a, VPN ak VRFs, VLANs ak ACLs sou L2, VRFs ak ACLs sou L3. Tèt ap vire? Li pral plis plezi pita.

Lè te gen 16 serveurs, li te vin enposib travay san dlo nan je ak anpil segments etewojèn. Se konsa, nou te vini ak yon lòt solisyon. Nou te pran pile Netfilter la, te ajoute Consul nan li kòm yon sous done, epi nou te resevwa yon pare-feu distribye rapid. Yo ranplase ACL sou routeurs epi yo itilize yo kòm yon pare-feu ekstèn ak entèn. Pou jere zouti a dinamik, nou devlope sistèm BEFW, ki te itilize toupatou: soti nan jere aksè itilizatè a rezo pwodwi a pou izole segman rezo youn ak lòt.

Konsil + iptables = :3

Li pral di w ki jan tout bagay travay ak poukisa ou ta dwe pran yon gade pi pre nan sistèm sa a. Ivan Agarkov (annmuor) se tèt gwoup sekirite enfrastrikti divizyon Antretyen nan sant devlopman Minsk konpayi an. Ivan se yon fanatik SELinux, renmen Perl, epi li ekri kòd. Kòm tèt gwoup sekirite enfòmasyon an, li travay regilyèman ak mòso bwa, sovgad ak R&D pou pwoteje Wargaming kont entru epi asire operasyon tout sèvè jwèt nan konpayi an.

Istorik enfòmasyon

Anvan m di w kouman nou te fè l, m ap di w ki jan nou te rive jwenn sa a an premye e poukisa li te nesesè. Pou fè sa, ann tounen 9 ane: 2010, World of Tanks jis parèt. Wargaming te gen apeprè 50 serveurs.

Konsil + iptables = :3
Tablo kwasans sèvè konpayi an.

Nou te gen yon modèl rezo. Pou tan sa a li te pi bon.

Konsil + iptables = :3
Modèl rezo an 2010.

Gen move nèg sou devan ki vle kraze nou, men li gen yon firewall. Pa gen okenn firewall sou backend la, men gen 50 serveurs la, nou konnen yo tout. Tout bagay mache byen.

Nan 4 ane, flòt sèvè a te grandi 100 fwa, a 5000. Premye rezo izole yo te parèt - staging: yo pa t 'kapab ale nan pwodiksyon, e te gen souvan bagay ki kouri la ki ta ka danjere.

Konsil + iptables = :3
Modèl rezo an 2014.

Pa inèsi, nou te itilize menm moso pyès ki nan konpitè, ak tout travay la te fèt sou VLAN izole: ACL yo ekri sou VLAN yo, ki pèmèt oswa refize kèk kalite koneksyon.

Nan 2016, kantite serveurs te rive nan 8000. Wargaming absòbe lòt estidyo, ak rezo afilye adisyonèl parèt. Yo sanble pou nou, men se pa byen: VLAN souvan pa travay pou patnè, ou dwe itilize VPN ak VRF, izolasyon vin pi konplike. Melanj nan izolasyon ACL te grandi.

Konsil + iptables = :3
Modèl rezo an 2016.

Depi nan konmansman an nan 2018, flòt la nan machin te grandi a 16, 000. Te gen 6 segman, epi nou pa t 'konte rès la, ki gen ladan yo fèmen nan ki done finansye yo te estoke. Rezo veso (Kubernetes), DevOps, rezo nwaj ki konekte atravè VPN, pou egzanp, ki soti nan yon IVS, te parèt. Te gen yon anpil nan règ - li te douloure.

Konsil + iptables = :3
Modèl rezo ak metòd izolasyon an 2018.

Pou izòlman nou itilize: VLAN ak ACL sou L2, VRF ak ACL sou L3, VPN ak plis ankò. Twop.

Pwoblèm

Tout moun ap viv ak ACL ak VLAN. Ki sa ki mal? Kesyon sa a pral reponn pa Harold, kache doulè a.

Konsil + iptables = :3

Te gen anpil pwoblèm, men te gen senk gwo pwoblèm.

  • Ogmantasyon pri jeyometrik pou nouvo règ. Chak nouvo règ te pran plis tan pou ajoute pase youn anvan an, paske li te nesesè pou premye wè si te deja yon règ konsa.
  • Pa gen firewall andedan segman yo. Segman yo te yon jan kanmenm separe youn ak lòt, e pa te deja ase resous andedan.
  • Règ yo te aplike pou yon tan long. Operatè yo te kapab ekri yon règ lokal alamen nan yon èdtan. Yon sèl mondyal la te pran plizyè jou.
  • Difikilte ak règ odit. Plis jisteman, li pa t posib. Premye règ yo te ekri tounen nan 2010, ak pi fò nan otè yo pa t travay ankò pou konpayi an.
  • Ba nivo kontwòl enfrastrikti. Sa a se pwoblèm prensipal la - nou pa t 'konnen trè byen sa ki te pase nan peyi nou an.

Men sa yon enjenyè rezo te sanble an 2018 lè li te tande: "Bezwen plis ACL."

Konsil + iptables = :3

Решения

Nan kòmansman 2018, li te deside fè yon bagay sou li.

Pri a nan entegrasyon toujou ap grandi. Pwen an kòmanse se ke gwo sant done yo sispann sipòte VLAN izole ak ACL paske aparèy yo te manke memwa.

Solisyon: nou retire faktè imen an ak otomatize pwovizyon aksè a maksimòm la.

Nouvo règ yo pran anpil tan pou aplike. Solisyon: akselere aplikasyon règ yo, fè li distribye ak paralèl. Sa a mande pou yon sistèm distribye pou règ yo delivre tèt yo, san rsync oswa SFTP nan yon mil sistèm.

Pa gen firewall andedan segman yo. Yon pare-feu nan segman yo te kòmanse vin jwenn nou lè diferan sèvis parèt nan menm rezo a. Solisyon: sèvi ak yon firewall nan nivo lame - firewall ki baze sou lame. Prèske tout kote nou gen Linux, ak tout kote nou gen iptables, sa a se pa yon pwoblèm.

Difikilte ak règ odit. Solisyon: Kenbe tout règ yo nan yon sèl kote pou revizyon ak jesyon, pou nou ka odit tout bagay.

Ba nivo kontwòl sou enfrastrikti. Solisyon: pran yon envantè de tout sèvis ak aksè ant yo.

Sa a se plis nan yon pwosesis administratif pase yon yon sèl teknik. Pafwa nou gen 200-300 nouvo lage yon semèn, espesyalman pandan pwomosyon ak jou ferye. Anplis, sa a se sèlman pou yon ekip DevOps nou an. Avèk anpil degaje, li enposib wè ki pò, IP, ak entegrasyon ki nesesè. Se poutèt sa, nou te bezwen manadjè sèvis ki resevwa fòmasyon espesyal ki te mande ekip yo: “Kisa ki genyen de tout fason e poukisa ou te pote l?”

Apre tout sa nou te lanse, yon enjenyè rezo an 2019 te kòmanse sanble ak sa a.

Konsil + iptables = :3

Konsil

Nou te deside ke nou ta mete tout sa nou jwenn ak èd administratè sèvis yo nan Konsil epi apati la nou ta ekri règ iptables.

Ki jan nou te deside fè sa?

  • Nou pral kolekte tout sèvis, rezo ak itilizatè yo.
  • Ann kreye règ iptables ki baze sou yo.
  • Nou otomatize kontwòl.
  • ....
  • PROFIT.

Consul se pa yon API aleka, li ka kouri sou chak ne epi ekri nan iptables. Tout sa ki rete se vini ak kontwòl otomatik ki pral netwaye bagay ki pa nesesè, epi pi fò nan pwoblèm yo pral rezoud! Nou pral travay sou rès la jan nou ale.

Poukisa Konsil?

Li te pwouve tèt li byen. Nan ane 2014-15, nou te itilize li kòm yon backend pou Vault, kote nou estoke modpas yo.

Pa pèdi done. Pandan tan itilize, Consul pa t pèdi done pandan yon sèl aksidan. Sa a se yon gwo avantaj pou yon sistèm jesyon firewall.

Koneksyon P2P akselere pwopagasyon chanjman an. Avèk P2P, tout chanjman yo vini byen vit, pa bezwen rete tann pou èdtan.

Pratik REST API. Nou konsidere tou Apache ZooKeeper, men li pa gen yon API REST, kidonk w ap oblije enstale beki.

Travay kòm tou de yon kle Vault (KV) ak yon Anyè (Sèvis Dekouvèt). Ou ka estoke sèvis, katalòg, ak sant done alafwa. Sa a se pratik pa sèlman pou nou, men tou pou ekip vwazen yo, paske lè bati yon sèvis mondyal, nou panse gwo.

Ekri nan Go, ki se yon pati nan pil Wargaming la. Nou renmen lang sa a, nou gen anpil devlopè Go.

Pwisan sistèm ACL. Nan Consul, ou ka itilize ACL pou kontwole ki moun ki ekri sa. Nou garanti ke règ firewall yo pa pral sipèpoze ak nenpòt lòt bagay epi nou pa pral gen pwoblèm ak sa a.

Men Konsil gen dezavantaj li tou.

  • Pa echèl nan yon sant done sof si ou gen yon vèsyon biznis. Li se sèlman évolutive pa federasyon.
  • Trè depann sou bon jan kalite a nan rezo a ak chaj sèvè. Konsil pa pral travay byen kòm yon sèvè sou yon sèvè okipe si gen nenpòt lag nan rezo a, pou egzanp, vitès inegal. Sa a se akòz koneksyon P2P ak modèl distribisyon aktyalizasyon.
  • Difikilte pou kontwole disponiblite. Nan estati Konsil li ka di tout bagay anfòm, men li mouri depi lontan.

Nou te rezoud pifò pwoblèm sa yo pandan n ap itilize Consul, se poutèt sa nou te chwazi li. Konpayi an gen plan pou yon backend altènatif, men nou te aprann fè fas ak pwoblèm ak kounye a ap viv ak Consul.

Kòman Konsil ap travay

Nou pral enstale twa a senk serveurs nan yon sant done kondisyonèl. Youn oswa de sèvè pa pral travay: yo pa pral kapab òganize yon kowòm epi deside ki moun ki gen rezon ak ki moun ki mal lè done yo pa matche. Plis pase senk pa gen okenn sans, pwodiktivite pral tonbe.

Konsil + iptables = :3

Kliyan konekte ak sèvè yo nan nenpòt lòd: ajan yo menm, sèlman ak drapo a server = false.

Konsil + iptables = :3

Apre sa, kliyan resevwa yon lis koneksyon P2P epi bati koneksyon ant yo.

Konsil + iptables = :3

Nan nivo mondyal, nou konekte plizyè sant done. Yo menm tou yo konekte P2P ak kominike.

Konsil + iptables = :3

Lè nou vle rekipere done ki soti nan yon lòt sant done, demann lan ale soti nan sèvè a sèvè. Konplo sa a rele Pwotokòl sèvitè. Pwotokòl Serf la, tankou Consul, devlope pa HashiCorp.

Kèk enfòmasyon enpòtan sou Konsil

Konsil gen dokiman ki dekri kijan li fonksyone. Mwen pral bay sèlman reyalite chwazi ki vo konnen.

Sèvè konsil yo chwazi yon mèt pami votè yo. Konsil chwazi yon mèt nan lis serveurs pou chak sant done, epi tout demann ale sèlman nan li, kèlkeswa kantite sèvè yo. Mèt jele pa mennen nan re-eleksyon. Si yo pa chwazi mèt la, pèsonn pa okipe demann yo.

Èske ou te vle dekale orizontal? Dezole, non.

Yon demann nan yon lòt sant done ale soti nan mèt nan mèt, kèlkeswa ki sèvè li te vini. Mèt la chwazi resevwa 100% nan chaj la, eksepte pou chaj la sou demann pou pi devan. Tout sèvè nan sant done a gen yon kopi ajou nan done yo, men se sèlman youn ki reponn.

Sèl fason pou echèl se pèmèt mòd rasi sou kliyan an.

Nan mòd rasi, ou ka reponn san kowòm. Sa a se yon mòd nan ki nou bay moute konsistans done, men li yon ti kras pi vit pase nòmal, ak nenpòt sèvè reponn. Natirèlman, anrejistreman sèlman atravè mèt la.

Consul pa kopye done ant sant done yo. Lè yon federasyon reyini, chak sèvè ap gen sèlman done pwòp li yo. Pou lòt moun, li toujou tounen vin jwenn yon lòt moun.

Atomisite nan operasyon yo pa garanti deyò nan yon tranzaksyon. Sonje ke ou pa sèl moun ki ka chanje bagay yo. Si ou vle li yon lòt jan, fè yon tranzaksyon ak yon seri.

Operasyon bloke pa garanti bloke. Demann lan ale de mèt a mèt, epi li pa dirèkteman, kidonk pa gen okenn garanti ke bloke a pral travay lè ou bloke, pou egzanp, nan yon lòt sant done.

ACL tou pa garanti aksè (nan anpil ka). ACL a ka pa travay paske li estoke nan yon sant done federasyon - nan sant done ACL (Primary DC). Si DC a pa reponn ou, ACL a p ap travay.

Yon mèt jele pral lakòz tout federasyon an jele. Pou egzanp, gen 10 sant done nan yon federasyon, ak youn gen yon rezo move, ak yon mèt echwe. Tout moun ki kominike avè l 'ap kole nan yon sèk: gen yon demann, pa gen okenn repons a li, fil la jele. Pa gen okenn fason pou konnen ki lè sa a pral rive, jis nan yon èdtan oswa de tout federasyon an pral tonbe. Pa gen anyen ou ka fè sou li.

Estati, kowòm ak eleksyon yo okipe pa yon fil separe. Re-eleksyon pap rive, estati a pap montre anyen. Ou panse ke ou gen yon Konsil vivan, ou mande, e anyen pa rive - pa gen okenn repons. An menm tan an, estati a montre ke tout bagay anfòm.

Nou te rankontre pwoblèm sa a epi nou te oblije rebati pati espesifik nan sant done pou evite li.

Vèsyon biznis Consul Enterprise pa gen kèk nan dezavantaj ki anwo yo. Li gen anpil fonksyon itil: chwazi votè yo, distribisyon, dekale. Gen yon sèl "men" - sistèm nan lisans pou yon sistèm distribiye se trè chè.

Lavi ranje andedan: rm -rf /var/lib/consul - yon gerizon pou tout maladi nan ajan an. Si yon bagay pa travay pou ou, jis efase done ou yo epi telechaje done yo nan yon kopi. Gen plis chans, Konsil ap travay.

BEFW

Koulye a, ann pale sou sa nou te ajoute nan Konsil.

BEFW se yon akwonim pou BakEndFMwen praleWtout. Mwen te oblije non pwodwi a yon jan kanmenm lè mwen te kreye repozitwa a nan lòd yo mete premye tès yo komèt nan li. Non sa a rete.

Modèl règ

Règ yo ekri nan sentaks iptables.

  • -N BEFW
  • -P GOUT ENTRE
  • -A INPUT -m eta—eta RELATED,ETABLISHED -j AKSEPTE
  • -A INPUT -i lo -j AKSEPTE
  • -A ENTREP -j BEFW

Tout bagay ale nan chèn BEFW, eksepte ESTABLISHED, RELATED ak localhost. Modèl la ka nenpòt bagay, sa a se jis yon egzanp.

Ki jan BEFW itil?

Sèvis

Nou gen yon sèvis, li toujou gen yon pò, yon ne sou kote li kouri. Soti nan ne nou an, nou ka lokalman mande ajan an epi chèche konnen ke nou gen yon kalite sèvis. Ou ka mete tags tou.

Konsil + iptables = :3

Nenpòt sèvis ki ap kouri epi ki anrejistre ak Consul tounen yon règ iptables. Nou gen SSH - louvri pò 22. Script Bash la senp: curl ak iptables, pa gen anyen lòt ki nesesè.

Kliyan

Ki jan yo louvri aksè pa tout moun, men oaza? Ajoute lis IP nan depo KV pa non sèvis.

Konsil + iptables = :3

Pa egzanp, nou vle tout moun sou dizyèm rezo a kapab jwenn aksè nan sèvis SSH_TCP_22 la. Ajoute yon ti jaden TTL? epi kounye a nou gen pèmi tanporè, pou egzanp, pou yon jou.

Aksè

Nou konekte sèvis ak kliyan: nou gen yon sèvis, KV depo pare pou chak. Koulye a, nou bay aksè pa tout moun, men selektif.

Konsil + iptables = :3

Gwoup yo

Si nou ekri dè milye de IP pou aksè chak fwa, nou pral fatige. Ann vini ak gwoupman - yon sous-ensemble separe nan KV. Ann rele l 'Alyas (oswa gwoup) ak gwoup magazen la dapre menm prensip la.

Konsil + iptables = :3

Ann konekte: kounye a nou ka louvri SSH pa espesyalman pou P2P, men pou yon gwoup antye oswa plizyè gwoup. Nan menm fason an, gen TTL - ou ka ajoute nan yon gwoup epi retire nan gwoup la tanporèman.

Konsil + iptables = :3

Entegrasyon

Pwoblèm nou an se faktè imen an ak automatisation. Jiskaprezan nou te rezoud li nan fason sa a.

Konsil + iptables = :3

Nou travay ak Puppet, epi transfere tout bagay ki gen rapò ak sistèm nan (kòd aplikasyon) ba yo. Puppetdb (postgreSQL regilye) magazen yon lis sèvis ki ap kouri la, yo ka jwenn yo pa kalite resous. La ou ka chèche konnen ki moun ki ap aplike kote. Nou menm tou nou gen yon demann pull and merge request pou sa.

Nou te ekri befw-sync, yon solisyon senp ki ede transfere done. Premyèman, puppetdb jwenn aksè nan cookies senkronize. Se yon HTTP API configuré la: nou mande ki sèvis nou genyen, sa ki bezwen fè. Apre yo fè yon demann bay Konsil.

Èske gen entegrasyon? Wi: yo te ekri règ yo epi yo te pèmèt yo aksepte Demann Pull. Ou bezwen yon pò sèten oswa ajoute yon lame nan kèk gwoup? Rale demann, revize - pa plis "Jwenn 200 lòt ACL epi eseye fè yon bagay sou li."

Optimization

Ping localhost ak yon chèn règ vid pran 0,075 ms.

Konsil + iptables = :3

Ann ajoute 10 adrès iptables nan chèn sa a. Kòm yon rezilta, ping la ap ogmante 000 fwa: iptables se konplètman lineyè, pwosesis chak adrès pran kèk tan.

Konsil + iptables = :3

Pou yon firewall kote nou imigre dè milye de ACLs, nou gen yon anpil nan règ, ak sa a entwodui latansi. Sa a se move pou pwotokòl Gaming.

Men si nou mete 10 adrès nan ipset Ping la ap menm diminye.

Konsil + iptables = :3

Pwen an se ke "O" (konpleksite algorithm) pou ipset toujou egal a 1, kèlkeswa kantite règ genyen. Se vre, gen yon limit - pa ka gen plis pase règ 65535. Pou kounye a nou ap viv ak sa a: ou ka konbine yo, elaji yo, fè de ipsets nan yon sèl.

Depo

Yon kontinyasyon lojik nan pwosesis iterasyon an se estoke enfòmasyon sou kliyan pou sèvis la nan ipset.

Konsil + iptables = :3

Koulye a, nou gen menm SSH la, epi nou pa ekri 100 IP nan yon fwa, men mete non an nan ipset la ak ki nou bezwen kominike, ak règ sa a. DROP. Li ka konvèti nan yon sèl règ "Ki moun ki pa isit la, DROP", men li pi klè.

Koulye a, nou gen règ ak seri. Travay prensipal la se fè yon seri anvan ekri règ la, paske otreman iptables pa pral ekri règ la.

Jeneral konplo

Sou fòm yon dyagram, tout sa mwen te di sanble tankou sa a.

Konsil + iptables = :3

Nou pran angajman pou Puppet, tout bagay yo voye bay lame a, sèvis isit la, ipset la, ak nenpòt moun ki pa anrejistre la pa gen dwa.

Pèmèt & refize

Pou byen vit sove mond lan oswa byen vit enfim yon moun, nan kòmansman an nan tout chenn nou te fè de ipsets: rules_allow и rules_deny. Ki jan li fonksyone?

Pou egzanp, yon moun ap kreye yon chaj sou entènèt nou an ak robo. Précédemment, ou te oblije jwenn IP l 'soti nan mòso bwa yo, pran li nan enjenyè rezo, pou yo te ka jwenn sous la nan trafik la ak entèdi l'. Li sanble diferan kounye a.

Konsil + iptables = :3

Nou voye li bay Konsil, tann 2,5 segonn, epi li fè. Depi Konsil distribye byen vit atravè P2P, li travay toupatou, nan nenpòt kote nan mond lan.

Yon fwa mwen yon jan kanmenm konplètman sispann WOT akòz yon erè ak firewall la. rules_allow - sa a se asirans nou kont ka sa yo. Si nou te fè yon erè yon kote ak firewall la, yon bagay bloke yon kote, nou ka toujou voye yon kondisyonèl. 0.0/0rapidman ranmase tout bagay. Pita nou pral ranje tout bagay alamen.

Lòt seri

Ou ka ajoute nenpòt lòt seri nan espas $IPSETS$.

Konsil + iptables = :3

Pou kisa? Pafwa yon moun bezwen ipset, pou egzanp, imite fèmen nan kèk pati nan gwoup la. Nenpòt moun ka pote nenpòt seri, non yo, epi yo pral pran yo nan men Konsil. An menm tan an, ansanm ka swa patisipe nan règ iptables yo oswa aji kòm yon ekip NOOP: Demon an pral kenbe konsistans.

Manm

Précédemment, li te tankou sa a: itilizatè a konekte nan rezo a ak resevwa paramèt atravè domèn nan. Anvan avènement de firewall nouvo jenerasyon, Cisco pa t 'konnen ki jan yo konprann ki kote itilizatè a te ak ki kote IP la te ye. Se poutèt sa, aksè yo te akòde sèlman atravè non an host nan machin nan.

Kisa nou te fè? Nou te bloke nan moman nou te resevwa adrès la. Anjeneral sa a se dot1x, Wi-Fi oswa VPN - tout bagay ale nan RADIUS. Pou chak itilizatè, nou kreye yon gwoup pa non itilizatè epi mete yon IP nan li ak yon TTL ki egal a dhcp.lease li yo - le pli vit ke li ekspire, règ la pral disparèt.

Konsil + iptables = :3

Koulye a, nou ka louvri aksè a sèvis, tankou lòt gwoup, pa non itilizatè. Nou te retire doulè nan hostnames lè yo chanje, epi nou te wete fado a sou enjenyè rezo yo paske yo pa bezwen Cisco ankò. Koulye a, enjenyè tèt yo anrejistre aksè sou serveurs yo.

D '

An menm tan an, nou te kòmanse demonte izolasyon an. Manadjè sèvis yo te fè yon envantè, epi nou analize tout rezo nou yo. Se pou nou divize yo nan menm gwoup yo, ak sou serveurs ki nesesè yo te ajoute gwoup yo, pou egzanp, refize. Koulye a, menm izolasyon an sèn nan fini nan règleman yo_nye nan pwodiksyon an, men se pa nan pwodiksyon an tèt li.

Konsil + iptables = :3

Konplo a travay byen vit ak tou senpleman: nou retire tout ACL nan serveurs yo, dechaje pyès ki nan konpitè a, epi redwi kantite VLAN izole yo.

Kontwòl entegrite

Précédemment, nou te gen yon deklanche espesyal ki rapòte lè yon moun chanje yon règ firewall manyèlman. Mwen te ekri yon gwo linter pou tcheke règ firewall, li te difisil. Entegrite se kounye a kontwole pa BEFW. Li avèk zèl asire règ li fè yo pa chanje. Si yon moun chanje règ firewall yo, li pral chanje tout bagay tounen. "Mwen byen vit mete yon prokurasyon pou mwen ka travay nan kay la"—pa gen okenn opsyon sa yo ankò.

BEFW kontwole ipset a soti nan sèvis yo ak lis nan befw.conf, règ yo nan sèvis nan chèn nan BEFW. Men, li pa kontwole lòt chenn ak règ ak lòt ipsets.

Pwoteksyon aksidan

BEFW toujou estoke dènye bon eta li te ye dirèkteman nan estrikti binè state.bin. Si yon bagay ale mal, li toujou woule tounen nan state.bin sa a.

Konsil + iptables = :3

Sa a se asirans kont operasyon Konsil enstab, lè li pa t 'voye done oswa yon moun te fè yon erè ak itilize règ ki pa ka aplike. Pou asire ke nou pa rete san yon firewall, BEFW pral retounen nan dènye eta a si yon erè rive nan nenpòt etap.

Nan sitiyasyon kritik, sa a se yon garanti ke nou pral rete ak yon firewall k ap travay. Nou louvri tout rezo gri ak espwa ke admin la ap vin ranje li. Yon jou mwen pral mete sa a nan konfigirasyon yo, men kounye a nou jis gen twa rezo gri: 10/8, 172/12 ak 192.168/16. Nan Konsil nou an, sa a se yon karakteristik enpòtan ki ede nou devlope pi lwen.

Demo: pandan rapò a, Ivan demontre mòd nan Demo nan BEFW. Li pi fasil pou gade demonstrasyon an videyo. Demo kòd sous disponib sou GitHub.

Enkonvenyans

Mwen pral di w sou pinèz yo nou te rankontre.

ipset ajoute mete 0.0.0.0/0. Kisa k ap pase si ou ajoute 0.0.0.0/0 nan ipset? Èske tout IP pral ajoute? Èske aksè entènèt ap disponib?

Non, nou pral jwenn yon ensèk ki koute nou de zè de tan D'. Anplis, pinèz la pa te travay depi 2016, li sitiye nan RedHat Bugzilla anba nimewo #1297092, epi nou te jwenn li pa aksidan - nan rapò yon pwomotè a.

Li se kounye a yon règ strik nan BEFW sa 0.0.0.0/0 vire nan de adrès: 0.0.0.0/1 и 128.0.0.0/1.

ipset restore set < fichye. Kisa ipset fè lè ou di li restore? Ou panse li travay menm jan ak iptables? Èske li refè done?

Pa gen anyen tankou sa - li fè yon fizyon, ak adrès yo fin vye granmoun pa ale nenpòt kote, ou pa bloke aksè.

Nou jwenn yon ensèk lè nou teste izolasyon. Koulye a, gen yon sistèm olye konplèks - olye pou yo restore ki te fèt create templè sa a restore flush temp и restore temp. Nan fen swap: pou atomite, paske si ou fè li an premye flush ak nan moman sa a kèk pake rive, li pral jete ak yon bagay pral mal. Se konsa, gen yon ti kras nan maji nwa la.

konsil kv get -datacenter=other. Kòm mwen te di, nou panse ke nou ap mande pou kèk done, men nou pral swa jwenn done oswa yon erè. Nou ka fè sa atravè Konsil lokalman, men nan ka sa a tou de pral friz.

Kliyan Konsil lokal la se yon wrapper sou HTTP API a. Men, li jis pandye epi li pa reponn a Ctrl + C, oswa Ctrl + Z, oswa anyen, sèlman kill -9 nan pwochen konsole a. Nou te rankontre sa lè nou t ap konstwi yon gwo gwoup. Men nou poko gen solisyon, nap prepare pou korije erè sa a nan Konsil.

Lidè konsil la pa reponn. Mèt nou an nan sant done a pa reponn, nou panse: "Petèt algorithm nan reseleksyon ap travay kounye a?"

Non, li pap mache, e siveyans pap montre anyen: Konsil pral di gen yon endèks angajman, yo jwenn yon lidè, tout bagay anfòm.

Ki jan nou fè fas ak sa a? service consul restart nan cron chak èdtan. Si ou gen 50 serveurs, pa gen gwo zafè. Lè gen 16 nan yo, ou pral konprann ki jan li fonksyone.

Konklizyon

Kòm yon rezilta, nou te resevwa avantaj sa yo:

  • 100% pwoteksyon nan tout machin Linux.
  • Vitès.
  • Otomatik.
  • Nou te libere pyès ki nan konpitè ak enjenyè rezo yo anba esklavaj.
  • Posiblite entegrasyon yo te parèt ki prèske illimité: menm ak Kubernetes, menm ak Ansible, menm ak Python.

Kont: Konsil, ak ki kounye a nou dwe viv, ak pri a trè wo nan erè. Kòm yon egzanp, yon fwa nan 6 pm (prime lè nan Larisi) mwen te koreksyon yon bagay nan lis rezo yo. Nou te jis bati izolasyon nan BEFW nan moman an. Mwen te fè yon erè yon kote, sanble mwen te endike mask la mal, men tout bagay tonbe nan de segonn. Siveyans lan limen, moun k ap travay nan sèvis la vin kouri: "Nou gen tout bagay!" Chèf depatman an te vin gri lè li te eksplike biznis la poukisa sa te rive.

Pri erè a tèlman wo ke nou te vini ak pwòp pwosedi prevansyon konplèks nou an. Si ou aplike sa a sou yon gwo sit pwodiksyon, ou pa bezwen bay tout moun yon siy mèt sou Konsil. Sa a pral fini mal.

Pri Mwen te ekri kòd pou 400 èdtan pou kont li. Ekip mwen an ki gen 4 moun pase 10 èdtan pa mwa nan sipò pou tout moun. Konpare ak pri nenpòt firewall nouvo jenerasyon, li gratis.

Plan. Plan alontèm se jwenn lòt transpòtasyon pou ranplase oswa konpleman Konsil. Petèt li pral Kafka oswa yon bagay ki sanble. Men nan ane kap vini yo nou pral viv sou Konsil.

Plan imedyat: entegrasyon ak Fail2ban, ak siveyans, ak nftables, pètèt ak lòt distribisyon, mezi, siveyans avanse, optimize. Sipò Kubernetes tou se yon kote nan plan yo, paske kounye a nou gen plizyè grap ak dezi a.

Plis nan plan yo:

  • rechèch pou anomali nan trafik;
  • jesyon kat jeyografik rezo;
  • sipò Kubernetes;
  • rasanble pakè pou tout sistèm;
  • Web-UI.

Nou toujou ap travay sou elaji konfigirasyon an, ogmante mezi ak optimize.

Antre nan pwojè a. Pwojè a te tounen fre, men, malerezman, li se toujou yon pwojè yon sèl moun. Vini GitHub epi eseye fè yon bagay: komèt, teste, sijere yon bagay, bay evalyasyon ou.

Pandan se tan nou ap prepare pou Saint HighLoad++, ki pral pran plas sou Avril 6 ak 7 nan Saint Petersburg, epi nou envite devlopè nan gwo chaj sistèm aplike pou yon rapò. Moun ki pale ki gen eksperyans deja konnen sa pou yo fè, men pou moun ki fèk pale nou rekòmande omwen eseye. Patisipe nan konferans lan kòm yon oratè gen yon kantite avantaj. Ou ka li kiyès, pa egzanp, nan fen Atik sa.

Sous: www.habr.com

Add nouvo kòmantè