در شبکه های کامپیوتری کلاس های آی پی وجود دارد با نام های A, B و C که در واقع یک نوع معماری آدرس دهی به تجهیزات شبکه می باشد که از سال 1981 تا زمان معرفی Classless Inter-Domain Routing در سال 1993 کاربرد داشت. در جدول ذیل اطلاعات کامل تری از این نوع آدرس دهی مشاهده می نمایید:
Num of Networks | Hosts per Network ID | Subnet Mask | IP Range | First Binary Octed | Firts Decimal Octed | Class |
126 | 16,777,214 | 255.0.0.0 | 127.255.255.255 - 0.0.0.0 | 0XXXXXXX | 127 - 0 | Class A |
16,382 | 65,534 | 255.255.0.0 | 191-255.255.255 - 128.0.0.0 | 10XXXXXX | 191 - 128 | Class B |
2,097,150 | 254 | 255.255.255.0 | 223.255.255.255 - 192.0.0.0 | 110XXXXX | 223 - 192 | Class C |
سابنت (Subnet) یک زیرشبکه یا (Sub-Network) از شبکه ها است که زیر کلاس های A, B و C قرار می گیرد.
برای
مثال، 172.16.0.0/16 یک شبکه کلاس B می باشد. این نتورک با توجه به این که
65536 آی پی در آن وجود دارد می توان گفت که یک شبکه خیلی بزرگ است و
استفاده از این شبکه برای یک شرکت کوچک با 6 دستگاه متصل به شبکه کار
اشتباهی است.
حال به جای اینکه از این تکه بزرگ از کل آی پی های موجود برای یک شبکه کوچک استفاده کنیم، از یک قسمت کوچک تر آن بهره برداری می کنیم. برای مثال 172.16.3.0/24 یک سابنت Subnet از کلاس B می باشد که تعداد کمتری از آی پی ها را استفاده کرده است به همین دلیل به آن "زیر-شبکه" یا “Sub-Net” می گویند.برای درک مفاهیم ویادگیری عمیق دوره دوره آموزشی CCNP Enterprise
پیشنهاد میشود.
خب حالا بذارید ببینیم که دلیل این کار چیه؟ به توپولوژی زیر نگاه کنید:
در توپولوژی فوق شبکه کوچک یک شرکت را می بینید که یک روتر مرکزی (Core Router) به همراه 3 سوییچ دارد که هر سوییچ نشان دهنده یک شعبه از آن شرکت است. به هر یک از سوییچ ها و روتر های این مجموعه یک نتورک کلاس C اختصاص داده شده است که هیچ مشکلی از لحاظ فنی ندارد. اما چرا این طراحی اشتباه می باشد؟
حال می توان برای رفع مشکل محدودیت آی پی ها از کلاس B یا A مانند 172.16.0.0/24 الی 172.31.255.0/24 که یک نتورک در سابنت B است استفاده کرد اما باز هم استفاده از سابنت /24 کار اشتباهی است. چرا که همچنان تعداد آی پی زیادی را هدر می دهیم.برای درک عمیق مفاهیم آموزش سیسکو مراجعه کنید.
زمانیکه در مورد سابنتینگ صحبت می کنیم، می بایست به دو چیز توجه کنیم:
حال برای اینکه درک بهتری از نحوه طراحی معماری یک شبکه داشته باشیم، بیایید با هم دیگر توپولوژی فوق را از ابتدا طراحی کنیم.پیشنهاد ما برای درک بیشتر مفاهیم مطالعه مقاله آموزش مسیریابی یا IP Routing می باشد.
به توپولوژی زیر نگاه کنید:
برای طراحی معماری آی پی دهی توپولوژی فوق باید چند سوال از خودمان بپرسیم:
برای مثال فرض کنیم که جواب سوال هایمان به این شرح می باشد:
انتظار ما از رشد این شبکه به این صورت است که امکان می دهیم که تعداد VLAN ها و کاربرانمان در آینده دو برابر افزایش خواهند داشت و همچنین 2 شعبه دیگر به این شبکه افزوده خواهد شد. حال چه کنیم؟
بزرگترین
VLAN ای که داریم تعداد 100 کاربر را پشتیبانی خواهد نمود که انتظار داریم
این تعداد در آینده دو برابر بشود که بنابراین به یک سابنت با 200 آی پی
نیاز داریم. اما نزدیک ترین سابنت قانونی که به 200 آی پی وجود دارد سابنت
/24 می باشد. طراحی شبکه ما باید چیزی شبیه به توپولوژی ذیل باشد:
در تصویر فوق ما برای VLAN هر شعبه یک سابنت /24 استفاده کردیم. اما چرا؟
اگر شبکه فوق را یک شبکه Enterprise در نظر بگیریم، به احتمال قریب به یقین از آی پی های Private در LAN این شبکه استفاده خواهد شد. بعضی از VLAN های مورد نیاز ما با احتساب گسترش آن به 40 عدد آی پی آدرس نیاز دارد که ما می توانستیم از سابنت های کوچکتر مانند /26 استفاده کنیم اما به دلایل ذیل این کار را انجام ندادیم.
ابتدا باید عنوان کرد که استفاده از سابنت /24 به مراتب راحت تر از خرد کردن این سابنت می باشد و استفاده از یک سابنت ثابت در همه جا شبکه را ساده تر می کند. افراد با سابنت /24 آشنایی بیشتری نسبت به سایر سابنت ها دارند. اولین آی پی این رنج .1 می باشد و آخرین آی پی این رنج .254 که یکی از این دو می تواند بعنوان دیفالت گیتوی (Default Gateway) استفاده شود.
بیشتر بخوانید: جامع ترین آموزش پروتکل BGP در تجهیزات Cisco, Mikrotik و Juniper
کلاسی که استفاده کردیم امکان استفاده از تعداد زیادی آی پی را به ما خواهد داد پس نگران کمبود آی پی در این شبکه نیستیم. ما همچنین در اینجا مقدار زیادی سابنت را بین هر شعبه خالی گذاشته ایم. برای مثال سوییچ 1 می تواند از سه VLAN موجود خود فراتر رفته و از سابنت های 172.16.0.0 – 172.16.9.255 استفاده نماید.
تنها مورد استثنا در اینجا لینک های بین روتر و سوییچ ها است که با توجه به اینکه به تنها 2 آی پی آدرس نیاز داریم، تصمیم گرفتیم که از سابنت /30 و همچنین رنج 172.16.100.0 استفاده کنیم.
حالا اگه فرض کنیم همون شبکه مربوط به یک شرکت ساده نبوده و این شرکت یک سرویس پروایدر اینترنت بوده که می بایست آی پی های Valid خودش رو مدیریت کند و بین مشترکینش به اشتراک بگذارد؟ اگر اینجا با مشکل کمبود آی پی آدرس مواجه باشیم دیگر مانند معماری "سابنت تک سایز" نمی توانیم دست و دل باز باشیم و باید با مدیریت صحیح، آی پی ها را بین مشترکین تقسیم کنیم. در این جا سناریو خود را بر این طرح میگذاریم که روتر R1 نقطه مرکزی شرکت ما می باشد و همچنین سوییچ های SW1, SW2, SW3 همگی سایت های شرکت ما در نقاط مختلف شهر می باشد.
بگذارید مجددا به سوال هایی که در قسمت قبل پرسیده شد پاسخ دهیم و معماری خود را بر آن اساس طراحی کنیم:
در نظر بگیریم که تعداد سایت ها، VLAN ها و همچنین سرور ها در آینده رشد 2 برابری خواهند داشت. پس می بایست برنامه ریزی و محاسبات خود را برای سابنتینگ توپولوژی ای به این شرح انجام دهیم:
پس از بررسی ها و محاسبات برای سابنتینگ Subnetting این شبکه، توپولوژی ما به این صورت خواهد بود:
بگذارید شرح دلایلی که این نوع سابنت گذاری را در توپولوژی فوق انتخاب کردیم ذکر کنم:
در نظر داشته باشید این تنها یک مثال می باشد اما یک ایده ای از مواردی که نیاز دارید تا در طراحی سابنتینگ به آن توجه داشته باشید به شما می دهد.
شاید شماهم شنیده باشید که میگن از وای فای های موجود در مکان های عمومی استفاده نکنید و احتمالا این کار رو هم انجام نمیدادید. اما قضیه چیه و چرا این کار میتونه خطرساز بشه؟!
خب همونجور که از عنوان مقاله پیداست میتونید حدس بزنید که بخاطر ARP Spoofing این کار میتونه خطرساز باشه ولی خب ARP Spoofing چیه؟! یک قطعس؟! یک برنامس؟! یا شایدهم یک هکر 13 ساله چینی!! البته که آخری یک شوخی بی مزه بود.
برای اینکه بخواهیم ادامه مطلب رو توضیح بدیم ابتدا به نظرم اگر یک دید کلی از موضوع داشته باشید به شدت مفید خواهد بود و به شما این امکان رو خواهد داد که فقط تا جایی که تمایل دارید در این مطب عمیق شوید. زیرا شاید شما یک خواننده کنجکاو باشید که فقط میخواهید بدانید در صورت استفاده از وای فای در مکان های عمومی چه چیزی میتواند خطرساز باشد و چه بلایی میتواند بر سر اطلاعاتتان بیاید و یا شایدهم یک دانشجوی رشته کامپیوتر هستید که میخواهید کمی عمیق تر درمورد شبکه و کارکرد آن بدانید.
در این سناریو اگر کامپیوترهای موجود در تصویر، همان اشخاص متصل به اینترنت از طریق یک مودم مشترک باشند، قضیه به این صورت است که هر کامپیوتر برای برقراری ارتباط با اینترنت بسته های خود را به مودم تحویل میدهند و مودم بسته ها را در بستر اینترنت ارسال میکند و جواب آن بسته ها را به کامپیوتر مورد نظر بر میگرداند. زیبا نیست؟! همه چیز به درستی کار خود را انجام خواهند داد و شما قادر هستید از این طریق پول های خودتان را از حسابی به حساب دیگر منتقل کنید یا وارد صفحه وبسایت دانشگاهتان شوید و در آن لاگین کنید و نمراتتان را چک کنید و هزاران کار دیگر که امروزه با اینترنت قادر به انجام آن ها هستیم. اما شبکه همیشه به این زیبایی کار نخواهد کرد و اشخاصی وجود خواهند داشت که مانع کارکرد درست یک شبکه شوند.
حال این سناریو را با وجود فردی در شبکه که چیزهایی از شبکه ها و کارکرد آن ها میداند بررسی میکنم. فرض کنید کامپیوتر B در سناریو اول جای خود را به یک هکر میدهد. هکر با چیز هایی که از شبکه میداند خود را به جای مودم جا میزند و تمام پیام هارا به سمت خود میکشاند. آیا چنین کاری شدنی است؟! بله!! هکر تمام پیام هارا به سمت خود میکشاند و میتواند یک به یک پیام هارا بخواند (البته در اکثر موارد نمیتواند که در سناریو بعد توضیح خواهیم داد.) و بعد از خواندن پیام ها، پیام هارا جهت ارسال به اینترنت به مودم ارسال میکند و جواب هارا از مودم میگیرد و یک به یک به صاحبانشان تحویل میدهد. عجب خر تو خری است؟! دقیقا. آیا شما وقتی درحال لاگین به صفحه دانشگاهتان هستید میتوانید متوجه شوید که این پیام های ارسالی و دریافتی به دستان شخص سومی هم رسیده و خوانده شده است؟! پیام هایی که از اتفاق رمز عبور و نام کاربری شماهم درون آن قرار داشته است؟! عمرا متوجه شوید!! شبکه به ظاهر آرام است و به کار خود ادامه میدهد ولی چیزی در این بین اشتباه است و آن شنودِ (همان Sniff خودمان در دنیای کامپیوتر) ارتباط شما توسط شخص سوم است. آیا شبکه همیشه همینقدر خطرناک است؟! بله. پس دیگر از اینترنت برای کارهای حیاطی خود استفاده نکینم؟! بیاید به سناریو سوم تا بهتون بگم هک و امنیت چجوری با یکدیگر به پیش میروند و چقدر پیشرفت هرکدام وابسته به پیشرفت دیگری است. به عبارت دیگر، اگر روشی برای هک پیدا شود، اشخاصی هستند که راه حلی بیابند و جلوی آن را بگیرند (معمولا با آپدیت ها این مشکلات امنیتی برطرف خواهند شد.) و اگر روشی برای هک وجود نداشته باشد، بازهم افراد خلاق و پیگیری پیدا خواهند شد که راهی برای نفوذ پیدا کنند. و این دو قطبی هک و امنیت مدام در حال رشد است.
حال این سناریو که همانند سناریو دوم (سناریو بالایی) است را در نظر بگیرید. با این تفاوت که اینبار، اشخاص پیام های خود را با کلیدی که کپی همان کلید را بانک و دانشگاه در اختیار دارند قفل میکنند. حال چه اتفاقی رخ میدهد؟! اجازه دهید پیام های شخص سبز رنگ (computer B) در شکل را دنبال کنیم تا به صورت صحیح درک کنیم که چرا این شبکه درحالی که شنود میشود ولی همچنان امن است.
فرض کنید شخص مو فرفری و سبز رنگ داستان ما میخواهد در صفحه دانشگاهی خود لاگین کند و برای این کار یک پیام حاوی نام کاربری و رمز عبور را برروی شبکه و برای دانشگاه ارسال میکند. اما قبل از ارسال با یک کلید که کپی همان کلید را دانشگاه در اختیار دارد پیغام خود را قفل میکند. پیغام در مرحله اول به هکر بد طینت ما میرسد (در واقع اول به مودم میرسد ولی شما برای راحت تر شدن توضیح مسئله از من بپذیرید که به دست هکر میرسد.). هکر میخواهد داخل نامه را بخواند اما ای دریغا به برش که برروی نامه قفل بزرگی قرار دارد و هکر قادر به خواندن آن نیست. در این مرحله هکر چشمش کور میشود و نامه را جهت رسیدن به دانشگاه به مودم ارسال میکند (چون اگر این کار را انجام ندهد شبکه درست کار نمیکند و شما متوجه خواهید شد که جایی از کار میلنگد). مودم نامه را به اینترنت میدهد و اینترنت آن را به مقصد خود یعنی دانشگاه میرساند. دانشگاه به وسیله کلید خود قفل را باز میکند و عملیات های مورد نیاز را انجام میدهد و نامه ای که درون آن اجازه ورود به صفحه پرتال دانشگاه است را ایجاد میکند. دانشگاه به وسیله همان کلید نامه را قفل میکند و ارسال میکند. نامه مسیر بازگشت خود را طی میکند و به دست هکر میرسد، هکر بازهم قفلی بزرگ برروی نامه میبیند و از فرط ناراحتی هودی خود را جر میدهد، فریاد میکشد، قهوه را بر صورت خود میپاشد و نامه را به صاحب آن یعنی کامپیوتر B میرساند. کامپیوتر B نامه را دریافت میکند و با کلید خود آن را باز میکند. آنجاست که هکر متوجه موضوعی میشود. بله بله!!! شبکه ما مجهز به TLS شده است.
حقیقت این است که اگر ما فقط یک کاربر ساده باشیم که از یک وبسایت و یا یک نرم افزار تحت شبکه استفاده میکنیم، این وظیفه ما نیست که پیام های خودمان را رمزگذاری کنیم و این کار وظیفه وبسایت و یا نرم افزار هاییست که ما به آن ها مراجعه میکنیم و به ما خدمات میدهند.
ولی آیا میتوان فهمید کدام وبسایت ها از TLS استفاده میکنند و این ارتباط امن را در اختیار ما قرار میدهند؟! بله. امروزه صفحاتی که از TLS استفاده نمیکنند بسیار کم هستند از این رو آیکون "قفل" بالای صفحات وبسایت برای ما موضوعی جا افتاده است و به چشمانمان آشناست. به بالای همین مقاله، جایی که آدرس ویرگول قرار دارد توجه کنید. در ابتدای این آدرس یک قفل میبینید؟! بله؟! معنای آن این است که ارتباط شما امن است و شما میتوانید با خیال راحت از وبسایت ویرگول در هر مکانی استفاده کنید و خیالتان راحت باشد که هکری در بین راه در حال شنود کردن ارتباط شما نیست و یا اگر درحال شنود باشد، راهی از پیش نخواهد برد زیرا ارتباط ما رمزگذاری شده است.
خب تا اینجای مطلب برای آن ها بود که تنها یک دید کلی از موضوع میخواستند و فقط میخواستند از خطرات هک در امان باشند. ولی اگر شما جزو آن دسته از افراد هستید که میخواهید موضوع را کمی عمیق تر دنبال کنید و بدانید از لحاظ فنی این کار چگونه صورت میگیرد ادامه مطلب را دنبال کنید و اگر مایل به این موضوع نیستید از شما متشکر هستم که مطالب این جانب را میخواندی و اشکالاتش را به طریقی به بنده اطلاع میدهید. چراغ ها خاموش میشود و کسانی که مایل به ادامه دادن نیستند میتواند بدون ذره ای شرمساری مطلب را رها کنند.
اجازه دهید کمی عمیق تر شویم و مسئله را فنی تر بررسی کنیم.
پیام ها در یک شبکه خصوصی (private) بر چه اساسی مسیریابی میشوند؟ IP ها؟! نام دیوایس های؟! بر اساس شمارهی اتصالشان؟! خیر هیچکدام. مسیریابی در شبکه خصوصی (private) یا همان شبکه محلیمان براساس آدرس های MAC صورت میگیرد. هر دیوایس برای خود یک جدولی تشکلی میدهد به نام ARP Table که در آن جدول، پارامترهای مختلفی نگهداری میشود. اما دوتا از مهم ترین پارامترهایی که در این قسمت برای ما مهم است، آدرس IP و آدرس MAC هست.
برای دیدن این جدول در ویندوز میتوانید وارد CMD ویندوز شوید و دستور arp -a را وارد کنید. نمونه ای از این جدول را در تصویر زیر میتوانید مشاهده کنید. که ابتدا آدرس IP و روبروی آن آدرس MAC مربوطه ذخیره شده است.
خب سوال درست و به موقع این است که "این جدول چگونه ساخته میشود؟". جواب سوال ساده است. دیوایس ها برای ارسال پیام به فلان IP در جدول MAC خود به دنبال IP مورد نظر میگردند و درصورت پیدا نکردن آن یک پیغام arp را برای تمام شبکه broadcast میکنند و از تمام شبکه میخواهند اگر کسی فلان IP را میشناسد، آدرس MAC آن را برایش ارسال کنند. و اگر دیوایسی در شبکه آن را بشناسد، آدرس MAC آن را برای درخواست کننده ارسال میکند. درخواست کننده MAC مورد نظر را دریافت میکند و آن را وارد جدول MAC خود میکند و بعد از آن، زمانی که میخواهد برای IP مورد نظر پیغامی بفرستد از همان MAC ذخیره شده در جدول ARP استفاده میکند.
چیز به ذهنتون رسید؟! نه؟! خب چرا ما خودمون رو به جای مودم جا نزنیم؟! چرا به تمام دیوایس ها یک پیغام arp نفرستیم و مدعی نشیم آدرس MAC دیواس ما برابر است با IP مودم؟! IP مودم چیست؟! در اکثر موارد 192.168.1.1. بله بله!! ما میتوانیم این کار را انجام دهیم و ترافیک شبکیمان را از خود عبور دهیم!! جالب نیست؟! به نظر من که زندگی یعنی همین.
خب سوال اساسی اینجاست که ما تمام این کارهای پیچیده شبکه ای را به چه صورتی انجام دهیم؟! و جواب اینه که خوشبختانه برای تمام این چیزها که گفته شد ابزارهای مناسبی ساخته شده که به رایگان در اختیار ما قرار دارند.
نکته: در این آموزش فرض شده است که کامپیوتری که میخواهیم به آن حمله ARP Spoofing انجام دهیم دارای آدرس آی پی 192.168.1.11 است و مودم ما دارای آدرس آی پی 192.168.1.1 است.
خب ابتدا باید ما به عنوان شخص سوم (هکر) پکت های ARP خود را برروی شبکه منتشر کنیم و آدرس MAC خود را به جای آدرس MAC مودم به شخصی که میخواهیم به آن حمله کنیم، قالب کنیم. برای این کار از دستور زیر استفاده میکنیم.
sudo arpspoof -i eth0 -t 192.168.1.11 192.168.1.1
در این دستور با سوئیچ i میگوییم که ما این حلمه را از طریق اینترفیس eth0 خود انجام میدهیم و از طریق سوئیچ t مشخص میکنیم که target (هدف) ما برای حمله آدرس آی پی 192.168.1.11 است و میخواهیم خود را به جای آدرس آی پی 192.168.1.1 (آدرس آی پی مودممان) جا بزنیم تا از این به بعد آدرس آی پی 192.168.1.11 به جای ارسال بسته هایش به مودم برای اتصال به اینترنت، ترافیکش را از ما عبور دهد. به همین راحتی!!! الان ما در بین راه به شنود پیام های ارسالی و دریافتی آدرس آی پی 192.168.1.11 نشسته ایم.
تا اینجای کار آدرس آی پی 192.168.1.11 تمام بسته هایش را برای ما ارسال خواهد کرد و اگر همین الان برای مراجعه به یک وبسایت برروی کامپیوتر مورد حمله قرار گرفته شده تلاش کنید متوجه خواهید شد که به ظاهر اینترنت کامپیوتر مقابل قطع است و هیچ کاری انجام نمیدهد. زیرا کامپیوتر مورد حمله بسته های خود را برای ما ارسال میکند ولی ما آن بسته هارا دور میریزیم؛ ولی قرار بود ما این بسته هارا بخوانیم و بعد آن هارا تحویل مودم دهیم تا آب از آب تکان نخورد!! برای این کار در لینوکس باید حالت روتر را فعال کنیم که لینوکس کار مسیریابی را انجام دهد و بسته هارا به مقاصد درست خود برساند. برای این کار از دستور زیر استفاده میکنیم و حالت روتر لینوکس خود را فعال میکنم.
sudo echo 1 >/proc/sys/net/ipv4/ip_forward
حالا همه چیز آماده است و شما میتوانید تمامی ترافیک ارسالی از کامپیوتر مورد حمله را به وسیله نرم افزار wireshark شنود کنید.
نرم افزار wireshark را اجرا کنید.
برروی شبکه eth0 خود کلیک کنید تا بتوانید تمام بسته هایی که از این انترفیس عبور میکند را مشاهده کنید.
اما ما نیازی به تمامی پکت های ارسالی و دریافتی برروی اینترفیس eth 0 نداریم و باید تمام پکت هایی که از طرف 192.168.1.11 است را مورد بررسی قرار دهیم.
برای این کار در قسمت فیلتر کردن پکت ها مقدار ip.addr==192.168.1.11 را تایپ میکنیم تا فقط و فقط بسته هایی از این آدرس آی پی برای ما نمایش داده شود.
حالا شما شاهد تمامی پکت های ارسالی و دریافتی توسط کامپیوتر 192.168.1.11 هستید و به یاد داشته باشید که اگر کامپیوتر مورد نظر به سایت هایی که از TLS استفاده میکند سر بزند شما قادر به خواندن محتوای آن نیستید!!
دوره آموزش وایرشارک | Wireshark به شما بصورت مقدماتی تا پیشرفته ابزار وایرشارک را آموزش می دهد. در این دوره آموزشی شما از نصب اولیه این ابزار تا شناخت محیط و شنود و تجزیه و تحلیل ترافیک شبکه با وایرشارک را آموزش می بینید. این دوره آموزشی وایرشارک مناسب افرادی است که قصد دارند مدیریت و نظارت بهتری بر روی شبکه خودشان داشته باشند یا علاقه مند به ورود یا تکمیل مباحث امنیت اطلاعات و هک و تست نفوذ در شبکه هستند.
دوره آموزش وایرشارک | Wireshark مهندس علیزاده یک آموزش شنود شبکه در قالب 14 فیلم آموزشی Wireshark است که به شما بصورت مقدماتی تا پیشرفته ابزار وایرشارک را آموزش می دهد. در این دوره آموزشی شما از نصب اولیه این ابزار تا شناخت محیط و شنود و تجزیه و تحلیل ترافیک شبکه با وایرشارک را آموزش می بینید. این دوره آموزشی وایرشارک مناسب افرادی است که قصد دارند مدیریت و نظارت بهتری بر روی شبکه خودشان داشته باشند یا علاقه مند به ورود یا تکمیل مباحث امنیت اطلاعات و آموزش هک و تست نفوذ در شبکه هستند.یادگیری دوره آموزش نتورک پلاس به عنوان پیشنیاز برای ورود به دنیای تحلیل ترافیک شبکه الزامی است.
چگونه از هک شدن روتربورد میکروتیک جلوگیری کنیم؟ همانطور که اطلاع دارید سیستمعامل میکروتیک ( Mikrotik ) در واقع روتریست که با استفاده از هسته لینوکس تولید شده است. جهت برقراری ارتباط با این سیستم عامل و مدیریت آن بصورت گرافیکی از ابزار winbox استفاده می شود. احیرا آسیب پذیری در این ابزار شناسایی شده که به هکر اجازه می دهد از طریق پورت 8291 که مختص winbox است اقدام به شناسایی سرورهای میکروتیک می کند و در نهایت با استفاده و بهره برداری از پورت 80 امکان اکسپلویت برای بات نت را فراهم می کند.در توضیح بات نت همین مقدار بسنده می کنم که بات نت شبکه ای دستگاه های آلوده شده هستند (بات) که تحت کنترل یک مرکز کنترل اقدام به حملات خرابکارانه از قبیل ddos و یا ماینینگ می کنند.
برای یادگیری بیشتر مفاهیم یکروتیک شرکت در دوره آموزشی MTCNA میکروتیک ،از آموزش میکروتیک وقبل آن ترجیحا یادگیری دوره آموزش نتورک پلاس پیشنهاد میشود.
راهکار دائم : بهره برداری از آخرین نسخه سیستم عامل roter os میکروتیک یعنی نسخه 6.38.5
راهکار دائم: آپدیت نسخه Mikrotik
راهکار موقت: غیرفعال نمودن www در بخش IP service
چگونه SNMP را بر روی میکروتیک فعال کنیم؟ پروتکل SNMP مخفف Simple Network Management Protocol می باشد، یک پروتکل درلایه 7مدل OSI یا همان Application-Layer که از پروتکل UDP به منظور حمل و نقل اطلاعات استفاده می کند, این پروتکل وظیفه مانیتورینگ و مدیریت شبکه را دارد که با استفاده از آن ما می توانیم نظارات و مدیریت خوبی روی Device های موجود در شبکه خود داشته باشیم این پروتکل قابلیت فعال شدن بر روی Routerها، Hubها و Switch ها و سرور های شبکه را دارد پروتکل SNMP از UDP و از پورت 161 به منظور Send/Receive ( ارسال/دریافت) و از پورت 162 به منظور حمل و نقل و ردوبدل کردن اطلاعات استفاده میکند.
دوره آموزش MTCRE میکروتیک | Mikrotik MTCRE | بصورت گام به گام | مقدماتی تا پیشرفته | بصورت کاملا کارگاهی به شما مسیریابی با روترهای میکروتیک را به خوبی آموزش می دهد. دوره MTCRE میکروتیک دومین سطح دوره های آموزش میکروتیک به حساب می آیند و این دوره مکمل دوره آموزشی MTCNA میکروتیک می باشد. شما بعد از یادگیری این دوره MTCRE تبدیل به یک مهندس مسیریابی در میکروتیک خواهید شد.
فعال سازی پروتکل SNMP بر روی روتر میکروتیک
[tosinso@MikroTik] > snmp set enabled=yes
اضافه کردن یک contact یک مکان
[tosinso@MikroTik] > snmp set contact="test <test@test.com>"
[tosinso@MikroTik] > snmp set location="Universe 10 - Datacenter"
ایجاد یک UserName و Password
[tosinso@MikroTik] > snmp community add name=snmptest authentication-protocol=SHA1 authentication-password=tosinso encryption-protocol=AES encryption-password=tosinsoen
Authentication password: tosinso
Authentication protocol: SHA1
Encryption password: tosinsoen
Encryption protocol: AES
به منظور تست موفقیت آمیز پیاده سازی SNMPv3 بر روی میکروتیک میتوانید از ابزار snmpwalk استفاده کنید
┌─[root@tosinso]─[~]
└──╼ #snmpwalk -v 3 -u goku -l authPriv -a SHA -A tosinso -x AES -X tosinsoen 192.168.43.20
نکته: برای ویندوز از ابزار SNMP Tester Paessler استفاده کنید
جنگو چیست یا بهتر سوال کنیم فریمورک جنگو چیست؟ Django یک فریمورک با معماری MTV میباشد که برای ساخت اپلیکیشنهای وب مورد استفاده قرار میگیرد. جنگو برنامهنویسان وب را قادر میسازد تا کدهای تمیز، کارآمد و قدرتمند بنویسند. علاوه بر اینکه در لیست محبوبترین فریمورکهای وب جهان حضور دارد، جنگو یکی از پر استفادهترین تکنولوژیها برای توسعه وب میباشد. این فریمورک توسط اینستاگرام، یوتیوب، گوگل و حتی ناسا برای توسعه وبسایتشان بکار رفته است.
جنگو از معماری سه لایه MVT استفاده میکند که مخفف Model -View – Template میباشد. این معماری نوع تغییر داده شده MVC برای فریمورک جنگو بوده و به آن بسیار شبیه است. هنگامی که سرور جنگو، یک request (درخواست) دریافت میکند، مسیریاب URL آن request را به view مناسب هدایت میکند. سپس لایه view داده را از لایه model دریافت میکند و با استفاده از متدها و فانکشنهایی که در آن نوشته میشود، لایه template را پر میکند و آنرا به کاربر ارسال میکند.
وقتی که در مورد برنامههای کاربردی که از واسط کاربری برخوردارند (برنامههای تحت وب یا Desktop) صحبت میشود، منظور معماری مدل-نمایش-کنترلگر یا MVC است. همانطور که از نام این معماری مشخص است، معماری MVC از سه مؤلفه اصلی یعنی «مدل» (Model)، «نمایش» (View) و «کنترلگر» (Controller) تشکیل شده است. معماری MVT، کمی متفاوتتر از معماری MVC است؛ در اصل، تفاوت بنیادی میان این دو معماری این است که در مدل MVT، کتابخانه Django مدیریت مؤلفه Controller را بر عهده میگیرد (مؤلفه Controller، کد نرمافزاری است که تعامل میان مؤلفههای Model و View را کنترل میکند).
بنابراین، در معماری MVT، از آنجایی که کتابخانه Django مدیریت مؤلفه Controller را برعهده میگیرد، مؤلفه Template شکل میگیرد. مؤلفه Template، یک فایل HTML است که با «زبان قالب جنگو» (Django Template Language | DTL) ترکیب شده است. دیاگرام زیر، نحوه تعامل مؤلفههای مختلف معماری MVT را با یکدیگر، جهت سرویسدهی به درخواست کاربر، نشان میدهد.پ
جنگو یک فریمورک قدرتمند پایتون برای توسعه وب است که از معماری MTV پیروی میکند.
در آموزش برنامه نویسی، جنگو به دلیل ساختار منظم و ابزارهای کارآمدش برای توسعه سریع وب کاربرد فراوان دارد.
مدلهای داده، قالبها و ویوهای آن به مدیریت پروژههای پیچیده کمک میکنند.
مزایای جنگو شامل امنیت بالا، مدیریت ساده پایگاه داده و توسعه آسان پروژههای بزرگ میباشد.
در فریمورک جنگو با استفاده از مدل قدرتمند و بسیار مفید ORM، انجام عملیات مختلف با دیتابیس بسیار ساده شده و پروسه توسعه تسریع یافته است. ORM مخفف Object-Relational-Mapping است و بدون آن، توسعه دهنده باید تمامی جداول را خودش ایجاد کند و برای انجام هرگونه عملیات با دیتابیس، کوئری مربوطه را باید خودش بنویسد که گاها این روند میتواند در پروژههای بزرگ بسیار پیچیده و کسل کننده باشد.
ORM به شما این امکان را میدهد تا تمامی کوئریهای دیتابیس را با دستورات ساده پایتون اجرا کنید و همچنین متدهای آمادهای در آن برای پیادهسازی عملیات crud با دیتابیس تعبیه شدند. در حقیقت، برنامهنویس نیازی ندارد تا به تمامی روشهای پیچیده SQL را یکجا مسلط باشد.
برخلاف سایر فریمورکها، تمامی مدلها در یک فایل به اسم models.py قرار میگیرند و همین مورد میتواند در روند توسعه پروژههای بزرگ بسیار مفید و کارآمد باشد. Django از دیتابیسهای بسیاری پشتیبانی میکند. SQLite برای توسعه و تست کردن بسیار مناسب است چون هنگام نصب Django بصورت پیش فرض نصب میشود و نیازی به نصب برنامه خاصی نیست. برای Production میتوانید از MYSQL و PostgreSQL استفاده کنید و اگر میخواهید از NoSQL ها استفاده کنید، میتوانید از MongoDB با جنگو استفاده کنید.
لایه template مشابه لایه view در معماری MVC است و هدف آن نمایش داده و اطلاعات به کاربر بوده و در حقیقت منطق ظاهری برنامه (Display Logic) میباشد. اگر شما با templating در زبانها و فریمورکهای دیگر از جمله لاراول آشنا باشید، تقریبا در جنگو هم به این شکل است. شما از یک سینتکس مشابه HTML استفاده میکنید که بعدا به HTML کامپایل میشود و شامل تمامی دادههای مربوطه میباشد. البته که فرمتهای غیر HTML هم وجود دارند، مثلا اگر خواستید میتوانید از سندهای XML یا فایلهای JSON و … استفاده کنید.
View در جنگو لایه بیزینس از معماری سه لایه MVT است. این لایه شامل فانکشنها و متدهایی میشود که موجب دریافت و پردازش درخواست کاربر و ارسال نتیجه معتبر برای کاربر میشود. این لایه داده را از Model دریافت میکند و به هر کدام از template ها دسترسی به داده خاصی را میدهد.
پشتیبانی از انواع کامپوننتها : همچنین جنگو تقریباً برای هر عملکردی که بخواهید گزینههایی را برای شما فراهم میکند (به عنوان مثال چندین پایگاه داده معروف، موتورهای templating و غیره)، همچنین میتوان در صورت لزوم از سایر مولفههای مورد نیاز نیز استفاده کرد.
مقیاس پذیر بودن : جنگو از معماری مبتنی بر مولفه “عدم اشتراک گذاری (shared-nothing)” استفاده میکند. بدین معنا که هر قسمت از معماری مستقل از قسمتهای دیگر است و بنابراین میتواند در صورت لزوم جایگزین شده یا تغییر کند.
امنیت : جنگو با ارائه یک فریمورک قدرتمند جهت محافظت خودکار از وب سایت طراحی شده است و به توسعه دهندگان کمک میکند تا از بسیاری از اشتباهات معمول امنیتی جلوگیری کنند. به عنوان مثال، جنگو یک روش ایمن برای مدیریت حسابهای کاربری و رمزهای عبور کاربر، اجتناب از اشتباهات رایج مانند قرار دادن اطلاعات جلسه (Sessions) در کوکیها و در جاهایی که آسیب پذیر میباشد یا ذخیره مستقیم رمزهای عبور به جای هش نمودن آنها و… فراهم میکند.همچنین جنگو به طور پیش فرض از بسیاری از آسیب پذیریها نیز محافظت میکند، از جمله تزریق SQL، برنامه نویسی بین سایت، جعل درخواست بین سایت و کلیک کردن و… .
امکان گسترش منابع : وجود یک تفکیک واضح بین قسمتهای مختلف به این معنی است که میتواند با افزودن سخت افزار در هر سطح، افزایش سرورهای ذخیره، سرورهای پایگاه داده یا سرورهای برنامه، امکان افزایش تعداد بازدیدکنندگان و در نتیجه افزایش رتبه seo سایت را ایجاد کند. بسیاری از سایتهای پرترافیک از جنگو استفاده کرده اند تا خواستههای آنها را برآورده کند (به عنوان مثال Instagram و Disqus و …).
قابلیت ارتقا و نگهداری : کد جنگو با استفاده از اصول و الگوهای طراحی نوشته میشود که ایجاد کد قابل نگهداری ساده برای طولانی مدت و قابل استفاده مجدد را فراهم میکند. همچنین جنگو از اصول DRY یا Don’t Repeat Yourself استفاده میکند بنابراین هیچ کپی غیرضروری وجود ندارد، و میزان کدنویسی را کاهش میدهد. همچنین جنگو از فابلیت MVC نیز پشتیبانی میکند.
پنل مدیریت : هنگام نصب برنامه، پنل مدیریت جنگو به طور خودکار نصب میشود. این باعث میشود که توسعه دهنده نیازی به ایجاد دستی پنل مدیریت نداشته باشد. با استفاده از برنامههای شخص ثالث، کنسول مدیریت پیش فرض جنگو میتواند بهبود یافته و متناسب با نیازهای پروژه شما سازگار شود. همچنین، این فریمورک به شما این امکان را میدهد که رابط کاربری پنل مدیریت پیش فرض را سفارشی کنید.
این فریم ورک توسط افراد زیادی بررسی شده است : Python و Django نسبت به Rails و Node سر و صدای کمتری در دنیای برنامه نویسی دارند اما این بدان معنی نیست که افراد مشهور و نام های بزرگ از آن ها استفاده نمی کنند. Django سیستم راه اندازی سایت های بزرگی مثل Pinterest و اینستاگرام است و حتی فیسبوک از ابزار های آن بهره می برد. Django کار خود را در دنیای نشر آغاز کرده و طبیعتا نشریات معروف مثل واشنگتن پست و Smithonian از Django استفاده می کنند.
مستندات زیادی برای فریم ورک Django موجود است : Django در شروع کار خود بیش از هر پروژه ی Open Source دیگری تحقیقات و مقالات ارائه شده دارد و این آمار در طول زمان بهتر و بیشتر هم شده است. در ابتدای ارائهی این فریم ورک، همین مستندات موجود بود که این برنامه را خاص میکرد. بیشتر فریم ورک های دیگر، از یک سیستم الفبایی برای ارائه ماژول ها و ویژگی ها استفاده می کردند. این رویه برای رجوع سریع مناسب است اما در زمانی که شما به دنبال انجام کاری مفید باشید، کمکی به شما نمی کند. کیفیت مستندسازی در Django هم اکنون ویژگی خاصی نیست اما از بهترین ها در دنیای برنامه نویسی است. کیفیت فایل های گزارشی و مستندات برای برنامه نویس ها همیشه یک نگرانی بزرگ بوده است. این نوع از مستندات در Django از جایگاه بالایی برخوردارند.
دسترسی کافی به Packageهای Django وجود دارد : جامعه ی Django، درست مثل جامعه یPython، ابزار ها و Package های زیادی برای کاربران فراهم کرده است. کلمه ی Django را در PyPI تایپ کنید و بیش از ۴۰۰۰ Package موجود برای کاربران در اختیار شما قرار خواهد گرفت. این فریم ورک تقریبا تمامی ویژگی ها و امکاناتی را که شما دنبال آن هستید را در خود جای داده است.