نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
ارسالی:
برای ساخت cron tab می‌تونید از این سایت استفاده کنید:
https://crontab.guru/
همچنین یکسری مثال هم اینجا داره:
https://crontab.guru/examples.html
1
سوال که می‌خوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟

اگر وقت ندارید:
+ ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل
+ ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه
+ اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه


۱- اگر فرض کنیم زیرساخت اینترنت سرجاشه و پکت‌ها به مقصد خودشون می‌رسن، ممکنه که یک نهاد سرویس های مهم دنیای اینترنت رو مجبور کنه که خدمت ندن. مثلا دولت آمریکا می‌تونه گوگل و cloudflare و aws رو مجبور کنه که کلا خدمت ندن. اگر در مورد اهمیت cloudflare و aws نمی‌دونید، به طور خلاصه اولی باعث می‌شه سروری که می‌خواید رو پیدا کنید و دومی جاییه که سروره توش قرار داره. پس اینطوری «تجربه ما از اینترنت» دچار مشکل میشه. در واقع اینطوری یکسری سایت‌ها بالا میان مثلا soft98.ir احتمالا باز میشه بدون مشکل ولی گوگل و اسپاتیفای و ... احتمالا باز نمیشن.
البته من نمی‌دونم شرکت‌ها زیر بار این سرویس‌ ندادن زوری برن یا نه، داستان‌های قانونی داره، ولی مثل قضیه‌ی تحریم‌های ایران بهش فکر کنید.

۲- اگر فرض کنیم که زیرساخت بخواد دچار مشکل بشه، در بدترین حالت یه کشور می‌تونه کل مرز‌های اینترنتیش رو ببنده، در نتیجه سرورهاییش که داخل کشوره از بیرون قابل دیدن نیستند. مثلا سرور گوگل اگر داخل کشور ایالات متحده باشه، برای ما قابل دیدن و دسترسی نیست. اما سرویس‌های بزرگ از قبل سرور‌هاشون رو در سراسر جهان پخش کردن برای افزایش کیفیت دسترسی کاربران جهان.
حالا اینکه یک برنامه‌ که سرورهای اجرا کننده ش سراسر جهان هستن، با نبودن یکسری از سرورها چطوری کنار میاد رو ما نمی‌دونیم ولی قاعدتا انتظار میره چون بخش بزرگیش هنوز در دسترس هست به شکل مناسب کار کنه.
ضمنا اینکه زیرساخت اینترنت طوری چیده شده باشه که قابلیت بستن مرزها رو داشته باشه هم نیاز به ماه‌ها تلاش داره و در واقع باید از قبل آماده این شده باشن. عبارتی که تو ایران براش استفاده می‌شد «شبکه ملی اطلاعات» بود که مرزهای اینترنتی رو دقیق می‌کرد. البته این مزیتی که داره اینه که ارتباطات داخل به داخل سریع‌تر و با کیفیت بهتر انجام می‌شه پس همه جای دنیا توجیه داره انجام دادنش.

۳- یکسری خدمات وجود داره که توسط سازمان های غیرانتفاعی داده می‌شه که برای کارکرد اینترنت بهش احتیاج داریم، مثلا تخصیص ip و تخصیص domain name ها (توسط ICANN). این سازمان توی آمریکا بوده از بدو تاسیس ولی از سال ۲۰۱۶ آمریکا گفته کنترلی روش ندارم و حتی مجمعشون توی سال ۲۰۱۴ هم توی برزیل برگزار شده.

اگرچه احتمالش کمه ولی حالا در صورتی که اینا از کار بیفتن، برای کوتاه مدت دچار مشکل می‌شیم ولی جایگزین‌هایی هم دارن که اگرچه الان «به رسمیت شناخته نمی‌شن» ولی با از کار افتادن اینا، به زودی اونا جایگزین می‌شن. (Alternative DNS root)

اگه خواستید بیشتر بخونید کلمه‌ای که باید دنبالش بگردید internet shutdown و internet governance هست.

منابع:
https://en.wikipedia.org/wiki/Internet_governance
https://arstechnica.com/tech-policy/2014/03/in-sudden-announcement-us-to-give-up-control-of-dns-root-zone/
https://en.wikipedia.org/wiki/Alternative_DNS_root


تو این مطلب برادرم البرز هم بهم هم‌فکری داد.
👍91
نوشته‌های ترمینالی
سوال که می‌خوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟ اگر وقت ندارید: + ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل + ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه + اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه…
اگه بخوام یه مقدار فنی تر در مورد ICANN توضیح بدم، طبق چیزی که خوندم این موارد رو می‌تونم بگم:

در مورد ICANN: سازمانی جهانی به اسم ICANN وجود داره. کارش اینه که top level domain ها رو تخصیص بده به کسایی که می‌خوان. حالا این تخصیص دادن چطوریه؟ می‌شه اینطوری گفت که یه دفتری هست که داخلش یادداشت می‌شه top level domain دست کیه و این دست ICANN هست. اما خب این دفتر تو زندگی ما چه تاثیری داره؟ جواب تو DNS record هاست.

در مورد DNS: زمانی که «آدرس» یک سایت رو وارد مرورگر می‌کنیم، این آدرس (یا در واقع URL) به تنهایی برای رسیدن به سروری که سایت روی اون قرار داره کافی نیست، بلکه ما لازم داریم ip اون سرور رو داشته باشیم. حالا یکسری Domain Name Server هستن که به ما امکان تبدیل URL به IP رو میدن. (به این خدمت هم میگن Domain Name Service یا DNS). در واقع یکسری سرور هستن که توشون یه Map از اسم سایت به ادرس ip اون سایت هست.

البته قضیه به این سادگی نیست. آدرس یک سایت یک سلسله‌مراتبی داره که بالاترین قسمت سلسله‌مراتب، تیکه آخر آدرسه. یعنی چی؟ مثلا www.soft98.ir رو در نظر بگیرید. آدرس از چند تا کلمه تشکیل شده که با نقطه به هم وصل شدن. آخرین اسم می‌شه top level domain (یا TLD). اینها یکسریشون مال کشور‌ها هستن به اسم country code TLD و یکسری هم عمومی هستند (generic TLD). لیستشون رو اینجا و اینجا می‌تونید ببینید.

قسمت بعدی سلسله مراتب domain name میشه مثلا soft98. برای خرید soft98 هم رفتن پیش یکی که کنترل دامنه‌های ir رو داره (به اسم irnic تو ایران) و ازش این دامنه رو برای مدتی *اجاره* کردن. قسمت آخر هم میشه sub-domain مثل www که خیلی اهمیتی نداره اینجا برامون.

حالا خدمت DNS هم متناسب با این سلسله مراتب صورت می‌گیره. یعنی شما وقتی دنبال آدرس www.soft98.ir می‌گردی، باید اول بری دنبال کسی که «همه چیو می‌دونه» بعد اون میگه من همه چیو نمی‌دونم، برو پیش کسی که همه چی در مورد ir ها رو می‌دونه و به همین ترتیب می‌رسی به کسی که «ip اون url رو می‌دونه».

کسی که همه چی رو می‌دونه اسمش هست root dns server. پس اگه می‌زنیم soft98.ir، اول درخواستمون میره به یکی از root dns server ها، و اون خودش ادرس soft98.ir رو نداره ولی میگه .ir ها رو فلانی می دونه. بعد می‌ریم پیش .ir dns server که اون باز خودش نمیدونه، بلکه میگه میدونم همیشه آدرس soft98.ir رو این dns server داره. پس ما میریم سراغ اون dns server و پیدا میشه.
البته برای اینکه این روال اینقدر کند نباشه یه سری cache هم وجود داره که اون بحث دیگریست.

در مورد root DNS server: اصطلاحا گفته می‌شه که ۱۳ تا ip وجود داره که مربوط به ۱۳ تا کامپیوتر تو سراسر جهان. اما در واقع این ۱۳ تا ایپی بین تعداد زیادی سرور (حدود ۶۰۰ تا) share شده. اینکه چطوری یه ip بین سیستم‌ها share میشه هم با anycast ممکنه و جزئیات فنی داره. جالبه بدونید ۳ تا از اینا هم توی تهران هستند.
حالا ICANN یکی از این ۱۳ تا ip رو مدیریت میکنه. اما ۱۲ تای دیگه‌ش رو داده به سازمان های مختلف مثل ناسا و versign و ... مدیریت می‌کنن اما نهایتا اطلاعات یکسانی دارن.
اگر یکی از این ۶۰۰ تا سرور داون بشه چی میشه؟ اگرچه که بعیده ولی هیچ اتفاق بدی نمی‌افته. یه سرور دیگه که با همون ip خدمات میده کار اونی که داون شده رو هم انجام می‌ده.
اگر یکی از ip ها نابود بشه چی میشه؟ اینم خیلی بعیده. اصولا ip نابود نمیشه ولی فرض کنیم یکی از سازمان‌ها کلا خاموش کنه همه سرورها رو. باز مشکلی ایجاد نمی‌شه. نکته اینه که توی نرم‌افزار‌های dns resolver (یعنی کسایی که از dns خدمت می‌گیرن) ادرس این ۱۳ تا (یا حداقل دو تاش) وجود داره پس از یه ای پی دیگه سرویس می‌گیریم.

در مورد cache: واقعیت اینه که سیستم ما به ندرت ممکنه این روالی که گفتم رو پیمایش کنه و در واقع ما از یک خدمت گیرنده میانی استفاده می‌کنیم. قضیه به این شکله که یک سری dns cache وجود دارن که آدم‌ها و سازمان‌ها و کشور‌ها می‌تونن درست کنن و کاربرا به اینا وصل بشن و هر درخواستی که دارن رو به cache بگن و اون بره خودش ادرس درست رو پیدا کنه و سیو کنه و به کاربرا هم جواب بده. مثلا گوگل و cloudflare از این کش ها دارن. تامین کننده های اینترنت هم معمولا دارن چون وقتی کسی به اینترنت وصل میشه، ادرس dnsی رو نداره و اونا بهش توصیه میکنن که از dns خودشون استفاده کنه. (ISP default DNS server)
👍7
نوشته‌های ترمینالی
سوال که می‌خوام جواب بدم اینه که آیا ممکنه یک نفر یا یک نهاد اینترنت کل جهان رو قطع کنه؟ اگر وقت ندارید: + ممکنه یک شرکت خدمتی ارائه نده مثلا گوگل + ممکنه برای چند ساعت اینترنت اختلال جدی داشته باشه + اما برای بیشتر از یک روز به نظر نمیاد کل اینترنت قطع بمونه…
کار ICANN: (اینطوری که من متوجه شدم) اینه که قرارداد می‌بنده با مسئول top level domain ها مثلا مسئول دامنه‌ی ir تو ایران. اینطوریه که: ما که ICANN باشیم، تو رو به عنوان DNS این ناحیه معرفی می‌کنیم، در عوض تو هم اطلاعات درستی به بقیه بده (طبق پروتوکل‌ها). همچنین اینکه سینک شدن بین اطلاعات 13 تا DNS Root server به شکل مناسب انجام بشه.
(اینکه یه دامنه که فروخته می‌شه رو هم ICANN زیر نظر داره یا نه رو متوجه نشدم.)

اگر ICANN نباشه: اگر در یک لحظه ICANN و اون ۱۲ تا سازمان دیگه همه تصمیم بگیرن اطلاعات ندن یا اطلاعات غلط بدن، در لحظات اول که مشکلی پیش نمیاد چون ما از کش‌های دیگه استفاده می‌کنیم. اما به مرور کش‌ها اطلاعات غلط رو از TLD های فیک که به جای TLD های اصلی بهشون وصل می‌شیم می‌گیرن و به مشکل می‌خوریم.

اما چند تا راه حل هست: برنامه‌هایی که به IPشون وصل می‌شن برای اتصال همچنان (احتمالا) کار خواهند کرد. مثلا تلگرام احتمالا به مشکلی نخوره. یکسری alternative root dns هم وجود دارن که الان هم فعال هستند و خارج از سلسله مراتب اصلی dns خدمت می‌دن، اون‌ها اگرچه الان توصیه شده نیستند و خطرناک شناسایی می‌شن ولی به هر حال پتانسیل جایگزینی رو دارن. alternative بودن و فرقشون با dns server های مرسوم (که به عنوان cache بهشون اشاره کردم) اینه که اطلاعات خودشون رو عینا با اطلاعات سلسله مراتب بروز نگه نمی‌دارن. مثلا یک سری TLD دیگه (که رسمی نیستن) رو هم اینا دارن. الان هم می‌تونید dns serverتون رو به یکی از اینا تغییر بدید یا حتی بدتر، شاید ISPتون خودش به شکل پیشفرض به یه alternate راهنماییتون کنه.

نظر شخصی من: بیاید به گذشته نگاه کنیم. اتفاقای که افتاده و جنگ‌ها و ماجراها هیچوقت تهدیدی برای اینترنت نبودن و همیشه تلاش شده اینترنت هیچ نقطه‌ی single point of failure نداشته باشه. بلکه نامتمرکز باشه و حتی در مواقع بحرانی که لینک‌های زیادی قطع شدن یا تعدادی هکر توی سامانه وجود داره یا یه قسمت بزرگی از شبکه قطع می‌شه هم فعالیت کنه.

با فرض اینکه کاملا قطع بشه اینترنت: باقی جهان (جدا از ایالت متحده) هم منابع زیادی دارن هم برای شهروندانشون ارزش قائلن و درک می‌کنن چه ضرر هنگفتی داره قطع بودن اینترنت پس طولی نمی‌کشه که مشکلاتی که هست رو حل می‌کنن، مثل کانفیگ کردن دوباره روترها و عوض کردن مسیرها یا بازگردوندن دیتای name serverها.

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


مطالب تکمیلی:
در مورد ICANN و IANA بیشتر بخونید:
https://www.itblock.sg/post/it-support-101-what-is-icann-and-iana

تعریف ICANN از زبان خودشون:
ICANN's mission is to help ensure a stable, secure, and unified global Internet. To reach another person on the Internet, you need to type an address – a name or a number – into your computer or other device. That address must be unique so computers know where to find each other. ICANN helps coordinate and support these unique identifiers across the world. ICANN was formed in 1998 as a nonprofit public benefit corporation with a community of participants from all over the world.
و مطلب کاملش: https://www.icann.org/resources/pages/what-2012-02-25-en

در مورد root DNS serverها: https://www.cloudflare.com/learning/dns/glossary/dns-root-server/

در مورد TLDها: https://www.cloudflare.com/learning/dns/top-level-domain/

نحوه عوض کردن DNS server پیشفرض و دلایل این کار: https://www.howtogeek.com/664608/why-you-shouldnt-be-using-your-isps-default-dns-server/

چند انتخاب DNS server: https://www.lifewire.com/free-and-public-dns-servers-2626062

امکان مشاهده‌ی موقعیت مکانی و اطلاعات این ۶۰۰ تا root dns server و ای‌پی هر کدوم: https://root-servers.org/
👍8
نوشته‌های ترمینالی
کار ICANN: (اینطوری که من متوجه شدم) اینه که قرارداد می‌بنده با مسئول top level domain ها مثلا مسئول دامنه‌ی ir تو ایران. اینطوریه که: ما که ICANN باشیم، تو رو به عنوان DNS این ناحیه معرفی می‌کنیم، در عوض تو هم اطلاعات درستی به بقیه بده (طبق پروتوکل‌ها). همچنین…
افزون بر موارد بالا، یه داستان «۷ کلید» هم وجود داره که شبیه فیلم و قصه‌ها تعریفش می‌کنن ولی در واقع چنین چیزی نیست.

چیزی که گفته می‌شه اینه که: ۷ تا کلید دست ۷ نفر از سراسر جهانه که اگه همگی جمع بشن و این کلیدها رو کنار هم بذارن، می‌تونن اینترنت رو خاموش کنن! از اونجایی که واقعا ۷ تا کلید وجود داره و جزوی از ICANN هم هستن ممکنه فکر کنیم که داستان درستیه. ولی در واقع نیست.

چیزی که درستشه: یه جامعه‌ای داره این ICANN که بینشون رای گیری می‌شه و یه ۷ نفر معتمد انتخاب می‌شن. اینا هم یه کارتی دارن که در یه مراسمی بهشون اهدا می‌شه. با این کارت‌ها هم می‌تونن یه کار مهمی رو انجام بدن ولی اون قطع و وصل اینترنت نیست.
بلکه این کلید reboot کردن DNSSEC های root dns server هاست.

حالا چرا لازمه این اتفاق بیفته و آیا تا حالا اتفاق افتاده؟ اگه یه رخنه امنیتی تو سیستم‌ها به وجود بیاد و private key ها لو بره یا حمله تروریستی اتفاق بیفته اینا کلید‌ها رو به کمک این ریست می‌کنن.

حالا اگر لازم شد، ۵ تا از این ۷ نفر باید تو یه محل خاص (که توی آمریکاس) برن و و گذاشتن کلیدهاشون عملیات رو اجرا کنن.



عبارت‌های انگلیسی از متن مطلب خود ICANN میارم:
there are no keys that cause the Internet to function (or not to function).

the keys being talked about belong to just one single part of the Internet – the mechanism for authenticating the data in the domain name system (DNS), called DNSSEC. It is based on a hierarchy of cryptographic keys starting at the root of the DNS. The cryptographic keys for the root of the DNS are managed by ICANN.

The Internet consists of many different systems, and the DNS is just one of them. Controlling one aspect of the Internet, such as DNSSEC, does not lead to full control of other aspects.


حالا چرا اینقدر امنیت این سیستم مهمه؟
با کمک DNSSEC اون جواب dns ای که می‌گیرید اعتبارسنجی می‌شه که درست و معتبره. حالا هر dns server به کمک dns server بالا مرتبه‌اش اعتبار سنجی می‌شه اما root dns server ها که تحت کنترل ICANN هستن چطوری اعتبارسنجی می‌شن؟ یه private key وجود داره که این امنیتش خیلی مهمه برامون. اگه کسی داشته باشتش می‌تونه dns record نامعتبر خودشو با این رمز کنه و ما هم نمی‌فهمیم و یه هک از نوع dns hijacking خیلی زیبا اتفاق می‌افته.
اینا هم حساب کردن اگه هر کدوم از آدما ۵ درصد خطاکار باشه، یه جوری سامانه رو چیدن که نیاز به چند آدم معتمد باشه، احتمال اینکه چیزی مورد خرابکاری قرار بگیره یک در ملیونه.


منابع:
https://www.icann.org/en/blogs/details/the-problem-with-the-seven-keys-13-2-2017-en
و این خلاصه مصاحبه از Paul Kane
https://www.theguardian.com/technology/2010/jul/27/internet-key

اینم مطلب خیلی خوب بود:
https://www.cloudflare.com/dns/dnssec/root-signing-ceremony/
👍2👏2
ارسالی:
برای مصاحبه فنی، این سایته خوبه و دید خیلی خوبی میدی چیا رو احتمالا بپرسن
https://www.fullstack.cafe/
👍1
به‌روش های code review
https://vrgl.ir/sGgzU
👍6
image_2023-01-18_18-13-51.png
762.7 KB
جدول تناوبی زبان های برنامه نویسی هم ببینید.
👍2
شکن چطوری کار می‌کنه

کسایی که با «شکن، تحریم‌شکن اینترنتی» کار کرده باشند می‌دونن که یه ابزاره که تحریم‌ها رو دور می‌زنه. برای استفاده ازش برخلاف VPNها، فقط کافیه DNS serverتون رو عوض کنید. توضیحات فنی خودشون خیلی زیاد نیست ولی طبق شواهد، اونا یه dns server از نوع alternate دارن که برا اکثر سایت‌ها ip درستشون رو می‌ده ولی برای سایت‌های خاصی که تو لیستش هستن (سایت‌های تحریم شده) ip یک سرور دیگه (سرور شکن) رو می‌ده. حالا این سرور شکن اطلاعات و درخواست‌های ما که قرار بوده به سرور اصلی بره رو از طرف خودش به سرور اصلی می‌فرسته و جواب‌های سرور اصلی رو در اختیار ما می‌ذاره. یعنی برای یک‌سری از ip ها مثل vpn می‌مونه برای یکسری نه! البته این حالت اطلاعاتمون رو encapsulate نمی‌کنه بنابراین امنیتی برامون در برابر آدمای میانی توی شبکه ایجاد نمی‌کنه

اما فرق اصلی‌ای که با vpn داره و می‌شه گفت امنه اینه که کانکشنی که ما زدیم در واقع به خود سرور اصلیه و این وسط ترافیک فقط از سرور شکن عبور می‌کنه. چطور ممکنه؟ وقتی که از HTTPS استفاده کنیم، مرورگر ما درخواست هاشو رمزنگاری می‌کنه به شکلی که فقط دارنده‌ی دامنه‌ی مقصد می‌تونه اون رو باز کنه، پس سرور شکن که دارنده‌ی دامنه‌ی مقصد نیست (از نظر ما هست ولی در واقع نیست) نمی‌تونه درخواست ما رو رمزگشایی کنه. البته برای درخواست‌های رمز نشده‌ی http و کلا plain text این خطر وجود داره و درخواست‌هامون برای همه‌ی اعضای شبکه از جمله سرور شکن قابل دیدنه.

(برای مطالعه‌ی بیشتر در مورد SSL/TLS بخونید)
👍21👎1
به نظر من «سی» تا.
نظر شما چیه
😢2👌1
اینجا آقای Bartosz Milewski که از هسکلرهای خیلی خفنه، در مورد Category Theory صحبت میکنه.
یه چیز جالبی که می‌گه و خیلی تو ذهنم مونده اینه که ما آدما حافظه محدود و توانایی پردازش بی دقتی داریم برعکس کامپیوتر ها که دقت بالاتری توی محاسبه دارن ولی از خودشون ایده ندارن.
و میگه ما خوبه بیایم هر کار رو بسپریم به کسی که خوب انجامش میده.

https://www.youtube.com/watch?v=JH_Ou17_zyU
👏5
Forwarded from Digiato | دیجیاتو
📆جاوا، یکی از محبوب‌ترین زبان‌های برنامه‌نویسی جهان است که اولین نسخه پایدار آن موسوم به جاوا 1 در تاریخ 23 ژانویه 1996 منتشر شد.

🔺 جاوا یک زبان برنامه‌نویسی سطح‌بالای شی‌گرای متعلق به شرکت اوراکل است که کاربردهای گسترده‌ای دارد.

👩‍💻🧑‍💻جاوا به‌طور گسترده در توسعه وب و اپلیکیشن و همچنین کلان‌داده مورد استفاده قرار می‌گیرد. جاوا به عنوان بک‌اند در بسیاری از وب‌سایت‌ها محبوب مانند گوگل، آمازون، توییتر و یوتوب استفاده شده است.

📱@Digiato 📡
🔥7👎4👍1
یک شبکه اجتماعی برای هکر ها

https://twtxt.envs.net/
👎4🤔3