Mans nerealizētais projekts. 200 MikroTik marÅ”rutētāju tÄ«kls

Mans nerealizētais projekts. 200 MikroTik marÅ”rutētāju tÄ«kls

Sveiki visiem. Å is raksts ir paredzēts tiem, kuru autoparkā ir daudz Mikrotik ierīču un kuri vēlas veikt maksimālu unifikāciju, lai nepieslēgtos katrai ierÄ«cei atseviŔķi. Å ajā rakstā es aprakstÄ«Å”u projektu, kurÅ” diemžēl nesasniedza kaujas apstākļus cilvēcisko faktoru dēļ. ÄŖsāk sakot: vairāk nekā 200 marÅ”rutētāju, ātra iestatÄ«Å”ana un personāla apmācÄ«ba, apvienoÅ”ana pa reÄ£ioniem, tÄ«klu un konkrētu resursdatoru filtrÄ“Å”ana, iespēja viegli pievienot noteikumus visām ierÄ«cēm, reÄ£istrÄ“Å”ana un piekļuves kontrole.

Zemāk aprakstÄ«tais nepretendē uz gatavu gadÄ«jumu, taču es ceru, ka tas jums noderēs, plānojot tÄ«klus un samazinot kļūdas. VarbÅ«t daži punkti un risinājumi jums var neŔķist pilnÄ«gi pareizi - ja tā, rakstiet komentāros. Kritika Å”ajā gadÄ«jumā bÅ«s pieredze kopējai kasei. Tāpēc, lasÄ«tāj, ieskaties komentāros, iespējams, autors ir kļūdÄ«jies - sabiedrÄ«ba palÄ«dzēs.

MarÅ”rutētāju skaits ir 200-300, kas izkaisÄ«ti pa dažādām pilsētām ar atŔķirÄ«gu interneta pieslēguma kvalitāti. Jādara viss skaisti un skaidri jāpaskaidro vietējiem adminiem kā viss darbosies.

Tātad, kur sākas jebkurŔ projekts? Protams, ar TK.

  1. TÄ«kla plāna organizÄ“Å”ana visām filiālēm atbilstoÅ”i klientu prasÄ«bām, tÄ«kla segmentācija (no 3 lÄ«dz 20 tÄ«kliem filiālēs atkarÄ«bā no ierīču skaita).
  2. Ierīču iestatÄ«Å”ana katrā filiālē. Pakalpojumu sniedzēja reālā caurlaides ātruma pārbaude dažādos darbÄ«bas apstākļos.
  3. Ierīču aizsardzÄ«bas organizÄ“Å”ana, baltā saraksta pārvaldÄ«ba, uzbrukumu automātiska noteikÅ”ana ar automātisku melno sarakstu uz noteiktu laiku, lÄ«dz minimumam samazinot dažādu tehnisko lÄ«dzekļu izmantoÅ”anu, ko izmanto, lai pārtvertu piekļuvi un liegtu pakalpojumu.
  4. DroÅ”u VPN savienojumu organizÄ“Å”ana ar tÄ«kla filtrÄ“Å”anu atbilstoÅ”i klientu prasÄ«bām. Vismaz 3 VPN savienojumi no katras filiāles uz centru.
  5. Pamatojoties uz 1., 2. punktu. Atlasiet optimālos veidus, kā izveidot kļūmju izturÄ«gus VPN. Ja tas ir pareizi pamatots, darbuzņēmējs var izvēlēties dinamisko marÅ”rutÄ“Å”anas tehnoloÄ£iju.
  6. Trafika prioritāŔu noteikÅ”ana pēc protokoliem, portiem, resursdatoriem un citiem specifiskiem klienta izmantotajiem pakalpojumiem. (VOIP, saimnieki ar svarÄ«giem pakalpojumiem)
  7. MarÅ”rutētāja notikumu uzraudzÄ«bas un reÄ£istrÄ“Å”anas organizÄ“Å”ana tehniskā atbalsta personāla reakcijai.

Kā mēs saprotam, vairākos gadÄ«jumos tehniskās specifikācijas tiek sastādÄ«tas, pamatojoties uz prasÄ«bām. Å Ä«s prasÄ«bas formulēju pats, uzklausot galvenās problēmas. ViņŔ pieļāva iespēju, ka par Å”iem punktiem varētu parÅ«pēties kāds cits.

Kādi rīki tiks izmantoti, lai izpildītu Ŕīs prasības:

  1. ELK kaudze (pēc kāda laika kļuva skaidrs, ka logstash vietā tiks izmantots fluentd).
  2. Iespējami. Lai atvieglotu administrÄ“Å”anu un piekļuves kopÄ«goÅ”anu, mēs izmantosim AWX.
  3. GITLAB. Šeit nav jāskaidro. Kur mēs būtu bez mūsu konfigurāciju versiju kontroles?
  4. PowerShell. Konfigurācijas sākotnējai paaudzei bÅ«s vienkārÅ”s skripts.
  5. Doku wiki, dokumentācijas un rokasgrāmatu rakstÄ«Å”anai. Å ajā gadÄ«jumā mēs izmantojam vietni habr.com.
  6. Uzraudzība tiks veikta, izmantojot zabbix. Tur tiks uzzīmēta arī savienojuma shēma vispārīgai izpratnei.

EFK iestatīŔanas punkti

AttiecÄ«bā uz pirmo punktu es aprakstÄ«Å”u tikai ideoloÄ£iju, pēc kuras tiks veidoti indeksi. Tur ir daudz
lieliski raksti par žurnālu iestatÄ«Å”anu un saņemÅ”anu no ierÄ«cēm, kurās darbojas mikrotik.

Es pakavÄ“Å”os pie dažiem punktiem:

1. Saskaņā ar diagrammu ir vērts apsvērt baļķu saņemÅ”anu no dažādām vietām un dažādās ostās. Å im nolÅ«kam mēs izmantosim žurnālu apkopotāju. Mēs arÄ« vēlamies izveidot universālu grafiku visiem marÅ”rutētājiem ar iespēju koplietot piekļuvi. Tad mēs veidojam indeksus Ŕādi:

Ŕeit ir daļa no konfigurācijas ar fluentd tipa elasticsearch
logstash_format true
index_name mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10s
saimniekiem elastÄ«gā meklÄ“Å”ana: 9200
port 9200

Tādā veidā varam kombinēt marÅ”rutētājus un segmentēt pēc plāna - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Kāpēc padarÄ«t to tik sarežģītu? Mēs saprotam, ka mums bÅ«s 200 vai vairāk ierīču. JÅ«s nevarat izsekot visam. Izmantojot elasticsearch versiju 6.8, mums ir pieejami droŔības iestatÄ«jumi (bez licences iegādes), tādējādi mēs varam sadalÄ«t skatÄ«Å”anās tiesÄ«bas starp tehniskā atbalsta darbiniekiem vai vietējiem sistēmu administratoriem.
Tabulas, grafiki - te tikai jāpiekrÄ«t - vai nu izmanto vienus un tos paÅ”us, vai arÄ« katrs dara, kā viņam ir ērti.

2. Ar mežizstrādi. Ja iespējojam pieteikÅ”anos ugunsmÅ«ra kārtulās, tad nosaukumus veidojam bez atstarpēm. Var redzēt, ka, izmantojot vienkārÅ”u konfigurāciju fluentd, mēs varam filtrēt datus un izveidot ērtus paneļus. Zemāk redzamajā attēlā ir mans mājas marÅ”rutētājs.

Mans nerealizētais projekts. 200 MikroTik marÅ”rutētāju tÄ«kls

3. Pēc aizņemtās vietas un baļķiem. Vidēji ar 1000 ziņojumiem stundā žurnāli aizņem 2-3 MB dienā, kas, redz, nav nemaz tik daudz. Elasticsearch versija 7.5.

ANSIBLE.AWX

Par laimi mums ir gatavs marÅ”rutētāju modulis
Es minēju par AWX, bet komandas zemāk ir tikai par ansible tÄ«rā veidā - domāju, ka tiem, kas ir strādājuÅ”i ar ansible, nebÅ«s problēmu ar awx lietoÅ”anu caur gui.

GodÄ«gi sakot, pirms tam es apskatÄ«ju citus ceļvežus, kur viņi izmantoja ssh, un viņiem visiem bija dažādas problēmas ar reakcijas laiku un daudzas citas problēmas. Es atkārtoju, tas nesanāca cīņā ļŠ, uztveriet Å”o informāciju kā eksperimentu, kas netika tālāk par 20 marÅ”rutētāju stendu.

Mums ir jāizmanto sertifikāts vai konts. Tas ir jÅ«su ziņā, es esmu par sertifikātiem. Daži smalki jautājumi par tiesÄ«bām. Es dodu rakstÄ«Å”anas tiesÄ«bas - vismaz ā€œreset configā€ nedarbosies.

Sertifikāta Ä£enerÄ“Å”anai, kopÄ“Å”anai un importÄ“Å”anai nevajadzētu rasties problēmām:

ÄŖss komandu sarakstsJÅ«su datorā
ssh-keygen -t RSA, atbildiet uz jautājumiem, saglabājiet atslēgu.
Kopēt uz mikrotiku:
lietotājs ssh-keys importē public-key-file=id_mtx.pub user=ansible
Vispirms jums ir jāizveido konts un jāpieŔķir tam tiesības.
Savienojuma pārbaude, izmantojot sertifikātu
ssh -p 49475 -i /keys/mtx [e-pasts aizsargāts]

Reģistrējieties 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

Nu, rokasgrāmatas piemērs: - nosaukums: add_work_sites
saimnieki: testmt
sērija: 1
savienojums: network_cli
remote_user: mikrotik.west
apkopot_facts: jā
uzdevumi:
- nosaukums: pievienojiet Work_sites
routeros_command:
komandas:
ā€” /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

Kā redzat no iepriekÅ” minētās konfigurācijas, izveidot savas rokasgrāmatas nav grÅ«ti. Pietiek labi apgÅ«t cli mikrotik. Iedomāsimies situāciju, kad jums ir jānoņem adreÅ”u saraksts ar noteiktiem datiem visos marÅ”rutētājos, tad:

Atrodiet un noņemiet/ip ugunsmÅ«ra adreÅ”u saraksts noņemt [atrast, kur list="gov.ru"]

Es ar nolūku Ŕeit neiekļāvu visu ugunsmūra sarakstu, jo... tas būs individuāli katram projektam. Bet vienu varu teikt droŔi, izmantojiet tikai adreŔu sarakstu.

Saskaņā ar GITLAB viss ir skaidrs. Es nepiekavÄ“Å”os pie Ŕī punkta. Viss ir skaisti atseviŔķiem uzdevumiem, veidnēm, apstrādātājiem.

PowerShell

Å eit bÅ«s 3 faili. Kāpēc powershell? Konfigurāciju Ä£enerÄ“Å”anai varat izvēlēties jebkuru rÄ«ku, kas jums ir ērtāks. Å ajā gadÄ«jumā ikvienam datorā ir Windows, tāpēc kāpēc to darÄ«t bash, ja Powershell ir ērtāk. KurÅ” ir ērtāks?

Pats skripts (vienkārŔs un saprotams):[cmdletBinding()] Param(
[Parameter(Obligāts=$true)] [string]$EXTERNALIPADDDRESS,
[Parameter(Obligāts=$true)] [string]$EXTERNALIPROUTE,
[Parameter(obligāti=$true)] [string]$BWorknets,
[Parameter(obligāti=$true)] [string]$CWorknets,
[Parameter(obligāti=$true)] [string]$BVoipNets,
[Parameter(Obligāts=$true)] [string]$CVoipNets,
[Parameter(obligāti=$true)] [string]$CClients,
[Parameter(obligāti=$true)] [string]$BVPNWORKs,
[Parameter(obligāti=$true)] [string]$CVPNWORKs,
[Parameter(obligāti=$true)] [string]$BVPNCLIENTS,
[Parameter(obligāti=$true)] [string]$cVPNCLIENTS,
[Parametrs(Obligāti=$true)] [string]$NAMEROUTER,
[Parameter(Mandatory=$true)] [string]$ServerCertificates,
[Parameter(obligāti=$true)] [string]$infile,
[Parametrs(Obligāti=$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", $CClients)} |
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

Lūdzu, piedodiet, es nevaru publicēt visus noteikumus, jo... tas nebūs ļoti skaisti. Noteikumus varat izdomāt pats, vadoties pēc labākās prakses.

Piemēram, Å”eit ir saraksts ar saitēm, kurām es sekoju:wiki.mikrotik.com/wiki/Manual:JÅ«su_marÅ”rutētāja_nodroÅ”ināŔana
wiki.mikrotik.com/wiki/Manual:IP/ugunsmūris/filtrs
wiki.mikrotik.com/wiki/Manual:OSPF-piemēri
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 - Å”eit jums jāzina, ka, ja ir iespējots fasttrack, satiksmes prioritāŔu noteikÅ”ana un formÄ“Å”anas noteikumi nedarbosies - noderÄ«gi vājām ierÄ«cēm.

Simboli mainÄ«gajiem:Kā piemēru var minēt Ŕādus tÄ«klus:
192.168.0.0/24 darba tīkls
172.22.4.0/24 VOIP tīkls
10.0.0.0/24 tīkls klientiem bez piekļuves vietējam tīklam
192.168.255.0/24 VPN tīkls lielām filiālēm
172.19.255.0/24 VPN tīkls maziem

TÄ«kla adrese sastāv no 4 decimālskaitļiem, attiecÄ«gi ABCD, aizstāŔana darbojas pēc tāda paÅ”a principa, ja startÄ“Å”anas laikā tiek prasÄ«ts B, tad tas nozÄ«mē, ka tÄ«klam jāievada skaitlis 192.168.0.0 24/0 un C. = 0.
$EXTERNALIPADDDRESS ā€” nodroÅ”inātāja speciāla adrese.
$EXTERNALIPROUTE ā€” noklusējuma marÅ”ruts uz tÄ«klu 0.0.0.0/0
$BWorknets ā€” darba tÄ«kls, mÅ«su piemērā bÅ«s 168
$CWorknets ā€” darba tÄ«kls, mÅ«su piemērā tas bÅ«s 0
$BVoipNets ā€” VOIP tÄ«kls mÅ«su piemērā Å”eit 22
$CVoipNets ā€” VOIP tÄ«kls mÅ«su piemērā Å”eit 4
$CClientss ā€” TÄ«kls klientiem ā€” tikai interneta piekļuve, mÅ«su gadÄ«jumā Å”eit 0
$BVPNWORKs ā€” VPN tÄ«kls lielām filiālēm, mÅ«su 20. piemērā
$CVPNWORKs ā€” VPN tÄ«kls lielām filiālēm, mÅ«su piemērā 255
$BVPNCLIENTS ā€” VPN tÄ«kls mazām filiālēm, kas nozÄ«mē 19
$CVPNCLIENTS ā€” VPN tÄ«kls mazām filiālēm, kas nozÄ«mē 255
$NAMEROUTER ā€” marÅ”rutētāja nosaukums
$ServerCertificate ā€” iepriekÅ” importētā sertifikāta nosaukums
$infile ā€” norādiet ceļu uz failu, no kura mēs nolasÄ«sim konfigurāciju, piemēram, D:config.txt (vēlams ceļŔ angļu valodā bez pēdiņām un atstarpēm)
$outfile ā€” norādiet ceļu, kur to saglabāt, piemēram, D:MT-test.txt

Es acīmredzamu iemeslu dēļ apzināti mainīju adreses piemēros.

Es palaidu garām punktu par uzbrukumu un anomālas uzvedÄ«bas noteikÅ”anu - tas ir pelnÄ«jis atseviŔķu rakstu. Bet ir vērts norādÄ«t, ka Å”ajā kategorijā varat izmantot pārraudzÄ«bas datu vērtÄ«bas no Zabbix + apstrādātus cirtas datus no elasticsearch.

Kādiem punktiem jums jāpievērÅ” uzmanÄ«ba:

  1. TÄ«kla plāns. Labāk to uzreiz sastādÄ«t lasāmā formā. Pietiks ar Excel. Diemžēl ļoti bieži redzu, ka tÄ«kli tiek bÅ«vēti pēc principa ā€œIr parādÄ«jies jauns atzars, Å”e tev /24.ā€ Neviens nezina, cik ierīču ir sagaidāms noteiktā vietā un vai bÅ«s turpmāka izaugsme. Piemēram, atvērās neliels veikals, kurā sākotnēji bija skaidrs, ka ierÄ«ce bÅ«s ne vairāk kā 10, kāpēc pieŔķirt /24? Lielām filiālēm, gluži pretēji, tiek pieŔķirts /24, un ir 500 ierÄ«ces - jÅ«s varat vienkārÅ”i pievienot tÄ«klu, bet jÅ«s vēlaties visu pārdomāt uzreiz.
  2. FiltrÄ“Å”anas noteikumi. Ja projektā tiek pieņemts, ka bÅ«s tÄ«klu atdalÄ«Å”ana un maksimāla segmentācija. Laika gaitā labākā prakse mainās. IepriekÅ” tika sadalÄ«ts datortÄ«kls un printeru tÄ«kls, bet tagad ir diezgan normāli Å”os tÄ«klus nedalÄ«t. Ir vērts izmantot veselo saprātu un neveidot daudz apakÅ”tÄ«klu, kur tie nav vajadzÄ«gi, un neapvienot visas ierÄ«ces vienā tÄ«klā.
  3. ā€œZeltaā€ iestatÄ«jumi visos marÅ”rutētājos. Tie. ja esat pieņēmis lēmumu par plānu. Ir vērts visu paredzēt uzreiz un mēģināt pārliecināties, ka visi iestatÄ«jumi ir identiski ā€“ atŔķiras tikai adreÅ”u saraksts un IP adreses. Ja rodas problēmas, atkļūdoÅ”anas laiks bÅ«s mazāks.
  4. Organizatoriskie jautājumi ir ne mazāk svarÄ«gi kā tehniskie. Bieži vien slinki darbinieki Å”os ieteikumus izpilda ā€œmanuāliā€, neizmantojot gatavas konfigurācijas un skriptus, kas galu galā rada problēmas no nekurienes.

Ar dinamisku marÅ”rutÄ“Å”anu. Tika izmantots OSPF ar zonu sadalÄ«jumu. Bet tas ir izmēģinājumu stends, interesantāk ir uzstādÄ«t Ŕādas lietas kaujas apstākļos.

Ceru, ka neviens nav apbēdināts, ka es nepublicēju marÅ”rutētāja konfigurācijas. Domāju, ka ar saitēm pietiks, un tad jau viss atkarÄ«gs no prasÄ«bām. Un, protams, testi, ir vajadzÄ«gi vēl citi testi.

Novēlu ikvienam jaunajā gadā realizēt savus projektus. Lai pieŔķirtā piekļuve ir ar jums!!!

Avots: www.habr.com

Pievieno komentāru