مهندسی اجتماعی چیست؟
مهندسی اجتماعی (Social Engineering) یک تکنیک است که در آن فرد یا گروهی با استفاده از روشهای روانشناسی و دستکاری روانی، افراد را فریب میدهند تا به اطلاعات حساس و خصوصی دسترسی پیدا کنند یا اقداماتی را انجام دهند که به نفع مهاجم است. برخلاف حملات سایبری فنی که به کدنویسی و بهرهگیری از آسیبپذیریهای نرمافزاری متکی هستند، مهندسی اجتماعی بر فریب و ایجاد اعتماد بین افراد تمرکز دارد. در این روش، انسانها به عنوان «نقطه ضعف» امنیتی سیستمها هدف قرار میگیرند.
انواع روشهای مهندسی اجتماعی
مهندسی اجتماعی میتواند در قالبهای مختلفی انجام شود، از جمله:
1- فیشینگ (Phishing): این روش یکی از رایجترین روشهای مهندسی اجتماعی است که از طریق ارسال ایمیلها یا پیامهای جعلی به قربانیان انجام میشود. مهاجم با جعل هویت سازمانها یا افراد معتبر، سعی میکند کاربران را فریب دهد تا اطلاعات شخصی، رمز عبور یا شماره کارت بانکی خود را ارائه دهند.
2- اسمیشینگ (Smishing): مشابه فیشینگ، اما از طریق پیامکهای متنی ارسال میشود. پیامها اغلب شامل لینکهای مخرب یا درخواستهای فوری هستند که کاربر را تشویق میکنند تا اقدام خاصی انجام دهد.
3- ویشینگ (Vishing): این روش از طریق تماس تلفنی انجام میشود و مهاجم با جعل هویت فرد یا سازمانی معتبر سعی در فریب قربانی دارد تا اطلاعات حساس مانند رمز عبور یا اطلاعات کارت بانکی را فاش کند.
4- طعمهگذاری (Baiting): مهاجم با استفاده از یک شیء فیزیکی، مانند یک فلش مموری که حاوی بدافزار است، قربانی را فریب میدهد. مثلاً فلش مموری را در مکانهای عمومی قرار میدهد تا فرد کنجکاو آن را برداشته و به سیستم خود متصل کند.
5- پری تکستینگ (Pretexting): در این روش، مهاجم سعی میکند با ساختن یک سناریوی جعلی و ایجاد یک داستان قابل باور، اعتماد قربانی را جلب کند و اطلاعات مورد نیاز خود را به دست آورد. برای مثال، مهاجم ممکن است خود را به عنوان کارمند پشتیبانی شرکت جا بزند و از کاربر بخواهد اطلاعات کاربری خود را ارائه دهد.
6- دوبخشی کردن (Tailgating): در این روش، مهاجم سعی میکند بدون داشتن دسترسی مجاز، به محل کار یا ساختمانهای حساس دسترسی پیدا کند. این کار اغلب با دنبال کردن یک کارمند و استفاده از کارت ورود او انجام میشود.
7- پیشنهادات جعلی یا قرعهکشیهای آنلاین: ارائه پیشنهادات وسوسهکننده مانند قرعهکشیها، جوایز بزرگ یا تبلیغات اغراقآمیز با هدف جذب افراد و فریب آنها برای ارائه اطلاعات.
چگونه مهندسی اجتماعی کار میکند؟
مهاجمان در مهندسی اجتماعی از نقاط ضعف روانشناسی انسانها مانند اعتماد به نفس پایین، نیاز به همکاری، ترس، و تمایل به کمک به دیگران بهرهبرداری میکنند. آنها ابتدا اطلاعات اولیهای را درباره فرد هدف جمعآوری میکنند و سپس از آن اطلاعات برای ایجاد اعتماد استفاده میکنند. بسیاری از حملات مهندسی اجتماعی، ساده و مؤثر هستند زیرا بیشتر مردم آگاهی کافی از روشهای فریبکارانه ندارند و به راحتی در دام این حملات گرفتار میشوند.
مقابله با مهندسی اجتماعی
برای مقابله با مهندسی اجتماعی، آگاهی و آموزش کاربران بسیار حیاتی است. در اینجا چند راهکار کلیدی برای جلوگیری از حملات مهندسی اجتماعی ارائه شده است:
- افزایش آگاهی: آموزش کاربران در خصوص تکنیکهای رایج مهندسی اجتماعی و چگونگی شناسایی آنها یکی از موثرترین راهکارها است.
- بررسی هویت: همیشه هویت شخص یا سازمان درخواستکننده اطلاعات حساس را بررسی کنید.
- اجتناب از کلیک بر روی لینکهای مشکوک: اگر ایمیل یا پیامکی دریافت کردید که حاوی لینک یا پیوست مشکوک است، آن را باز نکنید.
- استفاده از احراز هویت دو مرحلهای: احراز هویت دو مرحلهای باعث میشود که حتی در صورت به دست آوردن رمز عبور، مهاجم نتواند به حساب کاربری دسترسی پیدا کند.
- هوشیاری در برابر تماسهای ناشناس: اطلاعات حساس مانند رمز عبور یا شماره کارت بانکی را به هیچوجه از طریق تلفن به افراد ناشناس ارائه ندهید.
نتیجهگیری
مهندسی اجتماعی یک روش زیرکانه و روانشناختی برای دستیابی به اطلاعات و دسترسیهای غیرمجاز است که به دلیل سادگی و اثربخشی آن، به یکی از ابزارهای محبوب مهاجمان تبدیل شده است. با افزایش آگاهی و توجه به امنیت فردی و سازمانی، میتوان تا حد زیادی از حملات مهندسی اجتماعی جلوگیری کرد.
مهندسی اجتماعی (Social Engineering) یک تکنیک است که در آن فرد یا گروهی با استفاده از روشهای روانشناسی و دستکاری روانی، افراد را فریب میدهند تا به اطلاعات حساس و خصوصی دسترسی پیدا کنند یا اقداماتی را انجام دهند که به نفع مهاجم است. برخلاف حملات سایبری فنی که به کدنویسی و بهرهگیری از آسیبپذیریهای نرمافزاری متکی هستند، مهندسی اجتماعی بر فریب و ایجاد اعتماد بین افراد تمرکز دارد. در این روش، انسانها به عنوان «نقطه ضعف» امنیتی سیستمها هدف قرار میگیرند.
انواع روشهای مهندسی اجتماعی
مهندسی اجتماعی میتواند در قالبهای مختلفی انجام شود، از جمله:
1- فیشینگ (Phishing): این روش یکی از رایجترین روشهای مهندسی اجتماعی است که از طریق ارسال ایمیلها یا پیامهای جعلی به قربانیان انجام میشود. مهاجم با جعل هویت سازمانها یا افراد معتبر، سعی میکند کاربران را فریب دهد تا اطلاعات شخصی، رمز عبور یا شماره کارت بانکی خود را ارائه دهند.
2- اسمیشینگ (Smishing): مشابه فیشینگ، اما از طریق پیامکهای متنی ارسال میشود. پیامها اغلب شامل لینکهای مخرب یا درخواستهای فوری هستند که کاربر را تشویق میکنند تا اقدام خاصی انجام دهد.
3- ویشینگ (Vishing): این روش از طریق تماس تلفنی انجام میشود و مهاجم با جعل هویت فرد یا سازمانی معتبر سعی در فریب قربانی دارد تا اطلاعات حساس مانند رمز عبور یا اطلاعات کارت بانکی را فاش کند.
4- طعمهگذاری (Baiting): مهاجم با استفاده از یک شیء فیزیکی، مانند یک فلش مموری که حاوی بدافزار است، قربانی را فریب میدهد. مثلاً فلش مموری را در مکانهای عمومی قرار میدهد تا فرد کنجکاو آن را برداشته و به سیستم خود متصل کند.
5- پری تکستینگ (Pretexting): در این روش، مهاجم سعی میکند با ساختن یک سناریوی جعلی و ایجاد یک داستان قابل باور، اعتماد قربانی را جلب کند و اطلاعات مورد نیاز خود را به دست آورد. برای مثال، مهاجم ممکن است خود را به عنوان کارمند پشتیبانی شرکت جا بزند و از کاربر بخواهد اطلاعات کاربری خود را ارائه دهد.
6- دوبخشی کردن (Tailgating): در این روش، مهاجم سعی میکند بدون داشتن دسترسی مجاز، به محل کار یا ساختمانهای حساس دسترسی پیدا کند. این کار اغلب با دنبال کردن یک کارمند و استفاده از کارت ورود او انجام میشود.
7- پیشنهادات جعلی یا قرعهکشیهای آنلاین: ارائه پیشنهادات وسوسهکننده مانند قرعهکشیها، جوایز بزرگ یا تبلیغات اغراقآمیز با هدف جذب افراد و فریب آنها برای ارائه اطلاعات.
چگونه مهندسی اجتماعی کار میکند؟
مهاجمان در مهندسی اجتماعی از نقاط ضعف روانشناسی انسانها مانند اعتماد به نفس پایین، نیاز به همکاری، ترس، و تمایل به کمک به دیگران بهرهبرداری میکنند. آنها ابتدا اطلاعات اولیهای را درباره فرد هدف جمعآوری میکنند و سپس از آن اطلاعات برای ایجاد اعتماد استفاده میکنند. بسیاری از حملات مهندسی اجتماعی، ساده و مؤثر هستند زیرا بیشتر مردم آگاهی کافی از روشهای فریبکارانه ندارند و به راحتی در دام این حملات گرفتار میشوند.
مقابله با مهندسی اجتماعی
برای مقابله با مهندسی اجتماعی، آگاهی و آموزش کاربران بسیار حیاتی است. در اینجا چند راهکار کلیدی برای جلوگیری از حملات مهندسی اجتماعی ارائه شده است:
- افزایش آگاهی: آموزش کاربران در خصوص تکنیکهای رایج مهندسی اجتماعی و چگونگی شناسایی آنها یکی از موثرترین راهکارها است.
- بررسی هویت: همیشه هویت شخص یا سازمان درخواستکننده اطلاعات حساس را بررسی کنید.
- اجتناب از کلیک بر روی لینکهای مشکوک: اگر ایمیل یا پیامکی دریافت کردید که حاوی لینک یا پیوست مشکوک است، آن را باز نکنید.
- استفاده از احراز هویت دو مرحلهای: احراز هویت دو مرحلهای باعث میشود که حتی در صورت به دست آوردن رمز عبور، مهاجم نتواند به حساب کاربری دسترسی پیدا کند.
- هوشیاری در برابر تماسهای ناشناس: اطلاعات حساس مانند رمز عبور یا شماره کارت بانکی را به هیچوجه از طریق تلفن به افراد ناشناس ارائه ندهید.
نتیجهگیری
مهندسی اجتماعی یک روش زیرکانه و روانشناختی برای دستیابی به اطلاعات و دسترسیهای غیرمجاز است که به دلیل سادگی و اثربخشی آن، به یکی از ابزارهای محبوب مهاجمان تبدیل شده است. با افزایش آگاهی و توجه به امنیت فردی و سازمانی، میتوان تا حد زیادی از حملات مهندسی اجتماعی جلوگیری کرد.
👍4
چگونه اسرائیل قویترین سیستم اطلاعاتی را ساخت؟ داستان موساد
پادکست جالبیه ، حوصله داشتید تماشا کنید.
پادکست جالبیه ، حوصله داشتید تماشا کنید.
YouTube
چگونه اسرائیل قویترین سیستم اطلاعاتی را ساخت؟ داستان موساد
حمایت اختیاری از دیپ پادکست:
https://www.patreon.com/deeppodcastiran
Instagram: Https://www.instagram.com/deep.podcast
Telegram Channel: Https://www.telegram.me/deeppodcast
ـــــــــــــــ
music by @incompetech_kmac Kevin MacLeod @ScottBuckley
ــــــــــــــ…
https://www.patreon.com/deeppodcastiran
Instagram: Https://www.instagram.com/deep.podcast
Telegram Channel: Https://www.telegram.me/deeppodcast
ـــــــــــــــ
music by @incompetech_kmac Kevin MacLeod @ScottBuckley
ــــــــــــــ…
🔥3
چگونه از فایل .env در محیط لینوکس خودمون استفاده کنیم؟
همونطوری که توی پست مربوط به این فایل توضیح دادم ، وقتی بخوایم از متغییری برای اجرای دستورات متعدد استفاده کنیم ، میایم اون متغییر رو توی فایل .env قرار میدیم ، و ازش داخل دستورات مختلف استفاده میکنیم ، با همان منطق برنامه نویسی.
بیشتر کجا کاربرد داره؟ وقتی که توکن یا پسورد یا Key داریم و برامون مهمه که جایی این ها ذخیره باشن که هم جاشون امن باشه و هم بتونیم توی دستورات از آنها استفاده کنیم بدون نیاز به دوباره نوشتن آن ها.
اما نکته ای که داره ، باید قبل از استفاده از دستور زیر استفاده کنیم :
دستور source .env در واقع باعث میشود که متغیرهای محیطی تعریفشده در فایل .env در محیط فعلی ترمینال بارگذاری و در دسترس قرار گیرند.
وقتی شما از source استفاده میکنید، فایل .env بهصورت خط به خط اجرا میشود و هر متغیری که تعریف شده، در محیط فعلی فعال میشود. به این ترتیب، میتوانید از آن متغیرها در دستورات دیگر بدون نیاز به دوبارهنویسی مقدارشان استفاده کنید.
این کار برای زمانی مفید است که بخواهید مقادیر حساس یا طولانی را مدیریت کنید، بهخصوص در اسکریپتها یا دستوراتی که چندین بار اجرا میشوند.
توی یک فایل اسکریپتی هم به صورت زیر قرار میگیرد:
همونطوری که توی پست مربوط به این فایل توضیح دادم ، وقتی بخوایم از متغییری برای اجرای دستورات متعدد استفاده کنیم ، میایم اون متغییر رو توی فایل .env قرار میدیم ، و ازش داخل دستورات مختلف استفاده میکنیم ، با همان منطق برنامه نویسی.
بیشتر کجا کاربرد داره؟ وقتی که توکن یا پسورد یا Key داریم و برامون مهمه که جایی این ها ذخیره باشن که هم جاشون امن باشه و هم بتونیم توی دستورات از آنها استفاده کنیم بدون نیاز به دوباره نوشتن آن ها.
اما نکته ای که داره ، باید قبل از استفاده از دستور زیر استفاده کنیم :
source .env
دستور source .env در واقع باعث میشود که متغیرهای محیطی تعریفشده در فایل .env در محیط فعلی ترمینال بارگذاری و در دسترس قرار گیرند.
وقتی شما از source استفاده میکنید، فایل .env بهصورت خط به خط اجرا میشود و هر متغیری که تعریف شده، در محیط فعلی فعال میشود. به این ترتیب، میتوانید از آن متغیرها در دستورات دیگر بدون نیاز به دوبارهنویسی مقدارشان استفاده کنید.
این کار برای زمانی مفید است که بخواهید مقادیر حساس یا طولانی را مدیریت کنید، بهخصوص در اسکریپتها یا دستوراتی که چندین بار اجرا میشوند.
توی یک فایل اسکریپتی هم به صورت زیر قرار میگیرد:
password = ${MYSQL_ROOT_PASSWORD}👏1
اثر ماندلا چیست؟
اثر ماندلا (Mandela Effect) به پدیدهای گفته میشود که در آن تعداد زیادی از افراد بهطور نادرست یک رخداد، نام، یا جزئیات خاص را به یاد میآورند و باور دارند که این خاطرهها درست است. نام این اثر از خاطرات غلطی که بسیاری از افراد در مورد مرگ نلسون ماندلا داشتند، گرفته شده است. در دهه ۱۹۸۰، تعداد زیادی از مردم به اشتباه معتقد بودند که نلسون ماندلا در زندان جان خود را از دست داده است، در حالی که او در سال ۲۰۱۳، مدتها پس از آزادی، درگذشت.
این اثر اغلب با مسائل فرهنگی و اتفاقات روزمره نیز مرتبط میشود. برای مثال، افراد ممکن است جزئیات مربوط به نام یا شکل لوگوی یک برند، یا حتی نقل قولهای مشهور و دیالوگهای فیلمها را بهدرستی به یاد نیاورند و باور داشته باشند که نسخه دیگری از واقعیت وجود دارد.
از دیدگاه علمی، اثر ماندلا به اشتباهات حافظه و نحوه شکلگیری و بازسازی خاطرات مرتبط است. حافظه انسان به جای آنکه واقعیت را دقیقاً ضبط کند، گاهی اوقات با بازسازی خاطرات، دچار تحریف میشود.
موضوع جالبیه ، در موردش مطالعه کنید.
اثر ماندلا (Mandela Effect) به پدیدهای گفته میشود که در آن تعداد زیادی از افراد بهطور نادرست یک رخداد، نام، یا جزئیات خاص را به یاد میآورند و باور دارند که این خاطرهها درست است. نام این اثر از خاطرات غلطی که بسیاری از افراد در مورد مرگ نلسون ماندلا داشتند، گرفته شده است. در دهه ۱۹۸۰، تعداد زیادی از مردم به اشتباه معتقد بودند که نلسون ماندلا در زندان جان خود را از دست داده است، در حالی که او در سال ۲۰۱۳، مدتها پس از آزادی، درگذشت.
این اثر اغلب با مسائل فرهنگی و اتفاقات روزمره نیز مرتبط میشود. برای مثال، افراد ممکن است جزئیات مربوط به نام یا شکل لوگوی یک برند، یا حتی نقل قولهای مشهور و دیالوگهای فیلمها را بهدرستی به یاد نیاورند و باور داشته باشند که نسخه دیگری از واقعیت وجود دارد.
از دیدگاه علمی، اثر ماندلا به اشتباهات حافظه و نحوه شکلگیری و بازسازی خاطرات مرتبط است. حافظه انسان به جای آنکه واقعیت را دقیقاً ضبط کند، گاهی اوقات با بازسازی خاطرات، دچار تحریف میشود.
موضوع جالبیه ، در موردش مطالعه کنید.
Medical News Today
Mandela Effect: Examples and explanation
The Mandela effect is one popular but heavily debated type of false memory. Learn more about it here, including potential causes and some famous examples.
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
TCP vs UDP Comparison!
This media is not supported in your browser
VIEW IN TELEGRAM
چالش های شروع و رشد یک کسب و کار
❤🔥4🔥2👍1
داکر چیست و چه ساختاری داره؟
(پارت اول)
داکر دقیقا چیه؟
داکر یه پلتفرمه که به شما کمک میکنه برنامههاتون رو به شکل کانتینر (Container) اجرا کنید. حالا کانتینر چیه؟! کانتینر یه محیط بسته و ایزوله شدهست که برنامه شما رو با همه چیزایی که نیاز داره (مثل کتابخانهها و تنظیمات خاص) تو خودش نگه میداره. این یعنی برنامهتون بدون دردسر از یه سیستم به سیستم دیگه منتقل میشه و اجرا میشه، بدون اینکه وابسته به تنظیمات و نرمافزارهای اون سیستم خاص باشه. البته که نرم افزار هایی که روی کرنل ویندوز کانتینر میشن روی تمامی سیستم عامل های ویندوز قابلیت اجرا داشته و اونایی هم که روی لینوکس کانتینر میشن ، روی توزیع های لینوکس قابلیت اجرا دارن
چرا؟
چون کانتینرهای داکر به سیستمعاملی که روی اون اجرا میشن وابسته هستن، به این معنی که کانتینرهای ویندوز فقط روی هسته ویندوز و کانتینرهای لینوکس فقط روی هسته لینوکس اجرا میشن.
چرا داکر اینقدر پرطرفداره؟
فرض کنید برنامهتون توی کامپیوتر خودتون عالی کار میکنه، ولی وقتی اون رو روی سرور یا یه سیستم دیگه اجرا میکنید، با مشکلاتی مواجه میشه. دلیلش اینه که شاید اون سیستم یه کتابخونه یا تنظیم خاصی که برنامه نیاز داره، نداشته باشه. اینجا داکر به دادتون میرسه، چون همه چیز رو توی یه بسته (همون کانتینر) جمع میکنه و تضمین میکنه که برنامه همونطوری که توی کامپیوتر شما اجرا میشه، روی هر سیستم دیگهای هم به همون شکل کار کنه.
داکر چند تا مزیت بزرگ داره:
قابل حمل بودن: کانتینرها رو میتونید به راحتی از یه سیستم به سیستم دیگه منتقل کنید و مطمئن باشید که به همون شکل کار میکنن.
ایزوله بودن: هر کانتینر به شکل مستقل از بقیه کانتینرها کار میکنه، یعنی اگه توی یکی از کانتینرها مشکلی پیش بیاد، بقیه کانتینرها تحت تأثیر قرار نمیگیرن.
سبکی و سرعت: کانتینرها نسبت به ماشینهای مجازی خیلی سبکتر و سریعتر هستن، چون نیازی به راهاندازی سیستمعامل کامل ندارن؛ فقط چیزایی که برنامه نیاز داره رو فراهم میکنن.
کانتینر بهتره یا ماشین مجازی؟
هر دوشون راههایی برای ایزوله کردن برنامهها و سرویسها هستن، ولی کانتینرها سبکتر و سریعتر هستن. ماشینهای مجازی (مثل VMware یا VirtualBox) کل سیستمعامل رو شبیهسازی میکنن، ولی کانتینرها فقط چیزهایی که برنامه نیاز داره رو فراهم میکنن. برای همین استفاده از کانتینرها به منابع کمتری نیاز داره و سریعتر راهاندازی میشن.
مقایسهای سادهتر
فرض کنید یه مجتمع مسکونی داریم:
ماشین مجازی شبیه اینه که هر واحد مسکونی (هر برنامه) یه برق، آب، و خدمات شهری جداگانه داشته باشه. هر واحد، مستقل و کامله، ولی هزینهها و منابع بیشتری مصرف میکنه.
کانتینر شبیه اینه که همه واحدهای مسکونی (برنامهها) از همون برق و آب شهری استفاده کنن، ولی دیوار و حریم خصوصی خودشون رو دارن. اینطوری، منابع مشترک هستن و مصرف کلی کمتره.
پس چرا کانتینرها سریعتر و سبکترن؟
چون در کانتینرها نیازی به سیستمعامل جداگانه برای هر برنامه نیست، فقط همون کتابخانهها و فایلهایی که برنامه نیاز داره در کانتینر قرار میگیره. به همین دلیل:
مصرف منابع کمتره: چون به حافظه و پردازنده کمتری نیاز داریم.
زمان راهاندازی سریعتره: چون سیستمعامل جدیدی راهاندازی نمیشه؛ فقط محیط برنامه اجرا میشه.
قابلیت مقیاسپذیری بیشتری داره: چون کانتینرها سریعتر ساخته و اجرا میشن، میتونید به راحتی تعداد زیادی کانتینر رو روی یه سرور ایجاد و مدیریت کنید.
مثالهای کاربردی
اگر بخواید یه وبسرور (مثل Nginx) رو روی یه سرور اجرا کنید، با کانتینر فقط همون Nginx و فایلهای پیکربندی موردنیازش توی یه محیط ایزوله قرار میگیرن.
اما اگه از ماشین مجازی استفاده کنید، علاوه بر Nginx باید یه سیستمعامل (مثل اوبونتو یا CentOS) هم داشته باشید که مصرف منابع رو بیشتر میکنه.
این ساختار سبک کانتینرها، دلیل اصلی محبوبیت داکره و اینه که شرکتها میتونن برنامههاشون رو سریعتر، با هزینه کمتر و کارایی بیشتر توی محیطهای ابری یا سرورهای محلی اجرا کنن.
چرا باید از داکر استفاده کنم؟
اگه نیاز دارید برنامهتون رو روی سیستمهای مختلف (مثل توسعه، تست، و تولید) به شکل یکسان اجرا کنید، یا اگه برنامههای زیادی دارید که میخواید به شکل مستقل از هم کار کنن، داکر یه ابزار عالیه. مخصوصاً توی محیطهایی که نیاز به مقیاسپذیری و سرعت بالا دارن، استفاده از داکر خیلی رایجه.
این پست قرار هست چندین پارت داشته باشه ، تا حد امکان هم عامیانه توضیح میدم ، جدای از پست آموزشی ، این برای خودمم یجور مرور به حساب میاد ، پس اگه علاقه مند هستید یا حوصله دارید ، مطالعه ی محتوای این سلسله پستها میتونه به دردتون بخوره!
(پارت اول)
داکر دقیقا چیه؟
داکر یه پلتفرمه که به شما کمک میکنه برنامههاتون رو به شکل کانتینر (Container) اجرا کنید. حالا کانتینر چیه؟! کانتینر یه محیط بسته و ایزوله شدهست که برنامه شما رو با همه چیزایی که نیاز داره (مثل کتابخانهها و تنظیمات خاص) تو خودش نگه میداره. این یعنی برنامهتون بدون دردسر از یه سیستم به سیستم دیگه منتقل میشه و اجرا میشه، بدون اینکه وابسته به تنظیمات و نرمافزارهای اون سیستم خاص باشه. البته که نرم افزار هایی که روی کرنل ویندوز کانتینر میشن روی تمامی سیستم عامل های ویندوز قابلیت اجرا داشته و اونایی هم که روی لینوکس کانتینر میشن ، روی توزیع های لینوکس قابلیت اجرا دارن
چرا؟
چون کانتینرهای داکر به سیستمعاملی که روی اون اجرا میشن وابسته هستن، به این معنی که کانتینرهای ویندوز فقط روی هسته ویندوز و کانتینرهای لینوکس فقط روی هسته لینوکس اجرا میشن.
چرا داکر اینقدر پرطرفداره؟
فرض کنید برنامهتون توی کامپیوتر خودتون عالی کار میکنه، ولی وقتی اون رو روی سرور یا یه سیستم دیگه اجرا میکنید، با مشکلاتی مواجه میشه. دلیلش اینه که شاید اون سیستم یه کتابخونه یا تنظیم خاصی که برنامه نیاز داره، نداشته باشه. اینجا داکر به دادتون میرسه، چون همه چیز رو توی یه بسته (همون کانتینر) جمع میکنه و تضمین میکنه که برنامه همونطوری که توی کامپیوتر شما اجرا میشه، روی هر سیستم دیگهای هم به همون شکل کار کنه.
داکر چند تا مزیت بزرگ داره:
قابل حمل بودن: کانتینرها رو میتونید به راحتی از یه سیستم به سیستم دیگه منتقل کنید و مطمئن باشید که به همون شکل کار میکنن.
ایزوله بودن: هر کانتینر به شکل مستقل از بقیه کانتینرها کار میکنه، یعنی اگه توی یکی از کانتینرها مشکلی پیش بیاد، بقیه کانتینرها تحت تأثیر قرار نمیگیرن.
سبکی و سرعت: کانتینرها نسبت به ماشینهای مجازی خیلی سبکتر و سریعتر هستن، چون نیازی به راهاندازی سیستمعامل کامل ندارن؛ فقط چیزایی که برنامه نیاز داره رو فراهم میکنن.
کانتینر بهتره یا ماشین مجازی؟
هر دوشون راههایی برای ایزوله کردن برنامهها و سرویسها هستن، ولی کانتینرها سبکتر و سریعتر هستن. ماشینهای مجازی (مثل VMware یا VirtualBox) کل سیستمعامل رو شبیهسازی میکنن، ولی کانتینرها فقط چیزهایی که برنامه نیاز داره رو فراهم میکنن. برای همین استفاده از کانتینرها به منابع کمتری نیاز داره و سریعتر راهاندازی میشن.
مقایسهای سادهتر
فرض کنید یه مجتمع مسکونی داریم:
ماشین مجازی شبیه اینه که هر واحد مسکونی (هر برنامه) یه برق، آب، و خدمات شهری جداگانه داشته باشه. هر واحد، مستقل و کامله، ولی هزینهها و منابع بیشتری مصرف میکنه.
کانتینر شبیه اینه که همه واحدهای مسکونی (برنامهها) از همون برق و آب شهری استفاده کنن، ولی دیوار و حریم خصوصی خودشون رو دارن. اینطوری، منابع مشترک هستن و مصرف کلی کمتره.
پس چرا کانتینرها سریعتر و سبکترن؟
چون در کانتینرها نیازی به سیستمعامل جداگانه برای هر برنامه نیست، فقط همون کتابخانهها و فایلهایی که برنامه نیاز داره در کانتینر قرار میگیره. به همین دلیل:
مصرف منابع کمتره: چون به حافظه و پردازنده کمتری نیاز داریم.
زمان راهاندازی سریعتره: چون سیستمعامل جدیدی راهاندازی نمیشه؛ فقط محیط برنامه اجرا میشه.
قابلیت مقیاسپذیری بیشتری داره: چون کانتینرها سریعتر ساخته و اجرا میشن، میتونید به راحتی تعداد زیادی کانتینر رو روی یه سرور ایجاد و مدیریت کنید.
مثالهای کاربردی
اگر بخواید یه وبسرور (مثل Nginx) رو روی یه سرور اجرا کنید، با کانتینر فقط همون Nginx و فایلهای پیکربندی موردنیازش توی یه محیط ایزوله قرار میگیرن.
اما اگه از ماشین مجازی استفاده کنید، علاوه بر Nginx باید یه سیستمعامل (مثل اوبونتو یا CentOS) هم داشته باشید که مصرف منابع رو بیشتر میکنه.
این ساختار سبک کانتینرها، دلیل اصلی محبوبیت داکره و اینه که شرکتها میتونن برنامههاشون رو سریعتر، با هزینه کمتر و کارایی بیشتر توی محیطهای ابری یا سرورهای محلی اجرا کنن.
چرا باید از داکر استفاده کنم؟
اگه نیاز دارید برنامهتون رو روی سیستمهای مختلف (مثل توسعه، تست، و تولید) به شکل یکسان اجرا کنید، یا اگه برنامههای زیادی دارید که میخواید به شکل مستقل از هم کار کنن، داکر یه ابزار عالیه. مخصوصاً توی محیطهایی که نیاز به مقیاسپذیری و سرعت بالا دارن، استفاده از داکر خیلی رایجه.
Medium
DOCKER EXPLAINED
1 — INTRODUCTION :
❤🔥5❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
مقایسه درآمد جف بزوس با کارگر کمپانیش تو هر ثانیهای که از مکالمشون داره میگذره.
❤🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Cybersecurity doesn’t have to be hard…
You might feel intimidated by how much there is to learn.
You might feel intimidated by how much there is to learn.
❤🔥3
آیا میشه به سرور لینوکسی ریموت دسکتاپ یا RDP زد؟
این امکان وجود دارد بتونیم به یک سرور لینوکسی که از پکیج دسکتاپ برخوردار هست ، ریموت دسکتاپ بزنیم ، خیلی حرکت عجیبی هم نیست اما خب دونستنش خالی از لطف نیست براتون .
فقط کافیه خط به خط کد های زیر رو روی سرور لینوکسی خودتون اجرا کنید :
و تمام ، حالا میتونید با باز کردن برنامه ی Remote Desktop یا mstsc روی ویندوز خودتون ، به سرور لینوکسی ریموت دسکتاپ بزنید .
نکته ی مهم : اگر به صورت لوکال به سرور لینوکسی متصل هستید ، حتما و حتما لاگ اوت یا Log Out کنید ، بعد تلاش کنید که ریموت دسکتاپ بزنید به سیستم ، چرا چون اگر یک Session فعال روی سرور لینوکسی داشته باشید ، امکان ریموت دسکتاپ زدن را به شما نمیدهد.
خیلی کار عجیبی نیست ، اما خب آپشن های دیگری هم برای اتصال به محیط دسکتاپ سرور لینوکسی وجود دارد ، ولی این گزینه جزو راحت ترین گزینه های موجود هست که با همین چند خط کد میتونید به سادگی به محیط سرور دلخواهتون وصل بشید
راه حل دیگه هم استفاده از VNC (مثلاً TigerVNC یا RealVNC)
مزایا: کنترل کامل بر دسکتاپ با کیفیت تصویر بهتر نسبت به xrdp در برخی موارد.
معایب: نیاز به نصب سرور VNC روی کالی و کلاینت VNC در دستگاه شما، و همچنین احتمالاً سرعت کمتر در اتصالات با پهنای باند محدود.
در واقع VNC یکی از رایجترین راهها برای اتصال به دسکتاپ گرافیکی از راه دور است و میتوانید از برنامههای مختلف VNC (مانند RealVNC یا TigerVNC) استفاده کنید. برای امنیت بیشتر، معمولاً اتصال VNC روی SSH تونل میشود.
این امکان وجود دارد بتونیم به یک سرور لینوکسی که از پکیج دسکتاپ برخوردار هست ، ریموت دسکتاپ بزنیم ، خیلی حرکت عجیبی هم نیست اما خب دونستنش خالی از لطف نیست براتون .
فقط کافیه خط به خط کد های زیر رو روی سرور لینوکسی خودتون اجرا کنید :
sudo apt update
sudo apt install xrdp -y
sudo systemctl start xrdp
sudo systemctl start xrdp-sesman
sudo update-rc.d xrdp enable
و تمام ، حالا میتونید با باز کردن برنامه ی Remote Desktop یا mstsc روی ویندوز خودتون ، به سرور لینوکسی ریموت دسکتاپ بزنید .
نکته ی مهم : اگر به صورت لوکال به سرور لینوکسی متصل هستید ، حتما و حتما لاگ اوت یا Log Out کنید ، بعد تلاش کنید که ریموت دسکتاپ بزنید به سیستم ، چرا چون اگر یک Session فعال روی سرور لینوکسی داشته باشید ، امکان ریموت دسکتاپ زدن را به شما نمیدهد.
خیلی کار عجیبی نیست ، اما خب آپشن های دیگری هم برای اتصال به محیط دسکتاپ سرور لینوکسی وجود دارد ، ولی این گزینه جزو راحت ترین گزینه های موجود هست که با همین چند خط کد میتونید به سادگی به محیط سرور دلخواهتون وصل بشید
راه حل دیگه هم استفاده از VNC (مثلاً TigerVNC یا RealVNC)
مزایا: کنترل کامل بر دسکتاپ با کیفیت تصویر بهتر نسبت به xrdp در برخی موارد.
معایب: نیاز به نصب سرور VNC روی کالی و کلاینت VNC در دستگاه شما، و همچنین احتمالاً سرعت کمتر در اتصالات با پهنای باند محدود.
در واقع VNC یکی از رایجترین راهها برای اتصال به دسکتاپ گرافیکی از راه دور است و میتوانید از برنامههای مختلف VNC (مانند RealVNC یا TigerVNC) استفاده کنید. برای امنیت بیشتر، معمولاً اتصال VNC روی SSH تونل میشود.
YouTube
How to Setup Remote Desktop in Kali Linux Using XRDP | Kali Linux 2021.2
In this video tutorial, I am gonna show how to setup remote desktop in Kali Linux using XRDP, so that you can use your windows remote desktop to access Kali desktop from anywhere. XRDP is an open-source implementation of the Microsoft Remote Desktop Protocol…
❤🔥3❤1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
The source code of Windows’ troubleshooting program has leaked.
❤🔥3👍1
دکوراتورها در پایتون ابزارهایی هستند که به ما امکان میدهند رفتار توابع را بدون تغییر در کد اصلی آنها گسترش دهیم.
🧩 دکوراتورها با افزودن قابلیتهای جدید به توابع، کد را بهینه میکنند و از تکرار جلوگیری میکنند. این امر به خوانایی و نگهداری بهتر کد کمک میکند.
🔄 استفاده از دکوراتورها به ما این امکان را میدهد که بدون تغییر در توابع اصلی، قابلیتهای جدیدی اضافه کنیم و کدها انعطافپذیرتر شوند.
🛠️ ساختار دکوراتورها به ما اجازه میدهد قبل و بعد از اجرای توابع اصلی، کارهایی انجام دهیم؛ این ویژگی برای مواردی مانند لاگکردن یا بررسی ورودیها مفید است.
⚠️ یکی از چالشهای استفاده از دکوراتورها این است که ممکن است نام توابع اصلی در زمان دیباگ کردن قابل شناسایی نباشد و به مشکلاتی در شناسایی خطاها منجر شود.
📈 استفاده از کتابخانه "functools" میتواند به حفظ هویت اصلی توابع کمک کند و از مشکلات اورراید جلوگیری کند، و امنیت بیشتری فراهم آورد.
🤔 درک صحیح از دکوراتورها و نحوهی کارکرد آنها نیاز به زمان و تمرین دارد؛ این مفهوم میتواند در ابتدا گیجکننده باشد، اما با تمرین به راحتی قابل فهم میشود.
💡 استفاده معقول از دکوراتورها میتواند به بهبود کیفیت کد کمک کند، اما افراط در استفاده ممکن است کد را پیچیده کند و باید در نظر گرفت تا کدها قابل نگهداری و توسعه باقی بمانند.
https://youtu.be/CuCudHMIPi4?si=_g-sZfyso-vpl_Qe
🧩 دکوراتورها با افزودن قابلیتهای جدید به توابع، کد را بهینه میکنند و از تکرار جلوگیری میکنند. این امر به خوانایی و نگهداری بهتر کد کمک میکند.
🔄 استفاده از دکوراتورها به ما این امکان را میدهد که بدون تغییر در توابع اصلی، قابلیتهای جدیدی اضافه کنیم و کدها انعطافپذیرتر شوند.
🛠️ ساختار دکوراتورها به ما اجازه میدهد قبل و بعد از اجرای توابع اصلی، کارهایی انجام دهیم؛ این ویژگی برای مواردی مانند لاگکردن یا بررسی ورودیها مفید است.
⚠️ یکی از چالشهای استفاده از دکوراتورها این است که ممکن است نام توابع اصلی در زمان دیباگ کردن قابل شناسایی نباشد و به مشکلاتی در شناسایی خطاها منجر شود.
📈 استفاده از کتابخانه "functools" میتواند به حفظ هویت اصلی توابع کمک کند و از مشکلات اورراید جلوگیری کند، و امنیت بیشتری فراهم آورد.
🤔 درک صحیح از دکوراتورها و نحوهی کارکرد آنها نیاز به زمان و تمرین دارد؛ این مفهوم میتواند در ابتدا گیجکننده باشد، اما با تمرین به راحتی قابل فهم میشود.
💡 استفاده معقول از دکوراتورها میتواند به بهبود کیفیت کد کمک کند، اما افراط در استفاده ممکن است کد را پیچیده کند و باید در نظر گرفت تا کدها قابل نگهداری و توسعه باقی بمانند.
https://youtu.be/CuCudHMIPi4?si=_g-sZfyso-vpl_Qe
YouTube
دکوریتور در پایتون | Decorator in Python
من در شبکه های اجتماعی دیگه:
اینستاگرام
https://instagram.com/am.mthri
کانال تلگرام
https://news.1rj.ru/str/mthri_tips
توییتر
https://twitter.com/a_mthri
وبلاگ
https://iamamir.ir
اینستاگرام
https://instagram.com/am.mthri
کانال تلگرام
https://news.1rj.ru/str/mthri_tips
توییتر
https://twitter.com/a_mthri
وبلاگ
https://iamamir.ir
👍5❤🔥2
چگونه پوت های باز روی سرور لینوکسی خود را ببینیم؟
ابزار های زیادی برای این کار وجود دارد ، اما یکی از آن ها:
استفاده از ابزار netstat:
ابتدا باید مطمئن باشیم که پکیج مروبطه بر روی سرور ما نصب باشد :
و بعد از نصب کامند زیر را اجرا میکنیم :
که هر آپشن در اینجا مشخص کننده ی یک ویژگی میباشد :
آپشن t : برای پروتکلهای TCP
آپشن u : برای پروتکل های UDP
آپشن l : برای نمایش پورتهایی که در حالت "LISTEN" هستند (در حال گوش دادن)
آپشن n : برای نمایش آدرسها به صورت عددی که دلبخواه است و میتوانید نزنید .
ابزار های زیادی برای این کار وجود دارد ، اما یکی از آن ها:
استفاده از ابزار netstat:
ابتدا باید مطمئن باشیم که پکیج مروبطه بر روی سرور ما نصب باشد :
apt install net-tools
و بعد از نصب کامند زیر را اجرا میکنیم :
sudo netstat -tuln
که هر آپشن در اینجا مشخص کننده ی یک ویژگی میباشد :
آپشن t : برای پروتکلهای TCP
آپشن u : برای پروتکل های UDP
آپشن l : برای نمایش پورتهایی که در حالت "LISTEN" هستند (در حال گوش دادن)
آپشن n : برای نمایش آدرسها به صورت عددی که دلبخواه است و میتوانید نزنید .
❤🔥4👍2
مفهوم HeartBeat در کلاستر ها !
در مباحث کلاسترینگ (خوشهبندی)، «heartbeat» به سیگنالهایی گفته میشود که بین گرهها (nodes) در کلاستر ارسال میشود تا وضعیت آنلاین یا آفلاین بودن هر گره را مشخص کند. این سیگنالها بهطور منظم و با فاصلههای زمانی کوتاه بین گرهها رد و بدل میشوند. اگر یکی از گرهها به هر دلیلی پاسخ ندهد یا heartbeat خود را ارسال نکند، سیستم متوجه میشود که آن گره دچار مشکل شده و ممکن است عملیات failover یا جابهجایی وظایف آن گره به گرههای دیگر را انجام دهد.
این مکانیزم در سیستمهای حساس و با دسترسپذیری بالا (high availability) بسیار مهم است تا مطمئن شویم که در صورت خرابی یکی از گرهها، سیستم بدون وقفه به کار خود ادامه میدهد.
اگه بخوایم مثالی بزنیم :
فرض کنید در یک بانک بزرگ از سیستم کلاسترینگ استفاده میشود تا خدمات مالی بدون وقفه به مشتریان ارائه شود. این بانک دو سرور دارد که بهطور موازی کار میکنند و اگر یکی از آنها دچار مشکل شود، دیگری بتواند بدون قطع خدمات به کار ادامه دهد. این دو سرور (که به آنها گره یا node گفته میشود) برای این منظور به یکدیگر heartbeat میفرستند.
1. ارسال و دریافت heartbeat:
هر چند ثانیه یک بار، هر یک از گرهها سیگنالی به نام heartbeat برای دیگری ارسال میکند. این سیگنال شامل اطلاعاتی مانند زمان ارسال، وضعیت عملکرد و بار فعلی سیستم است. هدف از ارسال این سیگنال این است که هر گره متوجه شود دیگری فعال است و به درستی کار میکند.
2. شناسایی خرابی گرهها:
فرض کنید گره ۱ بهدلیل بروز یک مشکل سختافزاری یا نرمافزاری از کار میافتد و دیگر قادر به ارسال heartbeat نیست. در این حالت، گره ۲ که سیگنال heartbeat را دریافت نکرده است، متوجه میشود که گره ۱ از دسترس خارج شده است. این شناسایی خرابی معمولاً بر اساس مدت زمانی که سیگنال heartbeat قطع شده است انجام میشود. اگر چند سیگنال پشت سر هم دریافت نشود (برای مثال، پس از ۳ ثانیه)، گره ۲ نتیجه میگیرد که گره ۱ دچار مشکل شده است.
3. اجرای failover یا جابهجایی وظایف:
با تشخیص خرابی گره ۱، گره ۲ فوراً وارد عمل میشود و وظایف گره از کار افتاده را به عهده میگیرد. به این فرآیند «failover» گفته میشود. در این مرحله، گره ۲ از دستورات و اطلاعاتی که برای حالت پشتیبان آماده کرده بود، استفاده میکند تا بدون هیچ قطعی، سرویسها و اطلاعات مورد نیاز کاربران را ارائه دهد.
4. بازگرداندن سیستم به حالت اصلی:
پس از تعمیر گره ۱ و بازگشت آن به حالت عادی، دو گره دوباره به تبادل heartbeat ادامه میدهند. بسته به نوع تنظیمات سیستم، ممکن است گره ۲ وظایف را به گره ۱ بازگرداند یا بهعنوان پشتیبان باقی بماند تا در صورت خرابی مجدد، باز هم بتواند وظایف را به عهده بگیرد.
در مباحث کلاسترینگ (خوشهبندی)، «heartbeat» به سیگنالهایی گفته میشود که بین گرهها (nodes) در کلاستر ارسال میشود تا وضعیت آنلاین یا آفلاین بودن هر گره را مشخص کند. این سیگنالها بهطور منظم و با فاصلههای زمانی کوتاه بین گرهها رد و بدل میشوند. اگر یکی از گرهها به هر دلیلی پاسخ ندهد یا heartbeat خود را ارسال نکند، سیستم متوجه میشود که آن گره دچار مشکل شده و ممکن است عملیات failover یا جابهجایی وظایف آن گره به گرههای دیگر را انجام دهد.
این مکانیزم در سیستمهای حساس و با دسترسپذیری بالا (high availability) بسیار مهم است تا مطمئن شویم که در صورت خرابی یکی از گرهها، سیستم بدون وقفه به کار خود ادامه میدهد.
اگه بخوایم مثالی بزنیم :
فرض کنید در یک بانک بزرگ از سیستم کلاسترینگ استفاده میشود تا خدمات مالی بدون وقفه به مشتریان ارائه شود. این بانک دو سرور دارد که بهطور موازی کار میکنند و اگر یکی از آنها دچار مشکل شود، دیگری بتواند بدون قطع خدمات به کار ادامه دهد. این دو سرور (که به آنها گره یا node گفته میشود) برای این منظور به یکدیگر heartbeat میفرستند.
1. ارسال و دریافت heartbeat:
هر چند ثانیه یک بار، هر یک از گرهها سیگنالی به نام heartbeat برای دیگری ارسال میکند. این سیگنال شامل اطلاعاتی مانند زمان ارسال، وضعیت عملکرد و بار فعلی سیستم است. هدف از ارسال این سیگنال این است که هر گره متوجه شود دیگری فعال است و به درستی کار میکند.
2. شناسایی خرابی گرهها:
فرض کنید گره ۱ بهدلیل بروز یک مشکل سختافزاری یا نرمافزاری از کار میافتد و دیگر قادر به ارسال heartbeat نیست. در این حالت، گره ۲ که سیگنال heartbeat را دریافت نکرده است، متوجه میشود که گره ۱ از دسترس خارج شده است. این شناسایی خرابی معمولاً بر اساس مدت زمانی که سیگنال heartbeat قطع شده است انجام میشود. اگر چند سیگنال پشت سر هم دریافت نشود (برای مثال، پس از ۳ ثانیه)، گره ۲ نتیجه میگیرد که گره ۱ دچار مشکل شده است.
3. اجرای failover یا جابهجایی وظایف:
با تشخیص خرابی گره ۱، گره ۲ فوراً وارد عمل میشود و وظایف گره از کار افتاده را به عهده میگیرد. به این فرآیند «failover» گفته میشود. در این مرحله، گره ۲ از دستورات و اطلاعاتی که برای حالت پشتیبان آماده کرده بود، استفاده میکند تا بدون هیچ قطعی، سرویسها و اطلاعات مورد نیاز کاربران را ارائه دهد.
4. بازگرداندن سیستم به حالت اصلی:
پس از تعمیر گره ۱ و بازگشت آن به حالت عادی، دو گره دوباره به تبادل heartbeat ادامه میدهند. بسته به نوع تنظیمات سیستم، ممکن است گره ۲ وظایف را به گره ۱ بازگرداند یا بهعنوان پشتیبان باقی بماند تا در صورت خرابی مجدد، باز هم بتواند وظایف را به عهده بگیرد.
YouTube
How to use Heartbeat and DRBD for HA (high availability)
We look into high availability using Heartbeat and DRBD. Heartbeat is a software to monitor and failover when a machine is unresponsive and DRBD can help you replicate data between machines making your setup highly available. This solution can help you doing…
❤🔥4👍2