Proyek saya yang belum selesai. Jaringan 200 router MikroTik

Proyek saya yang belum selesai. Jaringan 200 router MikroTik

Halo semua. Artikel ini ditujukan bagi mereka yang memiliki banyak perangkat Mikrotik di taman, dan yang ingin melakukan penyatuan maksimal agar tidak terhubung ke setiap perangkat secara terpisah. Pada artikel ini, saya akan menjelaskan sebuah proyek yang sayangnya tidak mencapai kondisi pertempuran karena faktor manusia. Singkatnya: lebih dari 200 router, pengaturan cepat dan pelatihan staf, penyatuan berdasarkan wilayah, memfilter jaringan dan host tertentu, kemampuan untuk menambahkan aturan dengan mudah ke semua perangkat, logging, dan kontrol akses.

Apa yang dijelaskan di bawah ini tidak berpura-pura menjadi kasus yang sudah jadi, tetapi saya harap ini akan berguna bagi Anda saat merencanakan jaringan dan meminimalkan kesalahan. Mungkin beberapa poin dan keputusan tampaknya tidak tepat bagi Anda - jika demikian, tulis di komentar. Kritik dalam hal ini akan menjadi pengalaman di celengan biasa. Oleh karena itu, pembaca, lihat di komentar, mungkin penulis membuat kesalahan besar - komunitas akan membantu.

Jumlah router 200-300, tersebar di berbagai kota dengan kualitas koneksi internet yang berbeda. Penting untuk membuat semuanya indah dan menjelaskan kepada admin lokal dengan cara yang dapat diakses bagaimana semuanya akan bekerja.

Jadi di mana setiap proyek dimulai? Tentu saja dengan TK.

  1. Organisasi rencana jaringan untuk semua cabang sesuai dengan kebutuhan pelanggan, segmentasi jaringan (dari 3 hingga 20 jaringan di cabang, tergantung pada jumlah perangkat).
  2. Menyiapkan perangkat di setiap cabang. Memeriksa bandwidth sebenarnya dari penyedia dalam kondisi kerja yang berbeda.
  3. Organisasi perlindungan perangkat, kontrol daftar putih, deteksi otomatis serangan dengan daftar hitam otomatis untuk jangka waktu tertentu, minimalisasi penggunaan berbagai cara teknis yang digunakan untuk mencegat akses kontrol dan penolakan layanan.
  4. Organisasi koneksi vpn aman dengan pemfilteran jaringan sesuai dengan kebutuhan pelanggan. Setidaknya 3 koneksi vpn dari setiap cabang ke pusat.
  5. Berdasarkan poin 1, 2. Pilih cara terbaik untuk membangun vpn yang toleran terhadap kesalahan. Teknologi perutean dinamis, dengan justifikasi yang benar, dapat dipilih oleh kontraktor.
  6. Organisasi prioritas lalu lintas berdasarkan protokol, port, host, dan layanan khusus lainnya yang digunakan pelanggan. (VOIP, host dengan layanan penting)
  7. Organisasi pemantauan dan pencatatan kejadian router untuk tanggapan staf dukungan teknis.

Seperti yang kita pahami, dalam beberapa kasus, TOR disusun dari persyaratan. Saya merumuskan persyaratan ini sendiri, setelah mendengarkan masalah utama. Dia mengakui kemungkinan bahwa orang lain bisa mengambil pelaksanaan poin-poin tersebut.

Alat apa yang akan digunakan untuk memenuhi persyaratan ini:

  1. Tumpukan ELK (setelah beberapa waktu, dipahami bahwafluffd akan digunakan sebagai pengganti logstash).
  2. Mungkin. Untuk kemudahan administrasi dan berbagi akses, kami akan menggunakan AWX.
  3. GITLAB. Tidak perlu dijelaskan di sini. Di mana tanpa kontrol versi konfigurasi kami.
  4. PowerShell. Akan ada skrip sederhana untuk pembuatan awal konfigurasi.
  5. Doku wiki, untuk menulis dokumentasi dan manual. Dalam hal ini, kami menggunakan habr.com.
  6. Pemantauan akan dilakukan melalui zabbix. Juga akan ada diagram koneksi untuk pemahaman umum.

Poin penyiapan EFK

Pada poin pertama, saya hanya akan menjelaskan ideologi di mana indeks akan dibangun. ada banyak
artikel bagus tentang pengaturan dan penerimaan log dari perangkat yang menjalankan mikrotik.

Saya akan membahas beberapa poin:

1. Menurut skema, ada baiknya mempertimbangkan menerima log dari tempat yang berbeda dan di port yang berbeda. Untuk melakukan ini, kami akan menggunakan agregator log. Kami juga ingin membuat grafik universal untuk semua router dengan kemampuan berbagi akses. Kemudian kami membangun indeks sebagai berikut:

di sini adalah bagian dari konfigurasi dengan fluidd elasticsearch
logstash_format benar
indeks_nama mikrotiklogs.north
logstash_prefix mikrotiklogs.north
flush_interval 10 detik
host pencarian elastis: 9200
pelabuhan 9200

Dengan demikian, kita dapat menggabungkan router dan segmen sesuai rencana - mikrotiklogs.west, mikrotiklogs.south, mikrotiklogs.east. Mengapa membuatnya begitu sulit? Kami memahami bahwa kami akan memiliki 200 perangkat atau lebih. Jangan ikuti semuanya. Sejak versi 6.8 dari elasticsearch, pengaturan keamanan tersedia untuk kami (tanpa membeli lisensi), sehingga kami dapat mendistribusikan hak menonton antara karyawan dukungan teknis atau administrator sistem lokal.
Tabel, grafik - di sini Anda hanya perlu menyetujui - menggunakan yang sama, atau semua orang melakukannya karena nyaman baginya.

2. Dengan masuk. Jika kami mengaktifkan aturan login di firewall, maka kami membuat nama tanpa spasi. Dapat dilihat bahwa dengan menggunakan konfigurasi sederhana difluid, kita dapat memfilter data dan membuat panel yang nyaman. Gambar di bawah ini adalah router rumah saya.

Proyek saya yang belum selesai. Jaringan 200 router MikroTik

3. Menurut ruang dan log yang ditempati. Rata-rata, dengan 1000 pesan per jam, log membutuhkan 2-3 MB per hari, yang Anda lihat, tidak terlalu banyak. elasticsearch versi 7.5.

MUNGKIN.AWX

Untungnya bagi kami, kami memiliki modul siap pakai untuk routeros
Saya menunjukkan tentang AWX, tetapi perintah di bawah ini hanya tentang kemungkinan dalam bentuknya yang paling murni - saya pikir bagi mereka yang telah bekerja dengan kemungkinan, tidak akan ada masalah menggunakan awx melalui gui.

Sejujurnya, sebelumnya saya melihat panduan lain di mana mereka menggunakan ssh, dan setiap orang memiliki masalah berbeda dengan waktu respons dan banyak masalah lainnya. Saya ulangi, itu tidak sampai ke pertempuran , ambil informasi ini sebagai percobaan yang tidak melampaui stand 20 router.

Kita perlu menggunakan sertifikat atau akun. Terserah Anda untuk memutuskan, saya untuk sertifikat. Beberapa poin halus tentang hak. Saya memberikan hak untuk menulis - setidaknya "reset konfigurasi" tidak akan berfungsi.

Seharusnya tidak ada masalah dengan membuat, menyalin sertifikat, dan mengimpor:

Daftar singkat perintahDi komputer Anda
ssh-keygen -t RSA, jawab pertanyaan, simpan kuncinya.
Salin ke mikrotik:
pengguna ssh-keys import public-key-file=id_mtx.pub user=ansible
Pertama, Anda perlu membuat akun dan mengalokasikan hak untuk itu.
Memeriksa koneksi dengan sertifikat
ssh -p 49475 -i /kunci/mtx [email dilindungi]

Tulis vi /etc/ansible/hosts
MT01 ansible_network_os=routero ansible_ssh_port=49475 ansible_ssh_user= mungkin
MT02 ansible_network_os=routero ansible_ssh_port=49475 ansible_ssh_user= mungkin
MT03 ansible_network_os=routero ansible_ssh_port=49475 ansible_ssh_user= mungkin
MT04 ansible_network_os=routero ansible_ssh_port=49475 ansible_ssh_user= mungkin

Nah, contoh buku pedoman: nama: add_work_sites
tuan rumah: testmt
seri: 1
koneksi: jaringan_cli
remote_user: mikrotik.west
kumpulkan_fakta: ya
tugas:
nama: tambahkan Work_sites
perintah_routeros:
perintah:
- /ip daftar alamat firewall tambahkan alamat=gov.ru list=work_sites comment=Ticket665436_Ochen_nado
- / ip daftar alamat firewall tambahkan alamat = daftar habr.com = situs_kerja komentar = untuk_habr

Seperti yang Anda lihat dari konfigurasi di atas, menyusun playbook Anda sendiri adalah hal yang sederhana. Cukup bagus untuk menguasai cli mikrotik. Bayangkan sebuah situasi di mana Anda perlu menghapus daftar alamat dengan data tertentu di semua router, lalu:

Temukan dan hapus/ip menghapus daftar alamat firewal [temukan di mana daftar="gov.ru"]

Saya sengaja tidak memasukkan seluruh daftar firewall di sini. itu akan menjadi individu untuk setiap proyek. Tapi saya bisa mengatakan satu hal yang pasti, gunakan hanya daftar alamat.

Menurut GITLAB, semuanya jelas. Saya tidak akan memikirkan momen ini. Semuanya indah dalam hal tugas individu, templat, penangan.

Powershell

Akan ada 3 file. Mengapa powershell? Alat untuk menghasilkan konfigurasi dapat dipilih oleh siapa saja yang merasa lebih nyaman. Dalam hal ini, setiap orang memiliki jendela di PC mereka, jadi mengapa melakukannya di bash saat PowerShell lebih nyaman. Siapa yang lebih nyaman.

Skrip itu sendiri (sederhana dan mudah dimengerti):[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
)

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

Maaf, saya tidak bisa menjelaskan semua aturan. itu tidak akan cantik. Anda dapat membuat aturan sendiri, dipandu oleh praktik terbaik.

Misalnya, berikut adalah daftar tautan yang saya pandu:wiki.mikrotik.com/wiki/Manual: Mengamankan_Router_Anda
wiki.mikrotik.com/wiki/Manual: IP/Firewall/Filter
wiki.mikrotik.com/wiki/Manual:OSPF-contoh
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/Manual: Winbox
wiki.mikrotik.com/wiki/Manual: Mengupgrade_RouterOS
wiki.mikrotik.com/wiki/Manual:IP/Fasttrack - di sini Anda perlu tahu bahwa saat fasttrack diaktifkan, prioritas lalu lintas dan aturan pembentukan tidak akan berfungsi - berguna untuk perangkat yang lemah.

Konvensi variabel:Jaringan berikut diambil sebagai contoh:
192.168.0.0/24 jaringan kerja
172.22.4.0/24 jaringan VOIP
10.0.0.0/24 jaringan untuk klien tanpa akses LAN
192.168.255.0/24 Jaringan VPN untuk cabang besar
172.19.255.0/24 Jaringan VPN kecil

Alamat jaringan terdiri dari 4 angka desimal, masing-masing ABCD, penggantian bekerja dengan prinsip yang sama, jika meminta B saat memulai, maka Anda harus memasukkan angka 192.168.0.0 untuk jaringan 24/0, dan untuk C = 0 .
$EXTERNALIPADDRESS - alamat yang dialokasikan dari penyedia.
$EXTERNALIPROUTE - rute default ke jaringan 0.0.0.0/0
$BWorknets - Jaringan kerja, dalam contoh kita akan ada 168
$CWorknets - Jaringan kerja, dalam contoh kita akan menjadi 0
$BVoipNets - jaringan VOIP dalam contoh kita di sini 22
$CVoipNets - jaringan VOIP dalam contoh kita di sini 4
$CClientss - Jaringan untuk klien - akses hanya ke Internet, dalam kasus kami di sini 0
$BVPNWORKs - Jaringan VPN untuk cabang besar, dalam contoh kita 20
$CVPNWORKs - Jaringan VPN untuk cabang besar, dalam contoh kita 255
$BVPNClients - Jaringan VPN untuk cabang kecil, berarti 19
$CVPNClients - Jaringan VPN untuk cabang kecil, berarti 255
$NAMEROUTER - nama router
$ServerCertificate - nama sertifikat yang Anda impor terlebih dahulu
$infile - Tentukan jalur ke file tempat kita akan membaca konfigurasi, misalnya D:config.txt (jalur bahasa Inggris yang lebih baik tanpa tanda kutip dan spasi)
$outfile - tentukan jalur tempat menyimpan, misalnya D:MT-test.txt

Saya sengaja mengubah alamat di contoh karena alasan yang jelas.

Saya melewatkan poin tentang mendeteksi serangan dan perilaku anomali - ini layak mendapat artikel terpisah. Tetapi perlu diperhatikan bahwa dalam kategori ini Anda dapat menggunakan nilai data pemantauan dari Zabbix + data curl yang berhasil dari elasticsearch.

Poin apa yang harus difokuskan:

  1. Rencana jaringan. Lebih baik menulisnya dalam bentuk yang mudah dibaca. Excel sudah cukup. Sayangnya, saya sering melihat bahwa jaringan dikompilasi sesuai dengan prinsip "Cabang baru telah muncul, ini /24 untuk Anda." Tidak ada yang tahu berapa banyak perangkat yang diharapkan di lokasi tertentu dan apakah akan ada pertumbuhan lebih lanjut. Misalnya, sebuah toko kecil telah dibuka, yang awalnya jelas bahwa perangkat tidak akan lebih dari 10, mengapa mengalokasikan / 24? Untuk cabang besar, sebaliknya, mereka mengalokasikan / 24, dan ada 500 perangkat - Anda bisa menambahkan jaringan, tetapi Anda ingin segera memikirkan semuanya.
  2. Aturan penyaringan. Jika proyek mengasumsikan bahwa akan ada pemisahan jaringan dan segmentasi maksimum. Praktik Terbaik berubah seiring waktu. Sebelumnya, mereka berbagi jaringan PC dan jaringan printer, sekarang cukup normal untuk tidak berbagi jaringan ini. Perlu menggunakan akal sehat dan tidak menghasilkan banyak subnet yang tidak diperlukan dan tidak menggabungkan semua perangkat ke dalam satu jaringan.
  3. Pengaturan "Emas" di semua router. Itu. jika Anda punya rencana. Sebaiknya segera perkirakan semuanya dan coba pastikan bahwa semua pengaturan identik - hanya ada daftar alamat dan alamat ip yang berbeda. Jika terjadi masalah, waktu untuk debugging akan lebih sedikit.
  4. Aspek organisasi tidak kalah pentingnya dengan aspek teknis. Seringkali, karyawan yang malas mengikuti rekomendasi ini "secara manual", tanpa menggunakan konfigurasi dan skrip yang sudah jadi, yang pada akhirnya menyebabkan masalah dari awal.

Dengan perutean dinamis. OSPF dengan zonasi digunakan. Tapi ini bangku ujian, dalam kondisi pertempuran hal-hal seperti itu lebih menarik untuk disiapkan.

Saya harap tidak ada yang kecewa karena saya tidak memposting konfigurasi router. Saya pikir tautan sudah cukup, dan kemudian semuanya tergantung pada persyaratan. Dan tentu saja tes, diperlukan lebih banyak tes.

Saya berharap semua orang mewujudkan proyek mereka di tahun baru. Semoga akses diberikan bersama Anda!!!

Sumber: www.habr.com

Tambah komentar