Projekti im i parealizuar. Rrjeti prej 200 ruterash MikroTik

Projekti im i parealizuar. Rrjeti prej 200 ruterash MikroTik

Pershendetje te gjitheve. Ky artikull është i destinuar për ata që kanë shumë pajisje Mikrotik në flotën e tyre, dhe që duan të bëjnë unifikimin maksimal për të mos u lidhur me secilën pajisje veç e veç. Në këtë artikull do të përshkruaj një projekt që, për fat të keq, nuk arriti në kushte luftarake për shkak të faktorëve njerëzorë. Shkurtimisht: më shumë se 200 ruter, konfigurim i shpejtë dhe trajnim i stafit, bashkim sipas rajonit, filtrim i rrjeteve dhe hosteve specifike, aftësia për të shtuar lehtësisht rregulla në të gjitha pajisjet, regjistrimi dhe kontrolli i aksesit.

Ajo që përshkruhet më poshtë nuk pretendon të jetë një rast i gatshëm, por shpresoj se do të jetë e dobishme për ju kur planifikoni rrjetet tuaja dhe minimizoni gabimet. Ndoshta disa pika dhe zgjidhje mund të mos ju duken plotësisht të sakta - nëse po, shkruani në komente. Kritika në këtë rast do të jetë një përvojë për thesarin e përbashkët. Prandaj, lexues, hidhini një sy komenteve, mbase autori ka bërë një gabim serioz - komuniteti do të ndihmojë.

Numri i ruterave është 200-300, të shpërndara nëpër qytete të ndryshme me cilësi të ndryshme lidhjesh interneti. Shtë e nevojshme të bëni gjithçka bukur dhe t'u shpjegoni qartë administratorëve vendas se si do të funksionojë gjithçka.

Pra, ku fillon ndonjë projekt? Sigurisht, me TK.

  1. Organizimi i një plani rrjeti për të gjitha degët sipas kërkesave të klientit, segmentimi i rrjetit (nga 3 deri në 20 rrjete në degë në varësi të numrit të pajisjeve).
  2. Vendosja e pajisjeve në çdo degë. Kontrollimi i shpejtësisë reale të xhiros së ofruesit në kushte të ndryshme funksionimi.
  3. Organizimi i mbrojtjes së pajisjes, menaxhimi i listës së bardhë, zbulimi automatik i sulmeve me listë automatike të zezë për një periudhë të caktuar kohore, duke minimizuar përdorimin e mjeteve të ndryshme teknike të përdorura për të përgjuar aksesin e kontrollit dhe për të mohuar shërbimin.
  4. Organizimi i lidhjeve të sigurta VPN me filtrim rrjeti sipas kërkesave të klientit. Minimumi 3 lidhje VPN nga çdo degë në qendër.
  5. Bazuar në pikat 1, 2. Zgjidhni mënyrat optimale për të ndërtuar VPN-të tolerante ndaj gabimeve. Nëse justifikohet saktë, teknologjia dinamike e rrugëzimit mund të zgjidhet nga kontraktori.
  6. Organizimi i prioritizimit të trafikut sipas protokolleve, porteve, hosteve dhe shërbimeve të tjera specifike të përdorura nga klienti. (VOIP, host me shërbime të rëndësishme)
  7. Organizimi i monitorimit dhe regjistrimit të ngjarjeve të routerit për përgjigjen e stafit mbështetës teknik.

Siç e kuptojmë, në një sërë rastesh specifikimet teknike hartohen në bazë të kërkesave. Këto kërkesa i formulova vetë, pasi dëgjova problemet kryesore. Ai pranoi mundësinë që dikush tjetër mund të kujdeset për këto pika.

Cilat mjete do të përdoren për të përmbushur këto kërkesa:

  1. Stack ELK (pas ca kohësh, u bë e qartë se fluentd do të përdorej në vend të logstash).
  2. I pergjegjshem. Për lehtësinë e administrimit dhe ndarjes së aksesit, ne do të përdorim AWX.
  3. GITLAB. Nuk ka nevojë të shpjegohet këtu. Ku do të ishim pa kontrollin e versionit të konfigurimeve tona?
  4. PowerShell. Do të ketë një skript të thjeshtë për gjenerimin fillestar të konfigurimit.
  5. Doku wiki, për shkrimin e dokumentacionit dhe udhëzuesve. Në këtë rast, ne përdorim habr.com.
  6. Monitorimi do të kryhet përmes zabbix. Një diagram lidhjeje do të vizatohet gjithashtu atje për një kuptim të përgjithshëm.

Pikat e konfigurimit të EFK

Sa i përket pikës së parë, do të përshkruaj vetëm ideologjinë me të cilën do të ndërtohen indekset. Ka shume
artikuj të shkëlqyer për konfigurimin dhe marrjen e regjistrave nga pajisjet që përdorin mikrotik.

Do të ndalem në disa pika:

1. Sipas diagramit, vlen të merret në konsideratë marrja e shkrimeve nga vende të ndryshme dhe në porte të ndryshme. Për këtë ne do të përdorim një grumbullues log. Ne duam gjithashtu të bëjmë grafikë universale për të gjithë ruterat me aftësinë për të ndarë aksesin. Pastaj ne ndërtojmë indekset si më poshtë:

këtu është një pjesë e konfigurimit me fluentd lloji elasticsearch
logstash_format e vërtetë
index_name mikrotiklogs.veriore
logstash_prefix mikrotiklogs.veriore
flush_interval 10s
Pret kërkesë elastike: 9200
porti 9200

Në këtë mënyrë ne mund të kombinojmë ruterat dhe segmentojmë sipas planit - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Pse e bën kaq të komplikuar? Ne e kuptojmë se do të kemi 200 ose më shumë pajisje. Ju nuk mund të mbani gjurmët e gjithçkaje. Me versionin 6.8 të elasticsearch, cilësimet e sigurisë janë të disponueshme për ne (pa blerë licencë), në këtë mënyrë ne mund të shpërndajmë të drejtat e shikimit midis punonjësve të mbështetjes teknike ose administratorëve lokalë të sistemit.
Tabelat, grafikët - këtu thjesht duhet të pajtoheni - ose përdorni të njëjtat, ose të gjithë bëjnë atë që është e përshtatshme për të.

2. Me prerje. Nëse aktivizojmë log in rregullat e murit të zjarrit, atëherë emrat i bëjmë pa hapësira. Mund të shihet se duke përdorur një konfigurim të thjeshtë në fluentd, ne mund të filtrojmë të dhënat dhe të krijojmë panele të përshtatshme. Fotografia më poshtë është ruteri im i shtëpisë.

Projekti im i parealizuar. Rrjeti prej 200 ruterash MikroTik

3. Nga hapësira e zënë dhe shkrimet. Mesatarisht, me 1000 mesazhe në orë, regjistrat zënë 2-3 MB në ditë, që, e shihni, nuk është aq shumë. Elasticsearch version 7.5.

ANSIBLE.AWX

Për fat të mirë për ne, ne kemi një modul të gatshëm për ruterat
Unë përmenda për AWX, por komandat më poshtë kanë të bëjnë vetëm me ansible në formën e tij të pastër - mendoj se për ata që kanë punuar me ansible, nuk do të ketë probleme me përdorimin e awx përmes gui.

Për të qenë i sinqertë, para kësaj shikova udhëzues të tjerë ku ata përdorën ssh, dhe të gjithë kishin probleme të ndryshme me kohën e përgjigjes dhe një mori problemesh të tjera. E përsëris, nuk erdhi deri në një grindje , merrni këtë informacion si një eksperiment që nuk shkoi më tej se një qëndrim prej 20 ruterash.

Duhet të përdorim një certifikatë ose llogari. Është në dorën tuaj të vendosni, unë jam për certifikatat. Një pikë delikate për të drejtat. Unë jap të drejta shkrimi - të paktën "rivendosja e konfigurimit" nuk do të funksionojë.

Nuk duhet të ketë probleme me gjenerimin, kopjimin dhe importimin e certifikatës:

Listë e shkurtër e komandaveNë kompjuterin tuaj
ssh-keygen -t RSA, përgjigjuni pyetjeve, ruani çelësin.
Kopjo në mikrotik:
përdoruesit ssh-çelësat importojnë public-key-file=id_mtx.pub user=ansible
Së pari ju duhet të krijoni një llogari dhe t'i caktoni të drejtat për të.
Kontrollimi i lidhjes duke përdorur certifikatën
ssh -p 49475 -i /çelësat/mtx [email mbrojtur]

Regjistrohu vi /etc/ansible/hosts
MT01 ansible_network_os=ruteros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT02 ansible_network_os=ruteros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT03 ansible_network_os=ruteros ansible_ssh_port=49475 ansible_ssh_user= ansible
MT04 ansible_network_os=ruteros ansible_ssh_port=49475 ansible_ssh_user= ansible

Epo, një shembull i librit të lojërave: - emri: add_work_sites
pret: testmt
seriale: 1
lidhje: network_cli
Remote_user: mikrotik.perëndim
mbledh_fakte: po
detyrat:
- emri: shtoni Work_sites
routeros_command:
urdhëron:
— /ip firewall address-list add address=gov.ru list=work_sites comment=Ticket665436_Ochen_nado
— /ip firewall adresa-lista shtoni adresën=habr.com list=work_sites comment=for_habr

Siç mund ta shihni nga konfigurimi i mësipërm, krijimi i librave tuaj të lojërave nuk është i vështirë. Mjafton të zotëroni mirë cli mikrotik. Le të imagjinojmë një situatë ku duhet të hiqni listën e adresave me të dhëna të caktuara në të gjithë ruterat, më pas:

Gjeni dhe hiqni/ip firewal adresa-lista hiqni [gjeni ku list="gov.ru"]

Unë me dashje nuk e përfshiva të gjithë listën e mureve të zjarrit këtu sepse... do të jetë individual për çdo projekt. Por një gjë mund të them me siguri, përdorni vetëm listën e adresave.

Sipas GITLAB gjithçka është e qartë. Nuk do të ndalem në këtë pikë. Gjithçka është e bukur për detyra individuale, shabllone, mbajtës.

PowerShell

Këtu do të ketë 3 skedarë. Pse powershell? Ju mund të zgjidhni çdo mjet për gjenerimin e konfigurimeve, çfarëdo që është më e përshtatshme për ju. Në këtë rast, të gjithë kanë Windows në kompjuterin e tyre, kështu që pse ta bëni atë në bash kur powershell është më i përshtatshëm. Cili është më i përshtatshëm?

Vetë skenari (i thjeshtë dhe i kuptueshëm):[cmdletBinding()] Param(
[Parametri (I detyrueshëm=$true)] [string]$ADRESA E JASHTËM,
[Parametri (I detyrueshëm=$true)] [string]$EXTERNALIPROUTE,
[Parametri (I detyrueshëm=$true)] [string]$BWorknets,
[Parametri (I detyrueshëm=$true)] [string]$CWorknets,
[Parametri (I detyrueshëm=$true)] [string]$BVoipNets,
[Parametri (I detyrueshëm=$true)] [string]$CVoipNets,
[Parametri (I detyrueshëm=$true)] [string]$CClientss,
[Parametri (I detyrueshëm=$true)] [string]$BVPNWORKs,
[Parametri (I detyrueshëm=$true)] [string]$CVPNWORKs,
[Parametri (I detyrueshëm=$true)] [string]$BVPNCLIENTS,
[Parametri (I detyrueshëm=$true)] [string]$cVPNCLIENTS,
[Parametri (I detyrueshëm=$true)] [string]$NAMEROUTER,
[Parametri (I detyrueshëm=$true)] [string]$ServerCertificates,
[Parametri (I detyrueshëm=$true)] [string]$infile,
[Parametri (I detyrueshëm=$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'i postoj të gjitha rregullat sepse... nuk do të jetë shumë e bukur. Ju mund t'i krijoni vetë rregullat, të udhëhequr nga praktikat më të mira.

Për shembull, këtu është një listë e lidhjeve që kam ndjekur:wiki.mikrotik.com/wiki/Manual:Securing_Your_Router
wiki.mikrotik.com/wiki/Manual:IP/Firewall/Filtër
wiki.mikrotik.com/wiki/Manual:OSPF-shembuj
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 se kur aktivizohet fasttrack, rregullat e prioritizimit të trafikut dhe formësimit nuk do të funksionojnë - të dobishme për pajisjet e dobëta.

Simbolet për variablat:Rrjetet e mëposhtme janë marrë si shembull:
192.168.0.0/24 rrjet pune
172.22.4.0/24 Rrjeti VOIP
Rrjeti 10.0.0.0/24 për klientët pa akses në rrjetin lokal
192.168.255.0/24 Rrjeti VPN për degë të mëdha
172.19.255.0/24 Rrjeti VPN për të vogla

Adresa e rrjetit përbëhet nga 4 numra dhjetorë, përkatësisht A.B.C.D, zëvendësimi funksionon në të njëjtin parim, nëse në fillim kërkon B, atëherë do të thotë duhet të vendosni numrin 192.168.0.0 për rrjetin 24/0, dhe për C. = 0.
$EXTERNALIPADDDRESS - adresë e dedikuar nga ofruesi.
$EXTERNALIPROUTE - rruga e paracaktuar për në rrjet 0.0.0.0/0
$BWorknets - Rrjeti i punës, në shembullin tonë do të ketë 168
$CWorknets - Rrjeti i punës, në shembullin tonë kjo 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 - Vetëm aksesi në internet, në rastin tonë këtu 0
$BVPNWORKs - Rrjeti VPN për degë të mëdha, në shembullin tonë 20
$CVPNWORKs - Rrjeti VPN për degë të mëdha, në shembullin tonë 255
$BVPNCLIENTS - Rrjeti VPN për degë të vogla, që do të thotë 19
$CVPNCLIENTS - Rrjeti VPN për degë të vogla, që do të thotë 255
$NAMEROUTER - emri i ruterit
$ServerCertificate - emri i certifikatës që keni importuar më parë
$infile - Specifikoni shtegun për në skedar nga i cili do të lexojmë konfigurimin, për shembull D:config.txt (mundësisht shtegu në anglisht pa thonjëza dhe hapësira)
$outfile — specifikoni shtegun ku do ta ruani, për shembull D:MT-test.txt

Unë i kam ndryshuar qëllimisht adresat në shembuj për arsye të dukshme.

Kam humbur pikën për zbulimin e sulmeve dhe sjelljen anormale - kjo meriton një artikull të veçantë. Por vlen të theksohet se në këtë kategori mund të përdorni vlerat e të dhënave të monitorimit nga Zabbix + të dhënat e përpunuara të kaçurrelave nga elasticsearch.

Cilat pika duhet t'i kushtoni vëmendje:

  1. Plani i rrjetit. Është më mirë ta kompozoni menjëherë në një formë të lexueshme. Excel do të mjaftojë. Fatkeqësisht, shpesh shoh që rrjetet ndërtohen sipas parimit "U shfaq një degë e re, këtu është /24 për ju". Askush nuk po e kupton se sa pajisje priten në një vend të caktuar ose nëse do të ketë rritje të mëtejshme. Për shembull, u hap një dyqan i vogël në të cilin fillimisht ishte e qartë se pajisja nuk do të ishte më shumë se 10, pse të ndani /24? Për degët e mëdha, përkundrazi, ata ndajnë /24, dhe ka 500 pajisje - thjesht mund të shtoni një rrjet, por dëshironi të mendoni për gjithçka menjëherë.
  2. Rregullat e filtrimit. Nëse projekti supozon se do të ketë ndarje të rrjeteve dhe segmentim maksimal. Praktikat më të mira ndryshojnë me kalimin e kohës. Më parë, një rrjet PC dhe një rrjet printerësh ishin të ndarë, por tani është krejt normale të mos ndahen këto rrjete. Vlen të përdorni sensin e përbashkët dhe të mos krijoni shumë nënrrjeta ku nuk nevojiten dhe të mos kombinoni të gjitha pajisjet në një rrjet.
  3. Cilësimet "e artë" në të gjithë ruterat. Ato. nëse keni vendosur për një plan. Vlen të parashikohet gjithçka menjëherë dhe të përpiqeni të siguroheni që të gjitha cilësimet janë identike - vetëm lista e adresave dhe adresat IP janë të ndryshme. Nëse shfaqen probleme, koha e korrigjimit do të jetë më e vogël.
  4. Çështjet organizative nuk janë më pak të rëndësishme se ato teknike. Shpesh punonjësit dembelë i kryejnë këto rekomandime "me dorë", pa përdorur konfigurime dhe skripta të gatshme, gjë që përfundimisht çon në probleme nga askund.

Me rrugë dinamike. Është përdorur OSPF me ndarje zonale. Por ky është një stol provë; është më interesante të vendosësh gjëra të tilla në kushte luftarake.

Shpresoj që askush të mos jetë i mërzitur që nuk postova konfigurimet e ruterit. Unë mendoj se lidhjet do të jenë të mjaftueshme, dhe më pas gjithçka varet nga kërkesat. Dhe sigurisht teste, nevojiten më shumë teste.

Uroj që të gjithë të realizojnë projektet e tyre në vitin e ri. Mund të jetë me ju aksesi i dhënë!!!

Burimi: www.habr.com

Shto një koment