
# جمع سجلات مستشعر DShield باستخدام ELK
هذا فرع (fork) وتحديث كبير من الإصدار الأولي المنشور على موقع ISC Storm Center بواسطة Scott Jensen كبحث BACS والبرامج النصية المنشورة على Github.
https://github.com/fkadriver/Dshield-ELK
https://isc.sans.edu/diary/DShield+Sensor+Monitoring+with+a+Docker+ELK+Stack+Guest+Diary/30118
هذا مرجع جيد حول كيفية استخدام DShield-SIEM للتحليل: https://isc.sans.edu/diary/30962/
يوفر هذا نظرة عامة حول كيفية جمع السجلات باستخدام مستشعر DShield.
https://github.com/bruneaug/DShield-SIEM/blob/main/Troubleshooting/DShield-SIEM-Flow.png
هذا الحاوية docker مبنية خصيصًا لاستخدامها مع DShield Honeypot لجمع السجلات وتحليلها وتجميع البيانات لتسهيل البحث لأغراض البحث العلمي. التثبيت المقترح هو تثبيت مستشعر DShield على Rasperry باستخدام PI Raspbian OS أو على نظام يعمل بنظام Ubuntu 24.04 LTS سواء في شبكتك أو على السحابة التي تختارها.
ملاحظة: يجب تثبيت هذا على خادم منفصل حسب التعليمات أدناه.
ملاحظة: لتحديث مكونات خادم ELK، اتبع هذه الخطوات:
https://github.com/bruneaug/DShield-SIEM/blob/main/README.md#download-github-update
قم بتثبيت docker بحساب المستخدم ($):````
sudo apt-get install ca-certificates curl gnupg network-manager txt2html
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Note: You may need to take the next line, remove the backlash () and put everythin in a single line in Notepad to run this echo.
echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update && sudo apt upgrade
sudo reboot (if update were applied)
sudo apt-get install -y jq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin pip
sudo systemctl enable docker
sudo systemctl start docker.service
تأكد من أن خدمة docker قيد التشغيل<br>````
sudo systemctl status docker.service
أضف اسم خادم ELK التالي es01 kibana fleet-server heartbeat logstash filebeat filebeat01
إلى /etc/hosts بعد عنوان IP واسم الخادم:
````
sudo vi /etc/hosts
أضف هذا إلى /etc/hosts بعد عناوين IP الخاصة بخادم ELK<br>
127.0.0.1 sensor es01 ...<br>
192.168.25.80 sensor es01 ...<br>````
es01 kibana fleet-server heartbeat logstash filebeat filebeat01
عدّل ملف sysctl.conf:
````
sudo vi /etc/sysctl.conf
أضف ما يلي في أسفل الملف:<br>````
vm.max_map_count=262144
أضفه واحفظه. هذا خاص بـ Elasticsearch عند استخدام Docker.
sudo iptables -nL

# إعداد وتثبيت DShield ELK
باستخدام حساب المستخدم ($)، قم بتشغيل الأوامر التالية:<br>````
git clone https://github.com/bruneaug/DShield-SIEM.git
mkdir scripts
mv DShield-SIEM/AddOnScripts/*.sh scripts
chmod 754 scripts/*.sh
cd ~/DShield-SIEM
ملاحظة: قبل التثبيت، يمكنك تعديل ملف .env (ls -la لرؤيته) لإجراء أي تغييرات مرغوبة.
- كلمة المرور الافتراضية الحالية لـ elastic هي student
حدود الذاكرة في .env هي الحد الأقصى للذاكرة التي سيخصصها docker لكل حاوية من حاويات ELK.
الافتراضي هو 3GB لـ Elasticsearch ولكن يمكن توسيعه إذا كانت لديك الموارد الكافية
قم بتحرير ملف .env وقم بإعداده ليناسب ELK Stack الخاص بك
````
vi .env
- قم بتحديث المتغيرات التالية في ملف **.env** ليتوافق مع معلومات DNS لخادم ELK، واسم المضيف، وعنوان IP، وكلمة مرور Elastic الافتراضية إذا كنت ترغب في تغييرها: <br>
- HOSTNAME="ubuntu"
- DNS_SERVER="9.9.9.9"
- IPADDRESS="192.168.25.231"
- ELASTIC_PASSWORD=student
- ES_MEM = Elasticsearch -> 4g, KB_MEM = Kibana -> 2g
- إذا كنت تريد تغيير معلومات خادم الأسماء الافتراضي (خوادم الأسماء) وموقع شبكتك الخاصة المحلية لعنوان الوجهة (أي تعيين مستشعر DShield - مضبوط حاليًا على **أوتاوا، كندا**)، فقم بتعديل الدليل التالي للملفات قبل تحميل docker:<br>````
cd logstash/pipeline
قم بتحرير heartbeat.yml لتغيير عنوان IP الخاص بالمستشعر (المسمى PI) إلى عنوان IP الخاص بالمستشعر لديك. يتحقق Kibana heartbeat من حالة خدماتك ويحدد ما إذا كانت متاحة.
قم بتحديث عنوان IP واسم المضيف ليعكسا المستشعر الخاص بك.
ملاحظة: يمكنك نسخ وإضافة نفس الأسطر الخمسة إذا كان لديك أكثر من مستشعر تريد مراقبته
يمكن عرض ذلك من خلال Observability -> Uptime Monitors

هذا السطر هو عنوان IP الخاص بالمستشعر. إذا لم يتلقَّ استجابة أثناء الاتصال عبر TCP 12222، فسيتم اعتباره معطلاً في الواجهة.
يتم ذلك من جانب خادم ELK للتحقق من استجابة المستشعر.
قم بتحديث هذا السطر: hosts: ["192.168.25.165"]
````
vi ~/DShield-SIEM/heartbeat/heartbeat.yml
سيقوم السكربت **change_perms.sh** بتهيئة بعض الملفات قبل بدء تثبيت مكونات docker.<br>
سيقوم السكربت أيضًا بتحديث عنوان IP المستخدم في استعلام لوحة المعلومات إلى عنوان IP الخاص بمكدس ELK الخاص بك.<br>````
~/scripts/change_perms.sh
~/scripts/get_researchers.sh
الآن قم بتنفيذ docker compose لبناء تطبيقات خادم ELK.
سيؤدي هذا إلى بناء: Kibana وElasticsearch وelastic-agent وLogstash وتحميل محللات Cowrie وملفات التكوين ولوحة المعلومات.
````
sudo docker compose up -d
اكتمل التثبيت
<img width="375" height="354" alt="image" src="https://assets.kitploit.com/production/public/readmes/50066/b192e2cc430ca7eaa43934ebde637400b29d23212dce39e81f521b0806df1bc0.png" />