فرآیند اسکن پورت یا Port Scanning چیست و چند نوع اسکن پورت وجود دارد؟ اگر بخواهیم تعریفی از اسکن پورت یا پورت اسکن داشته باشیم ، باید ابتدا درک عمیقی از مفهوم پورت و ماهیت Port های کامپیوتر داشته باشیم. بدیهی است که افرادیکه به دنبال مفهوم پورت اسکن می گردند با ماهیت پورت های کامپیوتری و کاربردشان آشنایی دارند و صرفا می خواهند برای مصارف امنیت شبکه و ارتباطات یا هک و نفوذ ، بیشتر در بحث Port Scanning که یکی از محبوب ترین روشهای کسب اطلاعات درباره هدف نفوذ است ، در این خصوص اطلاعات به دست بیاورند.
به زبان ساده مفهوم پورت اسکن و انواع آن را یاد بگیرید پیشنهاد می کنم مقاله دیگری از بنده با عنوان پورت چیست را در همین لینک مشاهده کنید. اگر علاقه مند به مباحث هک و نفوذ هستید حتما بعد از خواندن این مقاله به دوره آموزش سکیوریتی پلاس و البته دوره آموزش CEH برای یادگیری بهتر و عمیقتر آموزش شبکه مفاهیم پورت اسکن در هک و نفوذ مراجعه کنید.
ارتباطات در کامپیوترها به وسیله پروتکل ها انجام می شوند و پروتکل ها برای اینکه بتوانند به درستی بین کامپیوترها ارتباط برقرار کنند از یک شماره پورت مشخص استفاده می کنند تا همدیگر را متوجه بشوند. این شماره پورت ها برای سرویس های مشخصی رزرو شده است و شما با شناخت این شماره پورت ها می توانید تشخیص بدهید چه نوع سرویسی بر روی چه سیستم عاملی در حال اجرا است. برای مثال شماره پورت 53 برای سرویس DNS و شماره پورت 443 برای سرویس SSL است.
به زبان ساده تر ، وقتی صحبت از اسکن کردن پورت های باز می شود ، ما می خواهیم بدانیم که چه سرویس هایی بر روی کامپیوتر مورد نظر ما فعال هستند . فهمیدن اینکه چه سرویسی در پورت اسکن فعال است به شما در فرآیند های مختلفی کمک می کند از تشخیص نوع سرویس برای هک و تست نفوذ گرفته تا رفع مشکلات ارتباطی شبکه ، بنابراین اگر بخواهیم در یک جمله تعریف پورت اسکن را داشته باشیم می گوییم ::: Port Scanning فرآیندی است که از طریق بررسی پورت های کامپیوتر ، به ما نشان می دهد که چه نوع سرویس هایی بر روی کامپیوتر ( مودم ، روتر و ... ) مورد نظر ما در شبکه قابل دسترس و فعال هستند.
تکنیک های متعددی در اسکن پورت های شبکه وجود دارد که معمولا این روزها بصورت دستی انجام نمی شوند. یکی از نکاتی که در انواع پورت اسکن های امروزی بسیار مهم است ، مخفی بودن و ناشناس بودن و ناشناس ماندن فردی است که فرآیند پورت اسکن را انجام می دهد. تکنیک های پورت اسکن دائما در حال به روز رسانی هستند و به همین دلیل انواع پورت اسکن یک چیز ثابت و دائمی نیست و دائما ممکن است در حال به روز رسانی باشد. اما در ادامه ما بر اساس تعریف هایی که در دوره آموزش CEH یا هک قانونمند بصورت استاندارد داریم ، انواع پورت اسکن را با هم بررسی می کنیم.
Null به معنی تهی یا پوچ می باشد و در فرآیند Port Scanning ما برای اینکه بدانیم یک پورت باز است یا بسته است یا وضعیت آن را شناسایی کنیم می توانیم از این تکنیک استفاده کنیم. دقت کنید که این تکنیک Port Scanning بصورت ویژه برای سیستم عامل های خانواده Unix طراحی شده است و به هیچ عنوان بر روی سیستم عامل های ویندوزی پاسخ نخواهد داد.
زمانیکه صحبت از Null Scan می شود در واقع یعنی ما هیچ Flag ای بر روی Packet های Port Scan خودمان قرار نمی دهیم یا در اصطلاح فنی تر در Null Scan کلیه TCP Flag های ما در حالت Off قرار دارند. در چنین حالتی اگر سرور مورد نظر پورت Closed شده داشته باشد در پاسخ به Null Scan یک TCP RST ارسال می کند و اگر پورت مورد نظر باز باشد Packet غیر معتبر شناخته شده و اصطلاحا Discard می شود
یکی از تخصص هایی که این روزها نیاز اولیه متخصصین حوزه فناوری اطلاعات به حساب می آید ، یادگیری برنامه نویسی است. آموزش برنامه نویسی و شروع یادگیری زبان های برنامه نویسی از جمله دغدغه های اصلی تازه واردهای حوزه تخصصی فناوری اطلاعات است. همیشه سوالاتی مثل اینکه با چه زبانی برنامه نویسی را شروع کنیم یا بهترین زبان برای شروع برنامه نویسی چیست یا اینکه ترتیب یادگیری دوره های برنامه نویسی برای ورود به بازار کار کدام است ، از جمله مهمترین سوالات چالشی برای شروع آموزش برنامه نویسی است.
امروز و در این مقاله ما می خواهیم به شما پاسخ سوالات متداولی که برای شروع یک حوزه تخصصی از برنامه نویسی ، نیاز دارید که بدانید را با هم مرور می کنیم . دقت کنید که قبل از شروع این مقاله حتما به این موضوع توجه کنید که ما برنامه نویسی را به به حوزه های مختلفی تقسیم بندی می کنیم که به ترتیب : برنامه نویسی دسکتاپ ، برنامه نویسی وب و برنامه نویسی موبایل از مهمترین گرایش های تخصصی برنامه نویسی هستند که به شدت مورد نیاز بازار کار هستند. پس تا انتهای مقاله با ما باشید.
برای شروع برنامه نویسی ابتدا باید بدانید برای چه چیزی می خواهید برنامه نویس شوید و هدفتان چیست؟ سپس یک زبان برنامه نویسی برای شروع یادگیری را انتخاب می کنید. در دوره های آموزش برنامه نویسی آنلاین شرکت می کنید. آموزشهای ویدیویی متنوع را یاد می گیرید ، کتاب می خواهید و از ابزارهای کدنویسی سریع برای افزایش خلاقیت و سرعت کدنویسی استفاده می کنید و در نهایت با نگاه کردن به نمونه کدهای برنامه نویسی سایر برنامه نویس ها شروع یا انجام پروژه های برنامه نویسی می کنید.
هر وب سایت که به آن مراجعه می کنید با یک زبان برنامه نویسی نوشته شده است. این زبان برنامه نویسی انواع و اقسام مختلفی دارد که مهمترین زبان های برنامه نویسی وب به ترتیب زبان PHP و زبان ASP.NET هستند. سایر زبان های برنامه نویسی وب به محبوبیت زبانهای برنامه نویسی پی اچ پی و ای اس پی دات نت نیستند.
یکی از مزایای برنامه نویسی وب ، امکان کار کردن بصورت فریلنسری و دورکاری است که به همین دلیل یکی از محبوب ترین زبان های برنامه نویسی وب به حساب می آیند. برای شروع یادگیری و آموزش PHP ( پی اچ پی ) می توانید به این لینک مراجعه کنید.
برنامه نویسی دسکتاپ به معنی برنامه نویسی برای سیستم عامل هایی است که بصورت رومیزی استفاده می شوند. برای مثال نوشتن برنامه ای که روی کامپیوتر شخصی شما ( PC ) یا لپتاپ با هر نوع سیستم عاملی اعم از ویندوز یا لینوکس یا مکینتاش اجرا می شود ، یک برنامه دسکتاپی به حساب می آیند که بازار کار بسیار خوبی دارد.
از مهمترین زبان های برنامه نویسی که بصورت تخصصی و به بهترین شکل به شما کمک می کنند می توانیم به زبان برنامه نویسی جاوا و زبان برنامه نویسی سی شارپ اشاره کنیم. برای شروع یادگیری آموزش جاوا می توانید به این لینک مراجعه کنید.
امروز میخواهیم بهترین وب سایت های آموزش تخصصی شبکه ، لینوکس و امنیت در دنیا را به شما معرفی کنیم و تجربه آموزش هر کدام را به اشتراک بگذاریم . این روزها پیدا کردن یک دوره آموزشی مناسب در حوزه شبکه و امنیت و حتی لینوکس آسان نیست.هر کسی به خودش اجازه می دهد با یک میکروفون ، یک کامپیوتر و لابراتوار ساده خانگی و البته روخوانی از روی کتابهای آموزشی برای خودش آموزش طراحی کند و با تکنیک های سئو آن را به صفحات اول گوگل بیاورد و برای خودش رزومه بسازد .
اما ما امروز میخواهیم وب سایتهای مرجعی که در حوزه آموزش شبکه ، آموزش لینوکس و البته آموزش امنیت شبکه بسیار قدرتمند فعالیت می کنند را برای شما لیست کنیم . در عین حال شما می توانید با مراجعه به هر یک از وب سایت های مورد نظر از طریق بررسی رتبه بندی دوره ها ، بهترین دوره آموزشی را برای خودتان انتخاب کنید پس تا انتها با این مقاله همراه باشید.
خوب وب سایت یودمی قطعا بزرگترین پلتفرم آموزش شبکه و امنیت در دنیا به حساب می آید. این وب سایت ده ها هزار عنوان دوره آموزشی متنوع در حوزه های مختلف دارد که قطعا حوزه آموزش فناوری اطلاعات و شبکه و ... نیز جزو محبوب ترین های Udemy هستند.
از مزایای دوره های آموزش شبکه و امنیت و لینوکس یودمی می توانیم به قسمت بسیار ارزان آن در مقایسه با سایر پلتفرم های آموزش انلاین اشاره کنیم. برخی اوقات همه آموزشهای یودمی بیشتر از 90 درصد تخفیف می خورند و این یکی از سیاست های تجاری وب سایت یودمی است.
اما یکی از نقاط ضعف مهم دوره های یودمی این است که نظارتی روی کیفیت دوره ها ندارد ( حداقل از نظر من ) و هر کسی می تواند با هر سطح دانشی در ان تدریس کنم و این باعث می شود که انتخاب کردن بین دوره های آموزشی بسیار سخت و دشوار شود.
باید حتما در زمان خرید از این وب سایت به رنکینگ و نظرات کاربران آن نگاه کنید. هر چند که در دنیا قیمت دوره های آموزش لینوکس و آموزش شبکه یودمی بسیار ارزان به نظر می رسد اما بد نیست بدانید که در کمترین حالت قیمت های دوره های یودمی 10 دلار در 90 درصد تخفیف هستند و این در حال حاضر برای ایران و ایرانی که یک دلار هم ارزش بالایی دارد کم نیست .
وب سایت لیندا که در حال حاضر با عنوان آکادمی لینکداین شناخته می شود هم یکی دیگر از وب سایت های بسیار خوب در حوزه آموزش های تخصصی لینوکس و شبکه به حساب می آید. اکانت لیندا با اکانت لینکداین شما یکپارچه شده است و طبیعتا داشتن پشتیبانی خاص مایکروسافت از این پلتفرم آموزشی آنرا بسیار خاص کرده است.
دوره های آموزشی لینکداین دارای ساختار طراحی یکپارچه و شکیل هستند و در آموزش آنها نظم خاصی به کار رفته است. محبوبیت بیشتر این پلتفرم آموزشی بیشتر در حوزه آموزش های سازمانی است تا آموزشهای فوق تخصصی و به همین دلیل کمتر کسی از ایرانی ها علاقه مند به آموزش دیدن در لینکداین هستند.
اما به هر حال نمی توان کتمان کرد که لینکداین یکی از برترین پلتفرم های آموزش شبکه و امنیت در دنیا به حساب می آید. من سابقا بیشتر از آموزشهای گرافیکی و آفیس لیندا استفاده می کردم و در این حوزه از این پلتفرم راضی هستم. لینکداین هم مثل یودمی اجازه تدریس می دهد اما طبق قواعد و استانداردهایی که تعریف می کند و این باعث می شود کیفیت آموزشهای به نسبت بهتری داشته باشد.
از نظر من CBT Nuggets بدون شک قدرتمندترین وب سایت آموزش شبکه و لینوکس در دنیا به حساب می آید. دلیل این موضوع این است که آموزشهای CBT Nuggets بصورت تخصصی و فوق تخصصی بر روی مباحث مرتبط با فناوری اطلاعات متمرکز شده اند و مثل دو وب سایت گذشته درگیر همه دوره های آموزشی نشده اند.
CBT Nuggets یکی از با قدمت ترین وب سایت های آموزش فناوری اطلاعات دنیاست و ساختار آموزش آن طبق یک استاندارد مشخص طراحی شده است. مدرسین در CBT Nuggets از قبل تعریف شده اند و هر کسی امکان تدریس در این پلتفرم را نداشته و فیلترهای خاصی برای آن وجود دارد.
یکی از نقاط ضعف CBT Nuggets قطعا آموزش سطحی است. در دوره های آموزشی شبکه و لینوکسی که در CBT Nuggets مشاهده می کنید ، مدرس در بطن و عمق مفاهیم وارد نمی شود و صد البته مفاهیم و آموزشها بصورت یکپارچه ارائه نمی شوند و قسمت به قسمت و بخش به بخش آموزش داده می شوند.
برای مثال در دوره آموزش لینوکس LPIC 2 در بخش بانک های اطلاعاتی بدون اینکه به شما گفته شود چگونه بانک اطلاعاتی بسازید یکباره وارد دستورات می شوند و این روش تدریس چندان جذاب نیست . سبک تدریس در CBT Nuggets طنز و کمدی است و این یکی از نقاط قوت این مجموعه محسوب می شود. به شخصه آموزشهای CBT Nuggets را دوست دارم اما خوب هزینه استفاده از این پلتفرم ، فارغ از داشتن ویدیوها بسیار برای فارسی زبانان سنگین است.
وب سایت Pluralsight در ابتدا فقط بر روی دوره های آموزش برنامه نویسی متمرکز بود اما به مرور زمان و با گسترش رقبا و نیاز به ورود به حوزه های دیگر ، یکی دیگر از قدرت های آموزشی حوزه شبکه به نام Trainsignal را خریداری کرد و تبدیل به یک پلتفرم آموزش شبکه ، امنیت ، لینوکس و برنامه نویسی و بصورت کلی فناوری اطلاعات در دنیا شد.
مکانیزم کاری این وب سایت نیز تا حد زیادی شبیه به یودمی است اما ساختار مشخصی دارد و به نسبت کیفیت دوره های بالایی نیز دارد. هزینه های تمامی وب سایت هایی که عنوان کردیم به دلار می باشد و این موضوع برای آموزش دیدن در ایران اصلا خوب نیست.
یادگیری ماشین با نظارت | Supervised Machine Learning نوعی یادگیری است که در آن ماشین یا مدل با استفاده از داده های آموزشی (دارای برچسب صحیح) آموزش داده می شود تا بتواند برای داده های تستی یا جدید، فرایند تشخیص برچسب (تشخیص خروجی یا پیش بینی خروجی) را انجام دهند. منظور از داده های دارای برچسب این است که برخی از داده های ورودی قبلاً با خروجی صحیح برچسب گذاری شده اند.
داده های آموزشی (دارای برچسب صحیح) در یادگیری ماشین با نظارت | Supervised Machine Learning برای آموزش یک مدل یا ماشین استفاده می شود تا بعدها آن مدل بتواند با توجه به آموزش فرا گرفته شده در امتحانات نمره خوبی کسب کند. منظور از امتحانات، همان پیش بینی برچسب صحیح برای داده های ورودی جدید می باشد. شما می تواند این پاراگراف را از طریق مثال یک دانش آموز و معلم بهتر درک کنید. به عنوان مثال در مدرسه، معلم سوالات و پاسخ های صحیح را به دانش آموز آموزش می دهد و در پایان ترم از دانش اموز امتحان می گیرد، اگر دانش آموز بتواند برای سوالات، پاسخ های درستی بنویسید نمره خوبی کسب می کند در غیر این صورت ممکن از رفوزه شود.
هدف یک الگوریتم یادگیری با نظارت، یافتن یک تابع نگاشت برای ترسیم متغیر ورودی (x) با متغیر خروجی (y) است یا نگاشت یک سوال به یک پاسخ صحیح می باشد.
در دنیای واقعی، از یادگیری با نظارت می توان برای ارزیابی ریسک، طبقه بندی تصویر، تشخیص تقلب، فیلتر هرزنامه و غیره نیز استفاده کرد.
در یادگیری نظارت شده | Supervised Machine Learning، مدلها با استفاده از مجموعه دادههای برچسبگذاری شده آموزش داده میشوند، پس از تکمیل فرآیند آموزش، مدل بر اساس داده های آزمون دارای برچسب واقعی (زیرمجموعه ای از مجموعه داده) آزمایش می شود تا برای آن ها خروجی صحیح را پیش بینی کند. اگر خروجی بدست امده شده مانند خروجی واقعی داده های آزمون باشد می توانیم بگیم مدل ما از دقت خوبی برخوردار است و می تواند در کسب و کار به منظور افزایش سود دهی از آن استفاده کرد در غیر اینصورت باید به فکر چاره در فرآیند کار بود.
عملکرد یادگیری با نظارت را می توان به راحتی با مثال و نمودار زیر درک کرد:
فرض کنید مجموعه داده ای از انواع مختلف اشکال داریم که شامل مربع، مستطیل، مثلث و چند ضلعی است. اکنون اولین قدم این است که باید مدل را برای هر شکل آموزش دهیم.
حالا بعد از گام آموزش، مدل خود را با استفاده از مجموعه تست ( آزمایش )، تست (ارزیابی) می کنیم تا ببینیم برای شکل های تستی به درستی فرایند تشخیص نوع شکل را با توجه به تعداد اضلاع آن، انجام می دهد یا خیر.
مراحل مربوط به یادگیری با نظارت:
درآموزش دیتابیس و دوره آموزشی جامع علم داده م (یادگیری ماشین، داده کاوی) را به شکل کاملاً عملی و با زبانی ساده به شما آموزش می دهد.
الگوریتم های یادگیری با نظارت را می توان به دو نوع تقسیم کرد:
اگر رابطه ای (مثل رابطه افزایشی یا کاهشی) بین متغیر ورودی (ویژگی ها) و متغیر خروجی (برچسب) وجود داشته باشد از الگوریتم های رگرسیون استفاده می شود. از این نوع الگوریتم ها برای پیشبینی متغیرهای پیوسته، مانند پیشبینی آبوهوا، روند بازار، و غیره استفاده میشود. در ادامه انواع الگوریتم های رگرسیون ذکر شده است.
از الگوریتمهای دسته بندی زمانی استفاده میشوند که متغیر خروجی از نوع طبقه بندی ( Categorical ) باشد یا بتوان آن را به این نوع تبدیل کرد، به این معنی که متغیر خروجی از نوع دو کلاسه مانند بله-نه، مذکر-مونث، درست-کاذب و غیره وجود باشد. در ادامه انواع الگوریتم های دسته بندی لیست شده اند.
استفاده گرفتن از راهنماهای لینوکس یکی از معمول ترین روشهای پیدا کردن نحوه استفاده درست از دستورات لینوکس است. در واقع همه دستورات لینوکس برای خودشان یک راهنمای استفاده جداگانه و مختص خودشان دارند . هر چند که همچنان بهترین روش پیدا کردن کمک و راهنمایی در لینوکس استفاده از جستجو در گوگل است .
اما ما در این مقاله می خواهیم به روشهای مختلف استفاده از فایل های راهنما در لینوکس و دستورات مرتبط با آنها اشاره کنیم. در این مقاله من ، محمد نصیری ، کارشناس امنیت سایبری و متخصص لینوکس به شما به ساده ترین شکل ممکن ، نحوه استفاده از این دستورات را به همراه مثال آموزش می دهم پس تا انتها با من باشید.
لینوکس و کار کردن با دستورات آن بسیار فرار است. شما هر چقدر هم که حرفه ای باشید نمی توانید ادعا کنید که همه سویچ ها و آپشن های دستورات را به همراه کاربرد و مثال های مختلف آن بلد هستید. به همین دلیل در کنار هر دستور و برای درک بهتر نحوه استفاده از آن ، فایل های راهنما یا Manual و روشهای متنوعی برای یادگیری دستورات وجود دارد که بدون نیاز به داشتن اینترنت و بصورت آفلاین هم قابل استفاده هستند. حتی حرفه ای ها هم باید بتوانند از این دستورات و فایل های راهنما به درستی استفاده کنند و این هیچ ربطی به حرفه ای بودن یا نبودن ندارد. برخی اوقات ممکن است شما هیچ دسترسی به اینترنت برای جستجو نداشته باشید.
نکته بسیار مهم : راهنمایی و Manual ها ممکن است در توزیع های مختلف لینوکس متفاوت باشند
ساده ترین و البته اولین دستوری که شما برای گرفتن راهنما در لینوکس نیاز دارید دستور whatis است. این دستور در یک خط بصورت خیلی ساده به شما توضیح می دهد که کاربرد این دستور چیست. دستور whatis دارای یک بانک یا دیتابیس اطلاعاتی نیست و اطلاعات خودش را از SECTION 1 فایل Manual یا راهنمای لینوکس دریافت می کند که بعدا به آن اشاره خواهیم کرد. برای مثال دستور زیر به شما می گوید کار دستور whatis چیست :
unity@tosinso-suse:~> whatis whatis
whatis (1) - display one-line manual page descriptions