
नेटवर्क सुरक्षा और पेनिट्रेशन टेस्ट तकनीकों के अध्ययन के लिए एक माइक्रोसर्विसेस-आधारित ढांचा

Docker Security Playground एक एप्लिकेशन है जो आपको निम्नलिखित की अनुमति देता है:
DSP के लिए सुझाया गया इंस्टॉलेशन वर्कफ़्लो काली VM का उपयोग करना है:
यहाँ काली VM पर DSP इंस्टॉल करने के चरण दिए गए हैं। अन्य लिनक्स वितरणों के लिए समान चरणों का पालन करें, लेकिन सुनिश्चित करें कि सभी आवश्यकताएँ इंस्टॉल हों।
sudo apt update && sudo apt install -y docker.io docker-compose nodejs npm git
नोट (2025 काली कुंजी समस्या)।
यदि इंस्टॉलेशन के दौरान आपको निम्नलिखित समस्या हो:
Fetched 34.0 kB in 1s (58.4 kB/s) Warning: Failed to fetch http://http.kali.org/kali/dists/kali-rolling/InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED65462EC8D5E4C5 Warning: Some index files failed to download. They have been ignored, or old ones used instead.आपको लापता कुंजी जोड़ने की आवश्यकता है:
wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2025.1_all.deb sudo dpkg -i kali-archive-keyring_2025.1_all.deb rm kali-archive-keyring_2025.1_all.deb
sudo systemctl enable docker
sudo groupadd docker
sudo usermod -aG docker $USER
docker ps
साथ ही, सत्यापित करें कि docker compose काम कर रहा है:
docker compose --version # या पुराने संस्करणों के लिए docker-compose --version
npm और nodejs इंस्टॉलेशन भी सत्यापित करें:
node -v
npm -v
Rosetta को सक्षम करके होस्ट M1 पर DSP चलाना संभव है, लेकिन मैं दृढ़ता से सुझाव देता हूँ कि UTM या VMware Fusion के साथ एक काली VM बनाएँ, पिछले इंस्टॉलेशन चरणों का पालन करें और ARM आर्किटेक्चर पर x86 इमेज चलाने के लिए binfmt-misc पैकेज इंस्टॉल करें।
sudo apt install binfmt-support qemu-user-static
मशीन को पुनरारंभ करें।
फिर, विभिन्न आर्किटेक्चर के लिए सभी इंटरप्रेटरों को पंजीकृत करने के लिए Tonisiigi कंटेनर का उपयोग करें:
docker run --privileged --rm tonistiigi/binfmt --install amd64
सत्यापित करें कि डॉकर इमेज आपकी मशीन पर चल सकती हैं:
docker run --rm -it --platform linux/amd64 ubuntu uname -m
git clone https://github.com/DockerSecurityPlayground/DSP.git
cd DSP
npm install
जब इंस्टॉलेशन पूरा हो जाए, तो आप DSP प्रारंभ कर सकते हैं:
npm start
DSP "http://localhost:18181" पर चलेगा।
काली पर Wireshark का उपयोग करने के लिए नोट: मैं क्रोमियम ब्राउज़र का उपयोग करने का सुझाव देता हूँ, क्योंकि wireshark कंटेनर कुछ कोडेक का उपयोग करता है जो काली पर फ़ायरफ़ॉक्स द्वारा समर्थित नहीं हैं। आप टर्मिनल में बस "chromium" टाइप करके क्रोमियम प्रारंभ कर सकते हैं।
पहला कदम वर्तमान मशीन में सभी आवश्यक फ़ोल्डरों को स्थापित करना होगा।
आप पर्यावरण चर का उपयोग करके इस इंस्टॉलेशन चरण को स्वचालित भी कर सकते हैं:
export DSP_AUTOINSTALL=1 && npm start
यदि आप अपने होस्ट ब्राउज़र का उपयोग करना चाहते हैं, तो आप 0.0.0.0 इंटरफ़ेस पर एक्सपोज़ कर सकते हैं। यदि आप किसी अन्य इंटरफ़ेस पर एक्सपोज़ करना चाहते हैं, तो DSP_IFACE पर्यावरण चर बदलें:
export DSP_IFACE="0.0.0.0"
अब आप रिमोट इंटरफ़ेस पर dsp का उपयोग कर सकते हैं।
यदि कुछ गलत हो जाता है, तो आप निम्नलिखित कमांड का उपयोग करके DSP को फ़ैक्टरी सेटिंग्स पर रीसेट कर सकते हैं:
npm run uninstall
यह सब कुछ हटा देगा, और आप इंस्टॉलेशन चरण से DSP प्रारंभ कर सकते हैं।
DSP_Repo में आधिकारिक DSP लैब्स हैं। नए DSP लैब्स बनाकर DSP में योगदान दें।
इंस्टॉलेशन के दौरान आप एक स्थानीय वातावरण बना सकते हैं जिसका git से कोई लिंक नहीं है, या आप एप्लिकेशन के साथ एक व्यक्तिगत रिपॉजिटरी जोड़ सकते हैं। यह बहुत उपयोगी है यदि आप अपना काम अन्य लोगों के साथ साझा करना चाहते हैं। DSP रिपॉजिटरी में कई आवश्यकताएँ होनी चाहिए, इसलिए मैंने एक आधार DSP रिपॉजिटरी टेम्पलेट बनाया है जिसका उपयोग आप अपनी व्यक्तिगत रिपॉजिटरी बनाने के लिए कर सकते हैं। इसलिए, लैब्स साझा करने का सबसे आसान तरीका निम्नलिखित है:
यह महत्वपूर्ण है कि आपके द्वारा उपयोग की जाने वाली सभी इमेज अन्य उपयोगकर्ताओं के लिए उपलब्ध होनी चाहिए, इसलिए:
यदि आपको लैब्स साझा करने के लिए एक "निजी तरीका" चाहिए, तो आपको रिपॉजिटरी को अन्य तरीकों से साझा करना चाहिए; वर्तमान समय में निजी रिपॉजिटरी साझा करने का कोई समर्थन नहीं है।
DSP में आप कई उपयोगकर्ता रिपॉजिटरी (Repositories टैब) का प्रबंधन कर सकते हैं।
यदि आपको कोई समस्या है, तो आप Issue अनुभाग का उपयोग कर सकते हैं।
परीक्षण चलाने के लिए:
mocha test/<test-nodejs-file.js>
परीक्षण परीक्षण वातावरण को प्रारंभ करने के लिए helper.start() विधि का उपयोग करते हैं:
यदि इंस्टॉलेशन के दौरान आपको निम्नलिखित त्रुटि मिलती है:
[2020-12-14T10:18:21.854Z] INFO: DockerSecurityPlayground/1536 on vagrant: [DOCKER ACTIONS - DOWNLOAD IMAGE]
events.js:174
throw er; // Unhandled 'error' event
^
Error: connect EACCES /var/run/docker.sock
at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
Emitted 'error' event at:
at Socket.socketErrorListener (_http_client.js:401:9)
at Socket.emit (events.js:198:13)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
2 बातें सत्यापित करें:
docker समूह में हैइसे परीक्षण करने के लिए:
docker ps
यदि आप DSP को सामान्य उपयोगकर्ता के साथ चला रहे हैं तो SUDO का उपयोग न करें। यदि आपको निम्नलिखित त्रुटि मिलती है:
vagrant@vagrant:~/git/DockerSecurityPlayground$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json: dial unix /var/run/docker.sock: connect: permission denied
आपको अपने उपयोगकर्ता को docker समूह में जोड़ने की आवश्यकता है: https://docs.docker.com/engine/install/linux-postinstall/
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
लॉग-आउट करें और लॉग-इन करें अब आपको DSP साफ़ करने की आवश्यकता है:
npm run uninstall
और अब सब कुछ काम करना चाहिए।
MacOS ECONNRESET त्रुटि:
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:992:11)
at TCP.onread (net.js:618:25)
Mac पर ऐसा लगता है कि कुछ नोड पैकेज के साथ कोई समस्या है, इसलिए इसे हल करने के लिए चलाएँ:
MacBook-Pro:DockerSecurityPlayground gaetanoperrone$ npm install [email protected] --save-dev --save-exact
अन्य जानकारी यहाँ: http://gitlab.comics.unina.it/NS-Thesis/DockerSecurityPlayground_1/wikis/docker-operation-errors
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-featureअपने सभी प्रश्न पूछने के लिए Issues का उपयोग करें!
Giuseppe Criscuolo और Alessandro Placido Luise को लोगो डिज़ाइन के लिए धन्यवाद
सभी संस्करण परिवर्तन देखने के लिए CHANGELOG.md पर जाएँ।
यदि आप अपनी शोध गतिविधि के लिए Docker Security Playground का उपयोग करते हैं, तो IEEE (इलेक्ट्रिकल एंड इलेक्ट्रॉनिक्स इंजीनियर्स संस्थान) द्वारा प्रकाशित निम्नलिखित पेपर को उद्धृत करें: https://ieeexplore.ieee.org/document/8169747
@INPROCEEDINGS{8169747,
author={Perrone, G. and Romano, S. P.},
booktitle={2017 Principles, Systems and Applications of IP Telecommunications (IPTComm)},
title={The Docker Security Playground: A hands-on approach to the study of network security},
year={2017},
volume={},
number={},
pages={1-8},
keywords={Security;Communication networks;Tools;Containers;Virtualization;Standards},
doi={10.1109/IPTCOMM.2017.8169747}}
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत है।
![]() gx1 🐛 💻 🖋 🎨 📖 🚧 📆 | ![]() Simon Pietro Romano 🎨 📖 📆 | ![]() catuhub 🐛 💻 🎨 📖 🚧 📆 | ![]() Giuseppe Di Terlizzi 💻 | ![]() Alessandro 📖 📹 🖋 | ![]() Roberto 💻 🖋 🚇 | ![]() the-licato 🚇 |
![]() Gabriele Previtera 💻 📢 |