مشروعي الذي لم يتحقق شبكة مكونة من 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. تنظيم مراقبة وتسجيل أحداث جهاز التوجيه لاستجابة موظفي الدعم الفني.

وكما نفهم، في عدد من الحالات يتم وضع المواصفات الفنية بناءً على المتطلبات. لقد قمت بصياغة هذه المتطلبات بنفسي، بعد الاستماع إلى المشاكل الرئيسية. واعترف بإمكانية أن يتولى شخص آخر هذه النقاط.

ما هي الأدوات التي سيتم استخدامها لتلبية هذه المتطلبات:

  1. مكدس ELK (بعد مرور بعض الوقت، أصبح من الواضح أنه سيتم استخدام Fluentd بدلاً من logstash).
  2. غير مقبول. لسهولة الإدارة ومشاركة الوصول، سوف نستخدم AWX.
  3. جيتلاب. ليست هناك حاجة لشرح هنا. أين سنكون بدون التحكم في إصدار التكوينات الخاصة بنا؟
  4. بوويرشيل. سيكون هناك برنامج نصي بسيط للجيل الأولي من التكوين.
  5. Doku wiki، لكتابة الوثائق والأدلة. في هذه الحالة، نستخدم habr.com.
  6. سيتم إجراء المراقبة من خلال zabbix. سيتم أيضًا رسم مخطط اتصال هناك من أجل الفهم العام.

نقاط الإعداد EFK

فيما يتعلق بالنقطة الأولى، سأكتفي بوصف الأيديولوجيا التي سيتم من خلالها بناء المؤشرات. هناك العديد من
مقالات ممتازة حول إعداد واستقبال السجلات من الأجهزة التي تعمل بنظام mikrotik.

وسوف أتطرق إلى بعض النقاط:

1. وفقًا للرسم التخطيطي، يجدر النظر في تلقي السجلات من أماكن مختلفة وعلى منافذ مختلفة. لهذا سوف نستخدم مجمع السجل. نريد أيضًا إنشاء رسومات عالمية لجميع أجهزة التوجيه مع إمكانية مشاركة الوصول. ثم نقوم ببناء الفهارس على النحو التالي:

هنا جزء من التكوين مع Fluentd اكتب البحث المرن
logstash_format صحيح
Index_name mikrotiklogs.north
logstash_prefix mikrotiklogs.north
Flush_interval 10S
المضيفين elasticsearch: 9200
ميناء 9200

بهذه الطريقة يمكننا الجمع بين أجهزة التوجيه والقطاعات وفقًا للخطة - mikrotiklogs.west، mikrotiklogs.south، mikrotiklogs.east. لماذا تجعل الأمر معقدًا جدًا؟ نحن ندرك أنه سيكون لدينا 200 جهاز أو أكثر. لا يمكنك متابعة كل شيء. مع الإصدار 6.8 من Elasticsearch، تتوفر لنا إعدادات الأمان (بدون شراء ترخيص)، وبالتالي يمكننا توزيع حقوق العرض بين موظفي الدعم الفني أو مسؤولي النظام المحليين.
الجداول والرسوم البيانية - هنا تحتاج فقط إلى الموافقة - إما أن تستخدم نفس الجداول أو أن يفعل الجميع ما يناسبه.

2. عن طريق التسجيل. إذا قمنا بتمكين قواعد تسجيل الدخول في جدار الحماية، فإننا نجعل الأسماء بدون مسافات. يمكن ملاحظة أنه باستخدام تكوين بسيط في Fluentd، يمكننا تصفية البيانات وإنشاء لوحات ملائمة. الصورة أدناه هي جهاز التوجيه المنزلي الخاص بي.

مشروعي الذي لم يتحقق شبكة مكونة من 200 جهاز توجيه MikroTik

3. حسب المساحة المحتلة والسجلات. في المتوسط، مع 1000 رسالة في الساعة، تستغرق السجلات 2-3 ميغابايت يوميًا، وهو ما ترى أنه ليس كثيرًا. الإصدار المرن 7.5.

Ansible.AWX

لحسن حظنا، لدينا وحدة جاهزة لجهاز التوجيه
لقد ذكرت عن AWX، لكن الأوامر أدناه تتعلق فقط بـ ansible في شكله النقي - أعتقد أنه بالنسبة لأولئك الذين عملوا مع ansible، لن تكون هناك مشاكل في استخدام awx من خلال واجهة المستخدم الرسومية.

لأكون صادقًا، قبل ذلك، نظرت إلى أدلة أخرى استخدموا فيها SSH، وكان لديهم جميعًا مشكلات مختلفة في وقت الاستجابة ومجموعة من المشكلات الأخرى. أكرر، لم يصل الأمر إلى قتال ، خذ هذه المعلومات كتجربة لم تتجاوز موقف 20 جهاز توجيه.

نحن بحاجة إلى استخدام شهادة أو حساب. الأمر متروك لك لتقرر، أنا من أجل الشهادات. بعض النقاط الدقيقة حول الحقوق. أعطي حقوق الكتابة - على الأقل لن تعمل "إعادة ضبط التكوين".

يجب ألا تكون هناك مشاكل في إنشاء الشهادة ونسخها واستيرادها:

قائمة الأوامر المختصرةعلى جهاز الكمبيوتر الخاص بك
ssh-keygen -t RSA، أجب عن الأسئلة، واحفظ المفتاح.
نسخ إلى الميكروتيك:
تقوم مفاتيح ssh الخاصة بالمستخدم باستيراد public-key-file=id_mtx.pub user=ansible
تحتاج أولاً إلى إنشاء حساب وتعيين الحقوق إليه.
التحقق من الاتصال باستخدام الشهادة
سش -p 49475 -i /keys/mtx [البريد الإلكتروني محمي]

سجل السادس /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
Remote_user: mikrotik.west
اجمع_الحقائق: نعم
مهام:
- الاسم: إضافة Work_sites
routeros_command:
أوامر:
- / قائمة عناوين جدار الحماية IP إضافة عنوان = قائمة gov.ru = تعليق مواقع العمل = Ticket665436_Ochen_nado
— / IP جدار الحماية - قائمة إضافة عنوان = habr.com list=work_sites comment=for_habr

كما ترون من التكوين أعلاه، فإن إنشاء قواعد اللعبة الخاصة بك ليس بالأمر الصعب. يكفي إتقان cli mikrotik جيدًا. لنتخيل موقفًا تحتاج فيه إلى إزالة قائمة العناوين التي تحتوي على بيانات معينة على جميع أجهزة التوجيه، ثم:

البحث عن وإزالةإزالة قائمة عناوين جدار الحماية /ip [ابحث عن مكان القائمة = "gov.ru"]

لقد تعمدت عدم تضمين قائمة جدار الحماية بأكملها هنا لأن ... سيكون فرديًا لكل مشروع. ولكن هناك شيء واحد يمكنني قوله بالتأكيد، وهو استخدام قائمة العناوين فقط.

وفقًا لـ GITLAB، كل شيء واضح. لن أتطرق إلى هذه النقطة. كل شيء جميل بالنسبة للمهام الفردية والقوالب والمعالجات.

بوويرشيل

سيكون هناك 3 ملفات هنا. لماذا بوويرشيل؟ يمكنك اختيار أي أداة لإنشاء التكوينات، أيًا كان ما يناسبك أكثر. في هذه الحالة، كل شخص لديه Windows على جهاز الكمبيوتر الخاص به، فلماذا تفعل ذلك في bash عندما يكون Powershell أكثر ملاءمة. أيهما أكثر ملاءمة؟

البرنامج النصي نفسه (بسيط ومفهوم):[كمدليتبيندينج ()] بارام(
[المعلمة(إلزامية=$صحيح)] [سلسلة]$EXTERNALIPADRESS،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$EXTERNALIPROUTE،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$BWorknets،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$CWorknets،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$BVoipNets،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$CVoipNets،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$CClientss،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$BVPNWORKs،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$CVPNWORKs،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$BVPNCLIENTSs،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$cVPNCLIENTSs،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$NAMEROUTER،
[المعلمة(إلزامية=$صحيح)] [سلسلة]شهادات الخادم $،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$infile،
[المعلمة(إلزامية=$صحيح)] [سلسلة]$ملف خارجي
)

الحصول على المحتوى $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)} | ضبط المحتوى $outfile

من فضلك سامحني، لا أستطيع نشر جميع القواعد لأنني... لن تكون جميلة جدًا. ويمكنك وضع القواعد بنفسك، مسترشدًا بأفضل الممارسات.

على سبيل المثال، إليك قائمة بالروابط التي اتبعتها:wiki.mikrotik.com/wiki/Manual:تأمين_جهاز التوجيه الخاص بك
wiki.mikrotik.com/wiki/Manual:IP/جدار الحماية/مرشح
wiki.mikrotik.com/wiki/Manual:أمثلة OSPF
wiki.mikrotik.com/wiki/Drop_port_scanners
wiki.mikrotik.com/wiki/Manual:وينبوكس
wiki.mikrotik.com/wiki/Manual:Upgrading_RouterOS
wiki.mikrotik.com/wiki/Manual:IP/Fasttrack - هنا عليك أن تعرف أنه عند تمكين Fasttrack، لن تعمل قواعد تحديد أولويات حركة المرور وتشكيلها - وهذا مفيد للأجهزة الضعيفة.

رموز المتغيرات:يتم أخذ الشبكات التالية كمثال:
192.168.0.0/24 شبكة العمل
172.22.4.0/24 شبكة الاتصالات عبر بروتوكول الإنترنت
10.0.0.0/24 شبكة للعملاء دون الوصول إلى الشبكة المحلية
شبكة VPN 192.168.255.0/24 للفروع الكبيرة
172.19.255.0/24 شبكة VPN للصغار

يتكون عنوان الشبكة من 4 أرقام عشرية، على التوالي A.B.C.D، ويعمل الاستبدال على نفس المبدأ، إذا طلب عند بدء التشغيل B، فهذا يعني أنك بحاجة إلى إدخال الرقم 192.168.0.0 للشبكة 24/0، ولـ C = 0.
$EXTERNALIPADDDRESS - عنوان مخصص من الموفر.
$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.

ما هي النقاط التي يجب الانتباه إليها:

  1. خطة الشبكة. من الأفضل تأليفه على الفور في شكل قابل للقراءة. سوف يكون التفوق كافيا. لسوء الحظ، كثيرًا ما أرى أن الشبكات يتم بناؤها وفقًا لمبدأ "لقد ظهر فرع جديد، إليك /24 لك". لا أحد يعرف عدد الأجهزة المتوقعة في موقع معين أو ما إذا كان سيكون هناك المزيد من النمو. على سبيل المثال، تم افتتاح متجر صغير وكان من الواضح في البداية أن الجهاز لن يزيد عن 10، لماذا تخصيص /24؟ بالنسبة للفروع الكبيرة، على العكس من ذلك، يتم تخصيص /24، ويوجد 500 جهاز - يمكنك ببساطة إضافة شبكة، لكنك تريد التفكير في كل شيء مرة واحدة.
  2. قواعد الترشيح. إذا كان المشروع يفترض أنه سيكون هناك فصل للشبكات والحد الأقصى للتجزئة. تتغير أفضل الممارسات بمرور الوقت. في السابق، تم تقسيم شبكة الكمبيوتر وشبكة الطابعة، ولكن من الطبيعي الآن عدم تقسيم هذه الشبكات. يجدر استخدام الحس السليم وعدم إنشاء العديد من الشبكات الفرعية حيث لا تكون هناك حاجة إليها وعدم دمج جميع الأجهزة في شبكة واحدة.
  3. الإعدادات "الذهبية" على جميع أجهزة التوجيه. أولئك. إذا كنت قد قررت على الخطة. يجدر توقع كل شيء على الفور ومحاولة التأكد من تطابق جميع الإعدادات - فقط قائمة العناوين وعناوين IP مختلفة. في حالة ظهور مشاكل، سيكون وقت التصحيح أقل.
  4. القضايا التنظيمية لا تقل أهمية عن القضايا الفنية. غالبًا ما ينفذ الموظفون الكسالى هذه التوصيات "يدويًا"، دون استخدام التكوينات والبرامج النصية الجاهزة، مما يؤدي في النهاية إلى حدوث مشكلات من العدم.

عن طريق التوجيه الديناميكي. تم استخدام OSPF مع تقسيم المنطقة. لكن هذا مقعد اختبار، ومن المثير للاهتمام إقامة مثل هذه الأشياء في ظروف القتال.

آمل ألا ينزعج أحد لأنني لم أنشر تكوينات جهاز التوجيه. أعتقد أن الروابط ستكون كافية، وبعد ذلك كل شيء يعتمد على المتطلبات. وبطبيعة الحال، هناك حاجة إلى المزيد من الاختبارات.

أتمنى للجميع تحقيق مشاريعهم في العام الجديد. قد يكون الوصول الممنوح معك !!!

المصدر: www.habr.com

إضافة تعليق