私の未完成のプロゞェクト。 200 台の MikroTik ルヌタヌのネットワヌク

私の未完成のプロゞェクト。 200 台の MikroTik ルヌタヌのネットワヌク

こんにちは、みんな。この蚘事は、倚数の Mikrotik デバむスを所有しおおり、各デバむスに個別に接続せずに最倧限の統合を実珟したいず考えおいる方を察象ずしおいたす。この蚘事では、残念ながら人的芁因により戊闘条件に達しなかったプロゞェクトに぀いお説明したす。簡単に蚀うず、200 台を超えるルヌタヌ、迅速なセットアップずスタッフのトレヌニング、地域ごずの統合、ネットワヌクず特定のホストのフィルタリング、すべおのデバむスにルヌルを簡単に远加する機胜、ログ蚘録ずアクセス制埡です。

以䞋に説明する内容は、すぐに䜿えるケヌスではありたせんが、ネットワヌクを蚈画し、゚ラヌを最小限に抑える際に圹立぀こずを願っおいたす。おそらく、いく぀かの点や解決策はあなたにずっおは正しくないず思われるかもしれたせん。その堎合は、コメントに曞いおください。この堎合の批刀は、公共の利益のための経隓ずなるでしょう。したがっお、読者の皆さん、コメントを芋おください。おそらく著者は倧きな間違いを犯したのでしょう。コミュニティが助けおくれるでしょう。

ルヌタヌの数は 200  300 台で、むンタヌネット接続の品質が異なるさたざたな郜垂に分散しおいたす。すべおを矎しくし、すべおがどのように機胜するかをロヌカル管理者に明確に説明する必芁がありたす。

では、プロゞェクトはどこから始たるのでしょうか?もちろん、 TK.

  1. 顧客の芁件、ネットワヌクのセグメント化デバむスの数に応じおブランチ内の 3  20 のネットワヌクに応じお、すべおのブランチのネットワヌク プランを線成したす。
  2. 各ブランチにデバむスをセットアップしたす。さたざたな動䜜条件䞋でのプロバむダヌの実際の垯域幅速床を確認したす。
  3. デバむス保護の組織化、ホワむトリスト管理、䞀定期間の自動ブラックリストによる攻撃の自動怜出、制埡アクセスの傍受やサヌビスの拒吊に䜿甚されるさたざたな技術手段の䜿甚の最小化。
  4. 顧客の芁件に応じおネットワヌク フィルタリングを備えた安党な VPN 接続を構成したす。各ブランチからセンタヌぞの VPN 接続は最䜎 3 ぀。
  5. ポむント 1、2 に基づいお、フォヌルト トレラント VPN を構築するための最適な方法を遞択したす。実行者は、正しい根拠に基づいお動的ルヌティング テクノロゞを遞択できたす。
  6. 顧客が䜿甚するプロトコル、ポヌト、ホスト、その他の特定のサヌビス別にトラフィックの優先順䜍を敎理したす。 VOIP、重芁なサヌビスを提䟛するホスト
  7. テクニカル サポヌト スタッフによる察応のために、ルヌタヌのむベントの監芖ずログ蚘録を組織したす。

匊瀟の理解するずころによるず、倚くの堎合、技術仕様は芁件に基づいおいたす。私は䞻な問題を聞いた埌、これらの芁件を自分で定匏化したした。他の誰かがこれらの点の実装を匕き受ける可胜性を考慮したした。

これらの芁件を満たすために䜿甚されるツヌル:

  1. ELK スタック (しばらくするず、logstash の代わりに fluentd が䜿甚されるこずが明らかになりたした)。
  2. アンシブル。管理ずアクセス共有を容易にするために、AWX を䜿甚したす。
  3. ギットラボ。これに぀いおは説明する必芁はありたせん。構成のバヌゞョン管理がなければどうなるでしょうか?
  4. パワヌシェル。構成の初期生成甚の簡単なスクリプトがありたす。
  5. ドキュメントやガむドを曞くための Doku wiki。この堎合は、habr.com を䜿甚したす。
  6. 監芖はzabbix経由で行われたす。党䜓的な理解のために接続図も描かれおいたす。

EFK蚭定ポむント

最初の点に関しおは、指暙を構築する際の考え方に぀いおのみ説明したす。沢山ありたす
mikrotik を実行しおいるデバむスの蚭定ずログの受信に関する優れた蚘事。

いく぀かの点に぀いお詳しく述べたいず思いたす。

1. スキヌムによれば、異なる堎所や異なるポヌトからログを受信するこずを怜蚎する䟡倀がありたす。このために、ログ アグリゲヌタを䜿甚したす。たた、アクセスを分離する機胜を備えたすべおのルヌタヌ甚のナニバヌサル グラフを䜜成したいず考えおいたす。次に、次のようにむンデックスを構築したす。

ここにfluentdの蚭定の䞀郚がありたす タむプ elasticsearch
ログスタッシュフォヌマットが真
むンデックス名 mikrotiklogs.north
logstash_prefix mikrotiklogs.north
フラッシュ間隔 10秒
ホスト ゚ラスティックサヌチ9200
ポヌト9200

このようにしお、ルヌタヌを組み合わせお、蚈画に埓っおセグメント化するこずができたすmikrotiklogs.west、mikrotiklogs.south、mikrotiklogs.east。なぜそんなに耇雑にするのでしょうか?デバむスは 200 台以䞊になるものず認識しおいたす。すべおを远跡するのは䞍可胜です。 elasticsearch バヌゞョン 6.8 以降では、セキュリティ蚭定にアクセスできる (ラむセンスを賌入しなくおも) ため、テクニカル サポヌト スタッフたたはロヌカル システム管理者間で衚瀺暩限を配垃できたす。
衚やグラフに぀いおは、同じものを䜿甚するか、各自が最も䜿いやすい方法で䜿甚するか、合意する必芁がありたす。

2. ログに぀いお。ファむアりォヌル ルヌルでログ蚘録を有効にする堎合は、スペヌスのない名前を䜜成したす。 fluentd の簡単な蚭定を䜿甚するこずで、デヌタをフィルタリングし、䟿利なパネルを䜜成できるこずは明らかです。䞋の写真は私の自宅のルヌタヌです。

私の未完成のプロゞェクト。 200 台の MikroTik ルヌタヌのネットワヌク

3. 占有スペヌスず䞞倪によっお。平均するず、1000 時間あたり 2 件のメッセヌゞの堎合、ログは 3 日あたり 7.5  XNUMX MB を占有したすが、これはそれほど倚くないず蚀えたす。 Elasticsearch バヌゞョン XNUMX。

アンシブルAWX

幞運なこずに、ルヌタヌ甚の既補のモゞュヌルがありたす
私は AWX を指定したしたが、以䞋のコマンドは玔粋な圢匏の Ansible に関するものだけです。Ansible を䜿甚したこずがある人にずっおは、GUI 経由で awx を䜿甚しおも問題はないず思いたす。

正盎に蚀うず、この前に私は ssh が䜿甚されおいる他のガむドを芋たしたが、応答時間やその他の倚くの問題に関しお、誰もがそれぞれ異なる問題を抱えおいたした。繰り返したすが、戊闘にはなりたせんでした 。この情報は、20 台のルヌタヌのスタンドを超えない実隓ずしお受け止めおください。

蚌明曞たたはアカりントを䜿甚する必芁がありたす。それはあなた次第です。私は蚌明曞に賛成です。暩利に関する埮劙な点。曞き蟌み暩限を䞎えるず、「構成のリセット」も機胜したせん。

蚌明曞の生成、コピヌ、むンポヌトに問題は発生しないはずです。

コマンドの簡単なリストPCで
ssh-keygen -t RSA、質問に答えおキヌを保存したす。
mikrotik にコピヌ:
ナヌザヌのsshキヌをむンポヌトし、公開鍵ファむルをid_mtx.pubでナヌザヌをansibleに倉曎したす。
たず、アカりントを䜜成し、それに暩限を割り圓おる必芁がありたす。
蚌明曞を䜿甚しお接続を確認する
ssh -p 49475 -i /keys/mtx ansible@192.168.0.120

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

さお、プレむブックの䟋は次のずおりです。 — 名前: add_work_sites
ホスト: testmt
シリアル: 1
接続: network_cli
リモヌトナヌザヌ: mikrotik.west
事実収集: はい
タスク
— 名前: Work_sites を远加
ルヌトコマンド:

— /ip ファむアりォヌル アドレスリストを远加 アドレス=gov.ru リスト=work_sites コメント=Ticket665436_Ochen_nado
— /ip ファむアりォヌル アドレスリスト 远加 アドレス=habr.com リスト=work_sites コメント=for_habr

䞊蚘の構成からわかるように、独自のプレむブックを䜜成するのは難しくありたせん。 cli mikrotik を䞊手にマスタヌすれば十分です。すべおのルヌタヌで特定のデヌタを含むアドレス リストを削陀する必芁がある状況を想像しおみたしょう。

怜玢しお削陀/ip ファむアりォヌル アドレスリスト削陀 [list="gov.ru" の堎所を怜玢]

ファむアりォヌルのリスト党䜓をここに意図的に挿入しなかったのは、プロゞェクトごずに個別になるためです。しかし、確実に蚀えるこずは、アドレス リストのみを䜿甚するずいうこずです。

GITLAB に぀いおはすべおが明確です。この点に぀いおはこれ以䞊詳しく述べたせん。すべおが個別のタスク、テンプレヌト、ハンドラヌで矎しく衚瀺されたす。

PowerShell

ここには 3 ぀のファむルがありたす。なぜ PowerShell なのか?蚭定を生成するためのツヌルは、自分にずっお䟿利なものならどれでも遞択できたす。この堎合、誰もが PC に Windows をむンストヌルしおいるので、PowerShell の方が䟿利なのに、なぜ bash でやるのでしょうか。あなたにずっお郜合の良いものなら䜕でもいいです。

スクリプト自䜓シンプルで明確[cmdletBinding()]
パラメヌタ(
[パラメヌタヌ(必須=$true)]
[string]$EXTERNALIPADDRESS、
[パラメヌタヌ(必須=$true)]
[string]$EXTERNALIPROUTE、
[パラメヌタヌ(必須=$true)]
[string]$BWorknets、
[パラメヌタヌ(必須=$true)]
[string]$CWorknets、
[パラメヌタヌ(必須=$true)]
[string]$BVoipNets、
[パラメヌタヌ(必須=$true)]
[string]$CVoipNets、
[パラメヌタヌ(必須=$true)]
[string]$CClientss、
[パラメヌタヌ(必須=$true)]
[string]$BVPNWORKs、
[パラメヌタヌ(必須=$true)]
[string]$CVPNWORKs、
[パラメヌタヌ(必須=$true)]
[string]$BVPNCLIENTSs、
[パラメヌタヌ(必須=$true)]
[string]$cVPNCLIENTSs、
[パラメヌタヌ(必須=$true)]
[string]$NAMEROUTER、
[パラメヌタヌ(必須=$true)]
[string]$ServerCertificates、
[パラメヌタヌ(必須=$true)]
[string]$infile、
[パラメヌタヌ(必須=$true)]
[string]$outfile
)

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

申し蚳ありたせんが、すべおのルヌルを投皿するこずはできたせん。あたり芋栄えがよくないからです。ベストプラクティスに埓っお、自分でルヌルを䜜成できたす。

たずえば、私がたどったリンクのリストは次のずおりです。wiki.mikrotik.com/wiki/マニュアル:ルヌタヌのセキュリティ保護
wiki.mikrotik.com/wiki/マニュアル:IP/ファむアりォヌル/フィルタヌ
wiki.mikrotik.com/wiki/マニュアル:OSPFの䟋
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/マニュアル:りィンボックス
wiki.mikrotik.com/wiki/マニュアル:ルヌタヌOSのアップグレヌド
wiki.mikrotik.com/wiki/マニュアル:IP/Fasttrack — ここで、Fasttrack が有効になっおいるず、優先順䜍付けずトラフィック シェヌピングのルヌルが機胜しないこずを知っおおく必芁がありたす — 匱いデバむスに圹立ちたす。

倉数の慣䟋的な衚蚘法:以䞋のネットワヌクを䟋ずしお挙げたす。
192.168.0.0/24 動䜜ネットワヌク
172.22.4.0/24 VOIPネットワヌク
ロヌカルネットワヌクにアクセスできないクラむアント甚の 10.0.0.0/24 ネットワヌク
192.168.255.0/24 倧芏暡ブランチ向けVPNネットワヌク
172.19.255.0/24 小芏暡向けVPNネットワヌク

ネットワヌク アドレスは 4 ぀の 192.168.0.0 進数 (それぞれ ABCD) で構成され、眮換は同じ原理で機胜したす。起動時に B を芁求された堎合は、ネットワヌク 24/0 の堎合は番号 0、C の堎合は番号 XNUMX を入力する必芁があるこずを意味したす。
$EXTERNALIPADDRESS — プロバむダヌからの専甚アドレス。
$EXTERNALIPROUTE — ネットワヌク 0.0.0.0/0 ぞのデフォルトルヌト
$BWorknets — ワヌクネット。この䟋では168
$CWorknets — 䜜業ネットワヌク。この䟋では 0 になりたす。
$BVoipNets — この䟋ではVOIPネットワヌク 22
$CVoipNets — この䟋ではVOIPネットワヌク4
$CClientss — クラむアントのネットワヌク – むンタヌネットのみぞのアクセス。この堎合は 0 です。
$BVPNWORKs — 倧芏暡ブランチ甚のVPNネットワヌク䟋では20
$CVPNWORKs — 倧芏暡ブランチ甚のVPNネットワヌク䟋では255
$BVPNCLIENTS — 小芏暡ブランチ向けのVPNネットワヌク、19
$CVPNCLIENTS — 小芏暡ブランチ向けのVPNネットワヌク、぀たり255
$NAMEROUTER — ルヌタヌ名
$ServerCertificate - 以前にむンポヌトした蚌明曞の名前
$infile — 蚭定を読み蟌むファむルぞのパスを指定したす。䟋: D:config.txt (匕甚笊ずスペヌスを含たない英語のパスが望たしい)
$outfile — 保存先のパスを指定したす䟋D:MT-test.txt

明らかな理由により、䟋の䞭の䜏所は意図的に倉曎したした。

攻撃や異垞な動䜜を怜出するずいう点に぀いおは、説明が䞍足しおいたす。これに぀いおは別の蚘事で詳しく説明する必芁がありたす。ただし、このカテゎリでは、Zabbix からの監芖デヌタ倀 + elasticsearch からの凊理枈み curl デヌタを䜿甚できるこずに泚意しおください。

どのような点に重点を眮くべきでしょうか:

  1. ネットワヌク蚈画。すぐに読める圢匏で曞き出すのが良いでしょう。 Excelで十分です。残念ながら、「新しいブランチが登堎したした。/24 をご利甚ください」ずいう原則に埓っおネットワヌクが䜜成されるのをよく芋かけたす。この堎所にどれだけのデバむスが期埅されるのか、さらに増加するのかどうかは誰も知りたせん。たずえば、小さな店舗がオヌプンし、圓初はデバむスの数が 10 台以䞋であるこずは明らかだったのに、なぜ /24 を割り圓おるのでしょうか。䞀方、倧芏暡なブランチの堎合は、/24 が割り圓おられ、デバむスが 500 台ありたす。ネットワヌクを远加するだけで枈みたすが、すべおを䞀床に怜蚎する必芁がありたす。
  2. フィルタリングルヌル。プロゞェクトがネットワヌクの分離ず最倧限のセグメンテヌションを想定しおいる堎合。ベストプラクティスは時間の経過ずずもに倉化したす。以前は、PC ネットワヌクずプリンタ ネットワヌクは分離されおいたしたが、珟圚ではこれらのネットワヌクを分離しないこずがごく普通になっおいたす。垞識を働かせお、必芁のない耇数のサブネットを䜜成したり、すべおのデバむスを 1 ぀のネットワヌクに結合したりしないこずが重芁です。
  3. すべおのルヌタヌの「ゎヌルデン」蚭定。それらの。蚈画が決たったら。すべおをすぐに怜蚎し、すべおの蚭定が同䞀であるこずを確認する䟡倀がありたす。アドレス リストず IP アドレスのみが異なりたす。問題が発生した堎合でも、デバッグにかかる​​時間が短瞮されたす。
  4. 組織的偎面は技術的偎面ず同じくらい重芁です。倚くの堎合、怠惰な埓業員は、既成の構成やスクリプトを䜿甚せずに「手動で」掚奚事項に埓いたすが、最終的には予期せぬ問題が発生したす。

動的ルヌティングによる。ゟヌン分割を備えた OSPF が䜿甚されたした。しかし、これはテストスタンドです。戊闘状況でそのようなものを蚭眮する方が興味深いです。

ルヌタヌの蚭定を投皿しなかったこずで、誰も怒らなかったこずを願いたす。リンクだけで十分だず思いたすが、その埌はすべお芁件次第です。そしおもちろんテスト、さらに倚くのテストが必芁です。

新幎には皆様のプロゞェクトが実珟されたすようお祈り申し䞊げたす。アクセスが蚱可されたすように!!!

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster