
Tere kĂ”igile. KĂ€esolev artikkel on mĂ”eldud neile, kelle seadmete seas on palju MikroTiki seadmeid ja kes soovivad maksimaalset ĂŒhtlustamist, et mitte iga seadmega eraldi ĂŒhendust vĂ”tta. Kirjeldan projekti, mis kahjuks ei jĂ”udnud lahingutingimustesse inimfaktorite tĂ”ttu. LĂŒhidalt: ĂŒle 200 ruuteri, kiire seadistamine ja personali koolitus, ĂŒhtlustamine piirkondade kaupa, vĂ”rgu ja teatud hostide filtreerimine, vĂ”imalus lihtsasti lisada reegleid kĂ”igile seadmetele, logimine ja juurdepÀÀsu kontroll.
Allpool kirjeldatu ei pretendeeri olema valmis lahendus, kuid loodetavasti on see teile kasulik oma vĂ”rkude planeerimisel ja vigade minimeerimisel. VĂ”ib-olla tunduvad mĂ”ned punktid ja lahendused teile mitte just Ă”iged â kui nii, kirjutage kommentaaridesse. Kriitika on selles osas kogemus, mille paneme kĂ”ik koos kokku. Seega, lugeja, vaata kommentaare, vĂ”ib-olla on autor teinud suure vea â kogukond aitab.
Maruturite 200â300 on eri linnades ja erineva kvaliteediga Interneti-ĂŒhendustega. On vajalik, et kĂ”ik oleks kaunis ja selgelt seletatud kohalikele administraatoritele, kuidas kĂ”ik töötab.
Nii et iga projekti alustamine lÀheb alates TTP.
- VÔrkude planeerimine kÔikide harude vahel vastavalt kliendi nÔudmistele, vÔrkude segmenteerimine (3 kuni 20 vÔrku harudes sÔltuvalt seadmete arvust).
- Seadmete seadistamine igas haru. Teenusepakkuja tegeliku lÀbilaskevÔime kontrollimine erinevates töötingimustes.
- Seadmete kaitse korraldamine, juhtimine valge nimekirja alusel, rĂŒnnakute automaatne tuvastamine koos automaatse lisamisega musta nimekirja teatud ajaperioodiks, erinevate tehniliste vahendite kasutamise vĂ€hendamine, mis on seotud juurdepÀÀsu kontrollimise pĂŒĂŒdmise ja teenuse tagasilĂŒkkamisega.
- Kaitstud VPN-ĂŒhenduste korraldamine, filtreerimine vĂ”rkude alusel vastavalt kliendi nĂ”udmistele. Igal harul peab olema vĂ€hemalt 3 VPN-ĂŒhendust keskusesse.
- Punktist 1, 2. Valige optimaalsed teed vea taastamise VPN-ide loomiseks. DĂŒnaamilise suunamise tehnoloogia vĂ”ib olla valitud teostaja poolt, kui see on Ă”igesti pĂ”hjendatud.
- Trafiku prioriseerimise korraldamine protokollide, portide, hostide ja muude spetsiifiliste teenuste pÔhjal, mida kasutab klient. (VOIP, hostid oluliste teenustega)
- Marsruuterite sĂŒndmuste jĂ€lgimise ja logimise korraldamine tehnilise toe töötajate reageerimise jaoks.
Kuidas me mÔistame, et mÔnel juhul koostatakse TBa nÔuetest. Need nÔuded olen koostanud iseseisvalt, kuuldes peamisi probleeme. Olen arvesse vÔtnud vÔimalust, et nende punktide tÀitmisega vÔib tegeleda keegi teine.
Milliseid tööriistu kasutatakse nende nÔuete tÀitmiseks:
- ELK stack (mÔne aja pÀrast tuli arusaam, et logstashi asemel kasutatakse fluentd).
- Ansible. Halduse mugavuse ja juurdepÀÀsu jagamise jaoks kasutame AWX-i.
- GITLAB. Siin pole vaja selgitada. Kuidas me saaksime ilma versioonide kontrollita meie konfiguratsioonidest.
- PowerShell. Algse konfi genereerimise jaoks on lihtne skript.
- Dokumentatsiooni ja juhendite koostamiseks mÔeldud wiki. Antud juhul kasutame habr.com.
- JĂ€lgimine toimub lĂ€bi zabbixi. Seal on samuti joonistatud ĂŒhenduse skeem ĂŒldiseks arusaamiseks.
EFK seadistamise hetked
Esimese punkti puhul kirjeldan ainult ideoloogiat, mille alusel indeksid ĂŒles ehitatakse. On palju
suurepÀraseid artikleid logide seadistamise ja vastuvÔtmise kohta mikrotiki seadmetelt.
RÀÀtan mÔned aspektid:
1. Skeemi kohaselt tuleks lÀbi mÔelda logide vastuvÔtt erinevatest kohtadest ja erinevatelt portidelt. Selleks kasutame logide kogujat. Samuti soovime luua universaalsed graafikud kÔigi ruuterite jaoks puhtuse Ôiguste jagamise vÔimalusega. Seega koostame indeksid jÀrgmiselt:
siin on osa konfiguratsioonist fluentd jaoks tĂŒĂŒp elasticsearch
logstash_format true
index_name mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10s
hosts :9200
port 9200
Seega saame ruuterid ĂŒhendada ja segmentida plaani jĂ€rgi - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Miks nii keeruliseks minna? Me mĂ”istame, et meil on rohkem kui 200 seadet. KĂ”ike ei jĂ”ua jĂ€lgida. Alates versioonist 6.8 on elasticsearchile saadaval turvaseaded (ilma litsentsi ostmata), nii et saame jagada vaatamisĂ”igusi tehnikatoe töötajate vĂ”i kohalike sĂŒsteemihaldurite vahel.
Tabelid, graafikud â siin tuleb lihtsalt kokku leppida â kas kasutada ĂŒhesuguseid vĂ”i igaĂŒks teeb nagu endale mugav on.
2. Logimise kohta. Kui lĂŒlitame tulemĂŒĂŒris sisse logimist, siis teeme nimed ilma tĂŒhikuteta. On selge, et kasutades lihtsat konfigureerimist fluentd-s, saame andmeid filtreerida ja mugavaid paneele luua. Alloleval pildil on minu kodune ruuter.

3. Kasutatava koha ja logide kohta. Keskmiselt, 1000 sÔnumi puhul tunnis, vÔtavad logid 2-3 MB pÀevas, mis pole nii palju, nÔustute? Versioon elasticsearch 7.5.
ANSIBLE.AWX
Meie Ônneks on meil valmidusmodul routeros-ile.
TĂ”in AWX-i esile, kuid allpool olevad kĂ€sud kĂ€sitlevad ainult Ansibleâi puhtal kujul â arvan, et Ansibleâi kasutanud inimesed ei pea AWX-i kaudu töötamisel mingeid probleeme kogema.
Pean tunnistama, et enne seda vaatasin mitmeid teisi juhiseid, kus kasutati SSH-d, ja kÔigil olid erinevad probleemid vastuse ajaga ja veel hulga muude probleemidega. Kordan, et lahinguni ei jÔudnud, kÀsitlege seda teavet eksperimentina, mis ei jÔudnud kaugemale 20 marsruuterist.
Me peame kasutama sertifikaati vĂ”i kontot. Siin on teil valida, mina eelistan sertifikaate. Teatud Ă”iguslik nĂŒanss. Annen Ă”igused kirjutamiseks â vĂ€hemalt âreset configâ tegemine ei Ă”nnestu.
Sertifikaadi genereerimise, kopeerimise ja impordiga ei tohiks probleeme olla:
LĂŒhidalt kĂ€sude loeteluTeie arvutis
ssh-keygen -t RSA, vastake kĂŒsimustele, salvestage vĂ”ti.
Kopeerime Mikrotikule:
user ssh-keys import public-key-file=id_mtx.pub user=ansible
Esmalt tuleb luua konto ja talle Ôigused mÀÀrata.
Kontrollime ĂŒhendust sertifikaadi kaudu
ssh -p 49475 -i /keys/mtx ansible@192.168.0.120
Kirjutame 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
Ja nĂ€ide playbookist: â 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
Kuidas eelnevalt toodud konfiguratsioonist nĂ€ha, on enda playbooki koostamine lihtne ĂŒlesanne. Piisab, kui oskad mikrotiki CLI-d.
Leidke ja kustutage/ip firewal address-list remove [find where list=«gov.ru»]
JĂ€tsin siia kogu tulemiste nimekirja sisse panemata, kuna see on igale projektile individuaalne. Aga vĂ”in ĂŒtelda, et kasutage ainult address list-i.
GITLABi osas on kĂ”ik selge. Ei peatuks sellel teemal. KĂ”ik on ilusasti jagatud eraldi ĂŒlesanneteks, mallideks, kĂ€itlejateks.
Powershell
Siin on kolm faili. Miks PowerShell? Konfiguratsioonide genereerimise tööriista saab valida igaĂŒks, kellele mis sobib. Antud juhul on kĂ”igil arvutites Windows, seega miks teha bashis, kui PowerShell on mugavam. IgaĂŒhele, kellele mis sobib.
Otse skripti (lihtne ja arusaadav):[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
Palun andestage, ma ei saa kÔiki reegleid jagada, kuna see ei nÀeks just kÔige paremini vÀlja. Saate neid ise koostada, jÀrgides parimaid tavasid.
NÀiteks siin on linkide loetelu, mille pÔhjal mina juhindusin::Securing_Your_Router
:IP/Firewall/Filter
:OSPF-examples
:Winbox
:Upgrading_RouterOS
:IP/Fasttrack â siinkohal on oluline teada, et fasttracki aktiveerimisel ei tööta prioritiseerimise ja liikluse kujundamise reeglid â kasulik nĂ”rkade seadmete puhul.
Muutujate tÀhised:VÔetud nÀitena jÀrgmised vÔrgud:
192.168.0.0/24 töönet
172.22.4.0/24 VOIP vÔrk
10.0.0.0/24 klientide vÔrk, kellel puudub juurdepÀÀs kohalikule vÔrgule
192.168.255.0/24 VPN vÔrk suurematele harukontoritele
172.19.255.0/24 VPN vÔrk vÀikestele
VĂ”rgu aadress koosneb neljast kĂŒmnendnumbrist, vastavalt A.B.C.D, selle pĂ”himĂ”tte jĂ€rgi töötab ka asendamine; kui kĂ€ivitamisel kĂŒsitakse B, tĂ€hendab see, et peate sisestama vĂ”rgu 192.168.0.0/24 numbriga 0 ja C = 0.
$EXTERNALIPADDRESS â operaatori poolt mÀÀratud staatiline aadress.
$EXTERNALIPROUTE â vaikimisi marsruut vĂ”rgule 0.0.0.0/0
$BWorknets â Töönet, meie nĂ€ites on siin 168
$CWorknets â Töönet, meie nĂ€ites on siin 0
$BVoipNets â VOIP vĂ”rk, meie nĂ€ites on siin 22
$CVoipNets â VOIP vĂ”rk, meie nĂ€ites on siin 4
$CClientss â Klientide vĂ”rk â ainult interneti juurdepÀÀs, meie juhtumiga siin 0
$BVPNWORKs â VPN vĂ”rk suurematele harukontoritele, meie nĂ€ites 20
$CVPNWORKs â VPN vĂ”rk suurematele harukontoritele, meie nĂ€ites 255
$BVPNCLIENTS â VPN vĂ”rk vĂ€ikestele harukontoritele, tĂ€hendab 19
$CVPNCLIENTS â VPN vĂ”rk vĂ€ikestele harukontoritele, tĂ€hendab 255
$NAMEROUTER â ruuteri nimi
$ServerCertificate â sertifikaadi nimi, mille te eelnevalt impordite
$infile â MÀÀrake failitee, kust loeme konfiguratsiooni, nĂ€iteks D:config.txt (parem on kasutada ingliskeelset teed ilma jutumĂ€rkide ja tĂŒhikuteta)
$outfile â mÀÀrake tee, kuhu salvestada, nĂ€iteks D:MT-test.txt
Ma muutsin nÀidetes aadresse teadlikult arusaadavatel pÔhjustel.
JĂ€tsin vahele rĂŒndeteadlikkuse ja ebanormaalse kĂ€itumise tuvastamise punkti â see vÀÀrib eraldi artiklit. Siiski tasub mĂ€rkida, et selles kategoorias vĂ”ib kasutada Zabbixi jĂ€lgimisandmeid koos ElasticSearch'i töötlemata andmetega.
Millistele punktidele tuleks tÀhelepanu juhtida:
- VĂ”rguplaan. On parem koostada kohe arusaadaval kujul. Excel on tĂ€iesti piisav. Kahjuks nĂ€en sageli, et vĂ”rke koostatakse pĂ”himĂ”ttel "Ilmus uus filiaal, siin on /24". Keegi ei selgita, kui palju seadmeid selles kohas eeldatakse ja kas tulevikus on kasv. NĂ€iteks avati vĂ€ike pood, kus on algselt selge, et seadmeid ei tule rohkem kui 10, milleks eraldada /24? Suuremates filiaalides eraldatakse vastupidi /24, kuid seadmeid on 500 â vĂ”rku saab lihtsalt lisada, aga tahaks kĂ”ik kohe lĂ€bi mĂ”elda.
- Filtreerimise reeglid. Kui projektis eeldatakse vĂ”rgu eraldamist ja maksimaalset segmentimist. Parimad praktikad muutuvad ajaga. Varem jagati arvutivĂ”rk ja printerivĂ”rk, praegu on tĂ€iesti normaalne, et neid vĂ”rke ei jagata. Tuleb kasutada mĂ”istust ja mitte luua liiga palju alamvĂ”rke seal, kus need pole vajalikud, ega ĂŒhendada kĂ”iki seadmeid ĂŒhte vĂ”rku.
- âKuldneâ seadistus kĂ”igis ruuterites. St, kui olete plaaniga otsustanud, tuleks kohe kĂ”ik ette nĂ€ha ja pĂŒĂŒda teha nii, et kĂ”ik seadistused oleksid identsed â ainult erinevad aadressi nimekirjad ja IP-aadressid. Probleemide hetkel on vĂ€hem aega tĂ”rgete kĂ”rvaldamiseks.
- Organisatsioonilised kĂŒsimused on sama olulised kui tehnilised. Sageli tĂ€idavad laiskad töötajad antud soovitusi âkĂ€sitsiâ, kasutamata valmis konfiguratsioone ja skripte, mis lĂ”puks toob kaasa probleeme tĂŒhjas kohas.
DĂŒnaamilise marsruutimise kohta. Kasutati OSPF-i tsoonide jagamisega. Kuid see on testkeskkond, lahingutingimustes on selliseid asju huvitavam seadistada.
Loodan, et mitte keegi ei pettunud, et ma marsruutijate konfiguratsioone jaganud ei ole. Usun, et linkidest piisab ning edasi sÔltub kÔik nÔudmistest. Ja loomulikult testidest; testid on hÀdavajalikud.
Soovin kÔigile uue aasta puhul oma projekte ellu viia. Olgu teiega access granted!!!
Allikas: habr.com
