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.
- 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).
- IerÄ«Äu iestatÄ«Å”ana katrÄ filiÄlÄ. Pakalpojumu sniedzÄja reÄlÄ caurlaides Ätruma pÄrbaude dažÄdos darbÄ«bas apstÄkļos.
- 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.
- 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.
- 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.
- Trafika prioritÄÅ”u noteikÅ”ana pÄc protokoliem, portiem, resursdatoriem un citiem specifiskiem klienta izmantotajiem pakalpojumiem. (VOIP, saimnieki ar svarÄ«giem pakalpojumiem)
- 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:
- ELK kaudze (pÄc kÄda laika kļuva skaidrs, ka logstash vietÄ tiks izmantots fluentd).
- IespÄjami. Lai atvieglotu administrÄÅ”anu un piekļuves kopÄ«goÅ”anu, mÄs izmantosim AWX.
- GITLAB. Å eit nav jÄskaidro. Kur mÄs bÅ«tu bez mÅ«su konfigurÄciju versiju kontroles?
- PowerShell. KonfigurÄcijas sÄkotnÄjai paaudzei bÅ«s vienkÄrÅ”s skripts.
- Doku wiki, dokumentÄcijas un rokasgrÄmatu rakstÄ«Å”anai. Å ajÄ gadÄ«jumÄ mÄs izmantojam vietni habr.com.
- 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
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.
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:
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:
- 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.
- 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Ä.
- ā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.
- 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