Proyekku sing durung rampung. Jaringan 200 router MikroTik

Proyekku sing durung rampung. Jaringan 200 router MikroTik

Halo kabeh. Artikel iki ditujokake kanggo wong-wong sing duwe akeh piranti Mikrotik ing taman, lan sing pengin nggawe penyatuan maksimal supaya ora nyambung menyang saben piranti kanthi kapisah. Ing artikel iki, aku bakal njlèntrèhaké proyek sing, sayangé, ora tekan kondisi pertempuran amarga faktor manungsa. Singkat: luwih saka 200 router, persiyapan cepet lan latihan staf, penyatuan miturut wilayah, nyaring jaringan lan host tartamtu, kemampuan kanggo nambah aturan kanthi gampang ing kabeh piranti, logging lan kontrol akses.

Apa sing diterangake ing ngisor iki ora nyamar dadi kasus sing wis siap, nanging muga-muga bisa migunani kanggo sampeyan nalika ngrancang jaringan lan nyuda kesalahan. Mungkin sawetara poin lan keputusan ora bakal bener kanggo sampeyan - yen ya, tulis ing komentar. Kritik ing kasus iki bakal dadi pengalaman ing piggy bank umum. Mulane, maca, deleng komentar, mbok menawa penulis nggawe kesalahan gedhe - masyarakat bakal mbantu.

Jumlah router 200-300, kasebar ing kutha-kutha beda karo kualitas sambungan Internet beda. Sampeyan kudu nggawe kabeh apik lan nerangake menyang admin lokal kanthi cara sing bisa diakses kepiye kabeh bakal bisa ditindakake.

Dadi ing ngendi saben proyek diwiwiti? Mesthi, karo TK.

  1. Organisasi rencana jaringan kanggo kabeh cabang miturut syarat pelanggan, segmentasi jaringan (saka 3 nganti 20 jaringan ing cabang, gumantung saka jumlah piranti).
  2. Nggawe piranti ing saben cabang. Priksa bandwidth nyata panyedhiya ing kahanan kerja sing beda.
  3. Organisasi proteksi piranti, kontrol daftar putih, deteksi otomatis serangan kanthi daftar ireng otomatis kanggo wektu tartamtu, minimalake panggunaan macem-macem cara teknis sing digunakake kanggo nyegat akses kontrol lan penolakan layanan.
  4. Organisasi sambungan vpn aman kanthi nyaring jaringan miturut syarat pelanggan. Paling ora 3 sambungan vpn saka saben cabang menyang tengah.
  5. Adhedhasar TCTerms 1, 2. Pilih cara paling apik kanggo mbangun fault-tolerant vpn. Teknologi rute dinamis, kanthi kabeneran sing bener, bisa dipilih dening kontraktor.
  6. Organisasi prioritas lalu lintas kanthi protokol, port, host lan layanan khusus liyane sing digunakake pelanggan. (VOIP, host karo layanan penting)
  7. Organisasi ngawasi lan logging acara router kanggo nanggepi staf dhukungan teknis.

Kaya sing dingerteni, ing sawetara kasus, TOR dikompilasi saka syarat kasebut. Aku ngrumusake syarat kasebut dhewe, sawise ngrungokake masalah utama. Dheweke ngakoni manawa ana wong liya sing bisa ngetrapake implementasine poin kasebut.

Alat apa sing bakal digunakake kanggo nyukupi syarat kasebut:

  1. Tumpukan ELK (sawise sawetara wektu, dimangerteni yen fluentd bakal digunakake tinimbang logstash).
  2. Ansible. Kanggo gampang administrasi lan nuduhake akses, kita bakal nggunakake AWX.
  3. GITLAB. Ora perlu diterangake ing kene. Where tanpa kontrol versi configs kita.
  4. PowerShell. Bakal ana skrip prasaja kanggo generasi awal konfigurasi.
  5. Doku wiki, kanggo nulis dokumentasi lan manual. Ing kasus iki, kita nggunakake habr.com.
  6. Pemantauan bakal ditindakake liwat zabbix. Ana uga diagram sambungan kanggo pangerten umum.

Titik persiyapan EFK

Ing titik pisanan, aku mung bakal njlèntrèhaké ideologi sing bakal dibangun indeks. Ana akeh
artikel banget babagan nyetel lan nampa log saka piranti sing nganggo mikrotik.

Aku bakal mikir babagan sawetara poin:

1. Miturut skema, iku worth considering nampa log saka macem-macem panggonan lan ing port beda. Kanggo nindakake iki, kita bakal nggunakake aggregator log. Kita uga pengin nggawe grafis universal kanggo kabeh router kanthi kemampuan kanggo nuduhake akses. Banjur kita mbangun indeks kaya ing ngisor iki:

punika Piece saka config karo fluentd elasticsearch
logstash_format bener
index_name mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10 detik
Sarwa dumadi elastisark: 9200
port 9200

Mangkono, kita bisa nggabungake router lan segmen miturut rencana - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Kenging punapa damel angel? Kita ngerti yen kita bakal duwe 200 utawa luwih piranti. Aja ngetutake kabeh. Wiwit versi 6.8 saka elasticsearch, setelan keamanan kasedhiya kanggo kita (tanpa tuku lisensi), saéngga, kita bisa nyebar hak ndeleng antarane karyawan dhukungan teknis utawa administrator sistem lokal.
Tabel, grafik - ing kene sampeyan mung kudu setuju - nggunakake sing padha, utawa kabeh wong nindakake amarga bakal trep kanggo dheweke.

2. Kanthi logging. Yen kita ngaktifake log ing aturan firewall, banjur kita nggawe jeneng tanpa spasi. Bisa dideleng yen nggunakake konfigurasi prasaja ing fluentd, kita bisa nyaring data lan nggawe panel sing trep. Gambar ing ngisor iki minangka router omahku.

Proyekku sing durung rampung. Jaringan 200 router MikroTik

3. Miturut papan lan log sing dikuwasani. Rata-rata, kanthi 1000 pesen saben jam, log njupuk 2-3 MB saben dina, sing, sampeyan ndeleng, ora akeh. elasticsearch versi 7.5.

ANSIBLE.AWX

Begjanipun kanggo kita, kita duwe modul siap-digawe kanggo routeros
Aku nuding metu bab AWX, nanging printah ing ngisor iki mung bab ansible ing wangun murni - Aku kanggo wong-wong sing wis kerjo karo ansible, bakal ora ana masalah nggunakake awx liwat gui.

Jujur, sadurunge aku ndeleng pandhuan liyane sing nggunakake ssh, lan saben wong duwe masalah beda karo wektu nanggepi lan akeh masalah liyane. Aku mbaleni, iku ora njaluk menyang perang , njupuk informasi iki minangka eksperimen sing ora ngluwihi ngadeg 20 router.

Kita kudu nggunakake sertifikat utawa akun. Terserah sampeyan, aku kanggo sertifikat. Sawetara titik subtle ing hak. Aku menehi hak kanggo nulis - paling ora "reset config" ora bisa.

Ora ana masalah karo ngasilake, nyalin sertifikat lan ngimpor:

dhaftar Brief saka printahIng PC sampeyan
ssh-keygen -t RSA, njawab pitakonan, nyimpen tombol.
Salin menyang mikrotik:
user ssh-keys import public-key-file=id_mtx.pub user=ansible
Pisanan sampeyan kudu nggawe akun lan nyedhiyakake hak kasebut.
Priksa sambungan karo sertifikat
ssh -p 49475 -i /keys/mtx [email dilindhungi]

Tulis 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

Nah, contone playbook: jeneng: add_work_sites
sarwa dumadi:testmt
seri: 1
sambungan: network_cli
remote_user: mikrotik.west
kumpul_fakta: iya
tugas:
jeneng: nambah Work_sites
routeros_command:
swara:
- / 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

Nalika sampeyan bisa ndeleng saka konfigurasi ndhuwur, ngumpulake playbooks dhewe iku prakara prasaja. Iku cukup apik kanggo master cli mikrotik. Bayangake kahanan sampeyan kudu mbusak dhaptar alamat kanthi data tartamtu ing kabeh router, banjur:

Golek lan mbusak/ ip firewal address-list mbusak [golek ngendi dhaftar = "gov.ru"]

Aku sengaja ora nyakup kabeh dhaptar firewall ing kene. iku bakal individu kanggo saben project. Nanging aku bisa ngomong siji bab manawa, nggunakake mung dhaftar alamat.

Miturut GITLAB, kabeh wis jelas. Aku ora bakal manggon ing wayahe iki. Kabeh apik babagan tugas individu, template, pawang.

Powershell

Bakal ana 3 file. Kenapa powershell? Alat kanggo nggawe konfigurasi bisa dipilih dening sapa wae sing luwih nyaman. Ing kasus iki, saben wong duwe windows ing PC, mula kenapa nindakake bash nalika powershell luwih trep. Sapa sing luwih nyaman.

Skrip dhewe (sederhana lan bisa dingerteni):[cmdletBinding()] Param(
[Parameter(Wajib=$true)] [string]$EXTERNALIPADDRESS,
[Parameter(Wajib=$true)] [string]$EXTERNALIPROUTE,
[Parameter(Wajib=$true)] [string]$BWorknets,
[Parameter(Wajib=$true)] [string]$CWorknets,
[Parameter(Wajib=$true)] [string]$BVoipNets,
[Parameter(Wajib=$true)] [string]$CVoipNets,
[Parameter(Wajib=$true)] [string]$CClients,
[Parameter(Wajib=$true)] [string]$BVPNWORKs,
[Parameter(Wajib=$true)] [string]$CVPNWORKs,
[Parameter(Wajib=$true)] [string]$BVPNCLIENTSs,
[Parameter(Wajib=$true)] [string]$cVPNCLIENTSs,
[Parameter(Wajib=$true)] [string]$NAMEROUTER,
[Parameter(Wajib=$true)] [string]$ServerCertificates,
[Parameter(Wajib=$true)] [string]$infile,
[Parameter(Wajib=$true)] [string]$outfile
)

Get-Content $infile | Foreach-Object {$_.Ganti("EXTERNIP", $EXTERNALIPADDRESS)} |
Foreach-Object {$_.Ganti("EXTROUTE", $EXTERNALIPROUTE)} |
Foreach-Object {$_.Ganti("BWorknet", $BWorknets)} |
Foreach-Object {$_.Replace("CWorknet", $CWorknets)} |
Foreach-Object {$_.Replace("BVoipNet", $BVoipNets)} |
Foreach-Object {$_.Replace("CVoipNet", $CVoipNets)} |
Foreach-Object {$_.Ganti("CClients", $CClientss)} |
Foreach-Object {$_.Ganti("BVPNWORK", $BVPNWORKs)} |
Foreach-Object {$_.Ganti("CVPNWORK", $CVPNWORKs)} |
Foreach-Object {$_.Ganti("BVPNCLIENTS", $BVPNCLIENTSs)} |
Foreach-Object {$_.Ganti("CVPNCLIENTS", $cVPNCLIENTSs)} |
Foreach-Object {$_.Ganti("MYNAMERROUTER", $NAMEROUTER)} |
Foreach-Object {$_.Replace("ServerCertificate", $ServerCertificates)} | Set-Content $outfile

Nyuwun pangapunten, kula mboten saged ngaturaken sedaya aturan. ora bakal ayu. Sampeyan bisa nggawe aturan dhewe, dipandu dening praktik paling apik.

Contone, iki dhaptar pranala sing dipandu dening:wiki.mikrotik.com/wiki/Manual:Securing_Your_Router
wiki.mikrotik.com/wiki/Manual: IP/Firewall/Filter
wiki.mikrotik.com/wiki/Manual:OSPF-conto
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/Manual: Winbox
wiki.mikrotik.com/wiki/Manual: Nganyarke_RouterOS
wiki.mikrotik.com/wiki/Manual: IP / Fasttrack - ing kene sampeyan kudu ngerti yen fasttrack diaktifake, prioritas lalu lintas lan aturan mbentuk ora bakal bisa digunakake - migunani kanggo piranti sing ringkih.

Konvensi variabel:Jaringan ing ngisor iki dijupuk minangka conto:
192.168.0.0/24 jaringan kerja
172.22.4.0/24 jaringan VOIP
10.0.0.0/24 jaringan kanggo klien tanpa akses LAN
192.168.255.0/24 Jaringan VPN kanggo cabang gedhe
172.19.255.0/24 jaringan VPN kanggo cilik

Alamat jaringan kasusun saka 4 nomer desimal, mungguh ABCD, panggantos dianggo miturut prinsip padha, yen takon B nalika wiwitan, sampeyan kudu ngetik nomer 192.168.0.0 kanggo jaringan 24/0, lan kanggo C = 0. .
$EXTERNALIPADDRESS - alamat sing diwenehake saka panyedhiya.
$ EXTERNALIPROUTE - rute standar kanggo jaringan 0.0.0.0/0
$BWorknets - Jaringan kerja, ing conto kita bakal ana 168
$CWorknets - Jaringan kerja, ing conto kita bakal dadi 0
$BVoipNets - Jaringan VOIP ing conto kita ing kene 22
$CVoipNets - jaringan VOIP ing conto kita ing kene 4
$CClientss - Jaringan kanggo klien - akses mung menyang Internet, ing kasus kita kene 0
$BVPNWORKs - Jaringan VPN kanggo cabang gedhe, contone 20
$CVPNWORKs - Jaringan VPN kanggo cabang gedhe, contone 255
$BVPNCLIENTS - Jaringan VPN kanggo cabang cilik, tegese 19
$CVPNCLIENTS - Jaringan VPN kanggo cabang cilik, tegese 255
$NAMEROUTER - jeneng router
$ServerCertificate - jeneng sertifikat sing sampeyan impor dhisik
$infile - Nemtokake path menyang file saka ngendi kita bakal maca konfigurasi, contone D: config.txt (path Inggris sing luwih apik tanpa tanda kutip lan spasi)
$ outfile - nemtokake dalan ngendi kanggo nyimpen, contone D: MT-test.txt

Aku sengaja ngganti alamat ing conto kanthi alasan sing jelas.

Aku ora kejawab titik kanggo ndeteksi serangan lan prilaku anomali - iki pantes artikel kapisah. Nanging kudu dicathet yen ing kategori iki sampeyan bisa nggunakake nilai data ngawasi saka Zabbix + data curl saka elasticsearch.

Apa sing kudu difokusake:

  1. Rencana jaringan. Luwih becik ditulis ing wangun sing bisa diwaca. Excel cukup. Sayange, aku kerep ndeleng jaringan sing disusun miturut prinsip "A cabang anyar wis muncul, kene / 24 kanggo sampeyan." Ora ana sing ngerti pira piranti sing dikarepake ing lokasi tartamtu lan apa bakal tuwuh maneh. Contone, toko cilik wis dibukak, sing wiwitane jelas yen piranti kasebut ora bakal luwih saka 10, kenapa alokasi / 24? Kanggo cabang gedhe, ing nalisir, padha nyedhiyakake / 24, lan ana 500 piranti - sampeyan mung bisa nambah jaringan, nanging sampeyan pengin mikir kabeh liwat langsung.
  2. Aturan nyaring. Yen proyek nganggep bakal ana pemisahan jaringan lan segmentasi maksimal. Praktek paling apik ganti wektu. Sadurunge, dheweke nuduhake jaringan PC lan jaringan printer, saiki wis normal yen ora nuduhake jaringan kasebut. Sampeyan kudu nggunakake akal sehat lan ora ngasilake akeh subnet sing ora dibutuhake lan ora nggabungake kabeh piranti dadi siji jaringan.
  3. Setelan "Golden" ing kabeh router. Sing. yen sampeyan duwe rencana. Iku worth foreseeing kabeh langsung lan nyoba kanggo mesthekake yen kabeh setelan padha - mung ana dhaftar alamat lan alamat ip beda. Yen ana masalah, wektu kanggo debugging bakal kurang.
  4. Aspek organisasi ora kalah penting tinimbang aspek teknis. Asring, karyawan kesed ngetutake rekomendasi kasebut "kanthi manual", tanpa nggunakake konfigurasi lan skrip sing wis siap, sing pungkasane nyebabake masalah saka awal.

Miturut routing dinamis. OSPF karo zoning digunakake. Nanging iki minangka bench test, ing kahanan pertempuran, iku luwih menarik kanggo nyetel.

Muga-muga ora ana sing nesu amarga aku ora ngirim konfigurasi router. Aku ngira yen pranala bakal cukup, banjur kabeh gumantung karo syarat. Lan mesthi tes, luwih akeh tes dibutuhake.

Aku pengin kabeh wong bisa mujudake proyek ing taun anyar. Muga-muga akses sing diwenehake karo sampeyan !!!

Source: www.habr.com

Add a comment