U mo prughjettu micca realizatu. Rete di 200 routers MikroTik

U mo prughjettu micca realizatu. Rete di 200 routers MikroTik

Salut à tutti. Questu articulu hè destinatu à quelli chì anu parechji dispositi Mikrotik in a so flotta, è chì volenu fà l'unificazione massima per ùn cunnette micca à ogni dispusitivu separatamente. In questu articulu, vi descriverà un prughjettu chì, sfurtunatamenti, ùn hà micca righjuntu e cundizioni di cummattimentu per via di fatturi umani. In corta: più di 200 routers, installazione rapida è furmazione di u persunale, unificazione per regione, rete di filtrazione è ospiti specifichi, a capacità di aghjunghje facilmente regule à tutti i dispositi, logging è cuntrollu di accessu.

Ciò chì hè descrittu quì sottu ùn pretende micca esse un casu prontu, ma spergu chì vi serà utile à pianificà e vostre rete è minimizzà l'errori. Forsi certi punti è suluzioni ùn vi parenu micca cumplettamente curretti - se sì, scrivite in i cumenti. A critica in questu casu serà una sperienza per u tesoru cumuni. Dunque, lettore, fate un ochju à i cumenti, forsi l'autore hà fattu un sbagliu seriu - a cumunità aiuterà.

U numaru di routers hè 200-300, spargugliati in diverse cità cù una qualità diversa di cunnessione Internet. Hè necessariu di fà tuttu bè è spiegà chjaramente à l'amministratori lucali cumu tuttu funziona.

Allora, induve principia ogni prughjettu? Di sicuru, cun TK.

  1. Urganizazione di un pianu di rete per tutte e filiali secondu i bisogni di i clienti, segmentazione di a rete (da 3 à 20 rete in filiali secondu u numeru di dispusitivi).
  2. Configurazione di i dispositi in ogni ramu. Cuntrollà a vera velocità di throughput di u fornitore in diverse cundizioni operative.
  3. L'urganizazione di a prutezzione di u dispositivu, a gestione di a lista bianca, l'auto-deteczione di l'attacchi cù l'auto-lista nera per un certu periodu di tempu, minimizendu l'usu di varii mezi tecnichi utilizati per intercepte l'accessu di cuntrollu è nigà u serviziu.
  4. Urganizazione di cunnessione VPN sicura cù filtru di rete secondu e esigenze di i clienti. Minimu 3 cunnessione VPN da ogni ramu à u centru.
  5. Basatu nantu à i punti 1, 2. Selezziunate i modi ottimali per custruisce VPN toleranti à i difetti. Se ghjustificata currettamente, a tecnulugia di routing dinamica pò esse scelta da u cuntrattu.
  6. Urganizazione di priorità di u trafficu per protokolli, porti, ospiti è altri servizii specifichi utilizati da u cliente. (VOIP, ospiti cù servizii impurtanti)
  7. Urganizazione di monitoraghju è logu di l'eventi router per a risposta di u staffu di supportu tecnicu.

Comu avemu capitu, in una quantità di casi, e specificazioni tecniche sò elaborate nantu à e esigenze. Aghju formulatu sti esigenze me stessu, dopu à sente i prublemi principali. Hà ammissu a pussibilità chì qualchissia altru puderia piglià a cura di sti punti.

Chì strumenti seranu utilizati per cumpiendu questi requisiti:

  1. ELK stack (dopu à qualchì tempu, hè diventatu chjaru chì fluentd seria usatu invece di logstash).
  2. Ansible. Per facilità di amministrazione è spartera di accessu, useremu AWX.
  3. GITLAB. Ùn ci hè bisognu di spiegà quì. Induve seremu senza cuntrollu di versione di e nostre cunfigurazioni?
  4. PowerShell. Ci sarà un script simplice per a generazione iniziale di a cunfigurazione.
  5. Doku wiki, per scrive documentazione è guide. In questu casu, usemu habr.com.
  6. U monitoraghju serà realizatu attraversu zabbix. Un diagramma di cunnessione serà ancu disegnatu quì per una cunniscenza generale.

Punti di installazione EFK

Riguardu à u primu puntu, discriverà solu l'ideulugia da quale l'indici seranu custruiti. Ci sò parechji
eccellenti articuli nantu à stallà è riceve logs da i dispositi chì funzionanu mikrotik.

Mi soffermeraghju nantu à certi punti:

1. Sicondu u schema, vale a pena cunsiderà riceve logs da diversi lochi è in diversi porti. Per questu avemu aduprà un aggregatore di log. Vulemu ancu fà gràfiche universali per tutti i routers cù a capacità di sparte l'accessu. Allora custruemu l'indici cusì:

quì hè un pezzu di a cunfigurazione cù fluentd tipu elasticsearch
logstash_format true
index_name mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10s
anziani elasticsearch: 9200
portu 9200

Questu modu pudemu cumminà i routers è u segmentu secondu u pianu - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Perchè fà cusì complicatu? Capemu chì averemu 200 o più dispusitivi. Ùn pudete micca seguità tuttu. Cù a versione 6.8 di elasticsearch, i paràmetri di sicurità sò dispunibuli per noi (senza cumprà una licenza), cusì pudemu distribuisce i diritti di visualizazione trà l'impiegati di supportu tecnicu o l'amministratori di u sistema lucali.
Tavule, gràfiche - quì hè solu bisognu d'accordu - o aduprate i stessi, o tutti facenu ciò chì cunvene per ellu.

2. By logging. Sè avemu attivatu log in i reguli firewall, tandu facemu i nomi senza spazii. Pò esse vistu chì usendu una cunfigurazione simplice in fluentd, pudemu filtrà e dati è fà pannelli convenienti. A stampa sottu hè u mo router di casa.

U mo prughjettu micca realizatu. Rete di 200 routers MikroTik

3. By spaziu occupatu è logs. In media, cù 1000 missaghji per ora, i logs piglianu 2-3 MB per ghjornu, chì, vede, ùn hè micca tantu. Elasticsearch versione 7.5.

ANSIBLE.AWX

Fortunatamente per noi, avemu un modulu ready-made per routeros
Aghju citatu annantu à AWX, ma i cumandamenti quì sottu sò solu nantu à l'ansible in a so forma pura - pensu chì per quelli chì anu travagliatu cù ansible, ùn ci saranu micca prublemi cù awx attraversu u gui.

Per esse onesto, prima di questu aghju vistu altre guide induve anu utilizatu ssh, è tutti avianu prublemi diffirenti cù u tempu di risposta è una mansa di altri prublemi. Ripetu, ùn hè micca vinutu à una lotta , pigliate sta infurmazione cum'è un esperimentu chì ùn hè micca più luntanu da un stand di 20 routers.

Avemu bisognu di utilizà un certificatu o un contu. Tocca à voi di decide, sò per i certificati. Qualchì puntu sottile nantu à i diritti. Dà i diritti di scrittura - almenu "reset config" ùn funziona micca.

Ùn deve esse micca prublemi di generazione, copia è impurtazione di u certificatu:

Breve lista di cumandamentiNantu à u vostru PC
ssh-keygen -t RSA, risponde à e dumande, salvà a chjave.
Copia à mikrotik:
user ssh-keys import public-key-file=id_mtx.pub user=ansible
Prima vi tocca à creà un contu è assignà diritti à lu.
Verificate a cunnessione cù u certificatu
ssh -p 49475 -i /keys/mtx [email prutettu]

Registrate 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

Ebbè, un esempiu di playbook: - nome: add_work_sites
hosts: testmt
seriale: 1
cunnessione: network_cli
remote_user: mikrotik.west
gather_facts: iè
compiti:
- nome: aghjunghje Work_sites
routeros_command:
cumandamenti:
- /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

Comu pudete vede da a cunfigurazione sopra, creà i vostri propri playbooks ùn hè micca difficiule. Hè abbastanza à maestru di cli mikrotik bè. Imaginemu una situazione induve avete bisognu di caccià a lista di l'indirizzu cù certi dati nantu à tutti i routers, allora:

Truvate è sguassate/ip firewal address-list remove [truvà induve list="gov.ru"]

Intenzionalmente ùn aghju micca inclusu tutta a lista di firewall quì perchè ... serà individuale per ogni prughjettu. Ma una cosa possu dì di sicuru, utilizate solu a lista di l'indirizzi.

Sicondu GITLAB tuttu hè chjaru. Ùn mi stenderaghju micca nantu à questu puntu. Tuttu hè bellu per i travaglii individuali, mudelli, gestori.

Powershell

Ci sarà 3 schedari quì. Perchè powershell? Pudete sceglie qualsiasi strumentu per generà cunfigurazione, ciò chì hè più convenientu per voi. In questu casu, ognunu hà Windows in u so PC, allora perchè fà in bash quandu powershell hè più còmuda. Quale hè più còmuda?

U script stessu (semplice è comprensibile):[cmdletBinding()] Param(
[Parametru (Obbligatoriu = $true)] [stringa]$EXTERNALIPADDRESS,
[Parametru (Obligatoriu = $true)] [stringa] $EXTERNALIPROUTE,
[Parametru (Obbligatoriu = $true)] [stringa]$BWorknets,
[Parametru (Obbligatoriu = $true)] [stringa] $CWorknets,
[Parametru (Obbligatoriu = $true)] [stringa] $BVoipNets,
[Parametru (Obbligatoriu = $true)] [stringa] $CVoipNets,
[Parametru (Obbligatoriu = $true)] [string] $CClientss,
[Parametru (Obbligatoriu = $true)] [stringa]$BVPNWORKs,
[Parametru (Obbligatoriu = $true)] [stringa] $CVPNWORKs,
[Parametru (Obbligatoriu = $true)] [stringa]$BVPNCLIENTS,
[Parametru (Obbligatoriu = $true)] [stringa] $cVPNCLIENTSs,
[Parametru (Obbligatoriu = $true)] [stringa] $NAMEROUTER,
[Parametru (Obbligatoriu = $true)] [stringa] $ServerCertificates,
[Parametru (Obbligatoriu = $true)] [stringa]$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

Per piacè scusatemi, ùn possu micca postà tutte e regule perchè ... ùn sarà micca assai bellu. Pudete fà e regule stessu, guidatu da e migliori pratiche.

Per esempiu, quì hè una lista di ligami chì aghju seguitu:wiki.mikrotik.com/wiki/Manual:Securing_Your_Router
wiki.mikrotik.com/wiki/Manual: IP/Firewall/Filtru
wiki.mikrotik.com/wiki/Manual: OSPF-esempii
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 - quì avete bisognu di sapè chì quandu u fasttrack hè attivatu, a priorità di u trafficu è e regule di furmazione ùn viaghjanu micca - utile per i dispositi debuli.

Simboli per i variàbili:E seguenti rete sò pigliate per esempiu:
Rete di travagliu 192.168.0.0/24
172.22.4.0/24 rete VOIP
Rete 10.0.0.0/24 per i clienti senza accessu à a reta lucale
Rete VPN 192.168.255.0/24 per i grandi filiali
172.19.255.0/24 rete VPN per i picculi

L'indirizzu di a rete hè custituitu da 4 numeri decimali, rispettivamente ABCD, u rimpiazzamentu travaglia nantu à u listessu principiu, se à l'iniziu dumanda B, allora significa chì avete bisognu di inserisce u numeru 192.168.0.0 per a reta 24/0, è per C. = 0.
$EXTERNALIPADDDDRESS - indirizzu dedicatu da u fornitore.
$EXTERNALIPROUTE - rotta predeterminata à a reta 0.0.0.0/0
$BWorknets - Rete di travagliu, in u nostru esempiu ci sarà 168
$CWorknets - Rete di travagliu, in u nostru esempiu questu serà 0
$BVoipNets - Rete VOIP in u nostru esempiu quì 22
$CVoipNets - Rete VOIP in u nostru esempiu quì 4
$CClientss - Rete per i clienti - Accessu Internet solu, in u nostru casu quì 0
$BVPNWORKs - Rete VPN per grandi filiali, in u nostru esempiu 20
$CVPNWORKs - Rete VPN per grandi filiali, in u nostru esempiu 255
$BVPNCLIENTS - Rete VPN per i picculi filiali, vale à dì 19
$CVPNCLIENTS - Rete VPN per i picculi filiali, vale à dì 255
$NAMEROUTER - nome di u router
$ServerCertificate - u nome di u certificatu chì avete impurtatu prima
$infile - Specificate u percorsu à u schedariu da quale leghjemu a cunfigurazione, per esempiu D:config.txt (preferibbilmente a strada inglese senza virgulette è spazii)
$outfile - specificate u percorsu induve salvà, per esempiu D:MT-test.txt

Aghju cambiatu deliberatamente l'indirizzi in l'esempii per ragioni evidenti.

Mi mancava u puntu nantu à a deteczione di attacchi è comportamenti anomali - questu merita un articulu separatu. Ma vale a pena nutà chì in questa categuria pudete aduprà i valori di dati di monitoraghju da Zabbix + dati curl processati da elasticsearch.

Chì punti duvete prestu attenzione à:

  1. Pianu di rete. Hè megliu cumpunà immediatamente in una forma leggibile. Excel sarà abbastanza. Sfurtunatamente, aghju vistu assai spessu chì e rete sò custruite secondu u principiu "Un novu ramu hè apparsu, eccu / 24 per voi". Nimu ùn capisce quanti dispositi sò previsti in un locu determinatu o s'ellu ci sarà più crescita. Per esempiu, una piccula tenda aperta in quale era inizialmente chjaru chì u dispusitivu ùn saria micca più di 10, perchè attribuisce /24? Per i rami grossi, à u cuntrariu, assignanu / 24, è ci sò 500 dispusitivi - pudete solu aghjunghje una reta, ma vulete pensà à tuttu in una volta.
  2. regule di filtrazione. Se u prughjettu assume chì ci sarà a separazione di e rete è a segmentazione massima. E migliori pratiche cambianu cù u tempu. Nanzu, una reta di PC è una reta di stampante eranu spartuti, ma avà hè abbastanza normale ùn sparte micca queste rete. Vale a pena aduprà u sensu cumunu è micca di creà assai subnets induve ùn sò micca necessarii è micca cumminendu tutti i dispositi in una rete.
  3. Configurazione "Golden" in tutti i routers. Quelli. se avete decisu di un pianu. Hè vale a pena di vede tuttu immediatamente è di pruvà à assicurà chì tutti i paràmetri sò identici - solu a lista di l'indirizzi è l'indirizzi IP sò diffirenti. In casu di prublemi, u tempu di debugging serà menu.
  4. I prublemi di l'urganisazione ùn sò micca menu impurtanti cà quelli tecnichi. Spessu l'impiegati pigri portanu sti cunsiglii "manualmente", senza aduprà cunfigurazioni pronti è scripts, chì ultimamente porta à prublemi fora di nulla.

Per via dinamica. OSPF cù divisione di zona hè stata utilizata. Ma questu hè un bancu di prova, hè più interessante di stallà tali cose in cundizioni di cummattimentu.

Spergu chì nimu ùn hè sdegnu chì ùn aghju micca publicatu e cunfigurazioni di u router. Pensu chì i ligami seranu abbastanza, è dopu tuttu dipende di e esigenze. E, di sicuru, teste, più teste sò necessarii.

Vogliu chì tutti realizà i so prughjetti in u novu annu. Pò l'accessu cuncessu esse cun voi !!!

Source: www.habr.com

Add a comment