<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات نتورک‌باز</title>
        <link>https://virgool.io/NetworkBaz/feed</link>
        <description>دریچه‌ای به دنیای فناوری‌اطلاعات! مقاله‌های تخصصی در زمینه شبکه‌، امنیت‌شبکه، سیسکو، مایکروسافت و...</description>
        <language>fa</language>
        <pubDate>2026-06-17 10:44:01</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/jkezjxspgwhq/12f9bj.png</url>
            <title>نتورک‌باز</title>
            <link>https://virgool.io/NetworkBaz</link>
        </image>

                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت شانزدهم) – مفاهیم رمزنگاری(بخش دوم)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%28%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%A7%D9%86%D8%B2%D8%AF%D9%87%D9%85%29-%E2%80%93-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C%28%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85%29-gcbgzgjkryxa</link>
                <description>با سلام و عرض خسته‌نباشید! در ادامه قسمت قبلی از این سری آموزشی، امروز با ادامه مبحث رمزنگاری و رمزگشایی در خدمتتون هستم و امروز میخواهیم درمورد هش‌ها، امضاهای دیجیتال و... صحبت کنیم.هَـش‌ها(Hashes)فرآیندِ Hashing ویا هَش‌کَردن، متدی برای احراز و Verify کردنِ Data Integrity(دُرُستی و دست‌نخورده بودنِ دیتا) میباشد. مثل زمانی که شما از سایت‌های متفرقه IOSهای گوناگونِ سیسکو را دانلود میکنید وبا استفاده از بررسی MD5 آنها با MD5موجود در سایت سیسکو، از دست‌‌نخورده بودن و عدم خراب بودن فایل، اطمینان حاصل میکنید.  فرآیند انجام Hashing فرآیندی است که یک‌تکه داده را دریافت میکند و با استفاده از یکسری پردازش‌ها و الگوریتم‌ها، یک مقدار Hashبا طول ثابت میسازد؛ یعنی چه 5کاراکتر را به تابع Hashing خود تحویل دهید وچه 10صفحه مَتن، همیشه و همیشه یک رشته‌متنی حاوی اعداد و حروف با طول یکسان(مثل 32کاراکتر) دریافت خواهید کرد. این فرآیند یک‌طرفه میباشد، یعنی اینکه شما هیچگاه نمیتواند از رشته‌هش دریافتیِ خود، داده اصلی را بازیابی کنید(بصورت عادی و معمول). نتیجه Hash کردن داده‌ها، همیشه و همه‌جا یکسان است، یعنی اینکه اگر به عنوان مثال از الگوریتم MD5 استفاده کنید، هرجا که داده را به الگوریتم بدهید، پاسخ شما همیشه یکسان میباشد(اگر داده دست‌نخورده باشد و درآن تغییری ایجاد نشده باشد).  به عنوان مثال، در زیر کلمه NetworkBaz را با استفاده از الگوریتم MD5 هَش کرده‌ایم: DF8C2A8ACAA42F6E80FBDD9B0FE30DF5برای بررسی مثالی دیگر، فرض کنید که در شبکه، فرستنده تمامی پکت‌های ارسالی‌اش را هش میکند وهمراه با پکت به سمت گیرنده ارسال میکند؛ گیرنده پس‌از دریافت بسته، آنرا Hash میکند و سپس آنرا با Hash ارسالی از طرف فرستنده مقایسه میکند؛ درصورتی که هش‌ها یکسان باشند به‌این معنی است که داده در بین‌راه دست نخورده‌است و به‌صورت کامل و سالم دریافت شده‌است.  از معروف‌ترین انواع هش‌ها میتوان موارد زیر را نام برد:Message digest 5 (MD5): 128-bitSecure Hash Algorithm(SHA-1): 160-bitSecure Hash Algorithm(SHA-2): between 224-bit and 512-bitHMAC ـHashed Message Authentication Code یا همان HMAC از همان مکانیزم Hashing استفاده میکند، بعلاوه‌ی اینکه دارای یک نکته بسیار جالب میباشد؛ بجای استفاده از یک هش که هرکسی میتواند براحتی آنرا برای خود محاسبه کند، از یک کلید مخفی(Secret Key) در الگوریتم برای Hashکردن استفاده میکند که فقط دیوایس‌های درارتباط بایکدیگر آن کلید را دارند. با استفاده از این روش، حتی اگر دربین راه، هکر قصد داشته باشد که پکت را شنود کند ویا اطلاعات و هش خودش را Inject کند، شکست میخورد و نمیتواند اینکاررا انجام دهد؛ چراکه فقط فرستنده و گیرنده از آن کلید در باخبر هستند وبا استفاده از این روش پکت‌هارا براحتی Verify میکنند.  امضای‌دیجیتال(Digital Signature)در دنیای واقعی، وقتی شما چیزی‌را امضا میکنید به‌این معنی می‌باشد که برمواردی که در آن کاغذ ذکر شده‌است تعهد دارید ویا حداقل آن امضا نمایانگر اینست که شما &quot;همان شخصی میباشید که ادعا میکنید&quot;. در دنیای رمزنگاری، یک امضای‌دیجیتال دارای 3 مزیتِ‌مهم میباشد: احرازهویت(Authentication)دُرُستی و سالم‌بودن‌ِداده(Data integrity)ـNon-repudiationامضاهای‌دیجیتال در عملیکی از بهترین روش‌های درکِ عملکردِ Digital Signatureها اینست که مطالب گفته‌شده در قسمت‌قبلی درمورد &quot;کلیدهای Public و Private، رمزنگاری(Encryption) و Hashing&quot; را به‌یاد آورید. فرض کنید دو دیواس داریم با نام‌های A و B. این دو دیوایس میخواهند که با یکدیگر ارتباط VPN برقرار کنند وهمچنین برای اطمینان ازاینکه درحال صحبت با دیوایسِ‌صحیح میباشند میبایستی یکدیگر را احرازهویت کنند؛ درنتیجه برای اینکار میخواهند که از Digital signatureها برای Verify کردن یکدیگر استفاده‌کنند. هردوی این دیوایس‌ها میبایستی Trustedبودن خودرا ثابت کنند، اما برای سادگی، ما دراینجا بصورت یکطرفه این موضوع را بررسی میکنیم: قبل از هرچیز، میبایستی بدانید که دیوایس A و B هردو دارای Public-private key-pair میباشند وهمچنین هردو دارای امضای‌دیجیتال از یک Certificate authority (یا به اختصار CA) میباشند که صحت هر دیوایس را تضمین میکند.(درمورد CAها بعدا بصورت مفصل صحبت خواهیم کرد.) اگر شما یک Digital Certificate را باز کنید، میتوانید نام آن موجودیت(به عنوان مثال دیوایس A) را ببینید و همچنین Public-key همان دیوایس A هم در همان Certificate قابل دسترسی است(چراکه درزمان درخواست دیوایس A از CA برای Digital Certificate، دیوایس A این Public-keyرا در اختیار CA قرار داده است)؛ همچنین یک Digital Signature هم برای خودِ CA در آن Certificate وجود خواهد داشت. پس تا اینجای‌کار، هردوی دیوایس‌های A و B ما به CAمدنظر اعتماد دارند و Digital Certificateهای خودرا از آن دریافت کرده‌اند.  دیوایس A یک پکت را برمیدارد و برای آن یک Hash ایجاد میکند؛ سپس این هش را با استفاده از Private-key خودش، Encrypt میکند و این عبارت رمزشده را به پکت اضافه و آن پکت را برای دیوایس B ارسال میکند. به این هَشِ‌رمزنگاری‌شده، امضای‌دیجیتال ویا Digital signature گفته میشود.وقتی که دیوایس B پکت را دریافت میکند، Encrypted Hash یا همان هَشِ‌رمزنگاری‌شده را با استفاده از Public-key دیوایس A رمزگشایی میکند. بعد از بدست‌آوردن مقدار Hashاصلی، دیوایس B پکت را با همان الگوریتم Hashing، دوباره هش میکند و هشِ‌بدست‌آمده را با مقدار دریافت شده از دیوایس A مقایسه میکند، درصورتی که هردوی آن هش‌ها بایکدیگر برابر باشند، دیوایس B از 2 چیز اطمینان حاصل میکند، یکی اینکه دیوایس ارسال کننده همان دیوایس‌مدنظرش(یعنی دیوایس A) میباشد(چراکه فقط آن دیوایس دارای Private-key میباشد)؛ و دیگری اینکه دیتا کاملا سالم میباشد ودر بین راه دستکاری نشده‌است.  به این فرآیند، احرازهویت با استفاده‌از امضای‌دیجیتال گفته میشود و عمولا بصورت دوطرفه وبا استفاده از IPSec VPN tunnel پیاده‌سازی میگردد.(در Configuration به‌آن rsa-signature گفته میشود.)ممکن‌است که برای شماهم سوال پیش‌آمده باشد که که دیوایس B چگونه از Public-key دیوایس A باخبر است؟ جواب اینست که قبل از هرچیز این دو دیوایس Digital certificateهای خودرا Exchange میکنند(که همانطور که گفتیم، این Certificateها حاوری Public-key هم میباشند). همچنین گفتنی‌است که دیوایس‌های A و B فقط به Certificateهای امضاشده توسط CAهای مورداعتماد خودشان اعتماد دارند و هر Certificateـی را قبول ندارند.  امیدوارم که این پست براتون مفید واقع‌شده باشه؛ در قسمت آینده درمورد IPSec صحبت خواهیم کرد.با آرزوی‌موفقیت.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 08 Oct 2018 19:46:35 +0330</pubDate>
            </item>
                    <item>
                <title>مهندسی‌شبکه: از کدام روتینگ‌پروتکل استفاده کنیم؟</title>
                <link>https://virgool.io/NetworkBaz/%D9%85%D9%87%D9%86%D8%AF%D8%B3%DB%8C%E2%80%8C%D8%B4%D8%A8%DA%A9%D9%87:-%D8%A7%D8%B2-%DA%A9%D8%AF%D8%A7%D9%85-%D8%B1%D9%88%D8%AA%DB%8C%D9%86%DA%AF%E2%80%8C%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D9%85%D8%9F-qgs9osxruoss</link>
                <description>مدتی پیش یک مصاحبه‌کاری داشتم که شخصِ مصاحبه‌کننده درحال سوال کردن تجربیاتم در پروژه‌های قبلی بود؛ یادمه که ازم پرسید که چرا در فلان پروژه (که در سطح نسبتا وسیعی پیاده‌سازی شده بود) از روتینگ‌پروتکل EIGRP استفاده کردین ومثلا از OSPF استفاده نکردید؟  بارها شده‌بود که مقاله‌های مختلفی در مورد تفاوت‌ها مطالعه کرده بودم و با جزئیات هرکدوم از این روتینگ‌پروتکل‌ها هم آشنایی داشتم و چندباری هم درمورد این موضوع با همکارانم مذاکره و بحث کرده بودم، ولی متاسفانه نتونستم در جوابِ این سوال، توضیحاتم رو به قشنگی وبصورت کامل به اون شخص انتقال بدم...؛ نکته جالب اینجاست که این سوال واقعا از بهترین سوالاتی هستش که میشه در یک مصاحبه پرسید، چراکه فارغ از مباحث فنی، علمِ مهندسی‌شبکه‌ی شخص رو هم به چالش میکشه.یک معمار، طراح ویا مهندس‌شبکه میبایستی قادر باشه که توی یک محیط خاص، شرایط رو بسنجه و براساس نیازها، محدودیت‌ها و شرایط سازمان روتینگ‌پروتکل موردنظر را انتخاب و پیاده‌سازی کنه و صرفا این بحث، چیزی نیست که فقط براساس علاقه انتخاب و پیاده‌سازی بشه. فاکتورهای زیادی در این انتخاب دخیل هستند، از قبیل: &quot;توپولوژی، Scale، بهینه‌بودن، زیرساخت، تجهیزات و وندور، روتینگ‌پروتکل فعلی، سرویس‌های فعلی، برنامه‌های سازمان برای آینده، دانشِ نیروها و...&quot;؛ گرچه این بحث جزء مواردی هستش که با تجربه و حضور در محیطهایِ کاری مختلف، بهتر یادگرفته میشه و البته، کارشناس‌ها نظرات گوناگونی در مواضع مخلفت‌اش دارند(در نتیجه خوشحال میشم که نظرات خودتون رو هم در قسمت کامنت‌ها ارائه بدید). اما بازهم در ادامه میخوایم یکسری نکات رو شرح بدیم که میتونه و امیدوارم براتون کارآمد باشه.    مقدمهبحث‌ها و دلایل استفاده از Routing Protocolها بر هیچکس پوشیده نیست!؛ مطمئنا ساختار Static Route و مسیریابی‌ایستا در بسیاری مواردی میتواند بهترین راهکار موجود باشد، مثلا ممکن‌است شبکه شما &quot;بسیار بسیار کوچک&quot; و &quot;سر راست&quot;بوده و در نتیجه، واقعا نیازی به سربار و پردازش اضافه در شبکه نداشته باشید؛ اینجور مواقع Static Routing میتواند بهترین پاسخ برای باشد. با افزایش مقیاس، پیچیده‌تر شدن شبکه، افزایش Nodeها، افزایش خطاها و درنتیجه افزایش نیاز به بهینه‌سازی، خودکارسازی و اتوماتیک کردن فرایندها، نیاز به استفاده از Routing Protocolها بیشتر میشود و درنهایت بجایی میرسیم که به خودمون میگیم وقتشه روتینگ پروتکل مورد نیازمون رو پیاده‌سازی کنیم دیگه!روتینگ‌پروتکلِ RIPروتینگ‌پروتکل RIP سالها به دنیا خدمت کرده‌است و بی‌شک، وجودش کمک بسیاری برای شبکه‌ها بوده‌است(و خواهد بود!)؛ اینروزها خیلی کم دیده میشه که در سطح Enterprise از این روتینگ‌پروتکل استفاده شود، چراکه نسبت به رقیب‌های دیگرش یعنی OSPF و EIGRP، حرف زیادی برای گفتن ندارد و به اندازه آنها بهینه، سریع و مقیاس‌پذیر نمیباشد، درنتیجه میتوان گفت دعوای اصلی بیشتر برسر OSPF یا EIGRP میباشد تا دیگر گزینه‌ها... درسته که هنوزم در بسیاری از مکان‌ها دیده میشود که هنوز هم از RIP استفاده میکنند، اما فکر میکنم کمتر کسی هنوز قبول داشته باشد این RP برای محیطهای بزرگ و مهم، قابل‌اطمینان و مفید باشد وصرفا دیده میشود که امروزه فقط برای کارراه‌اندازی از RIP استفاده میشود. گرچه یادگیری مفاهیم و عمقِ این RP برای یادگیری مباحث Routing و Routing Protocolها همیشه مفید بوده و خواهد بود. بالاخره OSPF یا EIGRP؟یکجورایی میشه گفت که در Enterpriseها، دعوای اصلی برسر EIGRP ویا OSPF میباشد؛ بزارید همین اول خیالتون رو راحت کنم و بگم که درکل، جوابی که میتونید به سوال اصلیِ‌ما بدهید اینست: بستگی به شرایط دارد! به چی؟ به همون مواردی که در اول پست ذکر کردیم! ده‌ها فاکتور از قبیل: توپولوژی، Scale، بهینه‌بودن، زیرساخت، تجهیزات و وندور، روتینگ‌پروتکل فعلی، سرویس‌های فعلی، برنامه‌های سازمان برای آینده، دانشِ نیروها و...  هردوی این روتینگ‌پروتکل‌ها مزایا و معایب مخصوص به خودشون رو دارن و هیچوقت نمیشه گفت که روتینگ‌پروتکل‌ِ X، در تمامی Environmentها وشرایط گوناگون بهترین گزینه‌است؛ درنتیجه باید یاد بگیریم که هرکدام در شرایط گوناگون به چه شکلی عمل میکنند و بازدهی و Performanceاشان به چه صورت است. شاید بتوان گفت که در Scaleهای کوچک این موارد و این بررسی‌ها زیاد مهم نباشد و اهمیتی نداشته‌باشد، اما در مقیاس‌های بزرگتر مثل استانی، کشوری و...، اهمیت این موضوع که از کدام Routing Protocol استفاده کنیم بسیار مهم و حیاتی میباشد. برای انتخاب بین این دو مورد، هر محقق شناخته‌شده در دنیای Networking، تحلیل و نِگَرش خاص‌خودش را دارد که در انتهای مطلب مطرحشون میکنیم. قبل از هرچیز بذارید یکسری موارد و ویژگی‌های این روتینگ‌پروتکل‌هارا یادآوری کنیم:الگوریتمپروتکل EIGRP بر اساس الگوریتم DUAL(اختصار Diffusive Update Algorithm) و OSPF هم براساس الگوریتم SPF(اختصار Shortest Path First) عمل میکند؛ نکته‌مهم در تفاوت‌های این دو الگوریتم اینست که چگونه بهترین مسیر را محاسبه و معرفی میکنند. SPF براساس پهنای‌باند لینک‌ها و با استفاده از Cost، متریک را محاسبه کرده و بهترین مسیر را انتخاب میکند؛ ازآنطرف، EIGRP بصورت پیشفرض از Delay و پهنای‌باند برای محاسبه متریک استفاده میکند وهمچنین قابلیت تاثیر دادن موارد دیگر هم مانند MTU، Reliability، Load و... در آن وجود دارد.مصرف CPUپروتکل OSPF از تمامی موارد مربوط به شبکه، اطلاعات گوناگونی را نگهداری میکند و با پیش‌آمدنِ کوچک‌ترین تغییری در شبکه(Area یکسان)، تمامی روترهای Area میبایستی اطلاعات خودرا Re-sync کرده و الگوریتم را دوباره محاسبه کنند. از آنطرف، EIGRP فقط یکسری اطلاعات مهم را درزمان ایجاد همسایگی انتقال میدهد و ازآن به بعد، فقط برقراری همسایگی را بررسی میکند و تغییرات ایجاد شده را(در زمان اتفاق) به دیگران اطلاع میدهد؛ درنتیجه نیازی نمیباشد که در زمان تغییر تمامی روترها اطلاعات خودرا بروز کنند و دوباره الگورتیم را اجرا و محاسبه کنند؛ در نتیجه OSPF مصرف CPU بیشتری نسبت به EIGRP، به‌همراه دارد.زمان همگرایی(Convergence Time)باتوجه به ساختار EIGRP، بسیاری معتقدند که EIGRP زمان همگرایی کمتری نسبت به OSPFدارد، چراکه از راهکار Successor و Feasible Successor برای مسیرِ بکاپِ Loop-free استفاده میکند و در OSPF تشخیص و محاسبه مسیر جدید میتواند بیشتر زمان‌بر باشد.  (گرچه بسیاری‌هم معتقدند که باتوجه به اینکه OSPF از BFD پشتیبانی میکند، با این ترکیب میتواند حتی از EIGRP هم بهتر عمل کند.)سادگیپروتکلEIGRP نسبت به OSPF، مفاهیم و Conceptهای کمتر و ساده‌تری دارد و درنتیجه این باعث میشود که در Scaleهای بزرگ و پیچیده، مدیریت OSPF سخت‌تر از EIGRP باشد.طراحی و معماریپروتکل OSPF دارای ساختارهای خاصی در طراحی میباشد(مواردی که میبایستی در طراحی و ایجاد Areaها و... درنظر داشته باشید.) اما EIGRP سخت‌گیری‌ها و محدودیتِ‌خاصی در زمانِ‌طراحی برای‌شما ایجاد نمیکند. شاید هم بتوان گفت که نکته مثبت درمورد OSPF همین است که اگر ازهمان ابتدا، بَنابَر این سیستم بخواهید شبکه خودرا طراحی کنید، مجبور میشوید که طراحی را به شکل صحیح و استانداردِ تعریف شده پیش ببرید و ساختارهای Areaبندی‌شده را ایجاد کنید، اما خب EIGRP به این صورت نیست و شما یک شبکه Flat و کُلی دارید.پروتکل OSPF توسط الگوریتم قدرتمند Dijkstra SPF عمل میکند که خب مسلما دارای مصرف منابع بیشتری نسبت به EIGRP(که از DUALاستفاده میکند)میباشد؛ به‌هرحال میتوان گفت که OSPF کنترل بیشتری در شبکه به‌ما میدهد، با دانستن وضعیت تمام لینک‌ها و وضعیت‌های موجود در یک Area، انتخاب مسیر میتواند بهتر و دقیق‌تر صورت‌بگیرد؛ بالاخره از روش Routing by Rumor(مسیریابی براساس شایعه) که EIGRP از آن استفاده میکند(مثل تمامی پروتکل‌های Distance Vector دیگر)که بهتر است! نه؟درکل، اینروزها دیگه با Open Standard شدن EIGRP، بحث‌های قدیمی که همیشه گفته میشد &quot;چون شبکه Multi-vendorاست، باید از OSPF استفاده کنیم&quot; تمام شده است و ازآنطرف، قدرتِ‌پردازش روترهای‌مدرنِ امروزی دیگر دربرابر الگوریتم‌ها و محاسبات OSPF کَم نمی‌آورند و تنها نکته‌ی مهم اینست انتخاب روتینگ‌پروتکل بستگی به شرایط دارد.یک - Integrationدرسته که روتینگ‌پروتکل EIGRP حالا به‌عنوان یک پروتکل استاندارد شناخته‌شده است و RFCهای آن دردسترس قرار گرفته‌اند؛ اما آیا واقعا درحال حاضر، بروی تمامی تجهیزات داخل سازمان شما، این RP تعبیه‌شده است و وجود دارد؟ پاسخ‌شما به احتمال بسیار زیاد خیر میباشد؛ مشکل سیسکو اینست که در بسیاری از مواقع سعی‌کرده است که مشتریان خودرا مجبور به Vendor lock-in کند و بسیاری از این کار خوششان نمی‌آید و دوست دارند که دست خودرا برای انتخاب تجهیزات دیگر، باز بگذارند. دو - Path Selectionتصمیم‌گیری برای انتخاب بهترین مسیر در OSPF بسیار باحال و حساب‌شده میباشد؛ RP با داشتن یک دیدِ کامل از تمامی اطلاعات موردنیاز و وضعیت‌ها در شبکه(معمولا یک Area)، بهترین مسیر موردنظر را انتخاب میکند و تمامی Forwarding decisionها براساس اینکه &quot;کل شبکه به‌چه شکلی دارد عمل میکند&quot; گرفته میشود، نه فقط بر اساس یک بخش کوتاهی که روتر نسبت به آن اطلاع دارد(?). گرچه قرار نیست که بگیم این راهکار مورد استفاده در Distance Vectorها و روش Routing by Rumor کاملا بد و بی‌مصرف است و Link-stateها عالین!؛ هرچی نباشه کل اینترنت ما برپایه BGPای که رفتارش مشابه Distance Vectorها است عمل میکند و حتی تصورش‌هم سخت است که رفتار مربوط به Link-stateها در اینترنت و این پروتکل، انجام پیاده‌سازی و انجام گردند(از BGP به عنوان یک پروتکل Path-Vector یاد میشود). زمان‌هایی هم هستند که به‌این اندازه دیدِکامل و اطلاعات زیاد، کاربرد ندارند و فقط باعث بار و پردازش زیاد میشوند، در اینجور مواقع مسلما EIGRP و BGP، بهترین موارد برای استفاده میباشند. سه - Route Summarizationدرمورد این موضوع زیاد نمیشه نظری خاصی رو اعلام کرد، نکته بسیارخوب در EIGRP اینست که درهرجایی، هر اینترفیسی و هرقسمتی، میتوانید Summarization انجام دهید و هیچ محدودیتی وجود ندارد؛ بسیاری بر این باورند که OSPF با اینکه محدودیت‌های در Summarization نسبت به EIGRPدارد، اما در Scaleهای بزرگ دقیقا همانجایی که نیاز میباشد این امکان را فراهم کرده‌است وشاید این قابلیت &quot;Summarization در همه جا!&quot; زیاد کاربردی نباشد.بسیاری معتقدند که درشبکه‌های بزرگ و خیلی پیچیده، OSPF گزینه‌بهتری میباشد، چراکه قدرت کنترل بیشتری به‌ما میدهد و عملکرد مفیدتری میتواند داشته باشد.(درمورد این موضوع، این مقاله‌ی نسبتا قدیمی از Jeff Doyle خیلی جالب و مفید هستش، پیشنهاد میکنم حتما مطالعه کنید.)در انتها، باتوجه به نتیجه‌های مختلفی که دیدم، همیشه و همیشه نکته بسیار مهم همان موضوعِ &quot;بستگی دارد&quot; میباشد و هیچوقت نمیتوان گفت که همیشه از فلان گزینه استفاده کنید، هرکدام از این روتینگ‌پروتکل‌ها، ده‌ها Concept و مفاهیم گوناگون برای شرایط گوناگون دارند، فقط میبایستی آن شرایط را تشخیص دهید و باتوجه به آنها، گزینه بهتر را انتخاب کنید.خوشحال میشم نظر و تحلیل شمارو هم درمورد این موضوع بدونم؛ حتما اگر چیزی در ذهنتون بود در قسمت کامنت‌ها ذکر کنید.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Wed, 03 Oct 2018 23:30:19 +0330</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت پانزدهم) – مفاهیم رمزنگاری(بخش اول)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D9%BE%D8%A7%D9%86%D8%B2%D8%AF%D9%87%D9%85-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-c4yhqcyoqnsn</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمامی دوستان خوبم؛ بعد از مدتی دوباره در خدمت شما هستیم با مبحثی جذاب و بسیار کاربردی!؛ در ادامه قسمت قبل از این سری آموزشی که درمورد VPNها صحبت کردیم، در این قسمت میخواهیم که مفاهیم و Conceptهای مربوط به مبحث رمزنگاری (یا همان Cryptography) را برای شما شرح دهیم و ببینیم که داستان از چه قرار است. در این مقاله درمورد تمامی مفاهیم موردنیاز از قبیل الگوریتم‌ها، هَشینگ، Encryption و... صحبت میکنم و سعی میکنم که یک مطلب و مقاله کاملی در این زمینه ارائه‌بدم. پس بامن همراه باشید ;)    Cipher and Keysواژه‌شناسی و Terminology یکی از بخش‌های مهم یادگیری یک تکنولوژی میباشد، پس بزارید که قبل‌از شروع، بایکسری از موارد آشنا شویم:  Ciphers:  به مجموعه‌ای از یکسری قوانین‌خاص، Cipher ویا الگوریتم میگویند، این الگوریتم‌ها به‌ما به نحوه انجام Encryption و Decryption را شرح میدهند. امروزه صدها الگوریتم گوناگون رمزنگاری وجود دارند و بسیاری از آنها برای یسکری از محیطهای خاص ویا موارد خاص استفاده میگردند(مثل موارد دولتی و مربوط به امنیت ملی).  از متدهای مرسومی که عموما Cipherها استفاده میکنند، میتوان به موارد ذیل اشاره کرد:  ـSubstitution: در این نوع Cipherها، یکسری کاراکترها با یکسری کاراکتر دیگر جایگزین میشوند.ـPolyalphabetic: این روش تقریبا مانند همان روش قبلی میباشد، با این تفاوت که بجای استفاده از یک حرف از حروف الفبا، از چندین حرف و کاراکتر استفاده میگردد.ـTransposition: این روش Optionهای گوناگونی را ارائه میکند، مثل تغییر ترتیب حروف.کلیدها - Keys: کلیدها راهنماها و راهکاری برای reassemble کردن محتوا میباشند؛ بصورتی که در ابتدا محتوا توسط یک کلید مشخص‌شده و یکبار مصرف رمزنگاری میشود، سپس با این کلید که حاوی یکسری کاراکترها میباشد میتوان محتوا را در سَمت فرستنده رمزنگاری کرد و سپس در سمت گیرنده میتوان با همان کلید محتوا را رمزگشایی کرده و به داده اصلی دسترسی یافت.(در این بین فرایندهای بخصوصی هم برای انتقال کلید بین فرستنده و گیرنده انجام میگردد)  Block and Stream Ciphersبر اساس نوع Cipher، الگوریتم‌های رمزنگاری(Encryption algorithms) میتوانند بروی قطعه(Block)ای از داده‌ها ویا Bit و Byteهای داده‌ها پیاده‌سازی گردند. به عنوان مثال بگذارید دو نمونه رو مقایسه کنیم. آشنایی با Block Cipher: ـBlock Cipher یک Symmetric Key Cipher میباشد که بروی گروهی‌از بیت‌ها(بلاک‌ها) پیاده‌سازی میگردد؛ یک Block Cipher Encryption algorithm ممکن است که یک بلاک 64بیتی از داده‌خام(Plain) را بگیرد و سپس یک بلاک 64بیتی Cipher Text به شما تحویل‌دهد. در این نوع Encryption از همان کلیدی که برای رمزنگاری استفاده شده است برای رمزگشایی هم استفاده میشود. از Symmetrical block cipher algorithmها میتوان موارد زیر را نام برد: Advanced Encryption Standard - AES Triple Digital Encryption Standard - 3DES BlowfishDigital Encryption Standard - DES International Data Encryption Algorithm - IDEA ـBlock Cipherها ممکن است در زمان‌هایی که بلاک‌ها به اندازه کافی دارای Data نمیباشند مقداری داده‌های موقت به بلاک اضافه کنند تا بتوانند یک بلاک کامل ایجاد کنند و سپس آنرا رمزنگاری کنند؛ به همین دلیل است که گاهی اوقات استفاده از این نوع Cipherها، دارای Overhead نسبتا بیشتری نسبت به دیگر Cipherها میباشد.ـStream Ciphers:  ـStream Cipher یک Symmetric key cipher میباشد که در آن داده‌ها بیت‌به‌بیت توسط Key Stream رمزنگاری و Encrypt میشوند و در Output، به‌شما یک Ciphertext stream تحویل‌میدهد. بدلیل آنکه Cipher Stream مثل Block cipher نیازی به اضافه‌کردن داده برای Fitشدنِ‌بلاک ندارد، دارای Overhead کمتری نسبت به Block cipherها میباشد.  Symmetric and Asymmetric Algorithms یادگیری دو مفهوم Symmetric و Asymmetric بسیار مهم و حیاتی میباشد، بگذارید قبل از هرچیز به Optionها و خصوصیات هرکدام نگاهی بیندازیم.ـSymmetric:  همانطور که اشاره‌شد، یک الگوریتم رمزنگاری Symmetric(که همچنین به آن Symmetrical cipherهم گفته میشود) از یک کلید یکسان برای رمزنگاری و رمزگشایی داده استفاده میکند. هر دو دیوایس متصل‌شده توسط VPN که برای امن‌شدن از الگوریتم رمزنگاری Symmetric استفاده کرده‌اند، برای Encrypt و Decrypt موفقیت‌آمیز داده‌ها، به تمامی Key ویا Keyهای استفاده‌شده نیاز دارند. از الگوریتم‌های رمزنگاری Symmetric میتوان موارد زیر را نام برد: DES3DESAESIDEARC2, RC4, RC5, RC6Blowfishاین روزها، بسیاری از VPNهایی که ازآنها استفاده میکنیم از الگوریتم‌های رمزنگاری Symmetric استفاده میکنند؛ دلیل استفاده از این الگوریتم‌ها سرعت بسیار خوب و CPU Overhead بسیار کمتر آنها نسبت به الگوریتم‌های Asymmetric میباشد؛ باتوجه با ذات رمزنگاری و Encryption، میتوان گفت که هرچقدر که کلید طولانی‌تر و سخت‌تر باشد، به همان نسبت خواندن و متوجه‌شدن داده برای شخصی که دارای کلید نمیباشد سخت‌تر و غیرممکن‌تر میباشد. ما معمولا کلیدهارا با توجه به طول(Length)اشان نام‌گذاری میکنیم، یک کلید طولانی‌تر و بزرگتر به معنی امنیت بیشتر میباشد؛ طول یک کلید عادی عموما بین 112بیت الی 256بیت میباشد؛ برای یک symmetrical encryption algorithmـه امن طول کلید حداقل میبایستی 128بیت باشد تا بتوان گفت که به اندازه کافی Safe است.ـAsymmetric:  از نمونه Asymmetric algorithmها میتوان الگوریتم‌های Public Keyرا نام برد؛ این الگوریتم‌ها در نوع خودشان بسیار جالب و جادویی میباشند!؛ در این نوع الگوریتم‌ها بجای استفاده از یک کلید یکسان برای رمزنگاری و رمزگشایی، از دو کلید متفاوت از یکدیگر برای Encryption و Decryption استفاده میکنیم(و نکته اینجاست که این دو کلید ازنظر ریاضی به یکدیگر ارتباط دارند و به عنوان یک Pair(جفت) عمل میکنند). به این جُفت Key pair و به یکی از این کلیدها Public Key(کلید عمومی) و به دیگری Private Key(کلید خصوصی) میگوییم. بذارید که نحوه عملکرد این دو را با یک مثال بررسی کنیم:فرض کنید که یک صدوقچه دارید که دارای یک قفل‌خاص میباشد؛ این قفل دارای دو Keyhole(سوراخ کلید) میباشد که یکی از آنها یک سوراخ‌ها بزرگ و دیگری کوچک میباشد؛ حالا نکته‌ی این قفل جادوئی اینجاست که اگر از سوراخ‌کلید کوچیکتر و کلید مربوط به خودش برای قفل کردن صدوقچه استفاده کنید، تنها راه باز کردن آن قفل، استفاده از Keyholeبزرگترِ و کلیدِ بزرگ مربوط به خودش میباشد و همین روال بصورت بلعکس هم میتواند انجام شود، یعنی اینکه میتوان از کلید بزرگ برای قفل کردن و از کلید کوچک برای بازگشایی آن استفاده کرد.  این مثال رابطه‌داخلیِ بین Public key و Private Key را به خوبی توضیح میدهد، اما مشکلی که وجود دارد اینست که مصرف CPU در زمان استفاده از این KeyPairها برای Lock و Unlock داده‌ها بسیار زیاد میباشد و به همین دلیل‌است که در شرایط بسیار خاص از Asymmetric algorithmها استفاده میکنیم.بجای استفاده از آنها برای Encrypt کردن یک تکه‌داده، از آنها برای مواردی مانند &quot;Authentication یک VPN Peer&quot; ویا &quot;ایجاد Keying materialـی برای Symmetrical algorithmهای خودمان&quot; استفاده میکنیم. هردو این موارد نسبت به Encryptکردن کل پکت‌های کاربر، بسیار نادرتر میباشند.یکی از دلایلی که ما به این نوع الگوریتم Public key cryptography میگوییم اینست که ما همیشه اجازه میدهیم که یکی از این دو کلید بصورت عمومی انتشار داده شود و دردسترسی دیگران و هرکسی که میخواهد از آن استفاده کند، قرار بگیرد(Public Key). کلید دیگر ما Private key میباشد که همیشه میبایستی نزد دیوایسی که صاحب این KeyPair است محفوظ بماند. اگر بخواهیم مثالی از Public-Private Keypairها مثالی بزنیم، میتوان سر زدن به یک Secure Website را نام برد(وبسایت‌هایی که امن میباشند و از Https استفاده میکنند)؛ در Background از Public-Private Keypair سرور برای امن کردن Session استفاده میگردد؛ کامپیوتر شما به Public Key دسترسی دارد و سرور تنها دیوایسی است که دارای Private key میباشد؛ داده‌ها در سَمت کامپیوتر شما با استفاده از Public Key رمز میشوند و در سرور با استفاده از Private Key رمزگشایی میگردند. از Asymmetrical algorithmها میتوان موارد زیر را نام برد: ـRSA: که به افتخار ایجادکنندگان این الگوریتم Rivest، Shamir و Adleman از حروف اول نام آنها برای نامگذاری‌اش استفاده کرده‌اند؛ این روزها استفاده اصلی این الگوریتم برای authentication میباشد که البته بهش Public key cryptography standard (به اختصار PKCS)هم گفته میشود؛ طول کلید ممکن‌است بین 512 تا 2048 باشد که عموما برای امنیت نسبتا خوب، حداقل از کلید 1024بیتی استفاده میشود.ـDH: پروتکل Diffie-Hellman key Exchange؛ DH الگوریتمی میباشد که به دو دیوایس اجازه میدهد بر بستر یک شبکه غیرقابل‌اعتماد(Untrusted)، با یکدیگر Negotiate کنند و کلیدها و Secretهای موردنیاز خودرا Establishکنند. نکته جالب DH اینست که اگرچه خود الگوریتم Asymmetric میباشد، اما کلیدهای ایجادشده‌ی آن Symmetrical keyهایی میباشند که میتوانند توسط یک الگوریتم Symmetrical مثل 3DES و AES استفاده شوند.ـElGamal: این سیستم Asymmetrical بر اساس DH Exchange عمل میکند.ـDSA: این الگوریتم که اختصار Digital Signature Algorithm میباشد توسط National Security Agency ایالت‌متحده ایجاد شده است.ـECC: اختصار Elliptic Curve Cryptography میباشد. همانطور که گفته‌شد Asymmetrical algorithmها مصرف CPU Processing بیشتری نسبت به Symmetrical algorithm دارند اما به همان نسبت دارای امنیت بسیار بیشتری هم میباشند و عموما برای امنیت خوب، میتوانند دارای هر طول کلیدی بین 2048 تا 4096بیت باشند.    در قسمت بعدی درمورد Hashها و موارد دیگر رمزنگاری صحبت خواهیم کرد...امیدوارم که این پست برای شما مفید واقع شده باشه.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 03 Sep 2018 19:07:16 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت چهاردهم) – مفاهیم VPN</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D8%AF%D9%87%D9%85-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-vpn-c710jqzeutnf</link>
                <description>بسیاری از سازمان‌ها برای فراهم کردن یکپارچگی‌داده، احراز هویت، و رمزنگاری‌داده از Virtual Private Networkها یا همان VPN ها استفاده میکنند تا از محرمانگی Packetهایشان بر بستر یک شبکه ناامن ویا اینترنت، اطمینان حاصل کنند. VPNها طراحی شده‌اند تا از هزینه‌های اضافی برای تهیه لاین‌های اختصاصی(Leased Line) بی‌کاربرد جلوگیری کنند؛ در ادامه قسمت قبل از این سری آموزشی، در این پست میخواهیم درمورد مفاهیم VPNها، رمزنگاری‌ها وهمچنین ضرورت استفاده از VPNها صحبت کنیم، پس با من همراه باشید ;) .   اصلا VPN چیه؟اگر مفهوم Virtual Private Network را به بخش‌های جداگانه‌ای تقسیم کنیم، میتوان VPN را به این صورت تعریف کرد:  ـ N - شبکه ویا Network، بستری که ارتباط و Connectivity را بین دو Device را فراهم میکند؛ این دو دیوایس میتوانند دو عدد کامپیوتر بروی یک LAN یکسان ویا دو کامپیوتر متصل به شبکه WAN باشند؛ به‌هرحال یک شبکه، Connectivity پایه‌ای را برای این دو دیوایس فراهم میکند. ـ V - مجازی ویا Virtual، به یک ارتباط منطقی(Logical connection) بین دو دیوایس نسبت داده میشود؛ برای مثال، یک کاربر ممکن است در تهران و یک کاربر دیگر در مشهد به اینترنت متصل شده‌باشند و ما میتوانیم برای این دو، یک شبکه منطقی(Logical network) بسازیم؛ این شبکه مجازی بین این 2 دیوایس، از اینترنت به عنوان transport mechanism استفاده خواهد کرد. ـ P - خصوصی ویا Private، شبکه‌مجازی‌ای که میتوانیم بین دو دیوایس حاضر در مشهد و تهران بسازیم، خصوصی و مخصوص سازمان‌شما خواهد بود.پس با توضیحات پایه‌ای و مفهومی VPN آشنا شدید؛ شبکه‌ِمجازی‌ِخصوصی!اگر ما بین دو دیوایس بر بستر اینترنت، VPNـی برقرار کنیم، چه چیزی باعث میشود که یک شخص نتواند پکت‌های مارا Sniff و بررسی کند؟ بصورت پیشفرض، هیچی! در نتیجه،ما به بسیاری از VPNها عناصری را اضافه میکنیم که محرمانگی و رمزنگاری را برای ما فراهم آورند، که اگر کسی پکت‌های ما را استراق سمع کرد، بدلیل استفاده از رمزنگاری، نتواند متوجه محتوای داخل پکت‌ها شود؛ این محرمانگی حاصل از رمزنگاری، میتواند از همان بخش P در حروف VPN حاصل شود.همچنین برای جلوگیری از تغییر و دستکاری پکت‌ها در بین مسیر، از Integrity checking استفاده خواهیم کرد و اطمینان حاصل میکنیم که از سَمت دیگر VPN، پکت‌هایی که ارسال‌شده‌اند را به شکل صحیح و درست میبینیم و عمل مخربی در این میان، صورت نگرفته‌است؛ بگذارید به مثال مشهد تهران خودمون برگردیم.اصلا چرا باید برای Connectivity بین این دو، از VPN استفاده کنیم وقتی که گزینه‌های دیگری هم روز میز است؟؛ میتونیم برای هرکدام از یوزرهای خود، یک Dedicated WAN(خط اختصاصی) بین مشهد و تهران خریداری کنیم. هر یوزر میتواند به سَمت خودش از لینک متصل شود و از ارتباط مستقیم بهره بگیرد. اما مشخصا مشکلی که در این میان وجود دارد، بحث قیمت میباشد؛ در اینگونه مواقع، بسیار عقلانی‌تر و ارزان‌تر است که از یک VPN بر بستر اینترنت برای برقراری ارتباط استفاده کنیم، تا اینکه بیاییم و یک &quot;خط اختصاصی که فقط به یک مقصد خاص میرود&quot; خریداری کنیم.یکی دیگر از مزیت‌های VPNها، Scalability(مقیاس‌پذیری) میباشد؛ اگر 10 ویا 20 کاربر دیگر هم نیاز داشته باشند که به مرکز اصلی بصورت مستقیم متصل شوند، ما میتوانیم براحتی از طریق Local Provider آنها این امکان برای برایشان فراهم کنیم؛ فقط با افزایش پهنای‌باند مرکز اصلی، میتوانیم هرتعدادی که میخواهیم برای کاربران بصورت Logical وبا استفاده از VPNها در بستر اینترنت، Connectivity فراهم کنیم.  انواع VPNهابر اساس تعریف Virtual private networkها، موارد زیر میتوانند به عنوان تکنولوژی‌های VPN درنظر گرفته‌شوند: ـ IPSec: برای لایه سوم مدل OSI و IP Packetها، امنیت را پیاده‌سازی میکند و میتواند برای VPNهای Site-to-Site و remote-access استفاده گردد.ـ SSL: که اختصار Secure Sockets Layer میباشد، امنیت را برای یک TCP Session، با استفاده از قرار دادنش بروی یک SSL Tunnel رمزنگاری‌شده، پیاده‌سازی میکند و میتواند برای remote-access VPN ها استفاده گردد(مثل برقراری ارتباط رمزنگاری شده ی بین یک کلاینت و یک وب‌سرور که از HTTPS استفاده میکند).ـ MPLS: اختصار Multi-protocol Label Switching میباشد؛ MPLS و MPLS Layer 3 توسط Service Provider ارائه میشوند و به یک کمپانی اجازه میدهند که بین دو ویا چندین سایتشان Logical Connectivity داشته‌باشند و از شبکه SP برای انتقالات استفاده کنند. بصورت پیشفرض رمزنگاری‌ای برای L3 VPN وجود ندارد، اگرچه میتوان از IPSec درکنارش، برای رمزنگاری استفاده کرد.دو نوع اصلی از VPNهادو دسته‌بندی اصلی وجود دارد که VPNهای گوناگون در آنها قرار میگیرند: ـ Remote-access VPNها: ممکن است تعدادی از کاربران، نیاز به ایجاد یک VPN Connection بین یک‌کامپیوتر خاص و یک Headquarter اصلی(یا هرجای دیگر) داشته باشند، به این نوع ارتباطها Remote-access VPN Connection گفته میشود؛ remote-acceess VPNها میتوانند از تکنولوژی‌های IPSec ویا Secure Shell برای VPNهایشان استفاده‌کنند. به عنوان مثال بسیاری از مشتریان Cisco، از Cisco AnyConnect Client برای Remote-access SSL VPNهایشان استفاده میکنند. این روزها استفاده از SSL VPNها بسیار شایع‌تر میباشد، حتی باتوجه به اینکه AnyConnect از IPSec هم پیشتیبانی میکند(IKEv2).ـ Site-to-site VPNها: این نوع VPN ها توسط کمپانی‌هایی پیاده‌سازی میشود که نیاز به ارتباط مستقیم و امن بین سایت‌هایشان دارند(مثلا با استفاده از بستر اینترنت)، تا هر سایت بتواند با سایت‌های دیگر هم ارتباط داشته باشد؛ به این نوع پیاده‌سازی site-to-site VPN گفته میشود. site-to-site vpnها عموما از یک مجموعه از تکنولوژی‌های VPN به نام IPSec استفاده میکنند.برای بهتر متوجه‌شدن تفاوتشان، شکل زیر یک نمونه از VPNهای Site-to-site و یک نمونه از VPNهای remote-access را نشان میدهد. Cisco ASA در تهران و Headquarterاصلی قرار گرفته‌است و بصورتی کانفیگ شده‌است که Remote-access VPN Connectionهارا Accept کند و همچنین یک تانل site-to-site با یک مرکز در مشهد داشته‌باشد.مزایای اصلی VPNها چه از Remote-access VPNها استفاده کنید و چه از Site-to-site VPNها، از مزایای زیر بهره‌مند میشوند: Confidentiality(محرمانگی)Data integrity(یکپارچگی‌داده)Authentication(احراز هویت)Antireplay protection بگذارید به هریک، نگاهی دقیق‌تر بیندازیم: Confidentiality:ـ Confidentiality ویا محرمانگی به این معنی میباشد که فقط دیوایس‌های موردنظر میتوانند متوجه داده‌های ارسالی بشوند و محتوای آنهارا بفهمند. اگر دربین راه شخصی پکت‌هارا ببیند، نمیتواند از محتوای آنها سردربیاورد، چراکه محتوا به شکل حروف و اعداد بدون معنی و مفهوم میباشند؛ به عنوان مثال ممکن است محتوای پکت‌ها به این شکل باشند: سیستم Confidentiality مهمترین مزیت VPNها میباشد، چراکه فقط ارسال‌کننده و دریافت‌کننده که کلید(Key) ویا Secret را بلدند میتوانند داده‌هارا رمزنگاری و رمزگشایی کنند و هرشخصی که از این کلید اطلاعی نداشته باشد، قادر به Decrypt پیغام نمیباشد و صرفا دیدن این داده‌های نامفهوم برایش فایده‌ای ندارد. Data Integrity: اگر دو دیوایس بروی بستر یک VPN درحال ارتباط و انتقال پکت میباشند، یکی دیگر از موارد قابل اهمیت اینست که داده بصورت سالم و صحیح، end-to-end ارسال و دریافت شود و اتکر در بین راه قادر به خراب‌کردن داده و Injectکردن کوچکترین Bitـی نباشد. Authentication:مسلما برای امن نگه‌داشتن ارتباطات VPN ها، میبایستی از یک روش احرازهویت استفاده شود که مبادا Connectionشما بین دیوایس شما و اتکر برقرار شود ! ، پس نیاز به روشی برای احرازهویت خواهیم داشت تا بتوانیم فقط به افراد و موارد موردنظر خودمان اجازه برقراری ارتباط بدهیم. برای Authentication یک Peer راه‌های گوناگونی وجود دارد: Pre-shared keys - used for authentication onlyPublic and private key pairs - used for authentication onlyUser authenticationAnti-replay Protection:ممکن است یک Attacker، ترافیک VPN شمارا Capture کند و قصد این‌را داشته‌باشد که دوباره آنرا بازی‌دهد و ازش استفاده کند تا بتواند یکی از VPN Peerهارا به‌اشتباه بیندازد که باور کند که این Peer ، یک دیوایس مجاز میباشد؛ با این روش، دیوایس Attacker وانمود میکند که یک دیوایس دیگر است که مجاز به ادامه ارتباط است. بصورت پیشفرض برای جلوگیری از این حمله، در VPNها عملکردهایی برای جلوگیری از این‌مورد انجام میگیرند؛ به زبان ساده بخواهیم بگوییم به این صورت است که یکبار که یک پکت بر بستر VPN ارسال شود، دیگر همان بسته برای بار دوم در VPN Sessionفعلی، Valid نمیباشد.امیدوارم که این قسمت براتون مفید واقع شده باشه.در قسمت آینده درمورد Cryptography صحبت خواهیم کرد.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 13 Aug 2018 15:41:55 +0430</pubDate>
            </item>
                    <item>
                <title>امنیت BGP: نگاهی بر BGPSec</title>
                <link>https://virgool.io/NetworkBaz/%D8%A7%D9%85%D9%86%DB%8C%D8%AA-bgp-%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D8%B1-bgpsec-i8aydcwarohx</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمامی دوستان عزیز؛ با بالا رفتن داستان‌های مربوط به BGP و اخبار مربوط به Hijackingهایی که در شبکه‌های‌اجتماعی و... میشنویم، گفتم خوب‌میشه که مقاله‌ای بنویسیم که توش بتونیم بحث‌های مربوط به امنیت در BGP رو بررسی کنیم و شرح بدیم. پس با من همراه باشید تا این مبحث رو باهم باز کنیم و بروی BGPSec هم نگاهی بیندازیم ;)افزونه: چند روز پیش در ویرگول، درمورد BGP Hijacking مربوط به تلگرام مطلبی نوشتم که مطالعه‌اش بنظرم بد نیست و میتونه مفید باشه.مشکلات امنیتی موجود در BGPپروتکل مسیریابی BGP، درزمان طراحی بصورت یک پروتکل امن نوشته‌نشده است و دارای اشکالات امنیتی بسیاری است هنوز که هنوزه، تمامی آنها حل نشده‌اند و بسیاری از کارشناسان و فعالان حوزه شبکه و امنیت‌شبکه معقداند که پروتکل BGP، هنوز یک پروتکل کاملا امن نمیباشد.  یکی از انواع حملاتی که در BGP میتواند انجام شود، Route Hijacking میباشد و زمانی پیش‌می‌آید که یک AS مسیری نامعتبر و جعلی در شبکه Advertise میکند.(مثل داستان مربوط به تلگرام).  اخیرا نوع جدیدی از این حملات انجام میشوند که ترکیبی از حملات BGP Hijacking و Man-in-the-middle میباشند؛ در این نوع حمله، ترافیک به یک نقطه‌خاص ارسال میشود و سپس از آن نقطه‌خاص به مقصد اصلی ارسال خواهد شد؛در نتیجه در اینجور مواقع اگر ترافیک رمزنگاری نشده‌باشد براحتی برای دریافت‌کننده‌ی‌میانی قابل مشاهده و بررسی است.  امنیت BGPحالا در مقابل، برای جلوگیری از این حملات چه کاری میتوان انجام داد؟ سازمان Internet Engineering Task Force یا همان IETF اقدامات قابل توجهی برای امن کردن Routeها انجام داده‌است، نظیر ایجاد RPSL و SIDR. گروه Secure Inter-Domain Routing Working Group یا همان SIDR راهکارهایی را توسعه‌میدهند که برای امنیت BGP کاربرد خواهند داشت و برای احرازهویت Routeها در زمان Exchanging بکاربرده میشوهد.بعد از حادثه هایجک شدن YouTube توسط پاکستان در سال 2008، مسئله امنیت BGP بسیار مهمتر و قابل‌توجه‌تر شد. هدف اصلی SIDR کاهش اشکالات‌امنیتی در Inter-domain Routing system ها میباشد و دو آسیب‌پذیری‌ای که بیشترین تمرکز بروی آنها میباشد موارد زیر است: آیا یک AS اجازه ایجاد یک IP Prefix را دارد؟آیا AS-Path ارائه‌شده در Route همان مسیری میباشد که NLRI از آن استفاده کرده است؟(Network Layer Reachability Information)برای حل مورد دوم بروی راهکاری تمرکز شده‌است که کار AS Path Validation را انجام میدهد، به این راهکار BGPSec میگویند. BGPSec سعی‌میکند که اطمینان‌خاطر دهد که BGP Update دریافت شده توسط BGP Peer بدرستی مسیری را ارائه‌میکند که خود پیغام Update از فرستنده تا گیرنده طی کرده است.  تا الان 40عدد RFC توسط SIDR بصورت رسمی ارائه‌شده است و درحال‌حاضر 2 عدد هم پیشنویس درحال بررسی دارند؛ میتوان گفت که RFCهایی که در سال 2017 برای BGPSec از حالت پیشنویس خارج‌ و بصورت رسمی ارائه‌شدند، قدمی بزرگ برای امنیت روتینگ برداشتند: ـ RFC 8205 - مشخصات BGPSec Protocolـ RFC 8206 - ملاحظات BGPSec برای انتقال ASـ RFC 8207 - ملاحظات عملیاتی BGPSecـ RFC 8208 - الگوریتم‌ها، کلیدها و امضاهای BGPSecـ RFC 8209 - گواهی‌نامه‌های BGPSecـ RFC 8210 - معرفی RPKIـ RFC 8211 - اقدامات مربوط به RPKIداکیومنت RFC 8205 توضیحات و مشخصاتی از BGPSec میباشد که بصورت استاندارد انتشار یافته‌است؛ در RFC به این صورت توضیح داده‌شده است که BGPSec یک افزونه برای روتینگ پروتکل BGP میباشد که میتواند توسط BGP Update Messageها امنیت را برای مسیر(Path)ها فراهم کند. BGPSec میتواند توسط یک Path Attributeـه اختیاری در BGP به‌نام BGPsec_Path، پیاده‌سازی شود. این مشخصه حاوی یک Digital Signature میباشد که میتواند توسط هر ASـی که Update message را انتشار میدهد، ایجاد شود. Digital Signature به‌ما این قابلیت را میدهد که فقط ASهای موجود در &quot;لیست ASهای Update message&quot; اجازه Advertise کردن Route را داشته‌باشد.در اصل، مقصود اصلی از ایجاد BGPSec ،فراهم کردن مکملی برای BGP Origin Validation میباشد(RFCهای 6483 , 6811) تا در زمانی که عمل Origin Validation(تصدیق مبدا) انجام میشود، بتوان بصورت همزمان از عمل Route Hijacking هم جلوگیری به عمل آورد؛ این کار توسط گواهی‌نامه‌های Resource Public Key Infrastructure(به اختصار RPKI) انجام میشود که تخصیص AS Numberها و IP Address هارا تصدیق و تایید میکند.(RFC 6480).همانطور که در RFC 6480 شرح داده‌شده‌است، سیستم RPKI راهی برای بهبود Routing Security میباشد که توسط همکاری IP Address Rangeها و ASNها از طریق Cryptographic Signatureها انجام داده‌میشود؛ RKPI از X.509 Certificateها استفاده میکند(که همراه افزونه‌هایی از IPv4 و IPv6 پریفیکس‌ها و ASNها میباشد).(RFC 3779).در زمان درخواست منابع، RIRها(APNIC، ARIN، AFRINIC، LACNIC و RIPE NCC) این Certificateهارا برای Resource Holderها صادر میکنند؛ عموما Certificateها هر سال Renew میشوند و هر RIR از Certificate شخصی و مربوط به سازمان خودش برای امضا Certificateهای صادر شده‌اش استفاده میکند.  RKPI به Network Operatorها اجازه میدهد که یک اطلاعیه رمزنگاری‌شده و قابل اعتبارسنجی درمورد &quot;route announcementهایی که آنها توسط ASN و IP Prefixهای خودشان مجاز به انتشار میباشند&quot; ایجاد کنند.به این اطلاعیه‌ها Route Origin Authorisations (به اختصار ROA) گفته میشود، که همچنین میتواند برای مشخص کردن Maximum طول یک Prefix که یک AS مجاز به Advertise کردنش میباشد، استفاده شود. (مقاله مدیریت ROAها در RIPE)  در تصویر زیر، توسط ابزار RIPE NCC RPKI Validator Tool، آمده‌ایم Prefixهایی که AS25 و AS42 مجاز به تبلیغ میباشند را استخراج کردیم. مقاله: نحوه Math کردن RKPI در سیسکو درصورت استفاده از BGPSec، مکانیزم عادی‌ما، حالا نیاز به استفاده از یک BGP attribute دیگر دارد و Negotiation با دیگر eBGP Peerها درمورد BGP capability؛ پس در نتیجه کم‌کم به Peerهای ما پیشنهاد داده میشود که با یکدیگر به توافق برسند و از این به بعد، با استفاده از BGPSec بایکدیگر صحبت کنند. در دنیای اینترنت آینده، Interconnected ASهایی که از BGPSec استفاده میکنند، قادر به تضمین این مورد میباشند که تمامی Routeهای Advertiseشده بدرستی و بدون اشکال توزیع شده‌اند؛ اگرچه زیبایی و قشنگی BGP امن‌شده، زمانی دیده میشود که non-BGPSec speakers کمتری در Routing Pathها وجود داشته باشد.امیدوارم که تا به اینجا این مقاله برای شما مفید بوده باشه و مورد توجه شما واقع بشه؛ انشاالله اگر استقبال خوبی از کاربران دریافت کنم، سعی میکنم که مقاله‌های بیشتر و بهتری درمورد این موضوع براتون آماده کنم.این مقاله از IETF Journal بسیار عالی هستش در این زمینه و بهتون پیشنهاد میکنم که حتما مطالعه کنید.  موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 06 Aug 2018 13:01:27 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزشی SDN (قسمت دوم) – کنترلر</title>
                <link>https://virgool.io/NetworkBaz/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-sdn-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-hyskf8xwpqbv</link>
                <description>با سلام و عرض خسته‌نباشید خدمت همه دوستان عزیز؛ در ادامه قسمت قبلی از این سری آموزشی،امروز با مبحث کنترلر (Controller)ها، معماری‌توزیع‌شده و معماری‌متمرکز در خدمت‌شما هستم. در حدود سال 2010، رویکردهای جدید مربوط به شبکه‌های کامپیوتری ظهور کردند؛ رویکردهایی که محل تعدادی از توابع Control-planeهارا تغییر میدادند؛ بسیاری از این رویکردها، قسمت‌هایی از عملکرد Control-planeهارا وارد یک نرم‌افزار Centralizedشده به اسم کنترلر (Controller) کردند که در ادامه میخواهیم با مفاهیم مربوط به کنترلرها و معماری‌های شبکه آشنا شویم. با من همراه باشید ;).کنترلرها و کنترل‌متمرکز(Controllers and Centralized Control)اکثر پردازش‌های Control-planeهای سُنتی از یک معماری‌توزیع‌شده(Distributed Architecture) استفاده میکنند، یعنی اینکه Control-plane توزیع میشود و روی Deviceهای گوناگون اجرا میشود؛ برای مثال هر روتر، Processـه مربوط به Routing Protocolـه OSPFـه خودش را بصورت جداگانه اجرا میکند. آن Processهای مربوط به Control-planeهای توزیع‌شده، برای درست‌کار کردن از ارسال پیام به یکدیگر برای ارتباط(Communicate) استفاده میکنند؛ مثلا پروتکل OSPF که در بین روترهای خود، پیغام‌ها و پکت‌ها گوناگونی رد و بدل میکند. درنتیجه میتوان اظهار داشت که شبکه‌های سُنتی، از یک Distributed Control-plane استفاده می‌کنند.افرادی که مفاهیم Control-planeهای امروزی مانند STP،OSPF،EIGRP و... را ایجاد کرده‌اند، میتوانستند تصمیم بگیرند که از یک Control-planـه متمرکز استفاده کنند و منطق را در یک نقطه(دیوایس ویا سرور) قراردهند و لازم نباشد که پراسس‌های مربوط به Control-planeها، روی هر دیوایسی بصورت جداگانه اجرا شود؛ و در ادامه، نرم‌افزار مرکزی هم میتوانست با استفاده از پروتکل‌های مربوط به Messaging، اطلاعات گوناگون را از هر دیوایسی که میخواهد بدست آورد اما پردازش‌های مربوط به آنهارا در یک نقطه مرکزی(که میتواند دید وسیع‌تری نسبت به شبکه داشته‌باشد) انجام دهد؛ اما خب آنها تصمیم گرفتند که بجای این راهکار، از یک معماری‌توزیع‌شده استفاده کنند.برای انجام هرعملکردی در شبکه، مزایا و معایب گوناگونی برای معماری‌های توزیع‌شده و متمرکز وجود دارد؛ بسیاری از Control-planeها ، دارای سابقه طولانی و خوبی در &quot;عملکرد در معماری‌توزیع‌شده&quot; میباشند. به‌هرحال یک نوشتن یک اپلیکیشن متمرکز، بسیار آسان‌تر از نوشتن یک اپلیکشن توزیع‌شده میباشد؛ چراکه اپلیکیشن متمرکز، تمامی اطلاعات و موارد موردنیازش را در یک نقطه و بصورت آماده، دارد؛ حالا میتوان گفت که این دنیای‌نوظهورِ SDN و Network Programmability عموما از یک معماری متمرکز  و توابع و عملکردهای مربوط بهش در سرویسی به‌نام کنترلر (Controller)، استفاده میکند.یک کنترلر ویا یک SDNکنترلر(SDN Controller)، کنترل تجهیزات شبکه را، متمرکز میکند؛ اینکه چه‌مواردی، به چه اندازه‌ای Centralized بشوند، میتواند متفاوت باشد.  برای شرح بیشتر ایده ی یک کنترلر، تصویر زیر را درنظر بگیرید، یک SDN Controller تمامی عملکردهای مهم Control-plane را متمرکز کرده‌است.در ابتدا، Controller درجایی از شبکه قرار میگیرد که بتواند به تمامی Devicesهای داخل‌شبکه از طریق IP دسترسی داشته‌باشد و بتواند آنهارا ببیند؛ همچنان هرکدام از دیوایس‌های شبکه، دارای یک Data-plane میباشند اما درنظر داشته‌باشید که هیچکدام از آنها دارای Control-plane نمیباشند. در تغییرات مربوط به SDN(همانطور که در شکل میبینید) ، کنترلر(یا برنامه‌ای که از Controller استفاده میکند) بصورت مستقیم تمامی Data-plane Entryهای جداول هر Deviceرا برنامه‌ریزی و مقداردهی میکند و دیگر دیوایس‌های ما جداول مربوط به Forwardingاشان را با استفاده از پردازش‌های سُنتی Control-planeتوزیع‌شده پُر نمیکنند.شکل فوق، فقط یک مدل از network programmability و SDN را نمایش‌میدهد، درحالی که موارد دیگری‌هم وجود دارند؛ این تصویر به ما پیش‌زمینه خوبی برای صحبت کردن درمورد کانسپت‌ها و مفاهیم مهم دیگر میدهد، بخصوص درمورد ایده‌های Southbound Interface(به اختصار SBI) و Northbound Interface(به اختصار NBI) که در ادامه قصد داریم که درموردشان صحبت کنیم.  The Southbound Interfaceدر یک معماری شبکه برپایه کنترلر، کنترلر نیاز به صحبت‌کردن و ارتباط با دیوایس‌های داخل‌شبکه دارد؛ مثل تصویری که در بالا به شما نشان دادیم، عموما Networking Deviceها در نقشه‌ها و مستندات طراحی‌ و معماری‌های‌شبکه در زیر Controller قرار میگیرند، در بین کنترلر و دیوایس‌های‌شبکه یک Interface قرار دارد و با توجه به محل آن اینترفیس در شکل، به آن اینترفیس Southbound Interface یا SBI گفته میشود.نکته: درحالت عادی، کلمه Interface به کانکتور فیزیکی‌ای بروی روترها و سوئیچ‌ها نسبت داده میشود، اما در این مبحث، کلمه Interface(که در داخل SBI،NBIوAPI هم قرار دارد) به رابطها و اینترفیس‌های نرم‌افزاری نسبت داده‌میشود.ـ Application Programming Interface یاهمان API، متدی برای انتقال و جابجایی اطلاعات بین 2 اپلیکیشن میباشد یا اگر بخواهیم به‌شکل دیگری تعریفش را بیان کنیم، بایستی گفت که یک API، یک اینترفیس به یک اپلیکشن میباشد؛ برنامه‌ها داده‌هارا پردازش میکنند و API به آنها اجازه میدهد که داده‌هایشان را جابجا کنند. پروتکل‌ها عموما بایک ساختار و بدنه مشخص و مستندشده عمل میکنند، اما API عموما دارای کدها، توابع،متغییرها و ساختمان‌داده‌های گوناگون میباشند، که برنامه دیگری درداخل شبکه میتواند از آنها استفاده کند.بگذارید به همان SBI برگردیم؛ SBI یک اینترفیس بین کنترلر و نرم‌افزار روی دیوایس‌های‌شبکه است و اجازه میدهد که این دو بایکدیگر ارتباط داشته‌باشند، با این هدف که کنترلر بتواند Data-plane دیوایس را مدیریت کند.  دریک معماری‌شبکه که برای Network Programmability ایجاد شده‌است، قابلیت‌های SBIها و APIهایشان، اطلاعات زیادی از توانایی‌ها و ضعف‌هایشان در اختیار ما قرار میدهند؛ برای مثال ممکن است بعضی از کنترلرها برای یکسری اهداف خاص، فقط اجازه استفاده از یک SBI (یا تعداد کم) را بدهند، درصورتی که بقیه موارد از تعداد زیادی SBI پشتیبانی میکنند و دست‌مارا در استفاده از SBIها باز میگذارند. مقایسه انواع SBIها، توضیحات و جزئیات مربوط به خودش را دارد که از حوصله این مطلب خارج است. در ادامه به شما 3 نمونه از معماری‌ها را معرفی میکنیم که بصورت اتفاقی، SBIهای گوناگونی هم دارند: ـ Openflow(از ONF)ـ OpFlex(از Cisco؛ توسط ACI استفاده میشود)ـ CLI(تلنت/SSH و SNMP؛ از Cisco؛ توسط APIC-EM استفاده میشود)The Northbound Interfaceبه پیش‌نیازهای برنامه‌نویسی که برای کنترلر موجود در عکس‌قبلی نیاز میباشد فکر کنید، تمرکز تصویر بر این‌است که به شما نشان دهد که کنترلر میتواند به Forwarding tableهای دیوایس‌ها Entry اضافه کند؛ اما سوال اینجاست که کنترلر از کجا میداند که چه‌چیزی را میبایستی به جدول‌ها اضافه کند؟ به چه صورت عمل میکند؟ قبل از اضافه کردن مقادیر، کنترلر شما به چه موارد و اطلاعاتی نیاز دارد تا بتواند مقداری را Addکند؟  احتمالا این موارد به ذهنتان میرسد:یک لیست از تمامی دیوایس‌ها در شبکهقابلیت‌های هر دیوایس(capabilities)اینترفیس‌ها و پورت‌های هر دیوایسوضعیت‌فعلی هر پورتتوپولوژی: هر دیوایس به چه‌جاهایی(دیوایس‌های دیگر) وصل شده‌است و بروی کدام اینترفیس‌ها این ارتباط را برقرار کرده‌اند.پیکربندی فعلی دیوایس: IP Addressها، VLANها و الی آخر... .در یک مدل کنترل‌متمرکز، کنترلر اکثر کارهای موردنیاز و مربوط به Control-planeرا انجام میدهد و تمامی اطلاعات مفید را از شبکه جمع‌آوری میکند(مثل مواردی که در لیست بالا مطرح شد) و در نهایت، خود کنترلر به تنهایی میتواند repository یا مخزنی‌متمرکز از این اطلاعات، برای شبکه، ایجاد کند.ـ NBIـه یک کنترلر بصورتی است که راه ارتباط مستقیم با کنترلر را برقرار میکند تا برنامه‌های دیگر بتوانند از دیتا و توابعش استفاده کنند. برنامه‌های گوناگون میتوانند اطلاعات گوناگونی را با استفاده از APIـه کنترلر، استخراج نمایند و همچنین NBI به برنامه‌ها اجازه میدهد که با استفاده از SBI از قابلیت‌های Controller در ارسال جریان ترافیکی به دیوایس‌ها استفاده کنند.برای اینکه ببینید NBI در کجا قرار میگیرد، در ابتدا درمورد خود Controller فکر کنید...، کنترلرِ ما یک نرم‌افزار است که بروی یک سرور اجرا شده‌است(که میتواند یک VM ویا یک سرور فیزیکی باشد)؛ یک اپلیکیشن میتواند بروی همان سروری که کنترلر قرار دارد اجرا شود و از یک NBI استفاده کند، ودر نتیجه هردو نرم‌افزار میتوانند با یکدیگر صحبت کنند(با استفاده از API).برای مثال به شکل زیر توجه کنید؛ مستطیل نارنجی رنگ نشان‌دهنده محل استقرار &quot;نرم‌افزار کنترلر&quot; میباشد؛ در این مثال ما کنترلر ما با استفاده‌از زبان Java نوشته‌شده است و یک دارای یک Java-based Native API میباشد. هرکسی میتواند براحتی اپلیکیشنی بنویسد که بروی این سیستم اجرا شود و از Java API کنترلر استفاده کند. با استفاده از آن API، اپلیکیشن میتواند اطلاعات گوناگونی درمورد شبکه بدست آورد؛ همچنین اپلیکشن میتواند که جریان‌های شبکه را مدیریت کند؛ کافی‌است از کنترلر بخواهد تا Action خاصی را در Forwarding tableهای دیوایس‌ها انجام دهد.نکته: NBI بر اساس محل قرارگیری در نقشه(بالای کنترلر) نامگذاری میشود، فقط کافیست که بدانید که شمال نقشه شما کجا میابشد. به همین راحتی!قبل از اینکه از بحث مربوط به NBIها خارج شویم، بگذارید نگاهی نزدیکتر به دیگر APIهایی که برای یک کنترلر استفاده میگردند داشته باشیم؛ Representational State Transfer (به اختصار REST) نوعی API میباشد که به اپلیکیشن‌ها اجازه میدهد بروی Hostهای مختلفی قرار بگیرند و از HTTP برای انتقال پیغام بر بستر API استفاده میکند.وقتی که شما نمونه‌های مربوط به SDN که با &quot;یک اپلیکیشن بروی همان سیستم کنترلر&quot; همراه است را میبینید(مانند تصویر بالا)؛ در این شرایط نیازی نیست که API پیغام‌هارا بر بستر شبکه ارسال کند، چراکه هردو برنامه بروی یک سیستم مشترک اجرا شده‌اند. اما وقتی که اپلیکیشن‌های ما بروی سرورها و سیستم‌های جدا از هم قرار گرفته باشند، نیاز است که API بتواند داده‌هارا بر بستر IP ارسال و دریافت کند، و اینجاست که RESTFUL APIها به کمک ما می‌آیند.شکل زیر، ایده اصلی REST API را نشان میدهد؛ اپلیکیشن بروی یک Host دیگر در بالای تصویر اجرا میشود و در این مثال، در مرحله اول، به یک URI خاص یک درخواست HTTP GET ارسال میکند. URI برای شناسایی یک Object بروی کنترلر استفاده میشود؛ برای مثال ممکن است که URI ما لیستی از اینترفیس‌های فیزیکی یک دیوایس به همراه وضعیت هریک از آنها باشد. در مرحله دوم، کنترلر پیغام بازگشتی را بصورت یک HTTP GET Response message به همراه Object ارسال میکند؛ اکثر REST APIها، درخواست دریافت یک داده‌ی ساختاریافته را میکنند و عموما از فرمت‌های مانند XML یا JSON برای Network programmability استفاده میکنند(مثل مرحله سوم در شکل فوق).امیدوارم که این قسمت براتون مفید واقع شده باشه...موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Sat, 04 Aug 2018 15:20:22 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت سیزدهم) – Zone-Based Firewalls(بخش دوم)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%DB%8C%D8%B2%D8%AF%D9%87%D9%85-zone-based-firewalls%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-wfmq10gekgxc</link>
                <description>با سلام و عرض خسته نباشید دوباره خدمت نتورک‌بازهای عزیز؛ در ادامه قسمت قبلی از این سری آموزشی با ادامه ی مبحث ZBF یا همان Zone-Based Firewallها در خدمت شما هستیم.با من همراه شوید... ;)    Putting the Pieces Together سیسکو از زبانی که به آن Cisco Common Classification Policy Language یا به اختصار C3PL میگویند برای پیاده‌سازی پالیسی، استفاده میکند؛ این روال دارای سه جزء میباشد:  ـ Class mapها: از این Class mapها برای شناسایی ترافیک استفاده میشود؛ مثل ترافیک‌هایی که میبایستی Inspect شوند. ترافیک درحال عبور میتوانند بر اساس لایه‌های 3 الی 7ـه مدل OSI، مقایسه و Match شوند(application-based matching).ـ Class mapها میتوانند دارای چند بخش برای Matching باشند؛ یک Class map میتواند مشخص کند که تمامی موارد داخل یک لیست میبایستی Match شوند تا Matchـه کُلی صورت بگیرد(که به این حالت Match-all condition میگویند) ویا اینکه میتواند مشخص کند که هرکدام از موارد داخل یک لیست Matchشوند، به عنوان Matchـه کلی مورد قبول میباشند(که به این حالت Match-any condition میگویند). یک Class Mapـه تعریف‌شده توسط سیستم(که به آن Class-default میگویند) میتواند برای تمامی ترافیک‌هایی که با هیچکدام از موارد کانفیگ‌شده توسط ادمین Matchنشده‌اند ، استفاده گردد.ـ Policy mapها: Policy mapها ، تمامی actionهایی هستند که میبایستی بروی traffic اجرا شوند؛ از Actionهای مهمی که میتوانند توسط Policy mapها اجرا شوند، میتوان Inspect(اجرای Stateful inspection)،ـ Pass(اجازه‌ی عبور ترافیک یا همان Permit، بدون نیاز به انجام Inspection)،ـ Drop و Log را نام برد.ـ Service Policyها: میتوان گفت که Service policyها جایی هستند که شما پالیسی‌هایتان را بروی یک Zone-pair اعمال(Apply) میکنید.اگر یک Policy-map دارای چندین Action باشد، از بالا به پایین پردازش میشود و Actionهایش را بروی ترافیک‌هایی که با Class-mapها Match میشوند انجام میدهد؛ اگر یک قسمت‌خاص از Policy-mapـه ما Match شود، Actionـه مربوط به‌آن انجام میشود و اگر ترافیک Match نشود، پکت با بخشِ بعدیِ Policy-map مقایسه میشود.اگر ترافیک با هیچکدام از بخش‌ها Match نشود، Actionـه تعریف‌شده‌ی پیشفرض اعمال میشود. برای ترافیکی که درحال تلاش برای initialing بین دو Zone میباشد(یعنی از یک Zone شروع میشود و به سمت دیوایسی در Zoneـه دیگری میرود)، پالیسیِ پیشفرضِ تعریف‌شده Deny میباشد.(البته در اینجا یک استثنا وجود دارد، ترافیکی که به ویا از Zoneـه Self-zone ارسال میشود، بصورت پیش‌فرض Allow میباشد).  در ادامه ، Actionهای Policy-mapهارا بررسی میکنیم: ـ Inspect(اجازه عبور ترافیک و Inspect کردن ترافیک بصورت Stateful): این مورد میبایستی در سَمتی پیاده‌سازی شود که کاربران اقدام به برقراری ارتباط با سَمت دیگر فایروال میکنند و انتظار دریافت Reply(بازگشت ترافیک) را دارند.ـ Pass(اجازه عبور ترافیک و عدم نیاز به ثبت رکورد در Stateful Database): این مورد برای زمان‌هایی که ترافیک نیازی به بازگشت ندارد ویا پروتکل موردنظر ما از Inspection پشتیبانی نمیکند مفید میباشد.ـ Drop(رد کردن و Deny کردن پکت): زمانی که نمیخواهید ترافیکی عبور داشته باشد ، میبایستی از این Action استفاده کنید.ـ Log(لاگ برداری از پکت‌ها): اگر میخواهید از پکتهایی که Drop میشوند Logتهیه کنید ، میتوانید از این Option استفاده کنید.Service Policiesیک Service Policy بروی یک Zone-pair اعمال(Apply) میشود؛ یک zone-pair نشان‌دهنده‌ی یک جریان ترافیکی بین 2 Zone میباشد. یک Zone-pairـه خاص فقط میتواند یک عدد Service Policyـه Assignشده داشته‌باشد، زیرا Zone-pair یکطرفه میباشد و Policy-map بروی یک Zone-pair و بروی ترافیکی که از یک Zone شروع به Initialشدن میکند و به سمت Zoneـه دیگری میرود، اعمال میشود.  درحالت معمولی، وقتی که یک روتر پکتی را دریافت میکند، تصمیم مربوط به Routing را میگیرد و پکت را در مسیر مربوط به خودش فوروارد میکند؛ اما اگر ZBF روی روتر کانفیگ شده باشد، ممکن است بر اساس Stateful table و پالیسی‌هایی که پیاده‌سازی شده‌اند، روتر پکت را Forward نکند. جدول زیر نمایش‌دهنده‌ی جریان‌های ترافیکی مرسومی است که عموما بین Interfaceهای Zoneهای گوناگون مسیریابی میشوند(بر اساس کانفیگ‌های انجام شده).این جدول موردی خوبی برای حفظ کردن و یادگیری میباشد و در اکثر اوقات در Troubleshootingـه ZBF به‌شما کمک میکند.  (در جدول زیر، ورودی به معنی پکتی است که درحال واردشدن به یک Interfaceـه روتر میباشد و خروجی به معنی پکتی است که درحال خارج شدن از یک Interfaceـه روتر میباشد) اگر Zone-pairـی وجود داشته‌باشد که در بین دو Zoneـه آن، ترافیک درحال عبور میباشد و پالیسی‌ به آن Zone-pair اعمال نشده‌باشد، رفتار پیشفرض این‌است که ترافیک را Drop کند(مثل زمانی که هیچ Zone-pairـی وجود ندارد).قبل از آنکه ادامه دهیم، میخوام Configurationـی رو بهتون نشون بدم که دارای موارد زیر است: ـ Zoneها اینترفیس‌هایی که عضو Zoneها هستند.ـ Class map هایی که ترافیک را شناسایی میکنند.ـ Policy map هایی که از Class mapها برای تشخیص ترافیک استفاده میکنند و Actionـه مخصوص به هرکدام را اعمال میکنند.ـ Zone-pair ها، که نشان دهنده‌ی جریان یکطرفه ترافیکی میباشند که از طریق یک دیوایس در یک Zone شروع میشوند و به سمت یک اینترفیس دیگر در یک Zoneـه دیگر Route میشوند.ـ Service-map ها، که در موارد Zone-pairها به Policy-mapها کمک میکنند.حالا که با تمامی موارد آشنا هستید، حالا میخواهم با کامندهای مربوط به موارد فوق آشنا شوید و پالیسی‌ای را پیاده‌سازی کنیم تا به کاربران Inside اجازه دسترسی به Internet را بدهیم(دقیقا همانند عکسی که در قسمت قبلی شرح دادیم):با استفاده از این پالیسی، Stateful inspection را برای ترافیک های Telnet و ICMP که قصد خروج از Inside و رفتن به Internet را دارند، پیاده‌سازی کردیم.The Self-Zoneترافیک‌های که مستقیما به خود روتر ارسال میشوند و ترافیک‌هایی که از خود روتر ارسال میشوند(یعنی مربوط به خود روتر میباشند، نه یک Zoneـه خاص)، همگی مربوط به Self-zone میباشند؛ در این مفهوم، اینکه کدام Interface برای استفاده‌ی Self-zone درنظر گرفته‌شده است مهم نمی‌باشد. بصورت پیشفرض تمامی ترافیک های که به Self-zone می‌آیند ویا از Self-zone خارج میشوند، Allow شده مباشند، اما اگر به هردلیلی قصد داشتید که پالیسی مربوط به Self-zone را تغییر دهید، کافی است به همان صورته قبل یک Zone-pair ایجاد کنید و یک Policy به آن Assign کنید.  در جدول زیر، انواع رفتار Self-zone، نمایش داده‌شده است:  با توجه به ذات Self-zone، اگر یک Zone-pair ایجاد شود ولی هیچ پالیسی‌ای بهش Apply نشود، بصورت پیشفرض  تمامی ترافیک Forward میشود(که همانطور که گفتیم، این Zone، ذات متفاوتی نسبت به Zoneهای دستی‌ای که ایجاد میکنیم دارد)؛ وقتی که یک zone-pair را کانفیگ میکنید که مربوط به Self-zone میباشد، میبایستی حواستان باشد که ترافیک مربوط به Management را Allow کنید و از قطع شدن دسترسی خودتان جلوگیری کنید.با تشکر از شما که تا اینجا همراه من بودید ;)موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 27 Jul 2018 15:37:26 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزشی SDN (قسمت اول) - مقدمه و مفاهیم</title>
                <link>https://virgool.io/NetworkBaz/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-sdn-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-%D9%85%D9%82%D8%AF%D9%85%D9%87-%D9%88-%D9%85%D9%81%D8%A7%D9%87%DB%8C%D9%85-kkgxsegzz7rf</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمامی کاربران عزیز وبسایت نتورک‌باز ؛ با دوره آموزشی جدید و عنوان Software Defined Networking یا همان SDN در خدمت شما هستیم. امروزه مباحثی مانند Cloud،SDN و... از مباحث داغ دنیای فناوری‌اطلاعات محسوب میشوند و بسیاری از فعالان این حوزه معتقدند که آینده دنیای شبکه‌های کامپیوتری در دست SDN قرار خواهد داشت / بامن همراه شوید تا در این دوره آموزشی بصورت جامع با این تکنولوژی آشنا شویم و بقول معروف ، SDN را در دست بگیریم.    SDN and Network Programmabilityدر دوره‌های آموزشی مدارک سیسکو و مدارک دیگر Vendorها ، همیشه با مدل سُنتی و قدیمی Network ها آشنا میشویم و یاد میگیریم که شبکه به چه‌صورت کار میکند و کنترل میشود ، مدلی که دهه‌هاست که از آن استفاده شده‌است...؛ شما با پروتکل‌های گوناگون آشنا میشوید، کامندهای گوناگون را برای Customize کردن عملکرد آن پروتکلها یاد میگیرید و سرویس‌های گوناگون را بصورت دیوایس‌به‌دیوایس و یکی‌یکی در شبکه‌خود پیاده‌سازی میکنید.  Network Programmability مدل عملکرد شبکه‌هارا تغییر میدهد و از متدهای جدیدی برای کنترل دیوایس‌ها و عملکرد آنها استفاده میکند؛ Network Programmability به‌خودی‌خود به مبحث کنترل نرم‌افزاری شبکه اشاره دارد که با اینکار شبکه‌ها میتوانند بسیار راحت‌تر با محیطی که همیشه درحال تغییر میباشد خودشان را وفق دهند ، مانند Virtual Machineها که به راحتی در دیتاسنتر جابجا میشوند و پترن ترافیکی را تغییر میدهند.  مفهوم مشابه ، Software Defined Networking یا همان SDN هم به همین صورت، بروی مفاهیم کنترل داینامیک و نرم‌افزاریشبکه بجای Static Configuration تاکید دارد.  SDN و Network Programmability از مباحث بسیار گسترده و پیچیده شبکه‌های کامپیوتری میباشد که البته در این دوره آموزشی قرار است با مفاهیم و موارد مهم آنها آشنا شویم و ایده‌های پایه‌ی آنهارا بررسی کنیم.مفاهیمدیوایس‌های تحت شبکه ، داده‌های شمارا به شکلِ قالبی از پیام‌ها(عموما Frameهای Data-link مانند Ethernet frameها) Forward میکنند؛ شما از قبلا آموخته‌اید که روترها و سوئیچ‌ها به چه صورت Forwarding را انجام میدهند و این پیام‌هارا جابجا میکنند، SDN و Network programmability ایده‌های قبلی‌ای که با آنها آشنا شده‌اید را برمیدارند و قسمت‌های مختلفش را آنالیز میکنند، سپس راهی برای بهتر کردن آنها برای نیازهای امروزی پیدا میکنند و ایده‌هارا بصورتی در کنار هم قرار میدهند که برای نوع جدید شبکه‌ها قابل استفاده باشند؛ در نهایت همچنان پیام شما در شبکه Forward خواهد شد ، اما چرا و چگونهی آن تغییر کرده‌است.  در ابتدا میبایستی ببینیم که یکسری مفاهیم در شبکه‌های سنتی به چه‌صورت عمل میکنند و سپس توضیح خواهیم داد که چگونه یک نرم افزار کنترلر مرکزی(centralized controller software) به‌نام Controller معماری‌ای برای کنترل نرم‌افزاری آسانتر در شبکه ایجاد میکند.  ـ Planeها:یک لحظه به این فکر کنید که دیوایس‌های شبکه چه‌کارهایی انجام میدهند؟ یک روتر چه کاری انجام میدهد؟ یک سوئیچ چه کاری انجام میدهد؟  ایده‌های زیاده باید به ذهنتان رسیده باشد؛ برای مثال، همگی آنها برای ایجاد شبکه، بصورت فیزیکی و توسط کابلها ویا Wireless به یکدیگر متصل میشوند؛ همگی آنها پیغامهای شمارا Forward میکنند، سوئیچ Frameهارا و روتر هم Packetهارا؛ آنها از پروتکلهای گوناگون بسیاری برای یادگیری موارد مفید استفاده میکنند(مثل Routing Protocolها برای یادگیری Routeهای لایه‌ی شبکه).  تمام کارهایی که دیوایس‌های شبکه انجام میدهند میتوانند در دستبه‌بندی‌های گوناگون Planeها قرار بگیرند.در ادامه با 3عدد از Planeهایی که عموما برای توضیح عملکرد network programmability استفاده میشوند، آشنا خواهیم‌شد: Data PlaneControl PlaneManagement Plane   یک - Data Plane:تمامی Taskها و کارهایی که یک دیوایس‌شبکه انجام میدهد تا بتواند پیغام شمارا Forwardکند مربوط به Data Plane میباشد، یا اینکه میتوان گفت که هرچیزی که مربوط به دریافت،پردازش و Forward کردن دیتا(هر نوع دیتایی از قبیل Frameها، پکت‌ها و...) در Device، بخشی از Data-Plane میباشند.  برای مثال، باتوجه به شکل زیر، به این فکر کنید که یک روتر چگونه IP Packetهارا Forward میکند؛ اگر برای یک لحظه بروی منطق لایه3ای تمرکز کنید:  در قدم اول: Host پکت را به روتر پیشفرض‌اش(R1) ارسال میکند. در قدم دوم: R1 مقداری پردازش بروی پکت دریافتی انجام میدهد و سپس تصمیم مربوط به Forwardingرا میگیرد(Routing) و پکت را Forward میکند. و درقدم سوم و چهارم: روتر های R3وR4 هم به همین صورت بسته را دریافت،پردازش و ارسال میکنند.کمی گسترده‌تر به این موضوع نگاه کنید و  به &quot;تمامی کارهایی که ممکن است یک سوئیچ ویا یک روتر هنگام دریافت،پردازش و ارسال یک پیغام انجام دهد&quot; فکر کنید؛ درسته که Forwarding Decision بر اساس منطق انجام میشود(جالب است بدانید که گاهی اوقات به Data Planeـ، Forwarding Plane هم میگوند)، اما بیآیید و کمی فراتر از Match کردن Destination addressهای داخل یک جدول فکر کنید و بیشتر وارد جزئیات شوید... ، به عنوان مثال لیست زیر &quot;تعدادی از Actionهای مرسومی که دیوایس‌های‌شبکه در بخش Data Plane انجام میدهند&quot; را نام برده است:ـ De-encapsulating و Re-encapsulating یک بسته در یک Frameـه Data-linkحذف ویا اضافه کردن Headerـه مربوط به 802.1Q (ترانک)ـ Match کردن Destination MAC Address با Mac Address Tableـ Match کردم Destination IP Address با IP Routing Tableـ Encrypt(رمزنگاری)ـه داده‌ها و اضافه کردن IP Headerـه جدید(VPN)تغییر IP Addressـه مبدا و IP Address مقصد(NAT)ـ Discardکردن تعدادی از بسته‌‌ها برای فیلترینگ(ACL ویا Port Security)و...تمامی موارد فوق و موارد مشابه آنها هستند که Data-Plane را ایجاد میکنند؛ پس دانستیم و یادگرفتیم که تمامی Taskهای مربوط به «دریافت،پردازش و ارسال» در یک دیوایس‌شبکه چه بصورت کُلی و چه بصورت جزئی، همگی بخشی از Data-Plane میباشند.دو - Control Plane:حالا به این نکته فکر کنید که Data Plane، قبل از هر چیز، چه نوع اطلاعاتی برای عملکرد نیاز دارد تا بتواند بدرستی کار کند؟؛ برای مثال Routerها قبل از هرچیزی، به وجود داشتن Route در جدول Routing Table نیاز دارند تا Data Plane بتواند Forwarding را بدرستی انجام‌دهد. سوئیچ‌های لایه 2 به وجود داشتن MAC Address ها در MAC Address Table نیاز دارند تا بتوانند Ethernet Frameهارا برای Destination مورد نظرشان ارسال کنند؛ سوئیچ ها میبایستی از Spanning tree Protocol استفاده کنند تا بتوانند مشخص کنند که از چه اینترفیس‌هایی میتوان برای Forwarding استفاده کرد(تا Data plane بتواند بدرستی کار کند و در شبکه Loop ایجاد نکند).  از یکنظر میتوان گفت که اطلاعات عرضه‌شده به Data-plane ، نحوه عملکردش را کنترل میکنند؛ به عنوان مثال، روتری که در Routing Tableـه خود هیچ داده‌ای نداشته باشد نمیتواند Packet Forwarding انجام دهد؛ Data-Plane وجود دارد اما وقتی که سعی میکند تا عمل Matching را انجام دهد موردی پیدا نمیکند و شکست میخورد، در نتیجه بسته دریافتی را Discard میکند... اما به محض اینکه در داخل روتر، Route تعریف میشود، Data-planeـه روتر میتواند پکتهارا Forwardکند.حالا چه چیزی محتوای Routing Table را کنترل میکند؟ تعدادی از پردازش‌های مربوط به Control Plane.هر Actionـی که برای کنترل Data-plane انجام میشود، مربوط به Control Plane میباشد؛ اکثر این Actionها ایجاد کردن جداولی است که معمولا Data plane از آن استفاده میکند، مانند Routing-table، IP-ARP-Table، Switch-MAC-Address-Table و الی آخر... . با حذف و اضافه کردن Entry ها به جداول، Control plane نحوه‌ی عملکرد Data plane را کنترل میکند. مطمئنا در همین لحظه شما بسیاری از پروتکلهای Control Plane را میشناسید... مثل تمامی Routing Protocolها(RIP،OSPF،EIGRP و...).همانطور که در تصویر زیر نشان داده شده‌است، Networking Protocolها و Device های سُنتی، Data-Plane و Control-Plane را از یکدیگر جدا کرده و توابع عملیاتی‌اشان را بصورت فردی و یکی‌یکی بروی دیوایس‌ها توزیع میکنند؛ یعنی هر دیوایس به خودی خودی دارای Control plane و Data Planeـه جداگانه است و هربار که هر پکتی وارد هر دیوایسی میشود، دوباره و دوباره با این 2 عدد Plane سروکار دارد. در این مثال، OSPF(پروتکل Control-planeـه فعلی)، بروی هرکدام از دیوایس‌ها بصورت جداگانه اجرا شده است: بدون پروتکل‌ها و فعالیت Control-Plane، دیوایس‌های سُنتی تحت شبکه(منظور همان دیوایس‌های عادی‌ای که امروزه از آنها استفاده میکنیم میباشد) نمیتوانند بدرستی کار کنند؛ روترها بدون داشتن پروتکلی برای یادگیری مسیرها بی‌کاربرد میشوند، سوئیچ‌ها بدون امکان یادگیری MAC بدرد نمیخورند(گرچه همیشه با استفاده از flooding میتوانند بسته را به مقصد برسانند اما Load بسیار زیاد میشود و عملا شبکه بسیار غیربهینه خواهد بود). پس نتیجه میگیریم که Data plane به اطلاعاتی که توسط Control plane فراهم میگردد تکیه دارد و بدون آن اطلاعات نمیتواند بدرستی عمل کند.سه - Management Plane:ـ Control-plane بصورت یک واحده بالاتر، Taskهای بسیاری انجام میدهد که بصورت مستقیم بروی رفتار Data-plane تاثیر میگذارند، Management-planeهم به همین صورت است اما با این تفاوت که بصورت مستقیم بروی Data-plane تاثیر نمیگذارد و بجایش، Management-plane حاوی پروتکل‌هایی است که به مهندس شبکه اجازه مدیریت Device را میدهد.  SSH و Telnet دوتا از معروفترین پروتکل‌های Management-plane میباشند؛ برای متوجه شدنه تفاوت‌های مهم آن با Control-plane Protocolها، دو روتر را درنظر بگیرید: یکی از آنها بصورتی کانفیگ شده‌است که اجازه برقراری ارتباط Telnet و SSH را فراهم کند و دیگری بصورت برعکس میباشد و اجازه برقراریه ارتباط SSH و Telnet را نمیدهد؛ هردوی آنها همچنان میتوانند یک Routing Protocol را اجرا کنند و بسته‌هارا مسیریابی کنند(چه از SSH و Telnet پشتیبانی کنند و چه نکنند).در شکل زیر میتوانید تعدادی دیگر از پروتکلهای Management-plane را مشاهده کنید.Cisco Switch Data Plane Internals:در همان روزهای اولیه‌ی دیوایس‌هایی با نام LAN Swichها، سوئیچها میبایستی از یک سخت‌افزار خاصی برای Forward کردن Frameها استفاده میکردند، بدلیل تعداد بسیار زیاد Frameها در ثانیه(frames per second یا همان fps). با توجه به تعداد پورتهای روی یک سوئیچ،سرعت هر پورت و حداقل frame sizeـه یک Ethernet frame، حتی سوئیچ‌های رده پایین هم نیاز داشتند که بتوانند میلیون‌ها از Frameهارا در کسری از ثانیه ارسال کنند؛ برای مثال اگر سازنده‌ی یک سوئیچ بخواهد که سرعت موردنیاز Data-planeاش را محاسبه کند، احتمالا با اعداد زیر مواجه میشود: سوئیچ دارای 24 پورت میباشد.هر کدام از پورتها دارای 100Mbps پهنای‌باند میباشد.فرض میکنیم که طول هر Frameـه ما، 125 بایت میباشد(برای راحت‌تر محاسبه کردن در این مثال).از Full duplex بروی همه پورت‌ها استفاده میشود، پس سوئیچ میتواند بروی تمامی 24 پورتش بصورت همزمان، انتظار دریافت دیتا داشته باشد. نتیجه : هر پورت 100000fps دریافت خواهدکرد، پس درکل میشود 2/4میلیون Frame در ثانیه؛ پس data-planeـه سوئیچ میبایستی آمادگیه پردازش 2/4میلیون Frame برثانیه را داشته باشد.در همین حین که ممکن است 2.4میلیون عدد بزرگی به نظر برسد، بایستی گفت که هیچوقت هدف‌ما، مشخص کردن یک عدده عالی برای داشتن سرعت بالا درdata-plane نبوده است و بجایش از همان سالهای ابتدایی(حدود سالهای 1990میلادی)، LAN Switchها نیاز قدرت پردازشی داشتند که بتواند بصورت نرم افزاری پردازش‌های بیشتری نسبت به CPUهای عمومی انجام دهد؛ به همین دلیل سوئیچ‌های سخت افزاری همیشه دارای یک سخت‌افزار خاص دیگری در داخل خود هستند که بتوانند پردازش data-plane را به‌صورت جداگانه و به‌خوبی انجام دهد.اولا، میبایستی گفت که منطق Switching در CPU انجام نمیشود و این مورد بر عهده ی Application Specific Integrated Circuit یا همان ASIC میباشد. ASIC یک چیپ میباشد که برای یک هدف خاص ایجاد شده است، مثل پردازش بسته‌ها در یک دیوایس تحت‌شبکه.دوما، ASIC میبایستی قادر باشد که Table lookupـه مربوط به MAC Address Table را انجام دهد، پس برای lookupـه هرچه‌سریعتر، سوئیچ نیاز به یک Memoryـه خاص دارد که بتواند دقیقا معادله محتوای MAC Address table را در آن نگهداری کند، Ternary Content-Addressable memory یا همانTCAM. ـ TCAM memory نیازی به ASIC برای سرچ‌کردنه محتوای یک جدول ندارد و بجایش ASIC فقط محتوا به فیلده TCAM(برای جستجو) میدهد، مثلا به TCAM یک MAC Address میدهد و TCAM موردی که با آن Match میشود را بازمیگردند(بدون اینکه نیاز به اجرای یک الگوریتم سرچ داشته باشد).درنظر داشته باشید که بازهم همه ی سوئیچ‌ها دارای یک CPU و Memoryـه کُلی هم میباشند.همانطور که در شکل زیر نمایش داده شده است... .  IOS درون CPU اجرا میشود و از RAM استفاده میکند؛ بیشتر توابع و عملیات Control-plane و management-plane درون IOS اجرا میشوند؛ توابع مربوط به Data-plane(و تابع مربوط به MAC Learningـه Control-plane) در داخل ASIC انجام میشوند. درنظر داشته باشید که بعضی از روترها هم از یک سخت‌افزار خاص برای پردازش توابع Data-plane استفاده میکنند(به همان دلیلی که سوئیچ‌ها از این سخت‌افزار ها استفاده میکنند)؛ برای اطلاعات بیشتر درمورد Hardware data-plane forwarding در روترهای سیسکو، میتوانید درمورد Quantum Flow Processor مطالعه کنید که تکنولوژی جالب و جذابی میباشد.پایان قسمت اول.امیدوارم که تا اینجا، مقاله براتون مفید واقع شده باشد :)</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 20 Jul 2018 11:03:29 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت دوازدهم) – Zone-Based Firewalls</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D8%A7%D8%B2%D8%AF%D9%87%D9%85-zone-based-firewalls-lmu7fxhei5eq</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمامی دوستان عزیز ! ، در ادامه قسمت قبلی از این سری آموزشی ، امروز با مبحث Zone-based Firewalls(به اختصار ZBF) در خدمتتون هستیم ؛ ZBF فیچری میباشد که توسط سیسکو در IOS Software هایش قرار گرفته است.در این بخش میخواهیم با مفاهیم،دلایل و روش‌های طراحی Zone(منطقه/ناحیه)ها آشنا شویم و کمی با ZBF دست‌وپنجه نرم کنیم؛ بامن همراه باشید...فایروال Zone-Based به چه صورت عمل میکند؟با استفاده از ZBFها ، Interfaceها در Zone(ناحیه، منقطه)ها قرار میگیرند؛ Zoneها توسط مدیر شبکه و با نام های گوناگونی نظیر Inside،Outside،DMZ و... ایجاد میشوند؛ سپس پالیسی ها مشخص میکنند که ترافیک کدام Transit اجازه‌ی Initialize شدن و برقراری ارتباط دارد و در مقابلش چه Actionـی میبایست از سمت فایروال اجام شود؟(به عنوان مثال Inspection).بعد از Inspect شدن ترافیک ، اجازه &quot;بازگشت ترافیک از طریف فایروال&quot; هم بدلیل استفاده از فیچر Stateful filtering فراهم خواهد شد.پالیسی ها در یک مسیر(Single Direction) ایجاد و پیاده‌سازی میشوند(به عنوان مثال Inside-to-Outside) ؛ اگر قصد Allow کردن یک ترافیک خاص در هر دو مسیر (رفت و بازگشت) را دارید میبایستی 2 پالیسی‌یک‌طرفه برای Allow شدن ترافیک در مسیرهای Inside-to-Outside و Outside-to-Inside ایجاد کنید. در نتیجه همیشه در نظر داشته باشید که بدلیل اینکه پالیسی‌ها همگی unidirectional(یکطرفه) میباشند، میبایستی بابت هر شرطی که میخواهید ایجاد کنید یک پالیسی ایجاد کنید، همچنین میبایستی بدانید که همیشه پالیسی‌ها بروی Zone ها اعمال میشوند، نه Interfaceها!یکی از مفیدیت‌های این رویکرد اینست که بعد از پیاده‌سازی پالیسی‌ها اگر شما اینترفیس جدیدی را به Device اضافه کنید، تنها کاری که نیازست انجام دهید اینست که Interfaceهارا به Zoneهای مورد نظر خود اعمال کنید وبا اینکار تمامی پالیسی‌های شما بروی آن اینترفیسها بصورت خودکار اجرا خواهند شد.  ویژگی‌های Zone-Based Firewallهااز ویژگی‌های عمده و معمول ZBF میتوان موارد زیر را نام برد: Stateful inspectionApplication inspectionPacket filteringURL filteringTransparent firewallVRFبرای پیاده‌سازی موارد مربوط به فیلترینگ ، نیازی به ACL ندارد.اکثر مواردی که نام بردیم را در قسمت‌های قبلی این سری آموزشی درموردشان صحبت کردیم و باآنها آشنا شدیم، اما دو مورد را هنوز درمورشان صحبت نکرده‌ایم:ابزار Uniform resource locator - URL Filtering: قابلیتی برای کنترل(Permit ویا Deny) ترافیک به مقصد URLـی که کاربر قصد ارتباط با آنرا دارد میباشد.و همچنین Virtual routing and forwarding - VRF: میتوان گفت VRF ها ، Routing Tableهای مجازی‌ای بروی یک روتر سیسکو میباشند که از نگهداری تمامی Routeها در یک Routing tableـه Primary جلوگیری میکند و مسیرهارا در چند جدول مجازی نگهداری میکند.(بحث مربوط به VRF ها بسیار گسترده است که در آینده مقاله کاملی درمورد آن خواهیم‌نوشت).  ناحیه‌ها (Zones)میتوان گفت که Zoneها، نواحی‌ای منطقی(Logical) میباشند که دیوایس‌های متفاوت با سطوح اعتماد متفاوت(Trust levels) در آنها قرار میگیرند؛ به عنوان مثال میتوان یک DMZ Zone برای سرورهای سازمان ایجاد کرد. یک Zone توسط Network administrator ایجاد میشود و Interfaceهای گوناگون میتوانند به آن Assign شوند.یک Zone میتواند به تعداد دلخواد Interfaceـه Assignشده داشته باشد اما هر Interface فقط میتواند به یکی از Zoneهای ما Assign شود؛ بصورت پیشفرض ما دارای Zoneای با نام self-zone خواهیم بود که یک Zone منطقی برای خود Device میباشد، یعنی اگر به عنوان مثال پکتی بصورت مستقیم به سمت روتر ارسال شود (منظور اینست که Destination IP آدرس روتر باشد)، روتر بصورت پیشفرض آنرا وارد self-zone خواهد کرد.نکته دیگر آن‌است که تمامی ترافیک های ورودی و خروجی از Self-zone ، بصورت پیشفرض Allowشده میباشند که البته شما میتوانید این Policy را ویرایش کنید.در آنطرف قضیه ، برای بقیه Zoneهای ایجاد شده توسط Administrator ، هیچ ترافیکی بین Interfaceهای Zoneهای گوناگون Allow نشده است. اما بصورت پیشفرض ، ترافیک بین Interfaceهای یک Zone یکسان همگی Allow شده‌اند. پس نکته‌ای که در اینجا به آن میرسیم اینست که اگر میخواهید ترافیک بین دو Zone گوناگون(مثل Inside و Outside که هرکدام دارای Interfaceهای مربوط به خودشان میباشند) Allow شود، میبایستی برای آن Policy ایجاد کنید و اینجاست که Zone-pair وارد بازی میشود!یک Zone-pair صرفا فقط یک Configuration بروی روتر میباشد که برای مشخص کردن مبدا ترافیک در یک Zone و مقصد آن در Zoneـی‌دیگر کاربرد دارد. فقط کافی است که Administrator پالیسی موردنظرش را ایجاد کرده و بروی Zone-pair ها اعمالش کند.یک کمپانی نسبتا کوچک که فقط دارای دو Network میباشد، ترجیحا دو Zone ایجاد میکند، یکی برای Inside و دیگری هم برای Outside(اینترنت)، سپس اینترفیس های مربوط Inside و Outside را به Zoneهایشان Assign میکند؛ در نهایت یک پالیسی میتواند ایجاد شود که مشخص میکند ترافیک کاربران داخلی‌ای که قصد اتصال به اینترنت را دارند میبایستی Inspect شوند و اطلاعات آنها در میبایستی در Stateful database قرار گیرد. پس میتوان گفت که در اینجا، یک Zone-pair مشخص میکند که ترافیکی قصد عبور از Inside به سمت Outside را دارد و میبایستی بروی آن پالیسی‌ای اعمال شود و درنهایت دیوایس متوجه میشود و پالیسی مربوطه را اعمال میکند.یک کمپانی بزرگتر که احتمالا دارای Public-Server هم میباشد، دارای 3 عدد Zone میباشد؛ به عنوان مثال Inside، Outside و DMZ. در مقایسه با کمپانی قبلی، در اینجا Zone-pair دیگری هم ساخته میشود(از طریف Outside به DMZ) و سپس پالیسی ای به آن zone-pair برای Allow کردن ترافیک کاربران اینترنت به DMZ (برای دسترسی به سرورها) اعمال میشود.هربار که ترافیک Inspect میشود ، بین Zoneها Allow میشود و اطلاعات مربوط به سشن‌ها در Stateful databaseـه Zone-based firewall ذخیره میگردند.این مورد اجازه بازگشت ترافیک را فراهم خواهد کرد ، حتی بدون نیاز به ایجاد Zone-pair و Policy در مسیر بازگشت.امیدوارم که مقاله برای شما مفید واقع شده باشه ...در ادامه مبحث Zone-Based Firewalls ، بزودی قسمت بعدی رو هم مینویسم ;)موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Wed, 18 Jul 2018 09:23:53 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت یازدهم) – طراحی قوانین</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%DB%8C%D8%A7%D8%B2%D8%AF%D9%87%D9%85-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%82%D9%88%D8%A7%D9%86%DB%8C%D9%86-udrdi9mwzab7</link>
                <description>با سلام و عرض خسته‌نباشید دوباره خدمت تمام دوستان عزیز! بعد از یک مدت طولانی که سرمون کَمی شلوغ بود، امروز با ادامه قسمت قبلی از این سری آموزشی در خدمتتون هستم، در ادامه بحث Firewall Access rule ها، امروز درمورد مبحث طراحی قوانین صحبت خواهیم کرد؛ بامن همراه باشید.ـ Firewall Rule Design Guidelines / دستورالعملهای طراحی قوانین فایروالبرای ایجاد قوانین(بدون توجه به نوع قانون) ، شما میبایستی یکسری دستورالعملهارا برای طراحی بهتر در نظر بگیرید ، در ادامه، با تعدادی از این Guideline ها آشنا خواهیم‌شد : از یک رویکرد محدودکننده (restrictive approach) برای تمامی Interfaceها و تمامی مسیرهای ترافیکی استفاده کنید ؛ با استفاده از این مورد ، شما میتوانید فقط ترافیکهای موردنظر خودرا Permit کنید و تمامی چیزهای دیگر Deny خواهدشد.گرچه قابل گفتن است که تنظیم دقیق و آماده‌سازی این مورد کمی زمان‌بر و سخت میباشد ، چراکه بسیاری از Network Administratorها بیشتر اوقات پروتکلهای گوناگون دیگری را در شبکه خود پیدا میکنند که برای عملکرد صحیح شبکه موردنیاز باشند و در زمان طراحی آنهارا درنظر نگرفته‌اند ؛ مانند Routing Protocolها ، پروتکلهای مدیریت شبکه و الی آخر.فرض کنید که سیستم‌های کاربران داخلی شما، همگی یک مشکل‌امنیتی باشند. اگر شما بدون توجه به موارد امنیتی به تمام Deviceهای داخلی خود اعتماد کنید و از طریق فایروال به آنها دسترسی به تمامی منابع را فراهم سازید ، میتوانید باعث مشکلات خطرناکی شوید؛ چراکه ممکن است یک Attacker دسترسی مستقیم و فیزیکی به یک PC در سازمان شما داشته‌باشد ویا ازطریقی بدون اطلاع کاربر، به سیستم‌اش دسترسی داشته باشد و از راه‌دور و از طریق آن سیستم برای شبکه شما مشکل ایجاد کند.در Permit کردن های خود ، تا جایی که امکان دارد Specific شوید و جزئیات را لحاظ کنید و از استفاده از موارد Any و All تاجایی که امکان دارد جلوگیری کنید.همیشه توازن بین عملکرد و امنیت را رعایت کنید؛ سازمان‌ها برای یکسری اهداف دارای شبکه میباشند و آن اهداف نیازهای بیزینسی آنها میباشد ، مثل داشتن سرورهای مالی گوناگون ، اشتراک منابع و ...؛ گاهی اوقات ممکن است که Permit کردن یکسری موارد از نظر امنیتی و از نظر شما مشکل داشته باشد ولی باتوجه به نیازهای سازمان ، آن‌مورد میبایستی انجام شود و دسترسیها فراهم باشد.در این‌موارد معمولا شخص دارای مرتبه‌شغلی بالاتر تصمیم‌گیرنده نهایی میباشد و درنهایت هرچه که آن شخص گفت میبایستی انجام شود.ترافیک‌های جعلی(bogus traffic) را در شبکه خود فیلتر کنید و از آنها Log تهیه کنید؛ بعضی از پکتها هیچوقت نباید اجازه عبور در شبکه شمارا داشته باشند. به عنوان مثال اگر شبکه شما 23.1.2.0/24 میباشد ،هیچوقت نباید پکتی از بیرون شبکه وارد شبکه شما بشود که ادعا میکند دارای آدرس‌مبدا 23.1.2.0/24 می‌باشد. یا اینکه باتوجه به RFC 1918 ، بسیار غیرعقلانی است که IP های Private از سمت Internet وارد شبکه شما شوند. این دو موردی که نام بردیم را میتوان گفت مثالی از Bogus traffic میباشند که باید در لبه‌شبکه(Network Edge) فیلتر شوند ؛ حتی اگر فکر میکنید که این فیلترینگ ها توسط Service Provider انجام میشود ، بازهم بسیار بهتر است که شماهم به این موارد توجه کنید و در روترهایتان این موارد را فیلتر کنید.در دوره‌های متناوب زمانی گوناگون Policy های پیاده‌سازی شده بروی فایروال‌را بررسی کنید که از صحیح بودن و درست عمل کردن آنها اطمینان حاصل کنید.Rule Implementation Consistencyبرای هر تغییری که داخل فایروال انجام میشود ، یک روش کنترل‌تغییر(Change Control procedure) میبایستی مشخص کند که دقیقا چه کاری قرار است انجام شود؟ چرا این کار باید انجام شود؟ وهمچنین دارنده‌ی تاییدی از طرف شخصی که نسبت به اجازه‌ ایجاد تغییر مسئول است، باشد.مستندات کنترل‌تغییر میبایستی دارای شرح تاثیر(Impact)ـه تغییری که بروی شبکه ایجاد میشود بعلاوه روش بازگشت به حالت قبل(Restore procedure) به همراه دوره و زمان‌مورد نیاز(برای بازگشت) باشد.متاسفانه ، روش مطمئنی که دارای ساختار دقیق،استوار و مرتبی برای پیاده‌سازی Rule ها در فایروال باشد، وجود ندارد ؛ و گاهی اوقات در نتیجه پیاده‌سازی پالیسی‌های ما ، بصورت ناخواسته نتایج منفی‌ای در شبکه ایجاد میشود. در ادامه تعدادی از این قوانین را مشاهده خواهیم کرد: قوانینی که بیش‌ازحد بی‌پروا میباشند(Rules that are too promiscuous): این نوع از قوانین ، معمولا دسترسی بیشتری نسبت به آن چیزی که واقعا نیاز است ارائه میکنند.به عنوان مثال میتوان گفت که اکثر اوقات ، یک Rule برای درست کار کردن یک Application در سطح شبکه ایجاد میشود و در زمان ایجاد، در کل Protocol Stack از کلیدواژه‌ی Any برای کل IP ها استفاده میشود؛ متاسفانه اگر به این صورت پیاده‌سازی را انجام بدهیم واجازه دهیم که از مرحله تست عبور کرده و از برنامه در سطح سازمان بصورت گسترده استفاده شود، بعدها اگر تصمیم به بازنگری داشته باشیم و بخواهیم بازهم این دسترسی‌را با Ruleـی Specific تر جابجا کنیم بطوری که در عملکرد برنامه هم مشکلی ایجاد نکنیم، کارمان بسیار سخت و زمان‌بر خواهدشد. در پالیسی های امنیتی ، Ruleهای بی‌پروا موارد قابل توجهی میباشند که میبایستی دقت کافی‌ای برای جلوگیری از پیش‌آمدنشان داشته‌باشیم. قوانین زائد(Redundant rules): میدانیم که لیست قوانین ACL ها از بالا به پایین Process میشوند ؛ اگر Ruleـی در خط اول ایجاد کردیم که اجازه‌ی جریان یافتن یک نوع ترافیک خاص را فراهم میکند ، Rule دومی برای آن نیاز نمیباشد. متاسفانه اگر ACL دارا صدها و هزاران خط قوانین باشند ویا از Object Groupهایی که برای Administrator قابل فهم نباشند استفاده کرده‌باشد ، Rule های اضافی و بی‌کاربردی که به آنها نیازی نخواهیم داشت ممکن است سهوا توسط Administrator به لیست اضافه شوند. قوانین زیر سایه(Shadowed rules): قوانین‌زیرسایه قوانینی هستند در در ترتیب اشتباهی در لیست قرار گرفته‌اند.به عنوان مثال ما میخواهیم ترافیک یک Source IP Address خاص به سمت یک Web Server خاص Deny گردد و Rule اش را به ACL اضافه میکنیم ؛ همانطور که میدانید قوانین جدیدی که به ACL اضافه میگردند به انتهای لیست میروند ، پس اگر در خطوط قبلی شما اجازه برقراری ارتباط Web-server از Any آیپی به هر آیپی مقصدی Permit کرده باشید، با توجه به خواندن ACL از بالا به پایین آن Ruleـی که اضافه کرده‌اید بی‌کاربرد خواهد بود و ترافیک موردنظر شما Allow خواهد شد. قوانین یَتیم(Orphaned rules): قوانینی میباشند که هیچوقت Matched نمیشوند و میتوان گفت که اکثر اوقات اشتباها به ACL اضافه میشوند و الکی فضا اشغال میکنند. قوانینی که بصورت اشتباه طراحی شده‌اند(Incorrectly planned rules): این قوانین معمولا بدلیل اشتباه انسانی در بحث تکنیکال و ارائه پروتکل،پورت ویا موارد دیگر بصورت اشتباه به Administrator میباشد. قوانینی که بصورت اشتباه پیاده‌سازی شده‌اند(Incorrectly implemented rules): این قوانین ، مواردی هستند که در پیاده‌سازی آنها توسط Administrator اشتباهی پیش‌میآید و مواردی مانند Port، Protocol ویا IP بصورت اشتباه Set میشوند.امیدوارم که این مقاله تا به اینجا برای شما مفید واقع شده باشد.موفق باشید</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Sun, 15 Jul 2018 19:28:29 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت دهم) – توسعه فایروال‌ها</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%87%D9%85-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D9%81%D8%A7%DB%8C%D8%B1%D9%88%D8%A7%D9%84%D9%87%D8%A7-d6rbxu6crgia</link>
                <description>باسلام و عرض خسته‌نباشد خدمت تمامی نتورک‌باز های عزیز :)؛ در ادامه قسمت قبلی از این سری آموزشی، امروز با مبحث طراحی ، ایجاد و توسعه فایروالها در خدمتتون هستم. میدانیم که براحتی ، فیچرها و Ruleهای بسیاری را میتوان بروی فایروالها پیاده‌سازی کرد و قدمی برای امن‌سازی شبکه برداشت ...، اما در اینجا میخواهیم درمورد Best Practice های پیاده‌سازی یک فایروال صحبت کنیم و استانداردهای طراحی را بررسی کنیم.تکنولوژی های فایروال:  میدانیم که هدف فایروالها، &quot;جداسازی دو یا چند موجودیت نسبت به یکدیگر وهمچنین بررسی دقیق و کنترل دسترسیهای این موجودیت ها به‌یکدیگر&quot; میباشد. امروزه اکثر فایروالهای تجاری میتوانند تمامی موارد پکت فیلترینگapplication layer inspection، stateful packet filtering، NAT، AAA و همچنین سرویس های virtual private network (یا همان VPN) را پیاده‌سازی و اجرا کنند. یک مثال خوب که میتوانیم درمورد فایروالها نسبت‌بهش اشاره داشته باشیم، فایروال سیسکو، Cisco Adaptive Security Appliance یا همان ASA میباشد که یک فایروال در یک دیوایس‌اختصاصی است (یعنی اینکه به عنوان یک ماژول به دیوایس دیگری اضافه نمیشود ویا اینکه بصورت نرم‌افزاری بروی سیستمی نصب نمیشود و خودش یک دستگاه جداگانه میباشد)(گرچه قابل ذکر است که انواع دیگری از این نوع فایروال مانند ASA Moduleهایی هم برای دیوایسهای رده‌بالای سیسکو وجود دارند).بسیاری از این فیچرها میتوانند بصورت نرم‌افزاری بروی IOSـه روتری که Memory ، CPU و لایسنس‌اش پاسخگو باشند، پیاده‌سازی شوند؛ یک فایروال اختصاصی موارد امنیتی بیشتری را برای اجرا در نظر گرفته میگیرد، بنابراین ترجیحا از Dedicated Firewallها ، بجای استفاده از یک تَک‌روتر استفاده میشود. قوانین مربوط به دفاع‌درعمق(defense-in-depth) به شما پیشنهاد میدهد که برای اضافه کردن Levelهای امنیتی بیشتر، بهتر است این فیچرهای امنیتی را بجای یک Device ، بروی دیوایسهای متعددی پیاده‌سازی کنید؛ پس دلیل اینکه این موارد بروی یک روترهم قابل پیاده‌سازی میباشند، فراهم کردن امکان defense-in-depth برای شما میباشد.  مواردی که میبایست در طراحی فایروالها در نظر گرفت(Firewall Design Considerations) در ادامه ، لیستی جزئی از Best Practice هایی که برای توسعه فایروالها در شبکه در نظر گرفته میشود،مطرح شده است: فایروالها میبایستی در بین خطوط امنیتی شما قرار داده شوند ، به عنوان مثال بین 2 شبکه مختلف که از نظر سازمان‌شما دارای سطوح اعتماد گوناگونی میباشند؛ مثل شبکه داخلی سازمان و شبکه اینترنت.در شبکه شما ، فایروال میبایستی یک دیوایس‌امنیتی اصلی باشد ، اما نباید تنها نقطه امنیتی شبکه ویا تنها دیوایس امنیتی شما باشد.استفاده از یک پالیسی &quot;Deny all&quot; برای تمامی ترافیک و سپس اجازه عبور یک ترافیک خاص در شبکه(از نظر شما خطرناک نمیباشد) بسیار بهتر از استفاده از یک پالیسی &quot;Permit all&quot; و بلاک کردن ارتباطهای خطرناک در شبکه میباشد(که در پستهای قبل درمورد این موضوع بصورت مفصل‌تر صحبت کردیم).از فیچرهای فایروال ، به بهترین نحو ممکن استفاده کنید. به عنوان مثال اگر در سازمان شما هزاران کاربر حضور دارند که نیاز به دسترسی به اینترنت دارند ، شما میتوانید Dynamic NAT/PAT را برای آن کاربران ، همراه با Stateful packet-filtering و deny تمامی ترافیک ورودی به شبکه از طرف اینترنت استفاده کنید. این موارد به کاربران خارج از شبکه اجازه نمیدهد که سشن‌ای به داخل شبکه شما برقرار کنند چراکه از deny all استفاده کرده‌اید ؛ همچنین به دلیل استفاده از NAT ، به کاربران داخلی شما اجازه ارتباط به اینترنت را میدهد و Stateful firewall شبکه شمارا نسبت به پکت‌های بازگشتی امن میسازد.مطمئن باشید که موارد امنیتی فیزیکی فایروال، از قبیل محل دیوایس ، محل عبور کابلهای فایروال و موارد زیرساختی دیگر امن باشند.یک پروسه و ساختار منظم برای بررسی متناوب Logهای فایروال داشته باشید. ابزارهای بسیاری وجود دارند که به شما اجازه بررسی SYSLOG ، پیامها ودیگر موارد ناهنجار دیگر را میدهند که ممکن است نیاز به بررسی بیشتر و عمیقتر داشته‌باشند.بروی تغییرات خود ، مدیریت داشته باشید. با استفاده از مواردی مانند AAA و تهیه مستندات کافی ، همیشه از تغییراتی که یک administrator بروی دیوایس انجام میدهد Record تهیه کنید تا در زمان نیاز بتوانید متوجه شوید که چه شخصی ، چه کاری انجام داده است و دلیل آنکار چه‌بوده است ؛ همچنین درنظر داشته باشید که این مستندات و موارد در سروری خارج از دسترسی دیگر administrator ها نگهداری شوند. این موارد میتوانند پیشگیری‌ای باشند برای امنیت شبکه‌شما نسبت به مدیران‌شبکه‌ای که به هردلیلی قصد تخریب دارند.Firewall Access Rulesهمانطور که قبلا مطرح شد، یک متد خوب و مناسب برای پیاده‌سازی Ruleهای فایروال، نوشتن Policyها بروی کاغذ میباشد. پالیسی‌های روی کاغذ مشخص میکنند که پیکربندی فایروال بایستی به چه صورت باشد ، نیازها، خطرات و راهکارها چیست. برای یک فایروال ، شما میتوانید انواع مختلفی از Access Rule هارا بنویسید که در ادامه به تعدادی از آنها اشاره شده‌است:  قوانینی برای کنترل‌سرویس(Rules based on Service Control) : این نوع Ruleها(قوانین) بر اساس نوع سرویسهایی که ممکن است ازطریق فایروال قابل دسترسی باشند نوشته میشوند(هم ورودی و هم خروجی) ؛ مثلا برای دسترسی به Web-server ها ، به HTTP و HTTPS اجازه عبور داده میشود و دیگر سرویسها بلاک میگردند. قوانینی برای کنترل‌آدرس(Rules based on Address Control) : این نوع Ruleها بر اساس مبدا ها و مقصدها نوشته میشوند. که عموما Deny و Permit شدن یکسری مبدا و مقصدها مشخص میشود و در فیچرهایی مانند ACLها پیاده‌سازی میگردند. قوانینی برای کنترل جهت(Rules based on Direction Control) : این Ruleها مشخص میکنند که کدامیک از انواع ترافیک، درکجاها اجازه جریان دارند. به عنوان مثال ، یک Rule ممکن است بگوید که این نوع ترافیک(مقلا HTTP) از سَمت داخل به سَمت بیرون(اینترنت) ، اجازه عبور دارد و Permit شده است.درنظر داشته باشید که Stateful packet-filtering در Stateful database اش میتواند بصورت داینامیک با یکسری پروتکلها و سرویسها ترکیب شود و به عنوان مثال مشخص کند که در ترافیک‌های بازگشتی به سمت کاربران ، فقط فلان نوع ترافیک(مثلا HTTP) اجازه عبور داشته باشد و هر ترافیکی هم نتواند بازگشت داده شود. قوانینی برای کنترل کاربر(Rules based on User Control) : این نوع Ruleها ، بر اساس شناخت از کاربر و تعریف کارهایی که میتواند انجام دهد نوشته میشوند. که بعدا در سرویسهایی مانند AAA پیاده‌سازی میگردند. قوانینی برای کنترل رفتار(Rules based on Behavior Control) : این Ruleها مشخص میکنند که مثلا از یک سرویس‌ درحال استفاده ، به چه صورتی میبایستی بهره گرفته‌شود و چه کنترلهایی باید برای آنها انجام شود. به عنوان مثال ممکن است بروی یک فایروال ، سرویسی برای Email-filtering جهت جلوگیری از Spam پیاده‌سازی شود.مرسی که تا اینجا همراه من بودیدموفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 15 Jun 2018 13:40:42 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت نهم) – فایروال (4)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D9%86%D9%87%D9%85-%D9%81%D8%A7%DB%8C%D8%B1%D9%88%D8%A7%D9%84-4-mzt6v5sqf4pn</link>
                <description>سلامی دوباره خدمت تمامی شبکه‌باز ها و نتورک‌باز های عزیز ! در این مقاله ، در ادامه قسمت قبلی از این سری آموزشی، به ادامه مبحث Firewall ها میپردازیم، ودر نهایت قصد داریم که سیستم NAT یا همان Network Address Translation را برای شما شرح دهیم. پس باما همراه باشید.آشنایی‌با Next-Generation Firewalls: فایروالهای نسل جدید Next-Generation Firewalls یا همان NGFW ، برای شما سرویس های threat-focused security (امنیت باتمرکز بروی تهدید) فراهم می‌آورد که به شما اجازه راهکارهای جامع‌تر امنیتی جهت جلوگیری از تهدیدات شناخته‌شده و پیشرفته را میدهد، مانند حفاظت در برابر یکسری Malware Attackهای مداوم و هدف‌گذاری شده. یک مثال از این نوع NGFW ها ، فایروال Cisco ASA with FirePOWER میباشد. که این فایروال ترکیبی از ASA Firewall کلاسیک با Sourcefire threat prevention و Advanced malware protection در یک Device میباشد.هدف NGFW ها حفظ امنیت بصورت جامع برای کاربران، موبایلها، اپلیکشن‌های Client-side، ماشین‌های مجازی و... میباشد.NATفیچر Network Address Translation یا همان NAT، یکی از فیچرهای مهمی میباشد که اغلب بروی فایروالهای پیاده‌سازی میشود. در این بخش میخواهیم نگاهی عمقی‌تر و کامل به NAT و Optionهایش بی‌اندازیم.همانطور که میبینید، NAT راهکاری برای مخفی‌سازی ویا تغییر حقیقت درمورد شبکه و آدرس‌مبدا شما میباشد.به تصویر بالا نگاه کنید، دو کاربر با رنج آیپی داخلی(رنج 10) بروی شبکه ای قرار دارند به با استفاده از اینترفیس G0/1 به روتر R1 متصل میشوند و ازآنطرف، روتر برای ارتباط با اینترنت، با استفاده از اینترفیس G2/0 به Service Provider متصل شده است؛ از دیدگاه امنیتی (و همچنین دیدگاه NAT)، اینترفیس G0/1 به شبکه داخلی(Inside) و قابل‌اطمینان(Trusted) متصل شده‌است و اینترفیس G2/0 به شبکه خارجی(Outside) و غیرقابل‌‌اطمینان(Untrusted) متصل شده‌است. حالا در اینجا، روتر به شخصه هیچ مشکلی برای ارتباط با اینترنت و IP Connectivity ندارد، چراکه دارای IPـه Reachable و قابل مسیریابی در اینترنت(رنج پابلیک) میباشد؛ اما متاسفانه کاربران ما به اندازه روتر ما خوش‌شانس نیستند و طبق قوانین Service Provider، بدلیل استفاده از IP Address رنج داخلی اجازه مسیریابی در اینترنت را ندارند.پس اگر کاربران ما قصد دسترسی به یک سرور در اینترنت را داشته باشند، پکتهایشان را به سمت Default Gateway(که در این مثال ما R1 میباشد) فوروارد میکنند؛ حالا اگر دراینجا روتر ما به درستی برای انجام NAT کانفیگ شده‌باشد، می‌آید و تمام IP Header های داخل پکتهارا تغییر میدهد و IP Address مبدا اصلی آنهارا با Valid IP خودش یا یک Valid IP از لیستی از IP های Reachable که خریداری کرده‌ایم و برای روتر تعریف کرده‌ایم ، عوض میکند.دستگاه و دیوایس اصلی‌ای که NAT را انجام میدهد، میتواند یک فایروال ویا یک روتر باشد. NAT نه‌تنها به‌ما اجازه میدهد که هزاران کاربر را پُشت یک عدد IP پنهان کنیم (با استفاده از PAT - در ادامه درمورد این‌موضوع بیشتر توضیح خواهم داد)، بلکه امنیت نسبی‌ای هم برای آن کاربران فراهم میکند، چراکه در خارج از شبکه هیچکس نمیداند که کدام دیوایس بصورت داینامیک به آن Valid IP Address الحاق(Assign) شده است، پس داشتن یک ارتباط مستقیم از Outside به یک inside Device کمی سخت‌تر میشود(تازه بگذارید بحث مربوط به ACL هارا کنار بگذاریم، که میتوانند از ارتباطه پکت‌هایی که از Outside به سمت دیوایس داخلی می‌آیند، جلوگیری کنند.)بسیار مهم است که متوجه باشم که NAT و PAT ، نباید به تنهایی به عنوان یک مکانیزم امنیتی درنظر گرفته‌شوند، بلکه ترکیب آن بایکسری چیزهای دیگر میتواند یک مکانیزم امنیتی را بسازد.آشنایی با Inside, Outside, Local, Global :  یکسری مفاهیم و لغات در NAT ، کمی گیج‌کننده و گمراه‌کننده میباشند، مواردی مثل inside،Outside،local و Global. قبل‌از آنکه بصورت جزئی هریک از این موارد را بررسی کنیم بگذارید برای بهتر متوجه شدن هر کدام ، کمی با Optionهایی که NAT در اختیار شما قرار میدهد آشنا شویم:- شما میتوانید IP Address کاربر شماره 1 را در زمان ارسال پکت‌هایش به سمت اینترنت ، ترجمه کنید: این مورد، مثالی از عملکردی است که عموما با نام Inside NAT شناخته میشود(ترجمه‌آدرس برای پکتهایی که از سمت یک کلاینت داخلی می‌آیند).- شما میتوانید Source IP Addressـه پکتهای یک دیوایس را که در خارج از شبکه شما قرار دارد ، هنگام ارسال به سمت شبکه داخلی‌اتان ترجمه کنید: این مورد، مثالی از عملکردی است که عموما با نام Outside NAT شناخته میشود.خب ، حالا اگر شما بخواهید هردوی Inside NAT و Outside NAT را باهم داشته باشید(برای کاربر شماره 1 در داخل و سرور شماره 1 در خارج)، روتر میبایستی تمامی اطلاعات ترجمه از قبیل Source IP Address(در هر دوطرف) و آدرس های ترجمه‌شده برای هردوطرف را Track و نگهداری کند؛ برای اینکار میبایستی موارد زیر، بروی روتری که میخواهد تمامی موارد مربوط به NAT را انجام دهید تعریف شوند:ـ  Inside Local : آدرس IP اصلی پیکربندی شده بروی یک Hostـه داخلی ، مانند کاربر شماره 1.ـ Inside Global : آدرس(یا آدرس‌هایی) تعریف‌شده‌ای برای روتر که میبایستی این آدرس را درهنگام تغییر آدرس‌مبدا در پکت ، بجای آدرس رنج داخلی قرار دهد(آدرس IP ای که بجای آدرس مبدا اصلی قرار میگیرد). دنیای بیرون(اینترنت) پکت کاربر شماره 1 را از این IP Addressـه تعریف شده، دریافت میکنند.ـ Outside Local : اگر میخواهد NAT را از سَمتِ خارج‌شبکه هم داشته باشید(Outside NAT) ، در اینجا آدرس(یا آدرس‌هایی) تعریف میکنید که Source IP Address بسته‌های درحال ورود از Outside به شبکه داخلی ، به این آدرس ها تغییر میکند(ترجمه آدرس از رنج پابلیک به رنج داخلی) و این IPها به عنوان مبدا برای Hostهای داخلی نمایش داده میشوند. اگر این مورد تعریف نشود ، برای دیوایس ها و Hostهای داخلی ، Source IP Addressـه نرمال و اصلی نمایش داده میشود.ـ Outside Global : آدرس IPـه پیکربندی شده بروی یک Hostـه خارج از شبکه ، مانند IPـه سرور شماره 1 در مثال زیر، آمده‌ایم و وضعیت NAT را بروی روتر R1 بررسی کرده‌ایم : مثال بالا خروجی 2 عدد Static NAT را نشان میدهد. یکی برای کاربر شماره 1 و یکی هم برای سرور شماره 1 . همانطور که میبینید سرور شماره A برای کاربران داخلی با آدرس 10.0.0.3 نمایش داده میشود و کاربر شماره 1 هم با آدرس 34.0.0.11 در اینترنت دیده میشود.Port Address Translation - PATفیچر Port Address Translation یا همان PAT، زیرمجموعه‌ای از NAT میباشد که همچنان کارش تغییر Source IP Address برای ترافیکی که از دیوایس دارای NAT/PAT میباشد، با این تفاوت که با استفاده از PAT ، هرکس آدرس Unique(یکتا) مربوط به خودش را دریافت نمیکند و بجایش از Port Number ودیگر unique identifiers ها برای اختصاص یک آدرس به چند Host استفاده میشود؛ یعنی بصورت اشتراکی N عدد Host میتوانند از یک IP آدرس استفاده کنند و این شماره پورت آنهاست که Unique میباشد.به این کار عموما NAT with overload هم گفته میشود. ما براحتی میتوانیم چندین Private IP Address رو پشت یک Global IP Address در دنیای اینترنت پنهان کنیم. PAT Device از تمامی رویدادها Track تهیه‌میکند، نظیر اینکه کدام کلاینتها با چه IP Addressـی ازچه Sessionـی استفاده کرده‌اند.مثال زیر روتر R1 را نشان میدهد که بروی آن PAT پیاده‌سازی شده‌است و خروجی NAT Table ، ارتباط کاربر شماره 1 و کاربر شماره 2 را که به سرور A (در خارج از شبکه)تلنت زده‌اند نمایش میدهد.همانطور که میبینید ، PAT یکسری Source Port برای استفاده PC ها فراهم کرده‌است. اگر بصورت اتفاقی PCها یک ارتباط مشابه به یک Server برقرار کنند ، روتر بصورت داینامیک به آنها Source Port Address متفاوت‌ازهم اختصاص میدهد.در انتها میتوان از انواع مختلفOptionهای NAT مانند:Static NATDynamic NATDynamic PATPolicy NAT/PATنام‌برد که میتوانند بروی دیوایسها پیکربندی شوند.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 01 Jun 2018 14:10:14 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت هشتم) – فایروال (3)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D9%87%D8%B4%D8%AA%D9%85-%D9%81%D8%A7%DB%8C%D8%B1%D9%88%D8%A7%D9%84-3-d9yiz7lc2bsy</link>
                <description>سلامی دوباره به همه نتورک‌باز های عزیز! در ادامه قسمت قبلی از این سری آموزشی، امروز با ادامه مباحث مربوط به فایروال‌ها در خدمت شما هستیم. فایروال‌های تحت شبکه قابلیت های کلیدی و بسیار مهمی برای برقراری امنیت فراهم میکنند؛ اما وظیفه اصلی یک فایروال تحت‌شبکه Deny ویا Permit کردن ترافیکی است که تلاش بر ورود ویا خروج از شبکه را دارد و این مورد با توجه به پالیسی ها و Ruleهای ازپیش کانفیگ‌شده بروی فایروال، انجام میگردد.فایروال ها عموما در قسمت‌های متفاوت شبکه توسعه داده میشوند تا بتوانند برای شبکه‌ سازمان ویا دیتاسنترها، امکان Network segmentation را فراهم آورند. فرآیندهایی که برای allow ویا block کردن ترافیک استفاده میگردد میتوانند شامل موارد زیر باشد: Simple packet-filtering techniques Proxy servers (also known as application layer gateway [ALG]) NATStateful Inspection FirewallsTransparent firewallsNext-generation context and application-aware firewallsبگذارید نگاهی نزدیکتر و دقیقتر به هریک از موارد بالا بی‌اندازیم...Static Packet Filteringاین فیچر براساس لایه 3 و 4 مدل OSI طراحی و پیاده‌سازی میگردد. اگر بخواهیم مثال کوتاهی درمورد Packet Filtering مطرح کنیم؛ میتواند روتری را نام برد که در شبکه شما قرار دارد و تعدادی ACL برویش پیکربندی شده است و قرار است که از ورود ویا خروج یکسری ترافیک خاص جلوگیری کند ویا به آنها اجازه عبور بدهد. یکی از چالش هایی که در Packet Filtering با آن سروکار دارید، اینست که مدیر ویا مهندس شبکه باید بداند که دقیقا چه ترافیک‌هایی نیاز به عبور دارند و این در شبکه های بزرگ با تعداد کاربر بالا و سرورهای زیاد بسیار پیچیده و مشکل‌برانگیز است.مزایا Packet Filtering:بسیار ساده‌ طراحی شده است و بر اساس دو قانون Permit(اجازه) و Deny(عدم اجازه) کار میکند.تاثیر بسیار ناچیزی بروی performanceـه شبکه شما دارد.براحتی و بسادگی قابل پیاده‌سازی است.بروی اکثر دیوایس‌ها قابل پیاده‌سازی است.میتواند فیلترینگ ساده و کار راه‌اندازی را برای شما پیاده‌سازی کند، بدون آنکه نیاز به استفاده از فایروالهای سطح بالا داشته باشید.معایب Packet Filtering:ناتوان در جلوگیری از IP Spoofing ؛ اگر به عنوان مثال ACLـی برای یک IP خاص پیاده‌سازی کرده باشید و شخصی آن IP را جعل کند، ACL قادر به تشخیص این مورد نمیباشد.ناتوان در جلوگیری از پکت های fragmented (قطعه قطعه) شده.(در مواردی این مورد امکان پذیر است، اما دقت تشخیص بسیار کمتر از حالت عادی میباشد)حفظ و برقرار نگه‌داشتن ACL های بزرگ و طولانی، بسیار سخت و در مواردی غیرممکن است !ـ Stateless میباشد (اطلاعاتی از session های ترافیک درحال عبور ذخیره نمیکند).(درمورد این موضوع در ادامه مقاله و در بخش Stateful بیشتر صحبت خواهیم کرد).بسیاری از اپلیکیشن ها میتوانند براحتی آنرا بدلیل استفاده از پورت‌های گوناگون دور بزنند ویا گاهی هم نیاز است که برای یکسری اپلیکیشن خاص که بصورت dynamic تغییر پورت میدهد، یک رنج خاصی را در ACL باز نگه داریم و این میتواند برای شبکه خطرناک باشد.در ادامه، بروی یک روتر Cisco میتوان از Extended ACL هم استفاده کرد که میتواند یکسری قوانین Matching لایه 3 و همچنین لایه 4ـی هم فراهم کند، مثل: Source IP addressDestination IP addressSource portDestination portProtocolTCP synchronization informationApplication Layer Gatewayفایروال های لایه Application که همچنین به آنها Proxy firewalls ویا Application Gateways هم گفته میشود میتوانند در لایه‌های بالاتر از 3 هم عملکرد داشته باشند؛ بسیاری از این Proxy سرور ها، بروی خود دارای یک اپلیکشن و سیستم خاصی میباشند که request را دریافت میکنند و کلاینت را درحالت انتظار قرار میدهند، سپس درخواست را از طرف خودشان به سمت مقصد نهایی ارسال میکنند... بعد از دریافت پاسخ از مقصد نهایی، به کلاینت پاسخ میدهند.یک Proxy firewall به عنوان یک واسط بین سرور و کلاینت نقش بازی میکند ؛ هیچ ارتباط مستقیمی بین کلاینت و سرور نهایی برقرار نمیشود. به دلیل اینکه یک Application Layer Gateway میتواند تا لایه 7ـه OSI عملکرد داشته باشد، این پتانسیل را دارد که توانایی بررسی و آنالیز دقیق ریزکاری ها و موارد پیچیده را در هر پکتی که دریافت میشود داشته باشد و هر Ruleـی که بخواهد را Match کند.مزایا Application Layer Gateways:قدرت کنترل و آنالیز دقیق ترافیک تا لایه 7سخت‌کردن پروسه انجام حمله به یک end-device، چراکه این Proxy Serverـه واسط است که تصمیم میگیرد چه پکتی را ارسال و دریافت کند و اجازه ارتباط مستقیم نمیدهد.میتواند loggingـه خیلی کامل و باجزئیاتی ارائه دهد.میتواند بروی سخت‌افزارهای که بصورت اشتراکی وظایف گوناگون دیگری هم دارند پیاده‌سازی شود(مثل یک سرور).معایب Application Layer Gateways:نیاز به منابع پردازشی بالاگاهی در بررسی یکسری پکت‌های خاص در لایه‌های بالا که مربوط به یکسری اپلیکیشن خاص میباشند ناتوان استممکن است برای یکسری از این نوع فایروالها، نیاز به نصب نرم‌افزار خاصی بروی کلاینت داشته باشیمStateful Packet Filteringامروزه یکی از مهمترین تکنولوژیهای مورد استفاده در فایروال‌ها، Stateful Packet Filtering میباشد؛ چرا به آن Stateful میگویند؟ چون وضعیت تمام Session های درحال عبور از فایروال را به‌خاطر میسپارد. بذارید برای بهتر متوجه‌شدن موضوع، یک مثال را باهم بررسی کنیم...  فرض کنید که امروز، من و شما به یک شهربازی میرویم؛ طی حضورمون در شهربازی ناگهان بخاطر میاوریم که چیزی‌را در ماشین جا گذاشته‌ایم و نیاز است که دوباره از شهربازی خارج شویم و آن‌چیز را از داخل ماشین برداریم و دوباره وارد شهربازی شویم. ممکن است متوجه این موضوع شویم که درصورت خروج از شهربازی، هنگام ورود میبایستی دوباره بلیت خریداری کنیم و هزینه مربوط به ورودی را بپردازیم... اما شخصی در قسمت نگهبانی به ما میگوید که بروی دست ما، یک مُهر که حاوی یک کد میباشد میزند و درزمان بازگشت به شهربازی، درصورت نشان دادن آن علامت و بررسی کد توسط آنها اجازه ورود رایگان به ما داده میشود چراکه نگهبانی لیستی از افرادی که بصورت موقت از شهربازی خارج‌شده اند تهیه میکند و درزمان بازگشت، بعداز بررسی‌های لازم و درصورت دُرُستی کد، به آنها اجازه ورود دوباره بدون نیاز به پرداخت دوباره را میدهد.زمانی که کاربران شبکه داخلی سازمان شما میخواهند با یک منبع‌خاص در خارج از شبکه داخلی شما ارتباط برقرار کنند، پکت‌هایشان از Firewall عبور میکند؛ با استفاده دیوایسی که از Stateful Packet Filtering استفاده میکند، هنگام خروج پکتها، فایروال اطلاعات مربوط به آن پکت را در یک پایگاه‌داده(Stateful Database) ذخیره میکند(مثل نوشتن نام افرادی که بصورت موقت میخواستند از شهربازی خارج شوند در مثال بالا).بصورت پیشفرض فایروال اجازه دسترسی و اتصال به شبکه داخلی را از طریق شبکه خارجی نمیدهد، مگراینکه آن ترافیک با یکی از اطلاعات داخل دیتابیس Match شود؛ یعنی فقط اجازه عبور به پکتهایی که از شبکه داخلی خارج شده‌اند داده میشود ولی دیگر Attacker ها اجازه عبور ترافیک خودرا ندارند(بدلیل اینکه اطلاعاتی از بسته‌هایشان در دیتابیس وجود ندارد).مزایا Stateful Packet-Filtering:میتواند به عنوان راهکار اصلی و Primary شما، جهت جلوگیری از ورود ترافیک ناخواسته به شبکه استفاده شود.میتواند به‌راحتی بروی انواع Router ها و Firewall ها پیاده‌سازی گردد.در مقایسه با Static Packet-filtering، ذاتا بصورت Dynamic عمل میکند.سد دفاعی مناسیی در برابر حملات DoS و Spoofing برای شما فراهم می‌آورد.معایب Stateful Packet-Filtering:ممکن است نتواند حملات لایه Application را شناسایی و از آنها جلوگیری کند.تمام پروتکل‌ها نمیتوانند به خوبی کنترل شوند چراکه بعضا دارای state information دقیقی نمیباشند؛ مانند User Datagram Protocol یا همان UDP و Internet Control Message Protocol یا همان ICMP.بعضی اپلیکیشنها ممکن است بصورت داینامیک Port جدیدی را از طرف Server باز کنند و باتوجه با اینکه فایروال اطلاعاتی از آن پورت و ارتباط خاص در دیتابیس خود ندارد، اجازه اتصال و بازگشت ترافیک را فراهم نمیکند و کاربر نمیتواند ارتباط موردنظر خودرا برقرار کند.البته اگر Firewall از فیچر application layer inspection پشتیبانی کند، میتواند این مشکل را حل کند و اجازه برقراری ارتباط را صادر کند.تکنولوژی Stateful به خودی‌خود از User authentication پشتیبانی نمیکند ؛ گرچه میتواند بروی فایروالی که از Stateful packet filtering استفاده میکند، User authentication راهم به عنوان یک فیچر additional در کنارش پیاده‌سازی کرد.Application Inspectionیک Application Inspection firewall میتواند تمامی پروتکلهارا تا لایه 7 مدل OSI، بررسی و آنالیز کند؛ اما مانند یک Proxy Server در بین کلاینت و سرور عمل نخواهد کرد.مزایا Application Inspection:میتواند بصورت عمیقتر Conversation هارا بررسی کند و متوجه ایجاد Channel های داینامیک جدید که قرار است از طرف سرور ایجاد شوند، بشود.از جزئیات و Detail های درحال انجام در لایه Application مطلع است.به تنهایی میتواند از انواع حملات بیشتری نسبت به Stateful filtering ها جلوگیری کند.Transparent Firewallsدر Transparent Firewalls، تمامی تکنولوژی هایی که در قبل معرفی کردیم نظیر Stateful filtering، application inspection و... وجود دارند، اما تفاوت بزرگ این‌است که تمامی آنها در لایه 2 پیاده‌میشوند.  اکثر traditional firewall در لایه 3 عمل میکنند(مانند یک روتر)، به دلیل اینکه پیامهای عبوری از این دیوایس همگی لایه 3 ای میباشند. در یک فایروال لایه 3 هر اینترفیس دارای یک IP Address از یک شبکه جداگانه است و ترافیکی که از شبکه X به سمت شبکه Y میروند میبایستی از فایروال عبور کنند و قوانین و Rule های آنرا Pass کنند.با Transparent Firewallها ما همچنان دارای 2 اینترفیس هستیم اما نمیتوانیم به آنها IP Addressـی  Assign کنیم، این اینترفیس ها بیشتر به عنوان یک Bridge عمل خواهند کرد(یا یک سوئیچ که دارای 2 پورت در یک VLAN میباشد)؛ اگر ترافیک و Frame های یک Segment بخواهند به Segment دیگر برسند، میبایستی از این فایروال عبور کنند.در قسمت بعدی، درمورد فایروالهای نسل جدید و NAT صحبت خواهیم کرد...باما همراه باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 07 May 2018 14:02:13 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت هفتم) – فایروال (2)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D9%87%D9%81%D8%AA%D9%85-%D9%81%D8%A7%DB%8C%D8%B1%D9%88%D8%A7%D9%84-2-bvzryrgxzqym</link>
                <description>با سلامی دوباره خدمت تمامی نتورک‌باز های عزیز؛ در ادامه پست قبلی از این سری آموزشی، امروز با ادامه‌ی مباحث مربوط به Firewall ها در خدمتتون هستیم.بسیاری بر این باور هستند که فقط با خریداری و وارد مدار کردن یک Firewall، تمامی مشکلات امنیتیشان از حل میشود؛ خیر ، از این خبرا نیست! امروزه میبایستی متوجه باشیم که داشتن یک فایروال و پیاده‌سازی صحیح Policy های سازمان، فقط قدم هایی جهت کاهش‌ریسک میباشند، ولی هیچگاه نمیتوانند کاملا ریسک را از بین ببرند.پس باید دانست که Firewall ها هم دارای یکسری محدودیت‌ها میباشند، که در ادامه با آنها آشنا خواهیم شد. اشتباهات در پیکربندی یک Firewall ، عواقب جدی و خطرناکی در پی دارد: کار اصلی یک Firewall چیست؟ پیاده سازی و اجرای یک پالیسی. بر اساس انواع فایروالهای موجود، راه های بسیاری برای پیاده‌سازی Feature هایی نظیر ACL, Packet Inspection, NAT, Authentication, و ... وجود دارد. اگر Rule ها و قوانین اجرایی Firewall به درستی پیاده‌سازی نشوند ، ممکن است کاری که از Firewall انتظار داشتید به درستی انجام نشود. برای این مورد به تجربه و دانش‌فنی زیادی نیاز است تا پالیسیهای شما به درستی پیاده سازی شوند. تمامی اپلیکیشن های تحت شبکه ، بصورتی نوشته نشده‌اند که بتوانند براحتی از فایروال عبور کنند: ممکن است در شبکه‌ی شما از یکسری اپلیکیشن‌ها و نرم افزارهای سفارشی استفاده شود که بصورت استاندارد بر اساس Rule های Firewall شما نوشته نشده باشند ؛ در اینجور مواقع میبایستی یا برنامه را بر اساس سیاستهای Firewall دوباره بنویسید ویا اینکه در فایروال ، یک exception(استثنا) قائل شوید و اجازه عبور ترافیک آن برنامه را بدهید. افرادی که به اجبار ترافیکشان از Firewall عبور میکند ، ممکن است سعی کنند تا قوانین فایروال را دور بزنند: اگر یک قانونی توسط فایروال شما درحال اجرا باشد، به عنوان مثال شما اجازه و دسترسی‌ای برای عبور داده های مربوط به هرگونه نرم‌افزارهای پیام‌رسان را در شبکه خود نمیدهید؛ ممکن است که کاربر شما با کمی خلاقیت بتواند این قانون را دور بزند. مثلا بیاید و روش استفاده از آن سیستم پیام‌رسان خودرا در قالب یک پروتکل دیگر مانند بستر Http ویا Https مخفی کند و چون این پروتکل ها به در شبکه اجازه عبور دارند، براحتی به کاربر اجازه‌ دور زدن محدودیت شما را میدهند؛ به اینکار tunneling میگویند و میتواند توسط پروتکلهای مختلفی انجام شود. در یکسری Firewall ها که دارای application layer inspection میباشند ، میتوان از اینگونه Tunnelingهای مخرب جلوگیری کرد. ـ Latency و تاخیری که توسط فایروال اضافه میشود: اگر یک فایروال در شبکه شما ، وظیفه ی آنالیز میزان ترافیک زیاد و بسیار سنگینی را بر عهده داشته باشد ، ممکن است چند میلی‌ثانیه باعث تاخیر در زمان تحویل ترافیک شود و در نتیجه در شبکه شما Delay ایجاد میشود.رویکرد Defense-in-Depth (دفاع در عمق):همانطور که قبلا به این موضوع اشاره ای کرده بودیم، داشتن فقط یک نقطه برای برقراری کنترل و امنیت کل شبکه، کار زیاد هوشمندانه و درستی نیست؛ اگر همان یک نقطه به بصورت ناقص و اشتباه پیکربندی شده باشد ویا به هر دلیلی در پیاده‌سازی پالیسی موردنظر شما شکست بخورد و Fail شود، کل شبکه بصورت کامل در معرض تمام خطرها و تاثیرات منفی ای که سعی داشتید با  Firewall از آنها جلوگیری کنید، قرار میگیرد. یک راهکار که میتوانید برای جلوگیری از این موارد بکار ببرید استفاده از رویکرد دفاع در عمق (defense-in-depth approach) ویا همان رویکرد لایه ای(layered approach) است.بگذارید برای بهتر متوجه شدن موضوع ، یک مثال از defense-in-depth approach را در یک کمپانی سطح متوسط که دارای یک وب‌سرور(که بصورت عمومی توسط اینترنت قابل دسترس است) مورد بررسی قرار دهیم.  ما ، به عنوان یک کاربر نهایی(End-user) مرورگر خودرا باز میکنم و نام سرور را تایپ میکنیم. در آنطرف مرورگر ما بدون آنکه ما متوجه مورد خاصی شویم یک درخواست DNS برای پیدا کردن IP سرور موردنظر ارسال میکند و به محض اینکه IP موردنیاز خودرا بدست آورد ، یک سِشِن(Session)ـه TCP با سرور ایجاد خواهد کرد.همانطور که پکتهای ما از طریق اینترنت به سمت آن کمپانی میروند، روتر مرزی آنها ، خط اول دفاعی میباشد. روتر میتواند منبع و IP Addressـه فرستنده را بررسی کند و مطمئن شود که آن IP ، یک آدرسه جعلی و Spoof شده نمیباشد. همچنین ممکن است که کمپانی در روتر مرزی خود دارای یکسری ACL ها باشد که بلافاصله ترافیک‌های مخربه معروف و شاخته‌شده را در همان لبه‌ی شبکه Drop کند.با توجه به اینکه پکت‌ما مخرب نیست(یا اینکه حداقل توسط روتر مخرب شناخته نشده است)، به داخل شبکه و به سمت Firewall آنها که خط دوم دفاعی کمپانی میباشد ، Forward میگردد.حالا در اینجا، فایروال میتواند قبل از آنکه پکت را به سمت سرور مربوطه Forward کند، هرکاری که مدنظرش است برای بررسی و Verification انجام دهد. فایروال میتواند وانمود کند که سرور مدنظر ما میباشد و پاسخی در برابر پکت ما ارسال و روال three-way handshake را طی کند و اطمینان حاصل کند که شخص درخواست دهنده درحال اجرای حمله SYN Flood نمیباشد. فایروال میتواند قبل اینکه هرگونه Forwardـی انجام دهد، مارا مجبور به احرازهویت و اجرای ده‌ها Rule دیگر که بروی فایروال پیاده‌سازی شده اند، بکند؛ با توجه به اینکه ما از نظر تمامی Rule ها مشکلی نداشتیم، پکت ما به سمت سرور ارسال میگردد.ارتباط بین Firewall و سرور آنها ، به احتمال زیاد توسط یک سوئیچ در شبکه‌داخلی کمپانی برقرار میگردد. آن سوئیچ در ادامه میتواند یکسری Filtering ها بر رویش پیاده‌سازی گردد و از یکسری موارد خطرناک به عنوان لایه دیگری از امنیت جلوگیری کند. در نهایت هم وقتی بسته ها به سرور میرسند، ممکن از قبل از هرکاری توسط فایروال و سیستم امنیتی نرم‌افزاری آن سرور هم مورد بررسی قرار گیرند.پس همانگونه که از مثال ما مشخص است، بسیار مهم است که متوجه شویم و درک کنیم که چرا و چگونه باید از دفاع در عمق ویا همان امنیت در چند لایه استفاده کنیم؛ بصورت خلاصه میتوان گفت که یک نقطه و یک دیوایس در شبکه نمیتواند از تمام شبکه شما محافظت کند و برای ایجاد امنیت نیاز است که تمام دیوایس های شما مانند یک تیم ، برای محافظت از شبکه ی شما تلاش نمایند.دلیل دیگری که برای استفاده از دفاع در عمق وجود دارد این است که، تمامی حملات از بیرون شبکه انجام نمیشوند و بسیاری از آنها از طریق دیوایس های داخلی هم میتوانند پیاده‌سازی و انجام گردند.هدف از استفاده از فایروالها ، کاهش ریسک میباشد و فقط یک نقطه و بخشی از فرایندها و استراتژی هایی میباشد که میبایستی برای سرپا نگه‌داشتن شبکه و همیشه دردسترس بودن داده ها انجام شود. فایروال ها جایگزین نیازهای دیگر شما که برای تداوم کمپانی باید توسط سیستمهای دیگری پیاده‌سازی شوند(مانند راهکارهای بک‌آپ) نمیشود.در قسمت آینده درمورد Firewall Methodologies صحبت خواهیم کرد، با من همراه باشید...</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Sun, 22 Apr 2018 17:57:35 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت ششم) – فایروال</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%B4%D9%85-%D9%81%D8%A7%DB%8C%D8%B1%D9%88%D8%A7%D9%84-y9m5k1z51jqi</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمام نتورک‌باز های عزیز ! در این مقاله میخواهیم وارد مباحث مربوط به فایروال ها بشویم، ببینیم که یک فایروال یا همان دیوارآتش چیست و چه کاربردها و وظایفی دارد؟ چه انواعی دارد؟ از چه راهکارها و تکنولوژی هایی استفاده میکند و اینکه چگونه یک فایروال مناسب را برای شبکه خود انتخاب و بدرستی از آن استفاده کنیم؟ و ده‌ها موارد دیگر.لغت فایروال(Firewall)  عموما به سیستم‌ها ویا دیوایس‌هایی نسبت داده‌میشود که در بین 2 شبکه قابل‌اطمینان (Trusted) و غیرقابل‌اطمینان (Untrusted) قرار گرفته اند. داشتن دانش و درک مفهومی فایروال‌ها و تکنولوژی‌های مربوط به آنها برای یک متخصص امنیت شبکه، بسیار مهم میباشد! این دانش به شما کمک میکند که امنیت شبکه‌ی خودرا  به درستی و بهترین نحو ممکن، برقرار کنید.مفاهیم و تکنولوژی‌هااین مفاهیمی که میخواهیم درموردشان صحبت کنید، بروی IOS های روترها، جهت ارائه سرویس‌های مُکمل امنیتی و فایروالهای اختصاصی(که صرفا دیوایس هایی هستند که فقط برای ارائه ی تکنولوژی‌های امنیتی ساخته‌شده اند)، اعمال شده اند. در این بخش میخواهیم به مفاهیم مربوط به فایروال ها، توانایی‌ها و ضعف‌های آنها بپردازیم و ببینیم که چرا از فایروال ها در یکسری موقعیتهای خاص استفاده میشود. این موارد تقریبا برای تمامی شبکه هایی که امنیت برایشان یکی از نگرانیهایشان است، مورد استفاده قرار میگیرند.تکنولوژیهای فایروال ها:فایروال مفهومی است که توسط یک دیوایس ، یک گروه از دیوایس ها ویا یک نرم‌افزار درحال اجرا بر روی یک دیوایس مانند یک Host ویا یک Server ، قابل پیاده‌سازی میباشد.  وظیفه ی اصلی یک فایروال ، Deny کردنه ترافیک ناخواسته از جریان درحال عبور میباشد و در یک شبکه این بدین معنی است که درحالته بسیار Basic ، اینکار توسط موارد ذیل قابل پیاده‌سازی میباشد:یک روتر یا هر دیوایس لایه 3 ای که دارای Access list ویا دیگر متدهایی است که برای فیلتر ترافیکه درحال عبور استفاده میگردد.یک سوئیچ که دارای دو VLAN میباشد و هیچ مسیریابی ای بین آنها انجام نمیگردد.(ترافیک ها کاملا از یکدیگر تفکیک میگردند - با استفاده از جدا کردنه شبکه ها !)سیستم Host ویا سروری که از ورود یکسری ترافیک خاص جلوگیری میکند وهمچنین بروی ترافیک هایی که میتوانند ارسال شوند کنترل دارد.(یک مثال ساده از فایروال های نرم‌افزاری)در ادامه، تعدادی از خواصی که عموما یک فایروال خوبِ درحالِ کار در شبکه دارا است، ذکر شده است :  میبایستی بتواند در برابر حملات ، مقاوم باشد: اگر یک فایروال در شبکه شما ، به هر طریقی قابل خنثی کردن باشد و یک حمله بتواند آنرا از دور خارج کند ، در نتیجه نتواسته است که پالیسی موردنظر شمارا بدرستی اجرا کند و شکست خورده است. اگر فایروال مورد حمله ی DOS قرار بگیرد، تا حدی که به نقطه ای برسد که نتواند دسترسی عادی راهم برای کاربران عادی شبکه فراهم کند، بازهم این مورد یک مشکل است و فایروال بازهم شکست خورده است. همچنین نبایستی دارای آسیب‌پذیری ای باشد که به یک Attacker به هر نحوی اجازه ی Modify کردن پیکربندی‌هارا بدهد ، چراکه این مورد هم یک شکست محسوب میشود! ترافیکه بین شبکه ها ، باید از طریق فایروال عبور پیدا کنند: اگر بین 2 شبکه‌ی A و شبکه‌ی B ، چندین مسیر وجود داشته باشد و تعدادی از آن مسیر ها، تمامی ترافیک و کانکشنهایشان توسط فایروال کنترل میشوند و تعدادی مسیر دیگر وجود دارد که از فایروال عبور پیدا نمیکنند ، این مورد به ترافیک مخرب اجازه میدهد که بتواند از مسیری گذر کند که درآن فایروالی وجود نداشته باشد.پس ، اگر چندین مسیر وجود دارد ، بروی هریک ازآن مسیرها باید از یک Firewall Policy یکسان استفاده گردد و همچنین تمام پالیسی ها توسط یک methodology(روش تشخیص) یکسان ، اجرا شوند. (یعنی اینکه اگر از یک فایروال برای تمام مسیرها استفاده میشود ، که هیچ :-D ولی اگر از 2 فایروال گوناگون استفاده میشود، از یک روش تشخیصه یکسان ، برای تشخیص ترافیک مخرب استفاده کنند). فایروال ، پالیسی های شرکت را اجرا خواهد کرد: متاسفانه در بسیاری از سازمان ها، بدون برنامه ریزی خاصی ، سریعا تصمیم به خریداری یک فایروال گرفته میشود و سپس آنرا در شبکه قرار میدهد ، سپس برای آن فایروال Rule ها و... مشخص میشود و روی فایروال apply میگردند. درصورتی که راهکار درست این است که شما در ابتدا بروی کاغذ ، بدانید که چه نیازهایی دارید ، چه چیزها و سرویس هایی را لازم دارم و کارهایی که فایروال شما باید انجام بدهد چیست ؟ چه ترافیکهایی باید عبور کنند و چه ترافیکهایی باید مسدود گردند و ده‌ها موارد دیگر ... سپس بر اساس این موارد ، فایروالی تهیه کنید که توانایی آنرا داشته باشد که تمام نیازهای شمارا برطرف کند.استفاده از فایروال در شبکه ، چه توجیه هایی دارد ؟ (Firewall Justifications) - (به این صورت هم میتوان این عنوان را مطرح کرد: فواید استفاده از فایروال ها چیست ؟)متاسفانه در ایران سازمان‌ها آنطور که باید به امنیت اهمیت زیادی نمیدهند و همیشه زمانی به فکر برقراری امنیت می‌افتند که ضربه ی قابل توجهی از آسیب‌پذیری‌هایشان به آنها وارد شود مانند ضررهای مالی،دزدی اطلاعات،از بین رفتن داده‌های مهم و...  در ادامه ، تعدادی از توجیه هایی که میتوان برای استفاده از فایروال ها مطرح کرد ، ذکر شده اند: در معرض خطر قرار گرفتن سیستم‌های حساس توسط افراد غیرقابل اعتماد (Exposure of sensitive systems to untrusted individuals): فایروال با مخفی کردن بسیاری از عملکردهای یک هاست ویا یک دیوایس در شبکه و اجازه ی برقراری حداقل connectivity (فقط اجازه ی برقراری ارتباط برای کانکشن های مشخص شدن و لازم) به آن سیستم، میزان درخطر قرار گرفتن آن سیستم را کاهش میدهد. به عنوان مثال ، فقط اجازه ی عبور ترافیک مربوط به Web ، به سمت یک Web-server در بخش DMZ شما داده میشود(یعنی اگر حتی سرویسهای دیگری هم بروی آن سرور قرار داشته باشند، آن سرویس ها برای کاربرانی که ترافیکشان از فایروال عبور خواهد کرد در دسترس نخواهد بود). سوء استفاده از باگ‌های پروتکل‌ها (Exploitation of protocol flaws): شما میتوانید فایروال خودرا بصورتی کانفیگ کنید تا پروتکل هارا بازرسی (Inspect) کند و از تطبیق آن پروتکل‌ها با استانداردهای رسمی اطمینان حاصل شود.همچنین فایروال میتواند میزان زمان مشخصی را برای اجازه ی ارتباط در یک کانکشن فراهم کند و بروی آن کنترل داشته باشد و درصورت عبور از میزان زمان مشخص شده اجازه ی ارتباط را ندهد.(به عنوان مثال زمانی که طی میشود تا یک DNS Request ارسال شود و یک DNS Reply دریافت شود را 0.5ثانیه مشخص میکنیم). کاربران غیرمجاز (Unauthorized users): با استفاده از متدهای احراز هویت ، فایروال میتواند بروی اجازه ی عبور ترافیک کاربران کنترل داشته باشد و به آنها اجازه ی دسترسی بدهد ویا جلوی آنهارا بگیرد.همچنین میتواند سیستم هایی مانند AAA را در شبکه اجرا کند تا دسترسی به تجهیزات شبکه راهم مدیریت کند. داده‌های مخرب (Malicious data): یک فایروال میتواند یک داده ی مخرب درحال عبور را تشخیص دهد و جلوی آنرا از رسیدن به مقصد بگیرد.این عملکرد همچنین با استفاده از IPS های قابل پیاده‌سازی است.با تشکر از وقتتون / موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Sat, 07 Apr 2018 18:34:27 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت پنجم) – دستورالعمل ها</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D9%BE%D9%86%D8%AC%D9%85-%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D9%84%D8%B9%D9%85%D9%84-%D9%87%D8%A7-lwmiudadtcak</link>
                <description>با سلام و عرض خسته نباشید خدمت تمام نتورک‌باز های عزیز! ضمن عرض تبریک به مناسب عید نوروز، در ادامه قسمت قبلی از این سری آموزشی، در این پست میخواهیم درمورد دستورالعمل ها صحبت کنیم.شما در مراحل اولیه ی طراحی شبکه و پیاده سازی آن، به یکسری اصول برای طراحی و یکسری دستورالعمل نیاز دارید؛در این پست کوتاه، به تعدادی از دستورالعمل های کلیدی که میبایستی با آنها آشنا باشید، اشاره میکنیم. قانون کمترین دسترسی(Rule of least privilege): این قانون به این صورت شرح داده میشود که شما فقط دسترسی های لازم را به منابع شبکه فراهم کنید و سپس تمام موارد ممکن برای دسترسی های دیگر را مسدود میکنید،یعنی به این صورت که در شبکه تمام ارتباطات Block شوند و فقط به ارتباط مورد نیاز دسترسی داده شود ؛برای بهتر متوجه شدن موضوع ، به عنوان مثال، وقتی که یک Access List بروی Device خود تعریف میکنید ، در شروط آن ذکر میشود که فقط به بسته های با مقصد x و پروتکل y اجازه ی عبور داده شود و سپس تمامی موارد دیگر را Deny و مسدود کن(منظور همان دستور Deny all میباشد). مسلما این روش بسیار بهتر از این است که شما در ACL خود ، تمامی ارتباطات رو Permit all کنید و مواردی که نیاز است مسدود شوند را Block و Deny کنید ، چراکه ممکن است ده‌ها راهه گریز دیگری وجود داشته باشد که حواستان به آنها نبوده است که مسدودشان کنید. دفاع در عمق ویا دفاع عمقی(defense in depth): این مفهوم به شما پیشنهاد میدهد که دیدگاه‌ها و پیاده‌سازی موارد امنیتی خودرا بروی تمامی تجهیزات و نقاط شبکه ی خود پیاده سازی کنید و فقط به یک دستگاه(عموما فایروال) اکتفا نکنید. به عنوان مثال در یک ارتباطه بین کلاینت و سرور، علاوه بر اینکه بروی روتر Filtering انجام میدهید، در ادامه اینکار را بروی Firewall هم انجام دهید، از IPS برای آنالیز ترافیک ارسالی به سمت سرور ها استفاده کنید، و اقدامات احتیاطی و موارد امنیتی مربوط به خود سرورها راهم بروی سرورها پیاده سازی کنید و درکنار اینها از سیستم های امنیتی دیگر مانند راهکارهای e-mail Security ، content security ، malware protection ، مانیتورینگ ، سیستم های اکانتینگ/تایید دسترسی و... هم استفاده کنید. مفهوم کلی ای که این defense in depth بروی آن بنا شده است این است که درصورتی که یک تکنولوژی امنیتی در یکجای شبکه شما از بین رفت و شکست خورد، سطح ها و مکانیزمهای امنیتی دیگری نیز از شبکه،داده ها و دیوایسهای شما محافظت خواهند کرد. تقسیم وظایف(Separation of duties): وقتی شما اشخاص خاصی را برای یکسری وظایف خاص مشخص و انتخاب میکنید ، دیدگاهها و قوانین امنیتی پیاده سازی شما همیشه بدرستی و بدقت مورد بررسی و تحقیق قرار میگیرد.چراکه هرشخص وظیفه ی مشخص شده ای دارد و سعی میکند که برای وظایفی که برای اون مشخص شده است بهترین عملکرد و بازخورد را داشته باشید، مسلما این راهکار بسیار بهتر از این است که فقط یکنفر تمامی وظایف مربوط به موارد امنیتی(پیاده‌سازی،بررسی،توسعه و...) را بر عهده داشته باشد؛ همچنین وظایف اشخاص هر چندوقت یکبار میبایستی بایکدیگر تعویض گردد، چراکه وقتی به یک شخص وظایف جدیدی داده میشود او میبایستی تمامی موارد پیاده‌سازی شده از قبل را دوباره بررسی و چک کند تا متوجه شود که چگونه باید عمل کند و چه چیزی در راهکارهای پیاده‌سازی شده ی قبلی کم است! با این کار همیشه راهکارها و پالیسی هایتان توسط نیروهای گوناگونه شما بررسی و رفع اشکال میگردد و بالاخره به نقطه ای میرسد که هربخش ، به بهترین نحو ممکن عمل خواهد کرد! حسابرسی(Auditing): این مورد به شما پیشنهاد میدهد که از هرگونه تغییری که در شبکه ی شما رخ میدهد ، log و record داشته باشید؛این کار براحتی میتواند توسط سیستم AAA در سیسکو پیاده سازی شود تا هرزمان ، هررویدادی در شبکه اتفاق بیافتد جزئیات آن در یک سرور نگهداری شوند.ممنون از وقتتون؛ موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 23 Mar 2018 17:09:24 +0430</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت چهارم) – شناسایی تهدیدات (2)</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%28%D9%82%D8%B3%D9%85%D8%AA-%DA%86%D9%87%D8%A7%D8%B1%D9%85%29-%E2%80%93-%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%D8%AA%D9%87%D8%AF%DB%8C%D8%AF%D8%A7%D8%AA-%282%29-x4dfg0yjwlef</link>
                <description>با سلام و عرض خسته نباشید دوباره ، خدمت تمام نتورک‌باز های عزیز ! بدون مقدمه میپردازیم به ادامه مبحث پست قبلی، یعنی شناسایی تهدیدات. بامن همراه باشید...ـ Attack Vectors:  این روزها میبایستی مطلع باشیم که حملات فقط از طریق یکسری اشخاص خاص در خارج از کمپانی شما اجرا و انجام نمیشوند و حتی خود کاربران و دستگاههای داخل کمپانی(که دارای دسترسی های مجاز و قانونی میباشند) هم میتوانند مجری حملات باشند.یکی نگرانی هایی که امروزه کمپانی‌ها و ارگان‌ها با آن سروکار دارند، مواردی میباشند که به کارمندهای خود ، اجازه همراه آوردن دستگاه دیجیتال شخصی (مانند لپتاپ ، تبلت ، تلفن‌هوشمند و...) را میدهند و بدون هیچ سخت‌گیری ای به آنها اجازه دسترسی به شبکه اصلی را میدهند که در نتیجه ،برای آنها دسترسی به دیوایس‌ها، اپلیکیشن‌ها و داده‌ها میسر میشود. راهکارهایی جهت امن سازی شبکه از خطرات احتمالی در اینگونه موقعیت ها وجود دارد که انشاالله در آینده درمورد مبحثی با نام BYOD یا همان Bring your own device صحبت خواهیم کرد و این موضوع را مورد بررسی قرار میدهیم.ممکن از کارمند شما کمی کنجکاو باشد ویا حتی بدون اطلاعش، Backdoorـی بروی سیستم اش نصب شده باشد، به هرحال ضرری ندارد که یکسری Security Policy های ساده ای را جهت کاهش‌ریسک، پیاده‌سازی کنید.شما میتوانید براحتی Security Policy های گوناگونی را برای شبکه ی خود پیاده سازی کنید، مانند راهکارهای authenticationـه کاربران قبل از آنکه اجازه ی دسترسی کامپیوتر آنها به شبکه شما داده شود(که این مورد توسط ویژگی 802.1x امکان پذیر میباشد).به این معنی که کامپیوتر کاربر شما، میبایستی یکسری روال Profiling را طی کند و سپس درصورت تایید ، اجازه ی دسترسی او به شبکه داده شود.شما میتوانید از سیستم های NAC (که خلاصه شده Network Admission Controlمیباشد) ویا ISE (که خلاصه شده Identity Service Engine میباشد) برای پیاده سازی اینگونه Policy ها استفاده کنید. همچنین میتوان از یکسری راهکار های ساده ی دیگر مانند Port Security و... هم استفاده کنید.حملات Man-in-the-Middle(حملات شخص میانی): این مورد را میتوان گفت که تقریبا یک نوع و یک تکنیک میباشد که شامل زیرمجموعه های بسیاری است. یک حمله‌ی Man in the Middle (به اختصار MITM) زمانی اتفاق می‌افتد که یک Attacker(حمله‌کننده) در میان دو دستگاه که درحال تبادل اطلاعات میباشند قرار بگیرد و قدرت مشاهده و دستکاری داده های درحال گذر را داشته باشد. این حمله میتواند هم در لایه 3 و هم در لایه 2 اتفاق بی‌افتد و انجام شود. هدف اصلی استراق سمع و مشاهده تمام ترافیک درحال عبور میباشد. اگر قرار باشد که این حمله در لایه 2 اتفاق بی‌افتد ؛ حمله‌کننده مک آدرس های لایه دوم را Spoof(گمراه) میکند و کاری میکند که دستگاه های داخل شبکه باور کنند که MAC Addressـه حمله‌کننده ، MAC Addressـه Default Gateway آنها (مثلا سوئیچ) میباشد.به ان حمله ARP Poisoning میگویند. Frame هایی که از آنها انتطار میرود که به سمت Default Gateway بروند ، از طریق سوئیچ به سمت Attacker فوروارد میشوند و از آنطرف Attacker میتواند مهربانی کند و بسته هارا به سمت مقصد اصلیه خودشان فوروارد کند ؛ پس حالا کلاینت connectivity مورد نیازش راهم دارا است و به چیزی شک نمیکند،درحالی که attacker درحال مشاهده ی داده های درحال عبور او میباشد.(در اینجا بگوییم که شما با پیکربندی ARP Inspection بروی سوئیچ های خود ، میتوانید از spoof شدن MAC Address ها و اینگونه حملات جلوگیری کنید)اینگونه حملات میتوانند در لایه 3 هم رخ بدهند.بدین صورت که attacker روتری را در شبکه قرار میدهد و به هر روشی دیگر روتر هارا گول میزند و آنهارا قانع میکند تا باور کنند که این روتر جدید ، دارای مسیر بهتر (Best path) میباشد ، پس جریان ترافیک از آن روتر میگذرد و به attacker اجازه میدهد که که ترافیک را مشاهده کند ویا آنهارا دستکاری کند.(شما میتوانید از طریق راهکارهای گوناگون از این کار جلوگیری کنید ، مانند استفاده از فیچر هایی مثل routing authentication protocols (احراز هویت پروتکل های مسیریابی برای همسایگی) ویا Passive interfaces in routing protocols (جلوگیری از تبلیغ و یادگیری از اینترفیس‌هایی بجز اینترفیس‌های معرفی شده)و... )یکی دیگر از بهترین کارهایی که میتوانید انجام دهید ، استفاده از Encryption(رمزنگاری) برای داده های درحال عبور میباشد.فرض کنید که برای یک action مدیریتی مانند telnet ،بصورت clear-text (عدم رمزنگاری) داده را عبور دهیم؛ attackerـی که در میان قرار دارد ، میتواند username و passwordـه مدیریتی شمارا مشاهده کند !سایر روشهای گوناگون برای حمله:هیچ گروه استانداردی برای attacker ها وجود ندارد و تمامی حملات کاملا و بدرستی در یک دسته بندی خاص قرار نمیگیرند ! حتی گاهی دیده میشود که یکسری حملات در چند دسته‌بندیه گوناگون قرار میگیرند.در موارد زیر ، به یکسری از دیگر متدهایی که ممکن از attacker ها از آنها استفاده کنند اشاره کرده‌ایم :کانال پنهان (Covert channel)سوء استفاده از اعتماد (Trust exploitation)Brute-forceBotnetDoS / DDoS و ده‌ها گونه حملات دیگر ....در پست آینده درمورد اعمال اصول و مفاهیم ابتدایی امنیت به طراحی شبکه صحبت خواهیم کرد.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 16 Mar 2018 20:19:01 +0330</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت سوم) – شناسایی تهدیدات</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%B3%D9%88%D9%85-%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%D8%AA%D9%87%D8%AF%DB%8C%D8%AF%D8%A7%D8%AA-mczftlrwdq8j</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمام نتورک‌باز های عزیز . در ادامه ی قسمت قبلی از این سری آموزشی ، در این پست با مبحث شناسایی تهدیدات در خدمتتون هستم.  امروزه با حضور و به وجود آمدن تهدیدات جدید و متفاوت ، میتوان گفت تهدیدات همیشه و بصورت مداوم درحال تغییر و پیشرفت میباشند. تقریبا غیر ممکن است که شما وجود تهدید را به صفر برسانید و آنرا از بین ببرید.اما با دانستن طبیعت و ذات تهدیدات، میتوانید خودرا برای حضور تهدیدات جدید آماده کنید.ـ Potential Attackers:  میتوانیم یک کتاب کامل را به حملاتی که طی 15 دقیقه گذشته، در یک جایی بر علیه یک شبکه و یک زیرساخت خاصی اجرا شده اند ، اختصاص داد ؛ اما بجای آنکه سعی کنیم که هزاران تهدیدات و خطرهایی که میتوانند شبکه ی شمارا تهدید کنند را لیست کنیم ، بیآید بررسی کنیم که چه کسانی میتوانند مهاجمین و Attacker های ما باشند: تروریست‌هاجنایتکاران(هرگونه خلافکار)سازمان‌های دولتی (!!)قومیت‌ها(قومیت های حاضر در یک ایالت)هکرهاکارمندان‌ناراضی (شاید اخراج‌شدگان ویا آنهایی که حقوقشان ضایع شده است)رقبا (کمپانی ویا شخص رقیب شما)و درنهایت ، هرکس دیگری که به تجهیزات ویا شبکه ی شما دسترسی دارد .به عنوان یک متخصص امنیت، شما میبایستی دشمن خودرا بشناسید و سعی کنید مثل آنها فکر کنید. نمیخواهیم بگیم که نیاز هستش که همه به یادگیری هک و نوشتن بدافزار ها و... رو بیاریم، چراکه اینکار کمکی به شما نخواهد کرد؛ اما بسیار کمک‌کننده و مفید است که بتوانید انگیزه ها و علایق اشخاصی که قصد ازبین بردن و شکستن امنیت تمام چیزهایی که شما قصد محافظت از آنرا دارید را، درک کنید.همچنین نیاز است که درک و اطلاعات کامل و درستی از شبکه ی خود و دیتاهایتان داشته باشید، تا بدانید چه چیزهایی آسیب‌پذیرند و چه چیزهایی متوانند مورد حمله قرار بگیرند و به عنوان هدف انتخاب شوند.گاها مهاجمین به دنبال دست‌آورد مالی میباشند و گاهی هم فقط میخواهند یک برند ویا یک کمپانی شناخته شده را با ضربه به آن ، بدنام کنند.Attack Methods شناسایی(Reconnaissance): این فرآیند جهت پیدا کردن اطلاعات و شناخت نسبت به شبکه استفاده میشود.میتواند شامل Scan کردن شبکه شود ، به عنوان مثال چک کردن &quot;پاسخ‌دادنه&quot; IP ها و درنهایت بررسی پورتهای باز بروی این IPها.این فرآیند معمولا اولین قدمی است که یک مهاجم برمیدارد تا متوجه شود که چه چیزهایی در شبکه وجود دارند و چه آسیب‌پذیری های بروی آنها موجود است. مهندسی اجتماعی(Social Engineering): این روش میتواند در اکثر مواقع یکی از سخت‌ترین مواردی باشد که شما با آن سروکار خواهید داشت.حتی با داشتن یک شبکه امن ، مهاجم میتواند یکی از کاربران شمارا به هر طریقی گول بزند و به اطلاعات مورد نیاز خودش دست پیدا کند ؛ بنظر راحت تر از دیگر متدهای شناسایی نیست؟این کار میتواند از طریق یک ایمیل و تغییر مسیر Web-page های کاربر انجام شود، بدین معنی که کاربر با کلیک بروی لینک ارسال شده ، صفحه ای جعلی هدایت میشود ویا بدون آنکه متوجه شود ، یکسری داده هارا برای مهاجم ارسال میکند(مانند Username/Password).مهندسی اجتماعی میتواند براحتی از طریق یک تماس تلفنی هم انجام شود. یعنی مهاجم با کاربر تماس بگیرد و خودرا جای رئیس فلان دپارتمان جا بزند و بگوید که به فلان چیز نیاز دارد ، و براحتی کاربر شما اطلاعات مورد نیاز اورا در اختیارش قرار دهد.فیشینگ(Phishing): روشی است که به کاربر شما یک لینک ، که شبیه یک لینک اصلی و قابل اعتماد است ارائه میدهد.وقتی کاربر بروی آن کلیک میکند به صفحه ای جعلی هدایت میشود که شبیه صفحه ی اصلی و قابل اعتماد است و از اون اطلاعات میخواهد (مانند صفحه پرداخت یک بانک ، که میتوان از آن اطلاعات و رمز حساب شمارا استخراج کرد ویا یک Portalـه Web-base در سازمان ، که در آن اکانت خودرا وارد میکنید و آن اطلاعات برای مهاجم ارسال میشود.) ویا بدون آنکه متوجه شود ، یکسری اطلاعات را برای مهاجم ارسال میکند(مانند Username/Password/Cookie).فارمینگ(Pharming): روشی است که باعث میشود کاربر از یک منبع و یک صفحه قابل اعتماد بدون آنکه متوجه شود ، به یک صفحه ی جعلی و شبیه صفحه ی اصلی ریدایرکت شود. دیگر نگوییم با وارد کردن اطلاعات در آن صفحه ، چه اتفاقی می‌افتد... تشدید دسترسی(Privilege escalation): دراین فرآیند یک مهاجم به هرطریقی دسترسی به یک اکانت را میگیرد و سپس سعی میکند آن دسترسی را افزایش دهد.به عنوان مثال کاربر دسترسی User Mode را به یک Router پیدا میکند ، وسپس با تکنیک Brute-force سعی میکند تا Enable Password را پیدا کند و دسترسی با Privilegeـه 15 داشته باشد. درب پشتی / بکدور(Back doors): وقتی یک مهاجم به یک سیستم دسترسی پیدا میکند ، عموما علاقه مند است که آن دسترسی را در آینده هم (برای کارهای دیگر ، حملات دیگر و...) همچنان داشته باشد. پس یک درب پشتی ویا همان راه ورودی برای خود ایجاد میکند تا بتواند در آینده براحتی دسترسی موردنظر خودش را داشته باشد. بسیاری از بکدور ها از طریق کاربران ، با باز کردن یک لینک آلوده ویا یک فایل آلوده نصب میشوند. بکدور ها همچنین به عنوان یک ویروس هم میتوانند پیاده سازی شوند(عموما به آنها Malware ویا بدافزار گفته میشود). اجرای کد(Code execution): وقتی که مهاجم دسترسی مورد نیاز خودرا بدست آورد ، قادر به انجام کارهای بسیاری مباشد.نوع این کارها به میزان دسترسی ای که مهاجم درحال حاضر ویا دسترسی ای که میتواند بدست بیاورد و همچنین Permission های کاربری که ازش استفاده میکند ، وابسته و بستگی دارد. یکی از بدترین خطرهایی که میتواند وجود داشته باشد ، دسترسی اجرای کد میباشد.مهاجم میتواند براحتی موارد و اطلاعات مختلف را مشاهده کند ، تنظیمات و Config دستگاه را بهم بریزد ویا باعث DoS و از دسترس خارج شدن Device شود. در پست آینده ، مبحث شناسایی را ادامه میدهیم و با Attack Vectors ، بحث جذاب Man-in-the-Middle Attacks و... آشنا خواهیم شد.موفق باشید</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Mon, 12 Mar 2018 20:22:53 +0330</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت دوم) – طبقه‌بندی</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%AF%D9%88%D9%85-%D8%B7%D8%A8%D9%82%D9%87%D8%A8%D9%86%D8%AF%DB%8C-dg3ovahgmbxe</link>
                <description>با سلام و عرض خسته‌نباشید خدمت تمام نتورک‌باز های عزیز.در ادامه ی قسمت قبل از این سری آموزشی و در ادامه ی مبحث هزینه در برابر منافع ، امروز به طبقه‌بندی ها میپردازیم و میبینیم که در Asset(دارایی)ها و Vulnerability(آسیب‌پذیری)ها چه چیزها و زیرمجموعه هایی قرار میگیرند و سپس به تحلیل آنها میپردازیم.    طبقه‌بندی دارایی‌هایکی از دلایلی که ما بخاطرش به ‌طبقه‌بندی و دسته‌بندی دارایی ها میپردازیم، این است که بتوانیم باتوجه به گروه و دسته‌بندی ای که دارایی درآن قرار دارد و بر اساس قوانین مشخص شده ، یک بازخورد و actionـه خاص انجام دهیم. به عنوان مثال VPN یا همان Virtual Private Network هارا در نظر بگیرید.ما دسته‌بندی ها و ترافیک های خاصی را در نظر میگیریم که باید از طریق بستر Tunnelـه VPN عبور کنند؛ با طبقه‌بندی کردن داده ها و علامت‌گذاری آنها (مثل علامت‌گذاریه &quot;فوق محرمانه&quot; بروی داده‌های یک هارد دیسک)، میتوانیم به میزان درست و مناسبی بروی امنیت و محافظت از یک سری داده ها تمرکز کنیم. مثلا امنیت و سخت‌گیری بیشتر برای داده های فوق‌سِرِّی، نسبت به داده های دسته‌بندی نشده. فایده و مزیت ایجاد کردنِ طبقه‌بندی های مختلف در آنجاست که وقتی دیتای جدید وارد سیستم میشود، شما میتوانید آنهارا دسته‌بندی کنید و در دسته‌ی مربوط به خو ، مانند &quot;فوق سری&quot; ، &quot;محرمانه&quot; ، &quot;معمولی&quot; و ... قرار دهید و سپس دیتای شما به همان میزان سطح امنیتی ای که برای اون نوع داده تنظیم و پیکربندی کرده بودید، امن و محافظت میشود. برای مثال ، جدول زیر لیستی از &quot;طبقه‌های مربوط به دارایی&quot;(موارد مشابه و آنهایی که عموما استفاده میشود) را در مکان‌های مختلف را نشان میدهد. طبقه‌بندی آسیب‌پذیری‌هادرک و اطلاع از آسیب‌پذیری ها و ضعف های یک سیستم ویا یک شبکه ، یک قدم بزرگ و مهم برای درست کردن آن آسیب‌پذیری‌ها ویا پیاده سازی راهکاره مقابله ی مناسب برای کاهش ویا ازبین بردن تهدیدات علیه آن آسیب‌پذیری‌ها میباشد.آسیب‌پذیری های یک شبکه میتوانند بسیار زیاد باشند ، که میتوانند ناشی از یک یا چند مورد از اشکالات و اشتباه های زیر باشند.عیب و اشکال در قوانین مشخص شده (Policy flaws)خطاها و اشکال های طراحی (Design errors)ضعف،باگ و اشکال در پروتکل‌ها(Protocol weaknesses)پیکربندی اشتباه (Misconfiguration)باگ و آسیب‌پذیری نرم افزاری (Software vulnerabilities)عوامل انسانی (Human factors)بد افزارها (Malicious software)باگ و آسیب‌پذیری سخت‌افزاری (Hardware vulnerabilities)دسترسی فیزیکی (Physical access)سیسکو و دیگر کمپانی ها،هرکدام صفحه ای در وبسایت خود ایجاد کرده اند که درآن تهدیدات(threats) را بصورت عمومی به مشتریان خود اعلام میکنند.  CVE یا همان Common Vulnerabilities and Exposures ، دیکشنری ای عمومی از آسیب‌پذیری ها میباشد که به راحتی میتوانید با استفاده از موتور جستجوگر موردعلاقه ی خود ، آسیب‌پذیری های گوناگونه ثبت‌شده را درآن پیدا کنید.همچنین یک NVD داریم که اختصار National Vulnerability Database میباشد. این سیستم یک مخزن جهانی از اطلاعات آسیب‌پذیری ها  بصورت استاندارد میباشد.  طبقه‌بندی اقدامات متقابل(Countermeasures)در ابتدا بیآید بررسی کنیم که Countermeasures یا اقدام متقابل چیست ؟  &quot;اقدام متقابل&quot; یا &quot;Countermeasures&quot; یک Device ویا یک فرآیند(شاید یک راهکار) است که برای جلوگیری از تهدیدات پیاده سازی میشود و بدین ترتیب باعث کاهش ریسک میشود. بعد از اینکه یک کمپانی دارایی خورد را شناسایی کرده و ریسک هایی که مربوط به آن دارایی میباشند (درمورد تهدیدات بر علیه یک آسیب‌پذیری) را مورد توجه قرار داد،حالا میتواند تصمیم به پیاده سازی اقدام متقابل، جهت کاهش ریسک پیش آمدنه یک &quot;حمله ی موفق&quot; بگیرد.  چند مِتُدِ کنترل ،که عموما برای اقدام متقابل پیاده سازی میشود: ـAdministrative: این مورد میتواند شامل قوانین شرکت،دستور العملها،استانداردها و... باشد. ـPhysical: همانطور که از نامش مشخص است ، این مورد محدود سازی دسترسی فیزیکی برای کاربران عادی میباشد.به عنوان مثال قفل گذاشتن برای رک ها و اتاقهایی که سوئیچ ها ، سرور ها و دیگر تجهیزات در آن قرار گرفته اند. ـLogical: این مورد شامل پسوردها،فایروالها،IPSها،ACL ها،VPN Tunnetها و الی آخر ، میشود.این مورد معمولا به کنترل های فنی اشاره دارد.تمامی کنترل ها بصورت برابر ساخته نشده اند و تمام آنها انتظارات یکسانی نمیرود (باتوجه به محیطی که درآن حضور داریم).اما بصورت کلی، کنترلها میبایستی بازدارنده ی تهدیدات باشند.با ریسک(Risk) ، چه کنیم؟شما میتوانید با روشهای گوناگونی با ریسک ها مواجه شوید ، و آنهارا کاهش داده ویا از بین ببرید.به عنوان مثال با قرار ندادن webserver کمپانیه خود در اینترنت، مسلما میتوانید ریسکه حمله به آن را کاهش دهید. اما آیا این مورد برای کمپانی ای که نیاز به وب‌سروری در اینترنت دارد ، جوابگو است؟  راهکار دیگری که اینجا ممکن است جوابگو باشد این است که شما ریسک را به شخص دیگری منتقل کنید. برای مثال بجای میزبانی webserver خود در شبکه ی داخلی، آنرا به یک Service Provider بسپارید و سرور خودرا در دیتاسنتر او قرار دهید.SP کاملا مسئولیت تمامی خطرات و ریسک هارا بر عهده میگیرد و به مشتری اش SLA و گارانتی محافظت از داده را میدهد؛ اما به این نکته توجه داشته باشید که حتی SP هم نمیتواند کاملا ریسک را برای شما از بین ببرد.پس با توجه به اینکه SP مسئولیت ریسک های شمارا برعهده گرفته است، چطور از پس آن برمی‌آید ویا اصطلاحا چطور این مورد را handle میکند؟ این‌موضوع دقیقا همان چیزیست که شما در کتاب های مربوط به امنیت شبکه یاد خواهید گرفت(که در این سری آموزشی هم ممکن است به بعضی از راهکار ها اشاره کنیم). با پیاده سازی اقدامِ متقابلِ مناسب.در قسمت آینده به تشخیص تهدیدات شبکه که به صورت فعلی وجود دارد میپردازیم.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Sun, 25 Feb 2018 21:54:40 +0330</pubDate>
            </item>
                    <item>
                <title>پروازی بر دنیای امنیت شبکه (قسمت اول) - مقدمه</title>
                <link>https://virgool.io/NetworkBaz/%D9%BE%D8%B1%D9%88%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%B4%D8%A8%DA%A9%D9%87-%D9%82%D8%B3%D9%85%D8%AA-%D8%A7%D9%88%D9%84-%D9%85%D9%82%D8%AF%D9%85%D9%87-smaszz8w5g7q</link>
                <description>امروزه با توجه به گسترش و بزرگتر شدن دنیای شبکه‌های کامپیوتری ، نیاز است که متخصصانی تحت عنوان کارشناسان امنیت و... در یک Enterprise حضور داشته باشند تا از آسیب رسیدن،تحت حمله قرار گرفتن و دزدی اطلاعات جلوگیری کنند. امنیت شبکه یکی از جذابترین و زیباترین مباحثی میباشد که کمتر کارشناس و مهندس شبکه ای دیده میشود که علاقه ای به این دنیا نداشته باشد و یا به آن قدم نذاشته باشه.هدف از امنیت در شبکه چیست؟وقتی شبکه های کامپیوتری را در نظر میگیریم ، میتوان به آنها از منظرهایی متفاوتی نگاه کرد. برای مثال یک مدیر ارشد ممکن شبکه را به عنوان یک ابزار در بیزینس که با استفاده از آن میتوان راحت‌تر و بهتر به اهداف شرکت رسید ، ببیند. کاربران‌نهایی (End Users) ممکن است شبکه را فقط به عنوان ابزاری ببینند که به بوسیله ی آن میتوانند کارشان را به اتمام برسانند و یا منابع و اطلاعات خودرا برای دیگر یوزر ها به اشتراک بگذارند. متاسفانه همه ی کاربران شبکه به درستی وظیفه ی خودرا در امن نگه‌داشن شبکه و داده ها انجام  نمیدهند و باید توجه داشت که همیشه کاربران یک شبکه، میتوانند یک آسیب‌پذیری(Vulnerability) بسیار جدی در شبکه باشند، زیرا آنها هستند که دارای پسورد ویا credential هایی میباشند و به آنها اجازه ی دسترسی به شبکه داده میشود.حتی اگر شما تمام دیدگاه‌های امنیتی و کانسپت های مطرح شده در کتاب‌های مربوطه مانند CCNA Security را پیاده سازی کنید، اگر یک کاربر در معرض خطر قرار بگیرد (مثلا ویروسی شود) و یا دسترسی به Device ها، منابع و داده هایی بگیرد که نباید گرفته باشد، بازهم شبکه ی شما امنیت خود را از دست داده است!پس همیشه به خاطر داشته باشید : که رفتار کاربران شبکه ی شما میتواند ریسک های امنیتی بسیاری را برای شما ایجاد کند و آموزش کاربران شبکه، یکی از نکات کلیدی و جامع ، در امن نگه‌داشتن شبکه میباشد.محرمانگی ، امانت‌داری و قابل دسترس بودن (Confidentiality, Integrity and Availability)اهداف امنیت شبکه، عموما دارای 3 مفهوم مهم میباشند :  محرمانگی(Confidentiality): در شبکه ما دارای 2 نوع داده میباشیم ، داده‌های درحال حرکت(دیتاهایی که در شبکه درحال جابجایی میباشند) و داده های درحال استراحت (زمانی که دیتاها بصورت ثابت بروی یک بستر ذخیره سازی مانند یک سرور،Cloud،یک سیستم workstation و... نشسته باشند). محرمانگی بدین معنی است که فقط سیستم ها و افراد مجاز ، اجازه ی دسترسی و مشاهده ی موارد حساس را داشته باشند و از آنطرف افراد غیر مجاز ، به هیچ‌وجه هیچ دسترسی ای به دیتا نداشته باشند. برای داده های درحال حرکت هم راهکارهایی نظیر رمزنگاری(Encryption) در نقطه ی ارسال داده (برای اینکه در طول انتقال قابل خواندن نباشند) و یا جداسازی شبکه ها از یکدگیر ، میتواند جوابگو باشد.در کتاب های مربوط به امنیت بروی این دو مبحث صحبتهای زیاده شده است. امانت داری و دُرُستی (Integrity): بدین معنی است که هرگونه تغییر در داده ها فقط توسط سیستم‌ها و افراد مجاز، انجام شود. قابل دسترس بودن (Availability): اگر داده های داخل شبکه برای کاربران مجاز هم قابل دسترس نباشد (مثلا بخاطر یک حمله ی DoS ویا یک خطای کُلی در شبکه) ، نتیجه اش میتواند برای بسیاری از کمپانی ها و کاربرانی که کارشان وابسته به شبکه میباشد و شبکه برای آنها ابزار مهمی است ، مهم و قابل توجه باشد ، چراکه میتواند باعث ضرر مالی بسیاری شود.آنالیز هزینه‌ها در برابر منافع در امنیت کارشناس امنیت شبکه میبایستی نه تنها به چیزی که از آن محافظت میکند، بلکه به این نکته که در برابر چه کسی از آنها محافظت میکنند توجه داشته باشد. مدیریت ریسک کلمه ای است که بارها و بارها در موقعیت های مختلف میشنوید ، که این ریسک بر اساس اصول و کانسپت های مربوط به حفاظت از دارایی و مدیریت امنیتی بنا شده است.داراییِ ما چیست؟ میتواند هرچیزی که برای کمپانی با ارزش است باشد. میتواند موارد قابل لمس مانند افراد ، کامپیوتر ها ، وسایل و... باشد ویا ابزاری که غیرقابل لمس میباشند، مانند ایده‌ها ، دیتابیس ها ، اطلاعات اکانت ها و... . دانستن دارایی‌هایی که شما قصد برقراری امنیت برای آنها را دارید همراه با ارزششان،مکانشان و خطرهایی که آنهارا در معرض خطر قرار میدهد به شما کمک میکند که بهتر و مفیدتر زمان و بودجه ی لازمه برای امن سازی این موارد را مشخص کنید.آسیب‌پذیری(Vulnerability): یک ضعفِ قابل سوء استفاده(exploitable) در یک سیستم ویا طراحی‌سیستم را یک آسیب‌پذیری میگویند.  آسیب‌پذیری ها میتوانند در پروتکل ها ، سیستم‌عامل ها ،اپلیکیشن ها و طراحی های گوناگون پیدا شوند.هروزه آسیب‌پذیری های گوناگونی کشف میشوند.تهدید(Threat): هرگونه خطر برای یک دارایی را تهدید میگویند.اگر یک آسیب‌پذیری ای وجود نداشته باشد ولی همچنان Exploit نشده باشد(نتوانسته اند که ازآن سوء استفاده کنند) یا هنوز بصورت عمومی شناخته نشده باشد، به آن تهدید ، latent یا تهدید پنهان گفته میشود. راهکاری که متاسفانه بسیار هم در ایران باآن مواجه هستیم ، پاک کردن صورت مسئله است ! یعنی چی ؟  فرض کنید در شبکه ی خود VMـی Patch نشده و آسیب‌پذیر دارید که ممکن است به آن حمله های متفاوتی انجام شود.با جدا سازی آن VM از شبکه ، یکجورایی میتوان گفت شبکه ی خود را امن کردید چراکه دارایی‌ِشما حتی برای خودتان هم در دسترس نیست و خارج از مدار قرار دارد، پس تهدیدی علیه آن وجود ندارد.توجه داشته باشید که باید موارد گوناگون را آنالیز و بررسی و دسته بندی کنید ، ما نباید هزینه ای را اشتباها و بروی چیزی که ارزش ندارد انجام دهیم ویا هزینه ای بیشتر از چیزی که لازم است را متحمل شویم.برای مثال فرض کنید ماشینی را با قیمت 200 دلار خریداری کردید و بروی آن یک دزدگیر 2000 دلاری بگذارید !  امنیت چیزیست باید برای آن هزینه شود، اما بصورت صحیح و درست ! نه احمقانه و اشتباه.جمله ای که معمولا در دنیای امنیت با آن مواجه میشویم این است که &quot;هیچوقت امنیت 100% نیست !&quot; ، چراکه قبول کردن این ریسک اشتباه است.شما میتوانید با هزینه کردن ، خریداری تجهیزات و پیاده سازی راهکارهای امنیتی پیشرفته از دارایی خود به خوبی محافظت کنید. اما هیچوقت نمیتواند این ریسک را از بین ببرید ، پس باید به دنبال یک راهکاری برای balance باشید.در قسمت بعدی بیشتر درمورد هزینه در برابر منابع صحبت خواهیم کرد و بیشتر مبحث را باز میکنیم.موفق باشید.</description>
                <category>نتورک‌باز</category>
                <author>سجاد غفاریان</author>
                <pubDate>Fri, 23 Feb 2018 19:25:43 +0330</pubDate>
            </item>
            </channel>
</rss>