Bit Orbit 🪐 – Telegram
Bit Orbit 🪐
371 subscribers
99 photos
10 videos
45 files
297 links
Talking about world of bit and bytes.
Download Telegram
یک نوع حمله DDOS وجود داره که بهش میگن DNS amplify
خیلی روش جالبیه، روش کارش اینه که شما می‌تونی یک کوئری DNS به یک سرور DNS بزنی ولی source ip رو دستکاری کنی و سیستم خودت قرار ندی
اینطوری یک ریکوئست میره به سمت سرور ولی جوابش برای یک هدف دیگه‌ای میره.
و خودت هیچ درگیری این وسط نداری، حالا شما اینجا می‌تونی از بات‌نت هم استاده کنی و کاری کنی ملیون ها سیستم این ریکوئست ها رو به DNS سرور بزنند.
حمله جالبیه.



https://www.cloudflare.com/learning/ddos/dns-amplification-ddos-attack/
6👍1
این بلاگ پست خیلی جالبه، یکی اومده از DNS بعنوان file storage استفاده می‌کنه.
حالا چطوری؟ همینطور که می‌دونید dns به جز اینکه می‌تونه ip ها رو پشت دامنه نگه‌داری کنه
می‌تونه رکورد های دیگه هم داشته باشه، مثلا رکورد mx که برای mail exchange هست
یا رکورد AAAA برای IPV6 یا مثلا PTR که برعکس عمل می‌کنه
یعنی ip رو به دامنه تبدیل می‌کنه!

یکی از این رکورد ها که توی این مورد استفاده شده رکورد TXT هست. ولی خب ذخیره یک دیتا روی رکورد txt محدودیت خیلی زیادی داره
چون بیشتر از 255 کاراکتر نمی‌تونید توی این رکورد ذخیره کنید
از طرف دیگه هم بیشتر از 9 رکورد txt روی یک دامنه بیشتر نمی‌تونید داشته باشید، پس دیتای زیادی رو نمیشه ذخیره کرد.

ولی طوری که عمل می‌کنه، به این شکل هست که یک ریکوئست می‌زنه به سمت یک resolver مثلا 1.1.1.1 بعد ازش می‌خاد که بگه رکورد های txt مثلا ساب دامنه fli.example.com چیه
بعد که ریزالور جوابشو نداشت، مجبوره بره جواب رو بدست بیاره و کش کنه، جواب رو از NS سرور می‌پرسه که توی این مورد خود ما باید باشیم،
حالا به اندازه 9 چانک از دیتا روی کش ذخیره شده
برای اینکه مطمئن باشیم که دیتای ما سر جاش می‌مونه باید رپلیکا کنیم و از چندین ریزالور استفاده کنیم که دیتای ما رو ذخیره کنند.

بعد حالا چانک های دیگه هم باید روی ریزالور های دیگه ست بشن، پس این روند رو تا آخر همه چانک های فایل ادامه می‌دیم.


محدودیت اینه که ما بیشتر از 250 مگابایت نمی‌تونیم ذخیره کنیم، چون تعداد ریزاور ها 438 هزار تاست. و اینکه نهایتا کش تا یک روز دیتا رو ذخیره می‌کنه.
👏2👍1
👍2
برای نوشتن یه بات تلگرام که به ازای هر دستور یه متن یا فایل خاصی ارسال کنه
همیشه کدی که می‌زدم از یه مشت if و else تو در تو،
دیشب گفتم خب چکاریه؟ کارای تکراری رو دیگه اینطوری نکنم!
یه کد زدم که yaml از شما می‌گیره
و به ازای هر دستور شما می‌تونید متن، عکس، ویدیو یا وویس مشخص کنید
هر تایم کاربر دستور رو داخل تلگرام وارد کرد، مقدار هایی که تایین کردین براشون ارسال میشه
اینطوری می‌تونید بی‌نهایت دستور داشته باشید.
کد رو هم نیاز نیست تغییر بدین برای اضافه کردن دستور جدید، کافیه کانفیگ رو عوض کنید!

https://github.com/shabane/commodore
1
Bit Orbit 🪐
برای نوشتن یه بات تلگرام که به ازای هر دستور یه متن یا فایل خاصی ارسال کنه همیشه کدی که می‌زدم از یه مشت if و else تو در تو، دیشب گفتم خب چکاریه؟ کارای تکراری رو دیگه اینطوری نکنم! یه کد زدم که yaml از شما می‌گیره و به ازای هر دستور شما می‌تونید متن، عکس،…
این کد رو داکرایز هم کردم الان، می‌تونید با یه کامند رانش کنید،
بعد یه کار جالبی که کردم اینه که اگه فایل prompts.yaml رو هر زمانی تغییر بدین
نیاز نیست که کانتینر رو ریست کنید، خود برنامه فایل رو reLoad می‌کنه.

docker run -d -v ./prompts.yaml:/code/prompts.yaml -v ./assets:/code/assets -e API_KEY='<API_KEY>' mshabane/commodore:1.0.0
👏1
توی ورژن قبلی اگه کامند یا پیام اشتباه ارسال می‌شد، بات یک متن از env می‌گرفت و ارسال می‌کرد.

توی ورژن جدید الان دایرکتیو کاملا مجزا برای پیام های اشتباهی داریم که همه چیز ارسال می‌کنه

ضمن اینکه الان تازه می‌تونید بات رو به اکانت پریمیوم وصل کنید و خودکار جواب پیام هاتون رو بده!
3
Bit Orbit 🪐
به بخش راک دارم بیشتر از 300 آهنگ اضافه می‌کنم :) یادمون باشه همه این روند، درواقع از دانلود آهنگ تا کانورت به فرمت مناسب برای وب تا نگه‌داری موزیک ها و حتی خود سایت روی گیتهاب داره انجام میشه و هیچ سرور که از خودم باشه درگیر نیست! گیتهاب ازم شکایت نکنه…
به radio دو ایستگاه دیگه هم اضافه کردم
یکی به اسم jazz و یکی دیگه هم به اسم خواننده محبوب گذشته‌ام Leonard Cohen.
نظرتون چیه یه فورک از این ریپو بگیرید و وصلش کنید به بات تلگرام تا استیشن خودتون رو داشته باشید؟
هنوز سبک و خواننده های زیادی هستن که اینجا جاشون کمه، جدا از اینها
یه پلی لیست موزیک برای برنامه نویسی هم جای خالی بزرگی داره اینجا.
4
یه سیستم عامل داریم به اسم batocera.

این سیستم عامل برای کنسول های قدیمی مثل sega, atari, nintendo و کلی دیگه از کنسول ها emulator هاشون رو کانفیگ کرده و داخل سیستم عامل قرار داده، بعد برای ما کافیه که batocera رو روی یک فلش بوت کنیم و وصل کنیم به لپتاپ و تمام، می‌تونیم کلی بازی های ارکید قدیمی رو بازی کنیم. فقط یه مشکلی هست! اینکه خود این سیستم عامل بازی های زیادی رو داخل خودش نداره، پس راهکار اینکه که بریم و دانلود کنیم و داخلش قرار بدیم. البته یک گزینه هم برای سرچ و دانلود بازی هم داره که بعضی از بازی هاش بعد از دانلود برای من کار نکرد.

بعد یکی batocera رو گرفته و 128,000 بازی رو روش نصب کرده و اسمشو گذاشته wolfazone این امیج خودش 128 گیگه! و مشکلش اینه که فقط برای پردازنده های arm اینکارو کرده و نسخه x86 batocera رو استفاده نکرده، میشه روی رزبری رانش کرد ولی خب خرید رزبری اصلا منطقی نیست برای اینکار.

من این ایمیج رو با تورنت دانلود کردم، بعد بعنوان loop device ماونتش کردم و رفتم چند گیگ از رام هاشو کپی کردم روی batocera خودم، به خوبی کار کرد :) هر بازی رو باز کردم بدون مشکل باز شد!
🔥51
archivemount


یه ابزار خیلی باحاله که میشه باهاش یک فایل ارچیو مثل tar رو روی یک دایرکتوری ماونت کرد.
من همیشه وقتی یه چیزی رو tar می‌کنم از فلگ lzma-- استفاده می‌کنم که فایل به بیشترین حد ممکن فشرده بشه.
جالبی این ابزار اینکه که فشرده سازی رو هم ساپورت می‌کنه، و هر تغییری که روی دایرکتوری ماونت شده بدین، توی فایل ارچیو اصلی هم انجام میشه.
🔥3
Bit Orbit 🪐
archivemount یه ابزار خیلی باحاله که میشه باهاش یک فایل ارچیو مثل tar رو روی یک دایرکتوری ماونت کرد. من همیشه وقتی یه چیزی رو tar می‌کنم از فلگ lzma-- استفاده می‌کنم که فایل به بیشترین حد ممکن فشرده بشه. جالبی این ابزار اینکه که فشرده سازی رو هم ساپورت می‌کنه،…
از خوبی های arch اینه که مجبور میشی برای یه کار ساده کلی چیز بخونی در عوض کلی هم چیز یاد می‌گیری.
یه ابزاری داریم(البته یه ماژول توی کرنل لینوکس) که اجازه می‌ده هر کسی یک فایل سیستم برای خودش بسازه بدون اینکه کد های خود کرنل رو تغییری بده، اسم این ابزار fuse هست.
و خب کلی فایل سیستم بر اساس fuse درست شده تا الان که خیلی جالبن واقعا، مثلا یکی دیگه که قبلا درموردش توی بلاگم نوشتم sshfs هست که میشه باهاش یک فایل سیستم که
روی یک سرور هست روی یک جای دیگه‌ای ماونت کرد

لیست بعضی از این فایل سیستم ها رو از اینجا میشه پیدا کرد
🔥5
یک اروری کلی از تایم منو گرفت تا درست بشه امشب این بود request_uri$

حالا این یعنی چی؟
ما معمولا روی یک سرور کلی وب سرویس مختلف میاریم بالا
همه رو روی پورت های رندوم لوکال ران می‌کنیم
و بعد با nginx ست می‌کنیم که اگه کسی به پورت 443 در خواست داد
ببین به چه دامنه‌ای درخواست داده، و درخواست به اون دامنه رو بفرست به لوکال خودت روی پورتی که مشخص شده برای اون دامنه.

مثلا روی یک سرور من یک next cloud دارم و یه n8n
هر دوی این هم روی پورت 443 باید باشه، ولی همزمان یک برنامه فقط می‌تونه روی این پورت ها شنود کنه،
اینجاست که nginx میاد جلوی این دو و خود این ها هم روی پورت های دیگه فعال میشن.
بعد وقتی وارد دامنه next.exampel.com بشم، nginx بخاطر دامنه خودش می‌دونه که به کدوم پورت ریکوئست ارسال کنه.

حالا مشکل من اینجا بود که خب وقتی ریکوئست ارسال میشه به اون پورت، بقیه مسیر ارسال نمی‌شه، مثلا اگه به example.com/some/path ریکوئست بفرستم، اون مقدار /some/path از سمت nginx ارسال نمیشه، مگه این‌که مشخص کنم،
حالا برای اینکار میایم و از uri$ استفاده می‌کنیم که هر مسیری کاربر داده بود هم ارسال بشه از طریق nginx
ولی این یه مشکل دیگه داشت، اینکه http parameter رو ارسال نمی‌کرد، برای اینکار فقط کافی بود بجای uri$ از request_uri$ استفاده کنم.

http parameter میشه مثلا این:
example.com/some/p/?key=value

می‌تونید درباره nginx proxy pass بیشتر بخونید.
احساس می‌کنم hack the box حل کردم.
توی لینوکس فست گفتن هرکی این سکرت رو پیدا کنه جایزه داره، الان پیداش کردم. جایزه یه بستنیه :)
شانس، منم سرما خوردم. عالی
👍2
Bit Orbit 🪐
https://dev.to/sibyx/migrating-data-between-two-online-minio-instances-53ia
بذارید براتون بگم.
وقتی آموزش برنامه نویسی میدن، همیشه میان فایل های که از سمت کلاینت میاد رو داخل سروری که کد اجرا شده می‌ریزن، ولی توی برنامه های واقعی این راه اصلا درست نیست.

دلایل زیادیم داره. مثلا چند سرویس مختلف که روی سرور های مجزایی هستند نیازه با این فایل ها کار کنند‌.(شاید بگین خب NAS استفاده می‌کنیم، درسته ولی راه بهتر هم هست)

توی دنیای واقعی از Object Storage استفاده می‌شه. مثلا minIO، که API بهت میده توی کدت کال می‌کنی و اپریشین های مختلف روی فایل ها انجام میدی.

اینجا این پست داره توضیح میده چقدر با minIo فرایند میرور کردن کل دیتا ساده‌ست و براش ابزار هست.
👍3
Xu A. System Design Interview. An Insider_s Guide 2ed 2020.pdf
22 MB
شروع کنیم به خوندن این کتاب، بنظرم که کتاب خوبیه برای یه DevOps
4