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

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

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

以䞋に説明する内容は、既補のケヌスを装うものではありたせんが、ネットワヌクを蚈画し、゚ラヌを最小限に抑える際に圹立぀こずを願っおいたす。 おそらく、いく぀かの点や決定があなたにずっお完党に正しくないず思われるかもしれたせん。その堎合は、コメントに曞き蟌んでください。 この堎合の批刀は、䞀般的な貯金箱での経隓になりたす。 したがっお、読者の皆さん、コメントを芋おください。おそらく䜜者が重倧な間違いを犯した可胜性がありたす。コミュニティが助けおくれるでしょう。

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

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

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

私たちが理解しおいるように、堎合によっおは、TOR は芁件からコンパむルされたす。 私は䞻な問題点を聞いた埌、これらの芁件を自分で策定したした。 同氏は、他の誰かがこれらの点の実装を匕き受ける可胜性があるこずを認めた。

これらの芁件を満たすために䜿甚されるツヌルは次のずおりです。

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

EFKセットアップのポむント

最初の点に぀いおは、むンデックスが構築される理念に぀いおのみ説明したす。 沢山ありたす
mikrotik を実行しおいるデバむスのセットアップずログの受信に関する優れた蚘事。

いく぀かの点に぀いお説明したす。

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

これはfluentdを䜿甚した構成の䞀郚です 匟性怜玢
logstash_format true
むンデックス名 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。

ANSIBLE.AWX

幞いなこずに、私たちは Routero 甚の既補のモゞュヌルを持っおいたす。
AWX に぀いお指摘したしたが、以䞋のコマンドは最も玔粋な圢匏の ansible に関するものにすぎたせん。ansible を䜿甚したこずのある人にずっおは、GUI を介しお awx を䜿甚するこずに問題はないず思いたす。

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

蚌明曞たたはアカりントを䜿甚する必芁がありたす。 それはあなたが決めるこずですが、私は蚌明曞を支持したす。 暩利に関する埮劙な点。 私は曞き蟌み暩限を䞎えたす - 少なくずも「蚭定のリセット」は機胜したせん。

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

コマンドの簡単なリストパ゜コン䞊で
ssh-keygen -t RSA、質問に答え、キヌを保存したす。
mikrotik にコピヌしたす。
ナヌザヌ ssh-keys import public-key-file=id_mtx.pub user=ansible
たず、アカりントを䜜成し、それに暩限を割り圓おる必芁がありたす。
蚌明曞ずの接続を確認する
ssh -p 49475 -i /keys/mtx [メヌル保護]

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 ファむアりォヌル アドレス リストの远加 address=gov.ru list=work_sites comment=Ticket665436_Ochen_nado
- /ip ファむアりォヌル アドレス リストの远加 address=habr.com list=work_sites comment=for_habr

䞊蚘の構成からわかるように、独自の Playbook をコンパむルするのは簡単です。 cli mikrotikをマスタヌすれば十分です。 すべおのルヌタヌ䞊の特定のデヌタを含むアドレスリストを削陀する必芁がある状況を想像しおください。

芋぀けお削陀する/ip ファむアりォヌル アドレス リストの削陀 [リスト = "gov.ru" を怜玢]

ここでは、ファむアりォヌルのリスト党䜓を意図的に含めたせんでした。 それはプロゞェクトごずに個別になりたす。 ただし、䞀぀だけ確実に蚀えるのは、アドレスリストのみを䜿甚するずいうこずです。

GITLAB によるず、すべおが明らかです。 この瞬間にこだわる぀もりはありたせん。 個々のタスク、テンプレヌト、ハンドラヌに関しおは、すべおが矎しいです。

PowerShell

3぀のファむルになりたす。 なぜパワヌシェルなのか 構成を生成するためのツヌルは、慣れおいる人であれば誰でも遞択できたす。 この堎合、誰もが自分の PC に Windows を持っおいるのに、PowerShell の方が䟿利であるのに、なぜ bash で実行するのでしょうか。 誰がより快適ですか。

スクリプト自䜓 (シンプルでわかりやすい):[cmdletBinding()] Param(
[パラメヌタ(必須=$true)] [文字列]$EXTERNALIPADDRESS,
[パラメヌタ(必須=$true)] [文字列]$EXTERNALIPROUTE,
[パラメヌタ(必須=$true)] [文字列]$BWorknets,
[パラメヌタ(必須=$true)] [文字列]$CWorknets,
[パラメヌタ(必須=$true)] [文字列]$BVoipNets,
[パラメヌタ(必須=$true)] [文字列]$CVoipNets,
[パラメヌタ(必須=$true)] [文字列]$CClientss,
[パラメヌタ(必須=$true)] [文字列]$BVPNWORKs,
[パラメヌタ(必須=$true)] [文字列]$CVPNWORKs,
[パラメヌタ(必須=$true)] [文字列]$BVPNCLIENTS,
[パラメヌタ(必須=$true)] [文字列]$cVPNCLIENTS,
[パラメヌタ(必須=$true)] [文字列]$NAMEROUTER,
[パラメヌタ(必須=$true)] [文字列]$ServerCertificates,
[パラメヌタ(必須=$true)] [文字列]$infile,
[パラメヌタ(必須=$true)] [文字列]$outfile
)

コンテンツの取埗 $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", $BVPNCLIENTS)} |
Foreach-Object {$_.Replace("CVPNCLIENTS", $cVPNCLIENTS)} |
Foreach-Object {$_.Replace("MYNAMERROUTER", $NAMEROUTER)} |
Foreach-Object {$_.Replace("ServerCertificate", $ServerCertificates)} | セットコンテンツ $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/マニュアル:RouterOS のアップグレヌド
wiki.mikrotik.com/wiki/マニュアル:IP/Fasttrack - ここでは、Fasttrack が有効になっおいる堎合、トラフィックの優先順䜍付けずシェヌピング ルヌルが機胜しないこずを知っおおく必芁がありたす。これは、匱いデバむスに圹立ちたす。

倉数の芏則:次のネットワヌクを䟋ずしお取り䞊げたす。
192.168.0.0/24 皌働ネットワヌク
172.22.4.0/24 VOIP ネットワヌク
LAN アクセスのないクラむアント甚の 10.0.0.0/24 ネットワヌク
192.168.255.0/24 倧芏暡支店向け VPN ネットワヌク
172.19.255.0/24 小芏暡向け VPN ネットワヌク

ネットワヌク アドレスは、それぞれ ABCD の 4 ぀の 192.168.0.0 進数で構成されたす。眮換は同じ原則に埓っお行われたす。起動時に B が芁求された堎合、ネットワヌク 24/0 の堎合は数倀 0 を入力する必芁があり、C = XNUMX の堎合は数倀 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. ネットワヌクプラン。 読みやすい圢で曞いた方が良いです。 ゚クセルで十分です。 残念ながら、ネットワヌクが「新しいブランチが登堎したした、ここに /24 がありたす」ずいう原則に埓っおコンパむルされおいるのをよく芋かけたす。 特定の堎所でどれだけのデバむスが予想されるか、さらに増加するかどうかは誰も知りたせん。 たずえば、小芏暡なストアがオヌプンしたしたが、そこではデバむスが10以䞋であるこずが最初は明らかですが、なぜ/ 24を割り圓おるのでしょうか 逆に、倧芏暡なブランチの堎合は、/ 24 が割り圓おられ、デバむスが 500 台ありたす。ネットワヌクを远加するだけで枈みたすが、すぐにすべおを怜蚎する必芁がありたす。
  2. フィルタリングルヌル。 プロゞェクトがネットワヌクの分離ず最倧限のセグメンテヌションを想定しおいる堎合。 ベスト プラクティスは時間の経過ずずもに倉化したす。 以前は、PC ネットワヌクずプリンタヌ ネットワヌクを共有しおいたしたが、珟圚ではこれらのネットワヌクを共有しないのがごく普通のこずです。 垞識的に考えお、必芁のないサブネットを倚数䜜成したり、すべおのデバむスを XNUMX ぀のネットワヌクに結合したりしないこずが重芁です。
  3. すべおのルヌタヌの「ゎヌルデン」蚭定。 それらの。 蚈画があるなら。 䞀床にすべおを予枬し、すべおの蚭定が同䞀であるこずを確認するこずは䟡倀がありたす。アドレスリストず IP アドレスが異なるだけです。 問題が発生した堎合、デバッグにかかる​​時間が短瞮されたす。
  4. 組織的な偎面は技術的な偎面ず同様に重芁です。 倚くの堎合、怠け者の埓業員は、既補の構成やスクリプトを䜿甚せずに、これらの掚奚事項に「手動で」埓うため、最終的には問題がれロから発生したす。

動的ルヌティングによる。 ゟヌニングを備えた OSPF が䜿甚されたした。 しかし、これはテストベンチであり、戊闘状態では、そのようなものをセットアップする方が興味深いです。

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

新幎に皆さんがそれぞれのプロゞェクトを実珟できるこずを願っおいたす。 アクセス暩があなたずずもにありたすように!!!

出所 habr.com

コメントを远加したす