Labtainers: एक Docker-आधारित साइबर लैब फ्रेमवर्क
Labtainers: एक Docker-आधारित साइबर लैब फ्रेमवर्क ============================================== Labtainers में 50 से अधिक साइबर लैब अभ्यास और अपनी खुद की लैब बनाने के लिए उपकरण शामिल हैं। एक ही [VM appliance][vm-appliance] आयात करें या किसी Linux सिस्टम पर इंस्टॉल करें और आपके छात्र इन और भविष्य के लैब अभ्यासों के लिए provisioning और administrative setup से मुक्त हो जाते हैं। * Docker containers के माध्यम से सुसंगत लैब निष्पादन वातावरण और स्वचालित provisioning * एक साधारण लैपटॉप कंप्यूटर पर बहु-घटक नेटवर्क टोपोलॉजी * छात्र लैब गतिविधि और प्रगति का स्वचालित मूल्यांकन * समाधान साझा करने को हतोत्साहित करने के लिए व्यक्तिगत लैब अभ्यास Labtainers नियंत्रित और सुसंगत निष्पादन वातावरण प्रदान करते हैं जिसमें छात्र पूरी तरह से अपने कंप्यूटर की सीमाओं के भीतर लैब करते हैं, चाहे छात्र के कंप्यूटर पर स्थापित Linux वितरण और पैकेज कोई भी हों। Labtainers हमारे [VM appliance][vm-appliancee] पर, या Docker स्थापित किसी भी Linux पर चलते हैं। और Labtainers क्लाउड-आधारित VMs के रूप में उपलब्ध है, उदाहरण के लिए, Azure पर जैसा कि [Student Guide][student-guide] में वर्णित है। इंस्टॉलेशन और उपयोग के लिए [Student Guide][student-guide] देखें, और छात्र मूल्यांकन के लिए [Instructor Guide][instructor-guide] देखें। लैब अभ्यासों को विकसित करना और अनुकूलित करना [Designer Guide][designer-guide] में वर्णित है। फ्रेमवर्क के बारे में अतिरिक्त जानकारी के लिए [Papers][Papers] देखें। Labtainers वेबसाइट, और डाउनलोड (Labtainers पूर्व-स्थापित VM appliances सहित) <https://nps.edu/web/c3o/labtainers> पर हैं। [vm-appliance]: https://nps.edu/web/c3o/virtual-machine-images [student-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/student/labtainer-student.pdf [instructor-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/instructor/labtainer-instructor.pdf [designer-guide]: https://raw.githubusercontent.com/mfthomps/labtainers/master/docs/labdesigner/labdesigner.pdf [Papers]: https://nps.edu/web/c3o/labtainers#papers Distribution created: 09/11/2026 11:33 </br> Revision: v1.4.4n </br> Commit: 9f1012dc </br> Branch: master </br> ## Content [Distribution and Use](#distribution-and-use) [Guide to directories](#guide-to-directories) [Support](#support) [Release notes](#release-notes) ## Distribution and Use कृपया लाइसेंसिंग और वितरण जानकारी [docs/license.md file](https://github.com/mfthomps/labtainers/blob/master/docs/license.md) में देखें। ## Guide to directories * scripts/labtainers-student -- छात्र लैब चलाने और परीक्षण करने के लिए कार्य निर्देशिका। छात्र लैब चलाने के लिए आपको उस निर्देशिका में होना चाहिए। * scripts/labtainers-instructor -- स्वचालित मूल्यांकन चलाने और परीक्षण करने तथा छात्र परिणाम देखने के लिए कार्य निर्देशिका। * labs -- प्रत्येक लैब के लिए विशिष्ट फ़ाइलें * setup\_scripts -- Labtainers और Docker स्थापित करने तथा Labtainers को अपडेट करने के लिए स्क्रिप्ट * docs -- labdesigner.pdf के लिए latex स्रोत, और अन्य दस्तावेज़ीकरण। * UI -- Labtainers लैब एडिटर स्रोत कोड (Java)। * headless-lite -- Docker Workstation और Labtainers के क्लाउड इंस्टेंस (ऐसे सिस्टम जिनमें मूल X11 सर्वर नहीं हैं) को प्रबंधित करने के लिए स्क्रिप्ट। * scripts/designer -- नई लैब बनाने और बेस Docker इमेज प्रबंधित करने के लिए उपकरण। * config -- सिस्टम-व्यापी कॉन्फ़िगरेशन सेटिंग्स (ये लैब-विशिष्ट कॉन्फ़िगरेशन सेटिंग्स नहीं हैं)। * distrib -- वितरण समर्थन स्क्रिप्ट, उदाहरण के लिए, Docker hub पर लैब प्रकाशित करने के लिए। * testsets -- परीक्षण प्रक्रियाएँ और अपेक्षित परिणाम। (SimLab के लिए प्रति-लैब ड्राइवर वितरित नहीं किए जाते हैं)। * pkg-mirrors -- परीक्षण और वितरण के दौरान बाहरी पैकेज खींचने को कम करने के लिए आंतरिक NPS पैकेज मिररिंग के लिए उपयोगिता स्क्रिप्ट। ## Support GitHub issue रिपोर्ट का उपयोग करें, या मुझे [email protected] पर ईमेल करें यह भी देखें <https://my.nps.edu/web/c3o/support1> ## Release notes मानक Labtainers वितरण में नई लैब के विकास के लिए आवश्यक फ़ाइलें शामिल नहीं हैं। उनके लिए, labtainer/trunk/setup\_scripts निर्देशिका से ./update-designer.sh चलाएँ। इंस्टॉलेशन स्क्रिप्ट और update-designer.sh स्क्रिप्ट पर्यावरण चर सेट करती हैं, इसलिए आप पहली बार Labtainers का उपयोग करने से पहले लॉगआउट/लॉगिन करना चाह सकते हैं, या एक नया bash शेल शुरू करना चाह सकते हैं। Jauary 6, 2026 - इंडेंट के कारण इंस्टॉलेशन स्क्रिप्ट में आए बग को ठीक किया गया। December 30, 2025 - checkwork रिपोर्ट प्रारूप को लंबवत होने के लिए संशोधित किया गया; headless के लिए वीडियो गाइड; सुविधा पथ October 15, 2025 - packet-introspection लैब को संशोधित किया गया ताकि maxmind geo location डेटाबेस के लिंक को अपडेट किया जा सके और legacy डेटाबेस के उपयोग को नोट किया जा सके। April 24, 2025 - pull request #96 के अनुसार लुप्त निर्देशिकाओं को ठीक से बनाने के लिए imodule को ठीक किया गया November 22, 2024 - google cloud VM को बदला गया, इस बार containers के भीतर systemd की विफलता के कारण। September 23, 2024 - google cloud VM को बदला गया, जो गलत Docker संस्करण का उपयोग कर रहा था September 10, 2024 - imodule पथ के निर्माण में टाइपो July 26, 2024 - capinout को संशोधित किया गया ताकि grantpt clib फ़ंक्शन का उपयोग न करे, जो अब container से चलाने पर क्रैश होता प्रतीत होता है। July 22, 2024 - Ubuntu22 के लिए एक बेस container जोड़ा गया और उसका समर्थन करने के लिए फ्रेमवर्क में परिवर्तन। July 5, 2024 - VM appliance के रूप में Ubuntu 24 पर माइग्रेट किया गया - docker pyhton पैकेज एक टूटी हुई python http लाइब्रेरी का उपयोग करता है, पैकेज डाउनग्रेड की आवश्यकता है। - Ubuntu के python पैकेज लॉकडाउन से बचने के लिए virtual python environment का उपयोग करें। - containers और VM के बीच systemd साझा करने की अनुमति देने के लिए boot parameter जोड़ें। - अपडेट पर टूटी हुई tar उपयोगिता से त्रुटि संदेशों को रीडायरेक्ट करें। - संस्करण 18 VMs के लिए msc पैकेजों के लिए Ubuntu अपडेट टूटना (update-ubuntu.sh देखें) - docker-compose कमांड टूटा हुआ है, "docker compose" का उपयोग करें - headless labtainers में socket अनुमतियाँ बाध्य करें। - headless Labtainers को Ubuntu 24 का उपयोग करने के लिए अपडेट करें November 27, 2023 - ec2 मशीन पर ubuntu22 के लिए Google Cloud Platform विकल्प जोड़ें। September 18, 2023 - पिछला फिक्स कार्यान्वयन त्रुटिपूर्ण था। August 8, 2023 - DockerHub image json प्रारूप में परिवर्तन को संभालें। धन्यवाद Kees! April 17, 2023 - नवीनतम लैब संस्करण का उपयोग करने के लिए बाध्य करें, उदाहरण के लिए, iptables के बजाय iptables2। tab completion को केवल नवीनतम प्रदर्शित करने के लिए ठीक करें। (Issue #77) - X11 race condition के कारण CyberCIEGE लैब इंस्टॉलेशन विफल हो रहा था। (Issue #76) - CyberCIEGE readme में नोट करें कि छात्रों को एकत्र किए गए लॉग को $HOME निर्देशिका में सहेजने के लिए निर्देशित करें। (Issue #75) - Radius लैब checkwork गलत तरीके से "radiusd not running" रिपोर्ट कर रहा था, prestop स्क्रिप्ट गायब थी। (Issue #74) - MACVLAN\_EXT विकल्प का उपयोग किए जाने पर Labedit ने start कॉन्फ़िगरेशन फ़ाइल को भ्रष्ट कर दिया। (Issue #73) February 1, 2023 - गैर-डिफ़ॉल्ट उपयोगकर्ताओं के लिए Bash history सहेजी नहीं जा रही थी। January 26, 2023 - gcloud के लिए powershell स्क्रिप्ट को संशोधित किया गया ताकि VM नामों को योग्य बनाने के लिए चयनित zone का उपयोग किया जा सके। January 4, 2023 - Ubuntu 22 में मौजूद नए systemd पर systemd का उपयोग करने वाले containers विफल हो रहे थे - google cloud स्क्रिप्ट में --zone पैरामीटर जोड़ें, जिसका मान set\_defaults स्क्रिप्ट से प्राप्त होता है। December 21, 2022 - xforge परिणाम मानदंड को ठीक करें ताकि pathname की अपेक्षा न हो, और यह देखने के लिए जाँच जोड़ें कि प्रोफ़ाइल संपादित करने के लिए POST जारी किया गया था या नहीं। और attacker http सर्वर को होम निर्देशिका से चलाने के लिए ठीक करें। December 19, 2022 - system call tracing शुरू करने के लिए strace लैब जोड़ें। - यदि /tmp/.X11-unix निर्देशिका में कई डिवाइस हों तो X11 DISPLAY मान गलत था। - बिना तर्कों के python/bash/sh/etc का उपयोग capinout को क्रैश कर रहा था। December 9, 2022 - Azure vm निर्माण स्क्रिप्ट को संशोधित करें ताकि Azure Community Gallery से पूर्व-निर्मित Labtainer VM image का उपयोग किया जा सके। - क्लाउड VMs पर टर्मिनल स्टार्टअप के दौरान या टर्मिनल पर राइट क्लिक करने पर अज्ञात कारणों से क्रैश हो जाते हैं। टर्मिनल को start/stop करके इसे संबोधित करने का प्रयास करें। December 5, 2022 - आर्टिफैक्ट एकत्र करते समय, गैर-डिफ़ॉल्ट उपयोगकर्ताओं की निर्देशिकाओं से संशोधित फ़ाइलें शामिल करें, उदाहरण के लिए, उनकी bash histories। - नई "other user" फ़ाइलों को प्रदर्शित करने के लिए web assessment को बदलें। - आर्टिफैक्ट में प्रत्येक container पर .local/bin से फ़ाइलें शामिल करें। इन्हें web assesment के माध्यम से प्रशिक्षक के लिए उपलब्ध कराने का इरादा है। - ACL लैब में, प्रशिक्षक द्वारा संदर्भ के लिए परिणामों में th /shared\_data/bob/fun फ़ाइल शामिल करें। - कमांड लाइन से "sh" या "bash" के उपयोग को पकड़ें और दिए गए कमांड के लिए पार्स करते समय छोड़ दें, उदाहरण के लिए, जैसा "time" या "sudo" के साथ किया जाता है। - tcpip लैब में, बाद के लैब सत्रों के दौरान सर्वर में ssh नहीं कर सके, /run/sshd निर्देशिका फिर से नहीं बनाई जा रही थी। November 16, 2022 - snort लैब में Snort Manual का पथ ठीक करें। - ossec manual में, manage\_agents का पथ ठीक करें October 12, 2022 - Google cloud gnome-terminal कमांड से background operator हटाएँ, राइट क्लिक पर अभी भी क्रैश होता है लेकिन newterm.sh चलाने के बाद स्थिर प्रतीत होता है। October 10, 2022 - Google cloud newterm.sh ठीक करें; उस boot disk को 30G तक विस्तारित करें। September 20, 2022 - लैब मैनुअल में TCP/IP लैब के लिए user id और password नोट करें। August 30, 2022 - container की .profile से DISPLAY सेट करते समय X11 socket नाम का उपयोग करें August 9, 2022 - grader में processValueMax फ़ंक्शन का नाम ठीक करें। Issue #63 August 4, 2022 - labedit प्रोग्राम गलत JDK के साथ पुनर्निर्मित किया गया था, जिससे पुराने JREs labedit चलाने से रोक रहे थे July 18, 2022 - IModules के भीतर Ubuntu20-आधारित containers का निर्माण विफल हो रहा था। Issue #61। March 23, 2022 - tap lock निर्देशिका का पथ ठीक करें; network taps का उपयोग करने वाली लैब की विफलता का कारण बन रहा था - plc-traffic netmon कंप्यूटर को अपडेट करें ताकि java वातावरण में नए grassmarlin के लिए आवश्यक openjfx हो - chown -R से बचकर लैब स्टार्टअप को तेज़ करें, जो docker में बहुत धीमा है। - container /tmp निर्देशिका में X11 लिंक के विलोपन से बचने का एक और प्रयास। - webtrack में देखी गई साइटों की गिनती ठीक करें और live-headers लक्ष्य हटाएँ, वह उपकरण अब उपलब्ध नहीं है। कुछ लैब मैनुअल चरणों को स्पष्ट किया गया। March 2, 2022 - नई ssh-tunnel लैब जोड़ें (धन्यवाद GWD!) - new\_lab\_setup द्वारा सेट किए गए X11 मान को प्रतिबिंबित करने में labedit की विफलता ठीक करें - container को parameterize न करने का विकल्प जोड़ें February 23, 2022 - नए containers जोड़ने के बाद labedit start.config को भ्रष्ट कर रहा था - छात्र README फ़ाइल में student guide का गलत पथ; क्लाउड कॉन्फ़िगरेशन के लिए गतिशील रूप से बदलें - update-labtainer.sh का गलत एक्सटेंशन - Msc guide संवर्द्धन - ghidra लैब को अपडेट करें ताकि Ghidra के संस्करण 10.1.2 को शामिल किया जा सके February 15, 2022 - Azure cloud समर्थन को प्रत्येक छात्र के लिए provision करने के लिए वापस लाएँ। Azure संसाधनों को साझा करने को हतोत्साहित करता है। January 24, 2022 - Azure cloud अब प्रत्येक छात्र के लिए provisioning के बजाय Azure blob में संग्रहीत image का उपयोग करता है। - Google Cloud के लिए समर्थन जोड़ा गया। January 19, 2022 - Azure cloud पर Labtainers शुरू करें। इसका उपयोग कैसे करें इसके विवरण के लिए Student Guide देखें। January 3, 2022 - बेहतर मूल्यांकन जोड़ने के लिए setuid-env लैब को संशोधित करें; simlab परीक्षण और printenv चाइल्ड में sighup से बचें। - assessment goal count निर्देश को ठीक करें ताकि false के result tag मानों को बाहर रखा जा सके। - debug विकल्प के साथ शुरू किए गए grader के साथ gradelab -a का उपयोग करते समय labname की आवश्यकता न रखें। - capinout (stdin/stdout mirroring) को संशोधित करें ताकि कमांड प्रक्रिया चाइल्ड के orphaning को संभाला जा सके, बेहतर दस्तावेज़ीकरण और त्रुटि प्रबंधन। - लैब पहली बार चलने पर खींची जा रही docker images की प्रगति बार का प्रदर्शन जोड़ा गया। - container initialization की प्रगति पर उपयोगकर्ता प्रतिक्रिया। - pcap-lib लैब में स्वचालित मूल्यांकन के लिए आवश्यक notify फ़ाइल गायब थी; Lab Manual से अनावश्यक चरण हटाएँ। November 23, 2021 - test VM पर ubuntu popup त्रुटियाँ अक्षम करें। - विभिन्न DISPLAY चर प्रारूपों का प्रबंधन ठीक करें। October 22, 2021 - tcpip लैब गाइड को संशोधित करें ताकि नोट किया जा सके कि सफल syn-flood हमला संभव नहीं है। इसका स्वचालित मूल्यांकन ठीक करें और SimLab स्क्रिप्ट जोड़ें। - आर्टिफैक्ट फ़ाइल एक्सटेंशन को zip से lab में बदलें, और GUI फ़ाइल प्रबंधकों को भ्रमित करने के लिए एक प्रस्तावना जोड़ें। छात्र zip खोलकर उसका आंतरिक भाग जमा कर रहे थे। - gradelab के लिए -r विकल्प को डिफ़ॉल्ट बनाएँ, grader के संचयी उपयोग के लिए -c विकल्प जोड़ें। - refresh\_mirror को संशोधित करें ताकि DockerHub की बार-बार क्वेरी से बचने के लिए स्थानीय रिलीज़ तिथि का संदर्भ लिया जा सके। ऐसी प्रत्येक क्वेरी एक image pull के रूप में गिनी जाती है, और वे अब उन्हें मुद्रा में बदलने का प्रयास कर रहे हैं। September 30, 2021 - bufoverflow लैब गाइड और ग्रेडिंग को बदलें ताकि ASLR चालू होने पर सफलता की अपेक्षा न हो, मूल्यांकन करें कि यह चलाया गया था या नहीं। - उन मामलों के लिए web grader के लिए त्रुटि प्रबंधन जहाँ छात्र के पास परिणाम नहीं हैं। - deprecated लैब चलने पर चेतावनी प्रिंट करें। - formatstring ग्रेडिंग को बदलें ताकि अप्रयुक्त "\_leaked\_secret" विवरण हटाया जा सके और leaked\_no\_scanf का मान स्पष्ट किया जा सके। - formatstring ग्रेडिंग को भी बदलें ताकि vulnerable executable के लिए कोई भी नाम स्वीकार किया जा सके। September 29, 2021 - Gradelab त्रुटि प्रबंधन, खराब zip फ़ाइलों के कारण क्रैश की घटनाओं को कम करें। - stdout आर्टिफैक्ट फ़ाइलों को 1MB तक सीमित करें September 17, 2021 - Ghidra लैब गाइड में गलत IP पता था, स्रोत से पुनर्निर्मित नहीं किया गया था। September 14, 2021 - SSL का उपयोग करने वाले LDAP और Mariadb के लिए उदाहरण लैब। नई लैब के लिए टेम्पलेट के रूप में इरादा। - Mariadb लॉग प्रारूप संभालें - CPU उपयोग को सीमित करने या container को CPU सेट पर पिन करने के लिए प्रति-container पैरामीटर जोड़ें। - Labpack निर्माण अब GUI (makepackui) के माध्यम से उपलब्ध है। - labtainer, labpack और gradelab कमांड के लिए Tab completion। - MPI का उपयोग करने वाली नई parallel computing लैब ``parallel''। August 3, 2021 - एक "WAIT\_FOR" कॉन्फ़िगरेशन विकल्प जोड़ें ताकि एक container दूसरे container के parameterization पूरा होने तक अपना parameterization विलंबित कर सके। - परिणाम पार्सिंग में Mariadb लॉग प्रारूपों के लिए समर्थन - Mac और Windows के Docker Desktop उपयोग के लिए समर्थन हटाएँ। वह उत्पाद हमारे समर्थन के लिए बहुत अस्थिर है। - जब उपयोगकर्ता "which" जैसे अंतर्निहित bash कमांड का उपयोग करता है तो stderr संदेशों को दबाएँ। - makepack/labpack प्रोग्रामों में बग फिक्स। July 19, 2021 - DNS प्रोटोकॉल और कॉन्फ़िगरेशन शुरू करने के लिए एक DNS लैब जोड़ें। - सही अपडेट स्क्रिप्ट के साथ शुरू करने के लिए VirtualBox appliance image को संशोधित किया गया। - resolv.conf nameserver पैरामीटर को lab\_gw कॉन्फ़िगरेशन फ़ील्ड से अलग करके अपने स्वयं के मान में विभाजित करें। - यदि कोई लैब शुरू होने से पहले चलाया जाए तो IModule कमांड विफल हो जाती थी। July 5, 2021 - DISPLAY env चर प्रबंधन में त्रुटियों ने Docker Desktop पर GUI अनुप्रयोगों को तोड़ दिया। July 1, 2021 - headless Labtainers के Mac पैकेज इंस्टॉलेशन के लिए समर्थन। - treataslocal फ़ाइलों की कमी के कारण routing-basics लैब स्वचालित मूल्यांकन विफल हो गया - routing-basics लैब में टाइपो और गलत पते ठीक करें, और स्वचालित मूल्यांकन ठीक करें। - pcapanalysis का मूल्यांकन विफल हो रहा था। June 10, 2021 - सभी लैब मैनुअल PDFs अब github repo में हैं - vpnlab और vpnlab2 निर्देशों को PDF लैब मैनुअल में बदलें। May 25, 2021 - प्रत्येक लैब में खोजने योग्य कीवर्ड जोड़ें। उपयोग के लिए "labtainer -h" देखें। - routing-basics लैब और लैब मैनुअल का विस्तार करें - routing-basics2 लैब हटाएँ, यह अब अनावश्यक है। - कुछ containers पर sudo विफल हो गया क्योंकि hostnames अंडरस्कोर हटा देते हैं, जिससे hosts फ़ाइल के साथ बेमेल हो जाता है। hosts फ़ाइल में container नाम बिना अंडरस्कोर के अतिरिक्त प्रविष्टि के साथ ठीक करें। - लैब के संग्रह को पैकेज करने के लिए नई Labpack सुविधा, और Labpacks बनाने के लिए makepack उपकरण। - ubuntu20 का उपयोग करते समय /sbin निर्देशिका के लिए त्रुटि जाँच -- चुपचाप घातक होगी। - नई network-basics लैब May 5, 2021 - user/group प्रबंधन शुरू करने के लिए एक नई users लैब शुरू करें - centos container syslogs में Apparmor होस्ट संदेशों को दबाएँ April 28, 2021 - नई base2 images में man pages का अभाव था। बेस image में उन्हें पुनर्स्थापित करने के लिए unminimize का उपयोग किया गया। - एक OSSEC host-based IDS लैब शुरू करें। April 13, 2021 - CyberCIEGE लैब विफल हो गई क्योंकि fixlocal के माध्यम से Wine शुरू करने से पहले X11 socket स्थानांतरित नहीं किया गया था। April 9, 2021 - एक साधारण C++ प्रोग्राम पर GDB का उपयोग करने के लिए नई gdb-cpp ट्यूटोरियल लैब। - Floating point exceptions stdin/stdout mirroring के लिए exec\_wrap.sh के उपयोग को प्रकट कर रहे थे। April 7, 2021 --- [Read more](https://github.com/mfthomps/labtainers)