المقدمة
الدروس السابقة في هذه السلسلة قامت بتوجيهك خلال تثبيت وتكوين وتشغيل Suricata كنظام كشف التسلل (IDS) والوقاية من التسلل (IPS). كما تعلمت أيضًا عن قواعد Suricata وكيفية إنشاء قواعد خاصة بك.
في هذا البرنامج التعليمي، ستقوم باكتشاف كيفية دمج Suricata مع Elasticsearch و Kibana و Filebeat لبدء إنشاء أداة إدارة معلومات وأحداث الأمان (SIEM) الخاصة بك باستخدام مجموعة Elastic و Rocky Linux 8. تُستخدم أدوات SIEM لجمع وتجميع وتخزين وتحليل بيانات الأحداث للبحث عن تهديدات الأمان والأنشطة المشبوهة على شبكاتك وخوادمك.
المكونات التي ستستخدمها لبناء أداة SIEM الخاصة بك هي:
- Elasticsearch لتخزين وفهرسة وترابط والبحث في الأحداث الأمنية التي تأتي من خادم Suricata الخاص بك.
- Kibana لعرض وتصفح سجلات الأحداث الأمنية التي تم تخزينها في Elasticsearch.
- Filebeat لتحليل ملف سجل Suricata’s
eve.json
وإرسال كل حدث إلى Elasticsearch للمعالجة. - Suricata لفحص حركة المرور على شبكتك بحثًا عن أحداث مشبوهة، وإما تسجيلها أو إسقاط الحزم غير الصالحة.
أولاً، ستقوم بتثبيت وتكوين Elasticsearch وKibana مع بعض إعدادات المصادقة المحددة. ثم ستقوم بإضافة Filebeat إلى نظام Suricata الخاص بك لإرسال سجلاته eve.json
إلى Elasticsearch.
وأخيرًا، ستتعلم كيفية الاتصال بـ Kibana باستخدام SSH ومتصفح الويب الخاص بك، ثم تحميل والتفاعل مع لوحات Kibana التي تعرض أحداث وتنبيهات Suricata.
المتطلبات الأساسية
إذا كنت تتابع سلسلة الدروس هذه، فيجب أن يكون لديك بالفعل Suricata يعمل على خادم Rocky Linux. سيُشار إلى هذا الخادم باسم خادم Suricata الخاص بك.
- إذا كنت لا تزال بحاجة إلى تثبيت Suricata، فيمكنك اتباع هذا البرنامج التعليمي الذي يشرح كيفية تثبيت Suricata على Rocky Linux 8.
سوف تحتاج أيضًا إلى خادم ثانٍ لاستضافة Elasticsearch و Kibana. سيُشار إلى هذا الخادم باسم خادم Elasticsearch الخاص بك. يجب أن يكون هذا الخادم خادم Rocky Linux 8 مع:
- ذاكرة وصول عشوائي بحجم 4 جيجابايت و 2 وحدة معالجة مركزية مكونة باستخدام مستخدم sudo غير جذري. يمكنك تحقيق ذلك عن طريق اتباع إعداد الخادم الأولي مع Rocky Linux 8.
لأغراض هذا البرنامج التعليمي، يجب أن تكون كلتا الخوادم قادرة على التواصل باستخدام عناوين IP الخاصة. يمكنك استخدام شبكة افتراضية خاصة مثل WireGuard لربط الخوادم الخاصة بك، أو استخدام مزود خدمة سحابية يتميز بوجود شبكة خاصة بين الخوادم. يمكنك أيضًا اختيار تشغيل Elasticsearch و Kibana و Filebeat و Suricata على نفس الخادم للتجربة.
الخطوة 1 — تثبيت Elasticsearch و Kibana
الخطوة الأولى في هذا البرنامج التعليمي هي تثبيت Elasticsearch و Kibana على خادم Elasticsearch الخاص بك. للبدء، أضف مفتاح Elastic GPG إلى خادمك باستخدام الأمر التالي:
بعد ذلك، قم بإنشاء ملف elasticsearch.repo
في الدليل /etc/yum/yum.repos.d
الخاص بك بمحتويات الأمر التالي، باستخدام vi
أو المحرر الذي تفضله. يضمن هذا استخدام مستودعات Elasticsearch الآخذة في الاعتبار عند تثبيت حزم جديدة عبر yum
:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
إذا كنت تستخدم vi
، عند الانتهاء من إجراء التغييرات، اضغط ESC
ثم :x
لحفظ التغييرات في الملف والخروج.
الآن، قم بتثبيت Elasticsearch و Kibana باستخدام الأمر dnf
. اضغط Y
لقبول أي رسائل استفسار حول بصمات مفتاح GPG:
الخيار --enablerepo
يُستخدم لتجاوز الإعداد الافتراضي المعطل في ملف /etc/yum.repos.d/elasticsearch.repo
. هذا النهج يضمن عدم ترقية حزم Elasticsearch و Kibana عن طريق الخطأ عند تثبيت تحديثات حزم أخرى على الخادم الخاص بك.
بمجرد الانتهاء من تثبيت الحزم، ابحث وسجل عنوان IP الخاص لخادمك باستخدام الأمر ip address show
:
ستتلقى مخرجات مشابهة للتالي:
Outputlo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 159.89.122.115/20 10.20.0.8/16 2604:a880:cad:d0::e56:8001/64 fe80::b832:69ff:fe46:7e5d/64
eth1 UP 10.137.0.5/16 fe80::b883:5bff:fe19:43f3/64
واجهة الشبكة الخاصة في هذه المخرجات هي الجهاز المميز باللون الأصفر eth1
، بعنوان IPv4 10.137.0.5
. اسم الجهاز وعناوين IP الخاصة قد تكون مختلفة. بغض النظر عن اسم الجهاز الخاص بك وعنوان IP الخاص، ستكون العناوين من الكتل المحجوزة التالية:
10.0.0.0
إلى10.255.255.255
(البادئة 10/8)172.16.0.0
إلى172.31.255.255
(البادئة 172.16/12)192.168.0.0
إلى192.168.255.255
(البادئة 192.168/16)
إذا كنت ترغب في معرفة المزيد حول كيفية تخصيص هذه الكتل، قم بزيارة مواصفات RFC 1918
تسجيل عنوان IP الخاص بخادم Elasticsearch الخاص بك (في هذه الحالة 10.137.0.5
). سيتم الإشارة إلى هذا العنوان باسم your_private_ip
في بقية هذا البرنامج التعليمي. كما لاحظ اسم واجهة الشبكة، في هذه الحالة eth1
. في الجزء التالي من هذا البرنامج التعليمي، ستقوم بتكوين Elasticsearch و Kibana للاستماع إلى الاتصالات على عنوان IP الخاص القادم من خادم Suricata الخاص بك.
الخطوة ٢ — تكوين Elasticsearch
يتم تكوين Elasticsearch لقبول الاتصالات المحلية فقط افتراضيًا. بالإضافة إلى ذلك، لا يوجد أي تفعيل للمصادقة، لذلك لن تتمكن من إرسال السجلات إليه أدوات مثل Filebeat. في هذا الجزء من البرنامج التعليمي، ستقوم بتكوين إعدادات الشبكة لـ Elasticsearch ثم تمكين وحدة الأمان المدمجة في Elasticsearch (xpack
).
تكوين شبكة Elasticsearch
نظرًا لأن خوادم Elasticsearch و Suricata الخاصة بك متفرقة، ستحتاج إلى تكوين Elasticsearch للاستماع إلى الاتصالات على واجهة شبكتها الخاصة.
افتح ملف /etc/elasticsearch/elasticsearch.yml
باستخدام vi
أو محررك المفضل:
العثور على السطر المعلق #network.host: 192.168.0.1
بين السطور 50-60 وإضافة سطر جديد بعد ذلك يكوّن إعداد network.bind_host
كما هو موضح أدناه:
# بشكل افتراضي، يكون Elasticsearch قابلاً للوصول فقط على localhost. قم بتعيين عنوان
# مختلف هنا لتعريض هذا العقدة على الشبكة:
#
#network.host: 192.168.0.1
network.bind_host: ["127.0.0.1", "your_private_ip"]
#
# بشكل افتراضي، يستمع Elasticsearch لحركة المرور HTTP على أول منفذ مجاني ي
# يبدأ من 9200. قم بتعيين منفذ HTTP محدد هنا:
قم بتعويض عنوان IP الخاص بك بدلاً من العنوان your_private_ip
. سيضمن هذا السطر أن يكون Elasticsearch متاحًا لا تزال على عنوانها المحلي بحيث يمكن لـ Kibana الوصول إليه، فضلاً عن عنوان IP الخاص بخادمك.
ثم، انتقل إلى نهاية الملف باستخدام اختصار vi
SHIFT+G
.
أضف السطور المظللة التالية إلى نهاية الملف:
. . .
discovery.type: single-node
xpack.security.enabled: true
إعداد discovery.type
يسمح لـ Elasticsearch بالتشغيل كعقدة واحدة، بدلاً من تشغيله في مجموعة من خوادم Elasticsearch الأخرى. إعداد xpack.security.enabled
يقوم بتشغيل بعض ميزات الأمان التي تم تضمينها مع Elasticsearch.
احفظ وأغلق الملف عند الانتهاء من تحريره.
أخيرًا، أضف قواعد جدار حماية لضمان وصول خادم Elasticsearch الخاص بك على واجهة الشبكة الخاصة به. إذا كنت قد اتبعت البرامج التعليمية اللازمة وتستخدم firewalld
، قم بتشغيل الأوامر التالية:
استبدل اسم واجهة الشبكة الخاصة بك في المكان المخصص لـ eth1
في الأمر الأول إذا كانت لديك واجهة مختلفة. هذا الأمر يغير قواعد الواجهة لاستخدام منطقة Firewalld internal
، وهي أكثر انفتاحًا من المنطقة الافتراضية public
.
الأوامر التالية تضيف قواعد للسماح بحركة مرور Elasticsearch على المنفذين 9200 و 9300، بالإضافة إلى حركة مرور Kibana على المنفذ 5601.
الأمر النهائي يعيد تحميل خدمة Firewalld مع تطبيق القواعد الدائمة الجديدة.
بعد ذلك، ستقوم بتشغيل خدمة Elasticsearch ومن ثم ستقوم بتكوين كلمات المرور لاستخدامها مع وحدة الأمان xpack
.
بدء Elasticsearch
الآن بعد تكوين الشبكة وإعدادات الأمان xpack
لـ Elasticsearch، يجب عليك بدء تشغيله ليتم تنفيذ التغييرات.
قم بتشغيل Elasticsearch باستخدام الأمر التالي systemctl
:
بمجرد الانتهاء من بدء تشغيل Elasticsearch، يمكنك المتابعة إلى الجزء التالي من هذا البرنامج التعليمي حيث ستقوم بإنشاء كلمات مرور للمستخدمين الافتراضيين التي تم بناؤها في Elasticsearch.
تكوين كلمات مرور Elasticsearch
الآن بعد تمكين الإعداد xpack.security.enabled
، تحتاج إلى إنشاء كلمات مرور للمستخدمين الافتراضيين لـ Elasticsearch. يتضمن Elasticsearch أداة في الدليل /usr/share/elasticsearch/bin
يمكنها توليد كلمات مرور عشوائية تلقائيًا لهؤلاء المستخدمين.
قم بتشغيل الأمر التالي لـ cd
إلى الدليل ثم قم بتوليد كلمات مرور عشوائية لجميع المستخدمين الافتراضيين:
ستتلقى إخراجًا مثل التالي. عندما يُطلب منك المتابعة، اضغط y
ثم RETURN
أو ENTER
:
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
The passwords will be randomly generated and printed to the console.
Please confirm that you would like to continue [y/N]y
Changed password for user apm_system
PASSWORD apm_system = eWqzd0asAmxZ0gcJpOvn
Changed password for user kibana_system
PASSWORD kibana_system = 1HLVxfqZMd7aFQS6Uabl
Changed password for user kibana
PASSWORD kibana = 1HLVxfqZMd7aFQS6Uabl
Changed password for user logstash_system
PASSWORD logstash_system = wUjY59H91WGvGaN8uFLc
Changed password for user beats_system
PASSWORD beats_system = 2p81hIdAzWKknhzA992m
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = 85HF85Fl6cPslJlA8wPG
Changed password for user elastic
PASSWORD elastic = 6kNbsxQGYZ2EQJiqJpgl
لن تتمكن من تشغيل الأداة مرة أخرى، لذا تأكد من تسجيل هذه الكلمات المرور في مكان آمن. ستحتاج إلى استخدام كلمة مرور المستخدم kibana_system
في الجزء التالي من هذا البرنامج التعليمي، وكلمة مرور المستخدم elastic
في الخطوة تكوين Filebeat في هذا البرنامج التعليمي.
في هذه المرحلة من البرنامج التعليمي، لقد انتهيت من تكوين Elasticsearch. يشرح القسم التالي كيفية تكوين إعدادات شبكة Kibana ووحدة الأمان xpack
الخاصة بها.
الخطوة 3 — تكوين Kibana
في الجزء السابق من هذا البرنامج التعليمي، قمت بتكوين Elasticsearch للاستماع إلى الاتصالات على عنوان IP الخاص بخادم Elasticsearch الخاص بك. ستحتاج إلى القيام بنفس الشيء لـ Kibana بحيث يمكن لـ Filebeats على خادم Suricata الخاص بك الوصول إليه.
أولاً، ستمكين وظيفة أمان xpack
في Kibana عن طريق إنشاء بعض الأسرار التي ستستخدمها Kibana لتخزين البيانات في Elasticsearch. ثم ستقوم بتكوين إعدادات الشبكة وتفاصيل المصادقة الخاصة بـ Kibana للاتصال بـ Elasticsearch.
تمكين xpack.security
في Kibana
للبدء في إعدادات أمان xpack
في Kibana، تحتاج إلى إنشاء بعض مفاتيح التشفير. تستخدم Kibana هذه المفاتيح لتخزين بيانات الجلسة (مثل الكوكيز)، بالإضافة إلى لوحات المعلومات المحفوظة وعرض البيانات في Elasticsearch.
يمكنك إنشاء المفاتيح التشفيرية المطلوبة باستخدام أداة kibana-encryption-keys
المضمنة في الدليل /usr/share/kibana/bin
. قم بتشغيل الأمر التالي للانتقال إلى الدليل ثم إنشاء المفاتيح:
تُقدم العلامة -q
لتكتم تعليمات الأداة، وستضمن العلامة --force
أن تنشئ مفاتيح جديدة. يجب أن تتلقى مخرجات مشابهة للتالي:
Outputxpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
انسخ هذه المفاتيح الثلاثة في مكان آمن. الآن ستقوم بإضافتها إلى ملف التكوين /etc/kibana/kibana.yml
الخاص بـ Kibana.
افتح الملف باستخدام vi
أو المحرر الذي تفضله:
انتقل إلى نهاية الملف باستخدام الاختصار SHIFT+G
في vi
. ألصق الأسطر الثلاثة xpack
التي قمت بنسخها في نهاية الملف:
. . .
# تحديد الإعدادات المحلية المستخدمة لجميع النصوص التي يمكن ترجمتها، وتنسيقات التواريخ والأرقام.
# اللغات المدعومة هي: الإنجليزية - en، افتراضيًا، الصينية - zh-CN.
#i18n.locale: "en"
xpack.encryptedSavedObjects.encryptionKey: 66fbd85ceb3cba51c0e939fb2526f585
xpack.reporting.encryptionKey: 9358f4bc7189ae0ade1b8deeec7f38ef
xpack.security.encryptionKey: 8f847a594e4a813c4187fa93c884e92b
احتفظ بالملف مفتوحًا وانتقل إلى الجزء التالي حيث ستقوم بتكوين إعدادات الشبكة لـ Kibana.
تكوين شبكة Kibana
لتكوين شبكة Kibana بحيث تكون متاحة على عنوان IP الخاص بخادم Elasticsearch الخاص بك، ابحث عن السطر المعلق #server.host: "localhost"
في /etc/kibana/kibana.yml
. السطر قريب من بداية الملف. أضف سطرًا جديدًا بعد ذلك بعنوان IP الخاص بالخادم الخاص بك، كما هو موضح أدناه:
# يتم خدمة Kibana من خلال خادم خلفي. هذا الإعداد يحدد المنفذ المستخدم.
#server.port: 5601
# يحدد العنوان الذي سيقوم خادم Kibana بربطه به. عناوين IP وأسماء الأجهزة الأمانية هي قيمتان صالحتان.
# الافتراضي هو 'localhost'، مما يعني عادة أن الآلات البعيدة لن تتمكن من الاتصال.
# للسماح بالاتصال من مستخدمين عن بعد، قم بتعيين هذا المعلم إلى عنوان غير عنوان الدورة الذاتية.
#server.host: "localhost"
server.host: "your_private_ip"
استبدل عنوان IP الخاص بك بدلاً من your_private_ip
.
احفظ وأغلق الملف عند الانتهاء من تحريره. بعد ذلك، ستحتاج إلى تكوين اسم المستخدم وكلمة المرور التي يستخدمها كيبانا للاتصال بإيليستيك سيرتش.
تكوين اعتمادات كيبانا
هناك طريقتان لتعيين اسم المستخدم وكلمة المرور التي يستخدمها كيبانا للمصادقة على إيليستيك سيرتش. الطريقة الأولى هي تحرير ملف التكوين /etc/kibana/kibana.yml
وإضافة القيم هناك. الطريقة الثانية هي تخزين القيم في متجر كيبانا keystore، وهو ملف مخفي يمكن لكيبانا استخدامه لتخزين الأسرار.
سنستخدم طريقة متجر الأسرار في هذا البرنامج التعليمي حيث يتجنب تعديل ملف تكوين كيبانا مباشرة.
إذا كنت تفضل تحرير الملف بدلاً من ذلك، فإن الإعدادات التي يجب تكوينها فيه هي elasticsearch.username
و elasticsearch.password
.
إذا اخترت تحرير ملف التكوين، فتخطى باقي الخطوات في هذا القسم.
لإضافة سر إلى متجر الأسرار باستخدام أداة kibana-keystore
، انتقل أولاً إلى دليل /usr/share/kibana/bin
. بعد ذلك، قم بتشغيل الأمر التالي لتعيين اسم المستخدم لكيبانا:
سوف تتلقى رسالة مماثلة للتالية:
Enter value for elasticsearch.username: *************
أدخل kibana_system
عند الطلب، سواء بنسخ ولصق، أو كتابة اسم المستخدم بعناية. سيتم إخفاء كل حرف تقوم بإدخاله برمز النجمة *
. اضغط ENTER
أو RETURN
عندما تنتهي من إدخال اسم المستخدم.
الآن كرر العملية، هذه المرة لحفظ كلمة المرور. تأكد من نسخ كلمة المرور للمستخدم kibana_system
الذي قمت بإنشائه في الجزء السابق من هذا البرنامج التعليمي. للإشارة، في هذا البرنامج التعليمي، الكلمة السرية المثالية هي 1HLVxfqZMd7aFQS6Uabl
.
قم بتشغيل الأمر التالي لتعيين كلمة المرور:
عند الطلب، الصق كلمة المرور لتجنب أي أخطاء في النسخ:
Enter value for elasticsearch.password: ********************
بدء تشغيل كيبانا
الآن بعد أن قمت بتكوين الشبكة وإعدادات الأمان xpack
لكيبانا، بالإضافة إلى إضافة بيانات اعتماد إلى مستودع المفاتيح، تحتاج إلى بدء تشغيله ليتم تطبيق التغييرات.
قم بتشغيل الأمر التالي من systemctl
لإعادة تشغيل كيبانا:
بمجرد بدء تشغيل كيبانا، يمكنك المتابعة إلى الجزء التالي من هذا البرنامج التعليمي حيث ستقوم بتكوين Filebeat على خادم Suricata الخاص بك لإرسال سجلاته إلى Elasticsearch.
الخطوة 4 — تثبيت Filebeat
الآن بعد تكوين عمليات Elasticsearch وKibana بالإعدادات الصحيحة للشبكة والمصادقة، الخطوة التالية هي تثبيت وإعداد Filebeat على خادم Suricata.
للبدء في تثبيت Filebeat، أضف مفتاح Elastic GPG إلى خادم Suricata الخاص بك باستخدام الأمر التالي:
بعد ذلك، قم بإنشاء ملف elasticsearch.repo
في الدليل /etc/yum/yum.repos.d
الخاص بك بالمحتويات التالية، باستخدام vi
أو المحرر المفضل لديك:
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
عندما تنتهي من إجراء التغييرات، قم بحفظ الملف والخروج. الآن، قم بتثبيت حزمة Filebeat باستخدام الأمر dnf
:
بعد ذلك، ستحتاج إلى تكوين Filebeat للاتصال بكل من Elasticsearch وKibana. افتح ملف التكوين /etc/filebeat/filebeat.yml
باستخدام vi
أو المحرر المفضل لديك:
ابحث عن قسم Kibana
في الملف حوالي السطر 100. أضف سطرًا بعد السطر المعلق #host: "localhost:5601"
الذي يشير إلى عنووان IP الخاص بمثيل Kibana والمنفذ:
. . .
# بدءاً من إصدار Beats 6.0.0، تحميل اللوحات عبر واجهة برمجة التطبيقات في Kibana.
# هذا يتطلب تكوين نقطة نهاية Kibana.
setup.kibana:
# استضافة Kibana
# يمكن ترك البنية التحتية والمنفذ وسيتم ضبطها على القيمة الافتراضية (http و 5601)
# في حال قمت بتحديد مسار إضافي، فإن البنية التحتية مطلوبة: http://localhost:5601/path
# يجب دائمًا تحديد عناوين IPv6 كما يلي: https://[2001:db8::1]:5601
#host: "localhost:5601"
host: "your_private_ip:5601"
. . .
هذا التغيير سيضمن أن يمكن لـ Filebeat الاتصال بـ Kibana لإنشاء مؤشرات SIEM المختلفة ولوحات القيادة وخطوط المعالجة في Elasticsearch للتعامل مع سجلات Suricata الخاصة بك.
المرحلة التالية هي البحث عن قسم Elasticsearch Output
في الملف حول السطر 130 تقريبًا وتحرير إعدادات hosts
و username
و password
لتتطابق مع قيم الخادم Elasticsearch الخاص بك:
output.elasticsearch:
# مصفوفة من الخوادم للاتصال بها.
hosts: ["your_private_ip:9200"]
# بروتوكول - إما `http` (الافتراضي) أو `https`.
#protocol: "https"
# بيانات اعتماد المصادقة - إما مفتاح API أو اسم المستخدم/كلمة المرور.
#api_key: "id:api_key"
username: "elastic"
password: "6kNbsxQGYZ2EQJiqJpgl"
. . .
استبدل عنوان IP الخاص بخادم Elasticsearch الخاص بك في السطر hosts
. قم بفك تأمين الحقل username
واتركه مضبوطًا على مستخدم elastic
. قم بتغيير حقل password
من changeme
إلى كلمة مرور المستخدم elastic
التي أنشأتها في القسم Configuring Elasticsearch Passwords من هذا البرنامج التعليمي.
احفظ وأغلق الملف عند الانتهاء من تحريره. المرحلة التالية هي تمكين وحدة Suricata المدمجة في Filebeats باستخدام الأمر التالي:
الآن بعد أن تم تكوين Filebeat للاتصال بـ Elasticsearch و Kibana، مع تمكين وحدة Suricata، فإن الخطوة التالية هي تحميل لوحات القيادة SIEM وخطوط الأنابيب إلى Elasticsearch.
قم بتشغيل الأمر filebeat setup
. قد يستغرق تحميل كل شيء بضع دقائق:
بمجرد اكتمال الأمر، يجب أن تتلقى إخراجًا مثل التالي:
OutputOverwriting ILM policy is disabled. Set `setup.ilm.overwrite: true` for enabling.
Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/machine-learning/current/index.html
It is not possble to load ML jobs into an Elasticsearch 8.0.0 or newer using the Beat.
Loaded machine learning job configurations
Loaded Ingest pipelines
إذا لم تكن هناك أخطاء، استخدم الأمر systemctl
لبدء تشغيل Filebeat. سيبدأ بإرسال الأحداث من سجل eve.json
لـ Suricata إلى Elasticsearch بمجرد تشغيله.
الآن بعد تكوين Filebeat و Kibana و Elasticsearch لمعالجة سجلات Suricata الخاصة بك، آخر خطوة في هذا البرنامج التعليمي هي الاتصال بـ Kibana واستكشاف لوحات المعلومات الأمنية وإدارة الأحداث.
الخطوة 5 — التنقل في لوحات معلومات الأمان الأمنية في Kibana
Kibana هو المكون الرسومي للمكدس المرن. ستستخدم Kibana مع متصفحك لاستكشاف بيانات حدث وتنبيه Suricata. نظرًا لتكوين Kibana ليكون متاحًا فقط عبر عنوان IP الخاص بخادم Elasticsearch الخاص بك، ستحتاج إلى استخدام نفق SSH للاتصال بـ Kibana.
الاتصال بـ Kibana عبر SSH
SSH لديه خيار -L
الذي يتيح لك توجيه حركة المرور الشبكية عبر منفذ محلي عبر اتصاله بعنوان IP ومنفذ بعيد على الخادم. ستستخدم هذا الخيار لتوجيه حركة المرور من متصفحك إلى مثيل Kibana الخاص بك.
في نظام التشغيل Linux و macOS والإصدارات المحدثة من Windows 10 والإصدارات الأحدث، يمكنك استخدام عميل SSH المضمن لإنشاء النفق. ستستخدم هذا الأمر في كل مرة ترغب في الاتصال بـ Kibana. يمكنك إغلاق هذا الاتصال في أي وقت ثم تشغيل أمر SSH مرة أخرى لإعادة إنشاء النفق.
قم بتشغيل الأمر التالي في وحدة التحكم على سطح مكتب أو كمبيوتر محمول محلي لإنشاء النفق SSH إلى Kibana:
المعاملات المختلفة ل SSH هي:
- يقوم العلم
-L
بتوجيه حركة المرور إلى النظام المحلي على البورت5601
إلى الخادم البعيد. - الجزء
your_private_ip:5601
من الأمر يحدد الخدمة على خادم Elasticsearch الخاص بك حيث سيتم توجيه حركة المرور إليها. في هذه الحالة، تكون تلك الخدمة هي Kibana. تأكد من استبدال عنوان IP الخاص بخادم Elasticsearch الخاص بك بدلاً منyour_private_ip
. - عنوان
203.0.113.5
هو عنوان الآي بي العام الذي تستخدمه للاتصال بالخادم الخاص بك وإدارته. استبدل عنوان IP العام الخاص بخادم Elasticsearch الخاص بك مكانه. - العلم
-N
يُوجه SSH بعدم تشغيل أمر مثل شل تفاعلي/bin/bash
، وبدلاً من ذلك يحتفظ فقط بفتح الاتصال. يُستخدم عمومًا عند إعادة توجيه المنافذ مثلما في هذا المثال.
إذا كنت ترغب في إغلاق النفق في أي وقت، اضغط CTRL+C
.
على نظام Windows، يجب أن تشبه وحدة التحكم الخاصة بك اللقطة الشاشة التالية:
ملاحظة: قد يُطلب منك إدخال كلمة مرور إذا لم تكن تستخدم مفتاح SSH. اكتبها أو الصقها في النافذة واضغط ENTER
أو RETURN
.
على macOS و Linux، ستكون واجهة الطرفية الخاصة بك مشابهة لما هو موضح في الصورة الشاشة التالية:
بمجرد الاتصال بخادم Elasticsearch الخاص بك عبر SSH مع توجيه المنفذ في المكان، افتح متصفحك وقم بزيارة http://127.0.0.1:5601. ستتم إعادة توجيهك إلى صفحة تسجيل الدخول لـ Kibana:
إذا لم يتمكن متصفحك من الاتصال بـ Kibana، فستتلقى رسالة مثل الرسالة التالية في واجهة الطرفية الخاصة بك:
Outputchannel 3: open failed: connect failed: No route to host
تشير هذه الخطأ إلى أن نفق SSH الخاص بك غير قادر على الوصول إلى خدمة Kibana على الخادم الخاص بك. تأكد من أنك قد حددت العنوان IP الخاص الصحيح لخادم Elasticsearch الخاص بك وأعد تحميل الصفحة في متصفحك.
قم بتسجيل الدخول إلى خادم Kibana الخاص بك باستخدام elastic
كاسم مستخدم، وكلمة المرور التي نسختها سابقًا في هذا البرنامج التعليمي للمستخدم.
تصفح لوحات معلومات SIEM في Kibana
بمجرد تسجيل الدخول إلى Kibana، يمكنك استكشاف لوحات Suricata التي قام Filebeat بتكوينها لك.
في حقل البحث في أعلى صفحة الترحيب بـ Kibana، أدخل مصطلحات البحث type:dashboard suricata
. سيعيد هذا البحث نتيجتين: لوحات الأحداث والتنبيهات في Suricata كما هو موضح في الصورة الشاشة التالية:
انقر على النتيجة [Filebeat Suricata] مراجعة الأحداث
لزيارة لوحة التحكم Kibana التي تظهر نظرة عامة على جميع الأحداث التي تم تسجيلها بواسطة Suricata:
لزيارة لوحة تحكم تنبيهات Suricata، كرر البحث أو انقر على رابط Alerts
المضمن في لوحة الأحداث. يجب أن تكون صفحتك مشابهة للصورة التالية:
إذا كنت ترغب في فحص الأحداث والتنبيهات التي تعرضها كل لوحة تحكم، فانتقل إلى أسفل الصفحة حيث ستجد جدولًا يقوم بسرد كل حدث وتنبيه. يمكنك توسيع كل إدخال لعرض السجل الأصلي من Suricata، وفحص بالتفصيل المختلفة مثل عناوين IP المصدر والوجهة للتنبيه، ونوع الهجوم، ومعرف توقيع Suricata، وغيرها.
كما أن لدى Kibana مجموعة مدمجة من لوحات التحكم الأمنية التي يمكنك الوصول إليها باستخدام القائمة في الجانب الأيسر من نافذة المتصفح. انتقل إلى لوحة التحكم الشبكة للحصول على نظرة عامة على الأحداث المعروضة على الخريطة، بالإضافة إلى بيانات مجتمعة حول الأحداث على شبكتك. يجب أن تكون لوحة التحكم الخاصة بك مشابهة للصورة التالية:
يمكنك التمرير إلى أسفل لوحة التحكم الشبكية للحصول على جدول يقوم بسرد جميع الأحداث التي تتطابق مع الإطار الزمني الذي حددته. يمكنك أيضًا فحص كل حدث بالتفصيل، أو تحديد حدث لإنشاء خط زمني في Kibana، الذي يمكنك بعد ذلك استخدامه للتحقيق في تدفقات المرور المحددة، أو التنبيهات، أو معرفات المجتمع.
الختام
في هذا البرنامج التعليمي قمت بتثبيت وتكوين Elasticsearch و Kibana على خادم منفصل. قمت بتكوين كلتا الأدوات لتكون متاحة على عنوان IP خاص. كما قمت بتكوين إعدادات المصادقة لـ Elasticsearch و Kibana باستخدام وحدة الأمان xpack
المضمنة مع كل أداة.
بعد الانتهاء من خطوات تكوين Elasticsearch و Kibana، قمت أيضًا بتثبيت وتكوين Filebeat على خادم Suricata الخاص بك. قمت باستخدام Filebeat لملء لوحات التحكم الخاصة بـ Kibana وبدء إرسال سجلات Suricata إلى Elasticsearch.
أخيرًا، قمت بإنشاء نفق SSH إلى خادم Elasticsearch الخاص بك وتسجيل الدخول إلى Kibana. حددت لوحات التحكم الجديدة لـ Suricata Events وAlerts، بالإضافة إلى لوحة الشبكة.
البرنامج التعليمي الأخير في هذه السلسلة سيقودك خلال استخدام وظائف SIEM في Kibana لمعالجة تنبيهات Suricata الخاصة بك. فيه، ستستكشف كيفية إنشاء حالات لتتبع التنبيهات المحددة، والجداول الزمنية لربط تدفقات الشبكة، والقواعد لمطابقة أحداث Suricata المحددة التي ترغب في تتبعها أو تحليلها بمزيد من التفصيل.