مقالات

پروژه WebVM – Linux VM را در مرورگر خود انجام دهید (بدون VPS ، بدون سرور) – 51 امنیت


  • نانو / ششم
  • ls -la
  • نمونه های Python3/python3/fibonacci.py
  • GCC -o Helloworld نمونه/c/helloworld.c && ./helloworld
  • objdump -d ./helloworld | کمتر -M
  • نمونه های VIM/C/HellOworld.c
  • curl-max-time 15 parot.live # نیاز به کار شبکه دارد

WebVM از چهار بلوک اصلی ساختمان تشکیل شده است: موتور مجازی سازی تشویق کنندگان ، ذخیره ذخیره مجازی ، یک لایه شبکه و دستگاه گرافیکی شبیه سازی شده.

Cheerpx یک موتور منحصر به فرد مبتنی بر WebAssemply برای مجازی سازی کد باینری X86 باینری است. این موتور مبتنی بر یک کامپایلر زمان دقیق و مؤثر از دستورالعمل های x86 در WebAnsembly ، به علاوه یک لایه شبیه سازی برای تماس های سیستم لینوکس است. این ترکیب به شما امکان می دهد پرونده های باینری اصلاح نشده را در Linux x86 در مرورگر آزاد کنید و برای راه اندازی کل توزیع های لینوکس به اندازه کافی قوی و مقیاس پذیر است.

دومین مؤلفه اصلی WebVM دیسک جریان آن است. یکی از عملکرد اصلی موفقیت WebVM این است که بتوانید توزیع های کامل و بدون اصلاح لینوکس را شروع کنید ، بدون نیاز به بارگیری سیستم کامل پروندهS این حاکی از توانایی حفظ سیستم های فایل ریشه 1 گیگابایتی و بارگیری پویا از بلوک های دیسک تأخیر کم ، نگرانی اساسی برای عملکرد کلی VM است.

سرانجام ، عکس توسط لایه شبکه خصوصی که توسط دم تحقق یافته است به پایان رسیده است و پشتیبانی Xorg با استفاده از KMS Linux API. اطلاعات بیشتر در مورد آنها در بخش های کوتاه تر.

WebVM خود را در GitHub ایجاد کنید

پروژه GitHub WebVM: پروژه ذخیره سازی اصلی با برخی از آخرین تغییرات https://github.com/leaningtech/webvm به روز نشده است. با این حال ، اگر آن را دنبال کنید ، ممکن است در ساخت و بارگذاری صفحات اشتباه کنید.

مخزن کلون شده من و مخزن به روز شده: https://github.com/51sec/webvm

  • من فقط پرونده های استقرار را به روز کردم که می توانند کل فرآیند را بدون خطا انجام دهند.

نسخه ی نمایشی: https://51sec.github.io/webvm/

مراحل اصلی:

1 ذخیره سازی از https://github.com/leaningtech/webvm

2 صفحات GitHub را در تنظیمات فعال کنید.

  • روی کلیک کنید Settingsحرف
  • رفتن به Pages بخش
  • انتخاب کردن Github Actions به عنوان یک منبع
    • اگر از دامنه شخصی استفاده می کنید ، حتماً Enforce HTTPS فعال شده است

3 گردش کار را کامل کنید.

  • روی کلیک کنید Actionsحرف
  • پذیرش سریع این فقط یک بار برای فعال کردن عمل برای چنگال شما لازم است.
  • روی گردش کار مشخص شده کلیک کنید Deployحرف
  • کلیک کردن Run workflow و سپس یک بار دیگر Run workflow در منو

4 در چند ثانیه ، یک فرآیند کار اجرای جدید آغاز می شود ، برای دیدن جزئیات ، روی آن کلیک کنید.

5 پس از اتمام گردش کار ، که چند دقیقه طول می کشد ، URL زیر را نشان می دهد DEPELED_TO_GITHUB_PAGES کار

دستورات لینوکس:

  • دلار گربه /و غیره /OS-RELEASE
  • دلار lsb_release -a
  • دلار میزبان

از دامنه خود برای صفحه GitHub خود استفاده کنید:

اجرای محلی (سرور خود یا VPS)

1 کلون پروژه

  • کلون گیت https://github.com/leaningtech/webvm
  • cd webvm
  • wget https://github.com/leaningtech/webvm/releases/download/ext2_image/debian_large_20230522_504487531.ext2
    • این یکی از مخزن اصلی GitHub است ، رمز عبور حساب SU تنظیم نشده است.
  • https://github.com/johnnynetec/webvm/releases/download/ext2_image/debian_mini_220250206_13186456973.ext2
    • رمز عبور SU به عنوان رمز عبور تنظیم شده است.

3 ویرایش config_github_terminal.js

4 ایجاد WebVM با استفاده از npmخروجی در آن قرار می گیرد build فهرست راهنما

  • apt install npm
  • npm install
  • npm run build

5 nginx را شروع کنید ، به طور خودکار به آن اشاره می کند build دایرکتوری درست شده

  • apt install nginx
  • nginx -p . -c nginx.conf

nginx را در یک پس زمینه قرار دهید تا اجرا شود

apt install screen
screen -S ng
cd webvm
nginx -p . -c nginx.conf
ctrl + A + D (detach from the screen, going back to original session)


Other Screen commands

  • Install screen (Depends on the Linux Distribution if it came pre installed or not) : yum install screen or apt install screen
  • Initiate a Screen : screen or  screen -S
  • Detach from the screen : "CTRL+A,D" not "CTRL+A+D"
  • List all the screen currently working : screen -ls
  • Reattach to a screen : screen -r   or screen -r
  • Kill specific screen: screen -X -S quit
  • Kill all screens : pkill screen
  • Reattach to screen : screen -x -r .

root@instance-webvm:~# screen -x There are several suitable screens on: 64262.ng (02/02/25 23:59:16) (Detached) 63983.pts-1.instance-webvm (02/02/25 23:46:53) (Detached) 18301.nginx (01/28/25 21:11:25) (Attached) Type "screen [-d] -r [pid.]tty.host" to resume one of them. root@instance-webvm:~# screen -x -r 64262.ng

6 بازدید http://127.0.0.1:8081 و از WebVM محلی لذت ببرید

رمز عبور مرجع یک رمز عبور است.

user@:~$ su
Password: password
root@:/home/user# 

Command list:

  • git clone https://github.com/leaningtech/webvm
  • cd webvm
  • wget https://github.com/JohnnyNetsec/webvm/releases/download/ext2_image/debian_mini_20250206_13186456973.ext2
  • nano config_github_terminal.js
  • apt install npm
  • npm install
  • npm run build
  • screen -S nginx
  • nginx -p . -c nginx.conf
  • ctrl+A+D

HTTP را با دامنه سفارشی فعال کنید

شما ممکن است ERRO را بدست آورید “اولیه سازی Cheerleaders شکست خورده است: DataCloneError: انجام” Postmessage “در” کارگر اختصاصی WorklobalScope “انجام نشد: انتقال به اشتراک گذاری ArarrayBuffer نیاز به self.crossoriginisolated دارد.”

+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ده
| |
| WebVM یک محیط مجازی لینوکس است که از طریق WebAssembly در مرورگر کار می کند |
| |
| WebVM از موتور مجازی سازی Cheerleader استفاده می شود ، که اجازه می دهد تا ایمن باشد ، |
| اجرای مشتری Sandboxed از پرونده های باینری x86 ، کاملاً مشتری
| |
| Cheerpx شامل کامپایلر JIT x86 به sebasmbly ، یک بلوک مبتنی بر بلوک مجازی |
| سیستم فایل و شبیه ساز لینوکس Syscall |
| |
| [News] Cheerleader 1.0 رسما آزاد شد! |
| |
| https://cheerpx.io/blog/cx-10 |
| |
| Alpine/Xorg/I3 WebVM جدید را امتحان کنید: https://webvm.io/alpine.html |
| |
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ده
به WebVM خوش آمدید. اگر مطمئن نیستید ، این مثالها را امتحان کنید:
نمونه های Python3/python3/fibonacci.py
GCC -o Helloworld نمونه/c/helloworld.c && ./helloworld
objdump -d ./helloworld | کمتر -M
نمونه های VIM/C/HellOworld.c
curl-max-time 15 parot.live # نیاز به کار شبکه دارد
Cheerpx نتوانست شروع کند
انتظار می رود Cheerpx با آخرین نسخه های دسک تاپ Chrome ، Edge ، Firefox و Safari کار کند
نسخه دسک تاپ / مرورگر دیگر را امتحان کنید!
پیام خطای داخلی Cheerpx:
آغاز اولیه تشویق شکست خورد: DataCloneError: اجرای “Postmessage” در “اختصاصی WorkerGlobalScope” انجام نشد: انتقال SharedArrayBuffer به Self.crossoriginisolited نیاز دارد
حرف

بر اساس سؤالات متداول https://cheerpx.io/docs/faq ،

اگر پیام خطای زیر را ملاقات کردید:

به طور اولیه در مورد Cheerleaders: DataCloneError: SpeedicateWorkerGlobalScope.PostMessage: سایت SharedArrayBuffer نمی تواند سریال شود. برای اجازه دادن به این

این خطا به این دلیل رخ می دهد که cheerpx به SharedArrayBuffer متکی استکه نیاز به جداسازی سایت از مبدأ متقاطع داردS برای فعال کردن جداسازی متقاطع ، اطمینان حاصل کنید که سایت شما از طریق HTTPS سرویس داده می شود و در پاسخ های خود عنوان های زیر را روشن کنید:

ما یک دامنه شخصی را فعال خواهیم کرد و آن را در HTTPS کار می کنیم.

Cloudflare یک ضبط اضافه می کند.

NPM یک میزبان پروکسی جدید با HTTPS فعال شده اضافه کنید.

اکنون باید مطابق شکل زیر کار کند.

شبکه را فعال کنید

مرورگرهای مدرن API را برای استفاده مستقیم از TCP یا UDP ارائه نمی دهند. WebVM با ادغام با Tailscale ، یک شبکه VPN که از WebSockets به عنوان یک لایه حمل و نقل پشتیبانی می کند ، پشتیبانی شبکه را فراهم می کند.

  • پنل شبکه را از نوار کناری باز کنید
  • از پنل “تماس با دم” را کلیک کنید
  • ورود به صف را وارد کنید (اگر یک حساب کاربری ندارید)
  • هنگامی که توسط یک صف خوانده می شود ، روی “اتصال” کلیک کنید
  • اگر با صف آشنا نیستید یا اطلاعات بیشتری می خواهید ، به WebVM و Tailscale مراجعه کنید.

برای رفتن به یک صف ، روی نماد شبکه بی سیم پانل سمت چپ کلیک کنید:

پس از اتصال ، خواهید دید که یک آدرس IP به VM اختصاص داده می شود.

اکنون می توانید انجام دهید

  • curl www.google.ca
  • curl ip.sb
  • curl-max-time 15 parot.live
  • SSH

اما بدون پینگ ، بدون ردیابی

لیست سرورهای SFTP آنلاین رایگان

وب بررسی کردن نام میزبان ورود اظهار
وب بررسی کردن test.rebex.net:22 نسخه ی نمایشی/رمز عبور همچنین از پروتکل های SSH ، FTP/SSL ، FTP ، IMAP ، POP3 و زمان پشتیبانی می کند. فقط بخوانید
وب بررسی کردن itcsubmit.wustl.edu:22 جدید فقط برای آزمون تماس هیچ نام کاربری/رمزعبور عمومی در دسترس نیست.
وب n/a demo.wftserver.com:2222 نسخه ی نمایشی/تظاهرات همچنین از FTP/SSL و FTP پشتیبانی می کند.

ssh itcsubmit.wustl.edu

تظاهرات آنلاین سرور FTP بال

ما یک سرور نمایشی آنلاین ایجاد می کنیم تا ویژگی های جدید موجود در سرور Wing FTP را کشف کنیم. شما می توانید هر دو مدیریت مبتنی بر وب و یک مشتری مبتنی بر وب را کشف کنید.

اداره ایمن وب مبتنی بر وب:

مشتری ایمن مبتنی بر وب:

با مشتری FTP ، FTPS ، SFTP با مشتری خود وارد شوید:

  • مکان: demo.wftserver.com
  • نام کاربری: تظاهرات
  • رمز عبور: تظاهرات
  • درگاه FTP: 21
  • درگاه FTPS: 990
  • درگاه SFTP: 2222

اظهار: همه حساب های نسخه ی نمایشی فقط حساب های خواندن هستند ، بنابراین شما نمی توانید تنظیمات سرور را تغییر دهید.

نسخه رایگان GCP

مورد نیاز برای محاسبه موتور رایگان

  • 1 بی سابقه e2-micro نسخه VM در هر ماه در یکی از مناطق زیر ایالات متحده:
    • اورگان: us-west1
    • آیووا: us-central1
    • کارولینای جنوبی: us-east1
  • دیسک دائمی استاندارد 30 گیگابایتی
  • 1 گیگابایت انتقال داده های خروجی از آمریکای شمالی به کلیه مقصد های منطقه (به استثنای چین و استرالیا) در هر ماه

فایل تصویری خود را بسازید

به عنوان مثال ، بیایید از پرونده debian_mini به عنوان کپی استفاده کنیم.

FROM --platform=i386 i386/debian:buster
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get clean && apt-get update && apt-get -y upgrade
RUN apt-get -y install apt-utils gcc \
python3 vim unzip ruby nodejs \
fakeroot dbus base whiptail hexedit \
patch wamerican ucf manpages \
file luajit make lua50 dialog curl \
less cowsay netcat-openbsd
RUN useradd -m user && echo "user:password" | chpasswd
COPY --chown=user:user ./examples /home/user/examples
RUN chmod -R +x /home/user/examples/lua
# We set WORKDIR, as this gets extracted by Webvm to be used as the cwd. This is optional.
WORKDIR /home/user/
# We set env, as this gets extracted by Webvm. This is optional.
ENV HOME="/home/user" TERM="xterm" USER="user" SHELL="/bin/bash" EDITOR="vim" LANG="en_US.UTF-8" LC_ALL="C"
RUN echo 'root:password' | chpasswd
CMD [ "/bin/bash" ]

لیست دستورات:

  • git کلون https://github.com/leaningtech/webvm
  • cd webvm
  • MV Dockerfiles/debian_mini dockerfile
  • docker build -t mywebvm.
root@instance-webvm:~/webvm# mv dockerfiles/debian_mini Dockerfile
root@instance-webvm:~/webvm# docker build -t mywebvm .
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

Sending build context to Docker daemon  3.584kB
Step 1/11 : FROM --platform=i386 i386/debian:buster
buster: Pulling from i386/debian

دسک تاپ WebVM

https://webvm.io/alpine.html

ابتدا با Tail Net تماس بگیرید. لطفاً اطمینان حاصل کنید که خروجی پیکربندی شده دارید.

  • https://youtu.be/lhybu3y_0rs

شلیک – ترمینال – SU

رمز عبور یک رمز عبور است

سیاه پوست من متن مرورگر وب. حال ، بیایید آن را نصب کنیم. مرورگرهای دیگر برای این VM کوچک بسیار سنگین هستند.

به روزرسانی APK

APK سیاهگوش اضافه کرد

Lynx www.google.ca

به دلیل محدودیت منابع ، Firefox را می توان با موفقیت در لینوکس نصب کرد اما قادر به شروع نیست.

فیلم

https://www.youtube.com/watch؟v=-tv9jupyl8a

ادبیات

  • https://the-walking-fish.com/p/webvm/
  • https://www.youtube.com/watch؟v=jtknhxoxx0
  • https://sredevops.org/en/how- to-run-a-linux-desktop-in-your-wrowser-webvm-2-0-webssembly-is- پاسخ/
  • https://www.youtube.com/watch؟v=tgjqmfxw1jo


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا