Projekti im i parealizuar. Një rrjet me 200 ruterë MikroTik

Projekti im i parealizuar. Një rrjet me 200 ruterë MikroTik

Përshëndetje të gjithëve. Ky artikull është për ata që kanë shumë pajisje MikroTik në park dhe duan të arrijnë maksimalizimin e uniformitetit, për të mos u lidhur me çdo pajisje veç e veç. Në këtë artikull do të përshkruaj një projekt që, fatkeqësisht, nuk arriti në kushte operacionale për shkak të faktorëve njerëzorë. Në thelb: më shumë se 200 routera, konfigurim i shpejtë dhe trajnim i personelit, uniformizim sipas rajoneve, filtrimi i rrjeteve dhe hosteve të caktuar, mundësia e shtimit të lehtë të rregullave në të gjitha pajisjet, regjistrimi dhe kontrolli i aksesit.

Ajo qĂ« Ă«shtĂ« pĂ«rshkruar mĂ« poshtĂ« nuk pretendon tĂ« jetĂ« njĂ« rast i gatshĂ«m, por shpresoj se do t'ju ndihmojĂ« nĂ« planifikimin e rrjeteve tuaja dhe minimalizimin e gabimeve. Ndoshta disa pika dhe zgjidhje do t'ju duken jo krejt tĂ« sakta – nĂ«se kĂ«shtu Ă«shtĂ«, shkruani nĂ« komentet. Kritika nĂ« kĂ«tĂ« rast do tĂ« jetĂ« njĂ« pĂ«rvojĂ« nĂ« thesarin e pĂ«rbashkĂ«t. Prandaj, lexues, shihni nĂ« komentet, ndoshta autori ka bĂ«rĂ« njĂ« gabim tĂ« rĂ«ndĂ« – komuniteti do tĂ« ndihmojĂ«.

Numri i routerave 200-300, të shpërndarë në qytete të ndryshme me cilësi të ndryshme të lidhjes me internetin. Duhet të bëhet gjithçka e bukur dhe qartë për të shpjeguar administratorëve lokalë si do të funksionojë gjithçka.

Tani, nga ku fillon çdo projekt. Sigurisht, nga TL.

  1. Organizimi i planit të rrjeteve në të gjitha degët sipas kërkesave të klientit, segmentimi i rrjeteve (nga 3 në 20 rrjete në degë në varësi të numrit të pajisjeve).
  2. Konfigurimi i pajisjeve në çdo degë. Kontrolli i shpejtësisë reale të kalimit të provajdit në kushte të ndryshme pune.
  3. Organizimi i mbrojtjes së pajisjeve, menaxhimi me listë të bardhë, auto-zhbërja e sulmeve me regjistrimin automatik në listën e zezë për një periudhë të caktuar, minimizimi i përdorimit të mjeteve të ndryshme teknike që përdoren për kapjen e aksesit të menaxhimit dhe heqja e mbështetjes.
  4. Organizimi i lidhjeve të sigurta VPN me filtrimin sipas rrjeteve sipas kërkesave të klientit. Min. 3 lidhje VPN nga çdo degë në qendër.
  5. Bazuar në pikat 1, 2. Zgjedhja e rrugëve optimale për ndërtimin e VPN të qëndrueshme. Teknologjia e rutimit dinamik mund të zgjidhet nga ekzekutivi me një arsyetim të saktë.
  6. Organizimi i prioritizimit të trafikëve sipas protokolleve, porteve, hosteve dhe shërbimeve të tjera specifike që përdor klienti. (VOIP, hoste me shërbime të rëndësishme)
  7. Organizimi i monitoringut dhe logimit të ngjarjeve të routerëve për të reaguar në kohë nga stafi i mbështetjes teknike.

Siç e kuptojmë, në disa raste, dokumenti i kërkesave përgatitet nga kërkesat. Këto kërkesa i kam formuluar vetë, duke dëgjuar problemet kryesore. Kam lejuar mundësinë që këto pika mund të realizohen nga dikush tjetër.

Cilat mjete do të përdoren për përmbushjen e këtyre kërkesave:

  1. Stoku ELK (pas një kohe, kuptova se në vend të logstash do të përdoret fluentd).
  2. Ansible. Për lehtësimin e administratës dhe ndarjen e aksesit do të përdorim AWX.
  3. GITLAB. Këtu nuk ka nevojë për shpjegim. Ku pa kontrollet e versioneve të konfigurimeve tona.
  4. PowerShell. Do të ketë një skenar të thjeshtë për gjenerimin fillestar të konfigurimeve.
  5. Dokumentacioni wiki, për shkruarjen e dokumentacioneve dhe udhëzimeve. Në këtë rast, përdorim habr.com.
  6. Monitoring do të realizohet përmes zabbix. Atje do të vizatohet gjithashtu një skemë lidhjesh për të kuptuar më mirë.

Momentet e konfigurimeve EFK

Për pikën e parë do të përshkruaj vetëm ideologjinë sipas së cilës do të ndërtohen indekset. Ekzistojnë shumë
artikuj të shkëlqyer për konfigurimin dhe marrjen e logeve nga pajisjet në menaxhimin mikrotik.

Do të ndalemi në disa momente:

1. Sipas skemës, duhet të mendojmë për marrjen e logeve nga vende të ndryshme dhe në porte të ndryshme. Për këtë ne do të përdorim një agregator logesh. Po ashtu, na pëlqen të bëjmë grafikë universale për të gjithë routerët me mundësinë për ndarjen e aksesit. Atëherë indekset do t'i ndërtojmë si më poshtë:

këtu është një pjesë e konfigurimit me fluentd lloji elasticsearch
logstash_format true
emri_indeksit mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10s
hosts elasticsearch:9200
port 9200

Kështu mund të bashkojmë routerët dhe të segmentojmë sipas planit - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Pse ta komplikohet kaq shumë? Ne kuptojmë se do të kemi 200 dhe më shumë pajisje. Nuk mund ta ndjekim gjithçka. Me versionin 6.8 të elasticsearch, na janë të disponueshme konfigurimet e sigurisë (pa blerë licencë), kështu që mund të shpërndajmë të drejtat për shikimin midis punonjësve të mbështetjes teknike ose administratorëve lokalë të sistemeve.
Tabelat, grafiket - këtu duhet thjesht të bien dakord - ose të përdorin njëlloj, ose secili bën siç do të ketë më lehtë.

2. Rreth regjistrimit. NĂ«se nĂ« rregullat e firewall aktivizojmĂ« log, atĂ«herĂ« emrat i bĂ«jmĂ« pa hapĂ«sira. ËshtĂ« e qartĂ« se duke pĂ«rdorur njĂ« konfigurim tĂ« thjeshtĂ« nĂ« fluentd, ne mund tĂ« filtrojmĂ« tĂ« dhĂ«nat dhe tĂ« bĂ«jmĂ« panele tĂ« kĂ«ndshme. NĂ« figurĂ«n mĂ« poshtĂ« - routeri im nĂ« shtĂ«pi.

Projekti im i parealizuar. Një rrjet me 200 ruterë MikroTik

3. Rreth hapësirës së zënë dhe logeve. Në mesatare, me 1000 mesazhe në orë, loget zënë rreth 2-3 mb në ditë, që, pranojmë, nuk është shumë. Versioni i elasticsearch 7.5.

ANSIBLE.AWX

Për fatin tonë, kemi një modulin e gatshëm për routeros.
Pata përmendur për AWX, por komandat më poshtë janë vetëm për ansible në formë të pastër - mendoj se për ata që kanë punuar me ansible, nuk do të ketë probleme në përdorimin përmes gui awx.

Pranoj sinqerisht, deri tani kam parĂ« udhĂ«zime tĂ« tjera qĂ« pĂ«rdorin ssh, dhe tĂ« gjithĂ« patĂ«n probleme tĂ« ndryshme me kohĂ«n e pĂ«rgjigjes dhe shumĂ« probleme tĂ« tjera. TĂ« pĂ«rsĂ«ris, deri nĂ« betejĂ« nuk arriti , e merrni kĂ«tĂ« informacion si njĂ« eksperiment, qĂ« nuk arriti mĂ« tej se njĂ« stendĂ« me 20 routerĂ«.

Na nevojitet të përdorim një certifikat ose llogari. Këtu ju duhet të vendosni, unë jam për certifikatat. Një moment i hollë rreth të drejtave. Po jap të drejta për write - të paktën 'reset config' nuk do të mund të realizohet.

Rreth gjenerimit, kopjimit të certifikatës dhe importit nuk duhet të ketë probleme:

Në përmbledhje lista e komandaveNë PC-në tuaj
ssh-keygen -t RSA, përgjigjeni pyetjeve, ruani çelësin.
Kopjojmë në mikrotik:
user ssh-keys import public-key-file=id_mtx.pub user=ansible
Përpara duhet të krijoni një llogari dhe t'i jepni asaj të drejta.
Kontrolloni lidhjen nëpërmjet certifikatës
ssh -p 49475 -i /keys/mtx ansible@192.168.0.120

Shkruajmë vi /etc/ansible/hosts
MT01 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT02 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT03 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT04 ansible_network_os=routeros ansible_ssh_port=49475 ansible_ssh_user= ansible

Dhe një shembull playbook: --- name: add_work_sites
hosts: testmt
serial: 1
connection: network_cli
remote_user: mikrotik.west
gather_facts: yes
tasks:
--- name: add Work_sites
routeros_command:
commands:
--- /ip firewall address-list add address=gov.ru list=work_sites comment=Ticket665436_Ochen_nado
--- /ip firewall address-list add address=habr.com list=work_sites comment=for_habr

Siç shihet nga konfigurimi i lartpërmendur, përgatitja e playbook-ve tona nuk është punë e vështirë. Mjafton të zotëroni mirë cli mikrotik. Le të imagjinojmë një situatë kur në të gjithë routerët duhet të hiqet lista e adresave me të dhëna të caktuara, atëherë:

Gjeni dhe fshini/ip firewal address-list remove [find where list=«gov.ru»]

Unë qëllimisht nuk e vura këtu të gjithë listimin e firewall-it pasi do të jetë individual për çdo projekt. Por mund të them me siguri, përdorni vetëm listën e adresave.

PĂ«r GITLAB gjithçka Ă«shtĂ« e qartĂ«. Nuk do tĂ« ndalem nĂ« kĂ«tĂ« moment. ËshtĂ« gjithçka e bukur sipas detyrave, templates, handlers.

Powershell

KĂ«tu do tĂ« ketĂ« 3 skedarĂ«. Pse powershell? Mund tĂ« zgjidhni çdo mjet pĂ«r gjenerimin e konfiguracioneve, secili çfarĂ« e preferon. NĂ« kĂ«tĂ« rast tĂ« gjithĂ« kanĂ« Windows nĂ« PC, pĂ«rse tĂ« bĂ«jmĂ« nĂ« bash, kur powershell Ă«shtĂ« mĂ« i lehtĂ«. Çdo kush çfarĂ« e do.

Skriçti vete (i thjeshtë dhe i kuptueshëm):[cmdletBinding()]
Param(
[Parameter(Mandatory=$true)]
[string]$EXTERNALIPADDRESS,
[Parameter(Mandatory=$true)]
[string]$EXTERNALIPROUTE,
[Parameter(Mandatory=$true)]
[string]$BWorknets,
[Parameter(Mandatory=$true)]
[string]$CWorknets,
[Parameter(Mandatory=$true)]
[string]$BVoipNets,
[Parameter(Mandatory=$true)]
[string]$CVoipNets,
[Parameter(Mandatory=$true)]
[string]$CClientss,
[Parameter(Mandatory=$true)]
[string]$BVPNWORKs,
[Parameter(Mandatory=$true)]
[string]$CVPNWORKs,
[Parameter(Mandatory=$true)]
[string]$BVPNCLIENTSs,
[Parameter(Mandatory=$true)]
[string]$cVPNCLIENTSs,
[Parameter(Mandatory=$true)]
[string]$NAMEROUTER,
[Parameter(Mandatory=$true)]
[string]$ServerCertificates,
[Parameter(Mandatory=$true)]
[string]$infile,
[Parameter(Mandatory=$true)]
[string]$outfile
)

Get-Content $infile | Foreach-Object {$_.Replace("EXTERNIP", $EXTERNALIPADDRESS)} |
Foreach-Object {$_.Replace("EXTROUTE", $EXTERNALIPROUTE)} |
Foreach-Object {$_.Replace("BWorknet", $BWorknets)} |
Foreach-Object {$_.Replace("CWorknet", $CWorknets)} |
Foreach-Object {$_.Replace("BVoipNet", $BVoipNets)} |
Foreach-Object {$_.Replace("CVoipNet", $CVoipNets)} |
Foreach-Object {$_.Replace("CClients", $CClientss)} |
Foreach-Object {$_.Replace("BVPNWORK", $BVPNWORKs)} |
Foreach-Object {$_.Replace("CVPNWORK", $CVPNWORKs)} |
Foreach-Object {$_.Replace("BVPNCLIENTS", $BVPNCLIENTSs)} |
Foreach-Object {$_.Replace("CVPNCLIENTS", $cVPNCLIENTSs)} |
Foreach-Object {$_.Replace("MYNAMERROUTER", $NAMEROUTER)} |
Foreach-Object {$_.Replace("ServerCertificate", $ServerCertificates)} | Set-Content $outfile

Ju lutem më falni, nuk mund të publikoj të gjitha rregullat pasi do të dukej jo aq bukur. Mund të krijoni rregullat vetë, duke u udhëhequr nga praktikat më të mira.

Për shembull, ja një listë lidhjesh nga e cila u udhëhoqa unë:wiki.mikrotik.com/wiki/Manual:Securing_Your_Router
wiki.mikrotik.com/wiki/Manual:IP/Firewall/Filter
wiki.mikrotik.com/wiki/Manual:OSPF-examples
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/Manual:Winbox
wiki.mikrotik.com/wiki/Manual:Upgrading_RouterOS
wiki.mikrotik.com/wiki/Manual:IP/Fasttrack — kĂ«tu duhet tĂ« dini qĂ« kur aktivizoni fasttrack, rregullat e prioritizimit dhe shenjimit tĂ« trafikut nuk do tĂ« funksionojnĂ« – e dobishme pĂ«r pajisje tĂ« dobĂ«ta.

Simbolet e ndryshoreve:Shembujt e marra janë këto rrjete:
192.168.0.0/24 rrjeti i punës
172.22.4.0/24 rrjeti VOIP
10.0.0.0/24 rrjeti për klientët pa akses në rrjetin lokal
192.168.255.0/24 rrjeti VPN për filialet e mëdha
172.19.255.0/24 rrjeti VPN për të vegjlit

Adresa e rrjetit përbëhet nga 4 numra decimalë, përkatësisht A.B.C.D, në të njëjtën parim funksionon zëvendësimi, nëse gjatë ekzekutimit kërkon B, atëherë, duhet të jepni për rrjetin 192.168.0.0/24 numrin 0, dhe për C = 0.
$EXTERNALIPADDRESS — adresa e dhĂ«nĂ« nga ofruesi.
$EXTERNALIPROUTE — ruta e paracaktuar nĂ« rrjetin 0.0.0.0/0
$BWorknets — Rrjeti i punĂ«s, nĂ« shembullin tonĂ« kĂ«tu do tĂ« jetĂ« 168
$CWorknets — Rrjeti i punĂ«s, nĂ« shembullin tonĂ« kĂ«tu do tĂ« jetĂ« 0
$BVoipNets — Rrjeti VOIP, nĂ« shembullin tonĂ« kĂ«tu 22
$CVoipNets — Rrjeti VOIP, nĂ« shembullin tonĂ« kĂ«tu 4
$CClientss — Rrjeti pĂ«r klientĂ«t – akses vetĂ«m nĂ« internet, nĂ« rastin tonĂ« kĂ«tu 0
$BVPNWORKs — Rrjeti VPN pĂ«r filiala tĂ« mĂ«dha, nĂ« shembullin tonĂ« 20
$CVPNWORKs — Rrjeti VPN pĂ«r filiala tĂ« mĂ«dha, nĂ« shembullin tonĂ« 255
$BVPNCLIENTS — Rrjeti VPN pĂ«r filiala tĂ« vogla, domethĂ«nĂ« 19
$CVPNCLIENTS — Rrjeti VPN pĂ«r filiala tĂ« vogla, domethĂ«nĂ« 255
$NAMEROUTER — emri i routerit
$ServerCertificate — emri i certifikatĂ«s, qĂ« do tĂ« importoni paraprakisht
$infile — Tregoni rrugĂ«n pĂ«r skedarin nga i cili do tĂ« lexoni konfigurimin, pĂ«r shembull D:config.txt (mĂ« mirĂ« rruga nĂ« anglisht pa thonjĂ«za dhe hapĂ«sira)
$outfile — tregoni rrugĂ«n ku do tĂ« ruani, pĂ«r shembull D:MT-test.txt

Qëllimisht kam ndryshuar adresat në shembuj për shkak të arsyeve të qarta.

Kam lĂ«nĂ« jashtĂ« pikĂ«n pĂ«r identifikimin e sulmeve dhe sjelljeve anomale – kjo meriton njĂ« artikull tĂ« veçantĂ«. Por duhet theksuar se nĂ« kĂ«tĂ« kategori mund tĂ« pĂ«rdoren vlerat e tĂ« dhĂ«nave tĂ« monitorimit nga Zabbix + tĂ« dhĂ«nat e pĂ«rpunuara curl me elasticsearch.

Në cilat momente duhet të përqendrohen vëmendja:

  1. Plani i rrjeteve. MĂ« mirĂ« ta hartoni atĂ« menjĂ«herĂ« nĂ« njĂ« format tĂ« lexueshĂ«m. Mjafton njĂ« excel. FatkeqĂ«sisht, shumĂ« shpesh shoh qĂ« rrjetet hartohen sipas parimit ‘U hap njĂ« filiale e re, ja ju /24’. Askush nuk e zbret se sa pajisje priten nĂ« kĂ«tĂ« vend dhe nĂ«se do tĂ« ketĂ« rritje tĂ« mĂ«tejshme. PĂ«r shembull, Ă«shtĂ« hapur njĂ« dyqan i vogĂ«l, ku fillimisht Ă«shtĂ« e qartĂ« se pajisjet nuk do tĂ« kalojnĂ« 10, pĂ«rse tĂ« ndahen /24? PĂ«r filiala tĂ« mĂ«dha – pĂ«rkundrazi, ndahen /24, por pajisjet bĂ«hen 500 — ndoshta mund tĂ« shtohet njĂ« rrjet, por dĂ«shirojmĂ« ta mendojmĂ« gjithçka menjĂ«herĂ«.
  2. Rregullat e filtrimit. Nëse projekti parashikon se do të ketë ndarje rrjetesh dhe maksimal segmentim. Praktikat më të mira ndryshojnë me kalimin e kohës. Disa herë ndaheshin rrjeti i PC-ve dhe rrjeti i printerëve, tani është krejtësisht normale të mos ndahen këto rrjete. Duhet të përdoret shëndeti i mendjes dhe të mos shumohen shumë nëndivisione atje ku nuk janë të nevojshme dhe të mos bashkohen në një rrjet të gjithë pajisjet.
  3. Caktimet ‘ar’ nĂ« tĂ« gjithĂ« routerat. Pra, nĂ«se keni vendosur pĂ«r planin. Duhet ta parashikoni menjĂ«herĂ« dhe tĂ« bĂ«ni pĂ«rpjekje pĂ«r t'u siguruar qĂ« tĂ« gjitha caktimet janĂ« identike – tĂ« jenĂ« vetĂ«m lista tĂ« adresave dhe adresa IP tĂ« ndryshme. NĂ« rastin e problemeve qĂ« ndodhin, koha pĂ«r rregullim do tĂ« jetĂ« mĂ« e vogĂ«l.
  4. Aspektet organizative janë po aq të rëndësishme sa ato teknike. Shpesh, punonjësit dembelë zbatojnë rekomandimet e dhëna "me dorë", pa përdorur konfigurimet dhe skritet e gatshme, gjë që përfundojnë me probleme të panevojshme.

Për rrugëtimin dinamik. U përdor OSPF me ndarjen në zona. Por kjo është një stendë testi, në kushte reale është më interesante të konfiguroni gjëra të tilla.

Shpresoj që askush të mos jetë i zhgënjyer që nuk publikova konfigurimet e rrugëzuesve. Mendoj se mjaftojnë lidhjet, dhe më pas gjithçka varet nga kërkesat. Sigurisht, janë të nevojshme më shumë teste.

Uroj të gjithëve që në vitin e ri të realizojnë projektet e tyre. Qofshi gjithmonë me access granted!!!

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster