
वेबअसेंबली के माध्यम से ब्राउज़र में चलने वाली क्लाइंट-साइड लिनक्स वर्चुअल मशीन, जिसमें टेलस्केल नेटवर्किंग, डॉकरफ़ाइल-आधारित कस्टम इमेज और सुरक्षा शिक्षा और विकास के लिए CTF चैलेंज समर्थन शामिल है।
यह रिपॉजिटरी https://webvm.io का स्रोत कोड रखती है, जो आपके ब्राउज़र में चलने वाला एक लिनक्स वर्चुअल मशीन है।
नए Alpine / Xorg / i3 ग्राफिकल वातावरण को आज़माएँ: https://webvm.io/alpine.html
WebVM एक सर्वर-रहित वर्चुअल वातावरण है जो पूरी तरह से क्लाइंट-साइड HTML5/WebAssembly में चलता है। इसे Linux ABI-संगत होने के लिए डिज़ाइन किया गया है और यह एक असंशोधित Debian वितरण चलाता है जिसमें कई मूल डेवलपमेंट टूलचेन शामिल हैं।
WebVM CheerpX वर्चुअलाइजेशन इंजन द्वारा संचालित है, जो प्रदान करता है:
[!NOTE] https://webvm.io पर जाएँ और अपने ब्राउज़र में तुरंत शुरू करें। किसी सेटअप की आवश्यकता नहीं है।
स्थानीय सेटअप, कस्टम इमेज बिल्ड, और फोर्क/डिप्लॉय मार्गदर्शन के लिए, डेवलपमेंट और अनुकूलन देखें।
WebVM Tailscale एकीकरण का समर्थन करता है। तो आपका ब्राउज़र VM आपके निजी नेटवर्क तक पहुँच सकता है और, एक एग्ज़िट नोड के साथ, सार्वजनिक इंटरनेट भी।
[!NOTE] कुछ निम्न-स्तरीय नेटवर्किंग ऑपरेशन (विशेष रूप से
pingद्वारा उपयोग किया जाने वाला ICMP) इस वातावरण में वर्तमान में उपलब्ध नहीं हैं। कनेक्टिविटी जाँच के लिए,curlयाwgetका उपयोग करें।
WebVM के पास अब आपके Tailscale नेटवर्क की सभी मशीनों तक पहुँच है!
[!TIP] धीमे कनेक्शन पर प्रारंभ होने में थोड़ी देरी हो सकती है। कनेक्शन की स्थिति बटन पर एक रंगीन बिंदु के रूप में दिखाई जाती है: नारंगी = स्थानीय नेटवर्क, हरा = वैश्विक/इंटरनेट। कनेक्ट होने पर बटन का टेक्स्ट आपका Tailscale IP पता दिखाता है।
WebVM से सार्वजनिक इंटरनेट तक पहुँचने के लिए, अपने Tailscale नेटवर्क में किसी अन्य डिवाइस पर एक एग्ज़िट नोड सेट करें:
इंटरैक्टिव लॉगिन के विकल्प के रूप में, अपनी Tailscale प्रमाणीकरण कुंजी को URL खंड में जोड़ें:
https://webvm.io/#authKey=<your-ephemeral-key>
यह Tailscale के --login-server विकल्प के समतुल्य है।
[!TIP] यदि आपको एक कस्टम कंट्रोल सर्वर की भी आवश्यकता है, तो उसी URL खंड में
controlUrlजोड़ें और मानों को&से अलग करें, उदाहरण:#authKey=...&controlUrl=...।
हम headscale का भी समर्थन करते हैं, जो Tailscale कंट्रोल सर्वर का एक स्व-होस्टेड ओपन सोर्स कार्यान्वयन है। क्योंकि Headscale डिफ़ॉल्ट रूप से CORS हेडर नहीं जोड़ता है, आपको इसके सामने एक प्रॉक्सी की आवश्यकता होगी। उदाहरण के लिए Headscale रिवर्स प्रॉक्सी सेटअप दस्तावेज़ देखें।
तैयार होने के बाद, अपनी nginx कॉन्फ़िग फ़ाइल में location / ब्लॉक में निम्नलिखित पंक्ति जोड़ें।
if ($http_origin = "https://yourdomain.com") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
फिर WebVM तक पहुँचने के लिए:
https://yourdomain.com/#controlUrl=<your-headscale-url>
[!NOTE] उपयोगकर्ताओं के पास डिफ़ॉल्ट रूप से रूट विशेषाधिकार हैं।
sudoस्थापित नहीं है, हालांकि आवश्यकता होने पर इसे Dockerfile में आसानी से जोड़ा जा सकता है।
यह एक सरल, शुरुआती-अनुकूल वर्कफ़्लो है। स्थानीय होस्टिंग और अनुकूलन के लिए, नीचे स्थानीय सर्विंग और इमेज कॉन्फ़िगरेशन देखें।
अपना स्वयं का संस्करण GitHub Pages पर डिप्लॉय करने के लिए WebVM रिपॉजिटरी को फोर्क करें:
Deploy वर्कफ़्लो चलाएँ एक्शन सेdeploy_to_github_pages जॉब के अंतर्गत दिखाए गए URL को खोलें
वही Deploy वर्कफ़्लो Dockerfile से कस्टम .ext2 डिस्क इमेज भी बनाता है। आप इसे dockerfiles/debian_mini या किसी अन्य Dockerfile पर इंगित कर सकते हैं, फिर परिणाम को GitHub Release एसेट के रूप में प्रकाशित करें या अपने फोर्क से Pages बिल्ड डिप्लॉय करें।
[!NOTE]
dockerfiles/debian_largeGitHub पेजों के लिए बहुत बड़ी इमेज है।
git clone https://github.com/leaningtech/webvm.git
cd webvm
custom-disk-images/ में रखेंइस रिपॉजिटरी में स्थानीय .ext2 फ़ाइलों के लिए एक स्थायी custom-disk-images/ निर्देशिका शामिल है।
आधिकारिक Debian mini इमेज का उपयोग करने के लिए, इसे रिलीज़ से डाउनलोड करें:
debian_mini_20230519_5022088024.ext2
आप स्वयं द्वारा बनाई गई इमेज को भी कॉपी कर सकते हैं।
config_public_terminal.js संपादित करें:
export const diskImageUrl =
"/custom-disk-images/debian_mini_20230519_5022088024.ext2";
export const diskImageType = "bytes";
npm install
npm run build
nginx -p . -c nginx.conf
फिर http://127.0.0.1:8081 खोलें और अपने स्थानीय WebVM का आनंद लें!
पूर्ण Alpine डेस्कटॉप वातावरण के लिए, leaningtech/alpine-image देखें।
अधिक विवरण के लिए, CheerpX कस्टम इमेज दस्तावेज़ीकरण देखें।
[!TIP] Python3 REPL के लिए,
Deployवर्कफ़्लो Dockerfile में निर्दिष्टCMDको ध्यान में रखता है।REPL बनाने के लिए आप बस
CMD [ "/bin/bash" ]कोCMD [ "/usr/bin/python3" ]में बदल सकते हैं और डिप्लॉय कर सकते हैं।
Claude AI तक पहुँचने के लिए, आपको एक API कुंजी की आवश्यकता है। आरंभ करने के लिए इन चरणों का पालन करें:
"/home/user/chall1.bin पर CTF चुनौती हल करें। ध्यान दें कि बाइनरी stdin से पढ़ता है।"
महत्वपूर्ण: आपकी API कुंजी निजी है और इसे कभी साझा नहीं किया जाना चाहिए। हमारे पास आपकी कुंजी तक पहुँच नहीं है, यह केवल आपके ब्राउज़र में स्थानीय रूप से संग्रहीत की जाती है।
समस्याएँ रिपोर्ट करें: बग रिपोर्ट करने या सुविधाओं का अनुरोध करने के लिए GitHub Issues का उपयोग करें।
हमसे चैट करें: WebVM पर चर्चा करने, विचार साझा करने और सहायता प्राप्त करने के लिए हमारे Discord समुदाय में शामिल हों।
लेख और संसाधन:
उदाहरण डिप्लॉयमेंट:
WebVM के पीछे की तकनीक:
यह प्रोजेक्ट इनके द्वारा संचालित है:
संस्करण निर्धारण:
WebVM CheerpX NPM पैकेज का उपयोग करता है, जो प्रत्येक रिलीज़ पर अपडेट किया जाता है।
प्रत्येक बिल्ड अपरिवर्तनीय है। यदि कोई विशिष्ट संस्करण आज आपके लिए अच्छा काम करता है, तो वह हमेशा काम करता रहेगा।
WebVM Apache लाइसेंस, संस्करण 2.0 के तहत जारी किया गया है।
आप इस रिपॉजिटरी की सामग्री का उपयोग, संशोधन और पुनर्वितरण करने के लिए स्वागत है।
सार्वजनिक CheerpX डिप्लॉयमेंट जैसा है प्रदान किया गया है और व्यक्तियों द्वारा तकनीकी अन्वेषण, परीक्षण और उपयोग के लिए उपयोग करने के लिए मुफ्त है। गैर-लाभकारी, अकादमिक और सार्वजनिक क्षेत्र सहित संगठनों द्वारा कोई अन्य उपयोग लाइसेंस की आवश्यकता है। वाणिज्यिक लाइसेंस के बिना कहीं और होस्ट करने के उद्देश्य से CheerpX बिल्ड डाउनलोड करने की अनुमति नहीं है।
हमारी लाइसेंसिंग प्रथाओं के बारे में यहाँ और पढ़ें।
यदि आप CheerpX/WebVM के शीर्ष पर एक उत्पाद बनाना चाहते हैं, तो कृपया हमारे अन्य लाइसेंसिंग विकल्प देखें: CheerpX लाइसेंसिंग या संपर्क करें: [email protected]