امنیت شبکههای کامپیوتری کوچک
در این مقاله بحث امنیت در شبکههای کامپیوتری کوچک یا LAN مطرح میگردد. میدانیم مقوله امنیت در شبکه مبحث گستردهای است. در اینجا سعی میکنیم به چند زیرشاخه از آن اشاره نموده و در هر بخش یک یا چند روش عملی برشماریم. لازم است در اینجا یادآور شوم که ضريب امنيت هيچگاه به 100% نخواهد رسيد.
-
امنیت فیزیکی
منظور از امنیت فیزیکی محدود کردن امکان دسترسی به بخشهایی از شبکه است که از اهمیت ویژهای برخوردار هستند.
- شما میتوانید بنا به تشخیص خود یا مشاور شبکه، منابع شبکه از قبیل مودمها، روترها، کابلکشیها، سرورها، بخشهای مربوط به پشتیبانگیری و ذخیرهکنندهها را در اتاقی پشت درهای بسته نگهدارید، فقط به افراد دارای مجوز، اجازه ورود به اتاق را بدهید و بهاینترتیب امکان دستکاری و تخریب را به حداقل برسانید. برای ورود به این اتاق هم میتوان از قفلهای دیجیتال استفاده نمود.
- برای محافظت در برابر زلزله، تجهیزات میبایست در راک نصبشده و راکها به زمین یا دیوار محکم شوند.
-
احراز هویت
احراز هویت پروسه تشخیص هویت شخص، نرمافزار یا دستگاهی است که از شبکه یا دستگاههای شما، درخواست دریافت سرویس میکند.
- برای احراز هویت معمولاً از نام کاربری و پسورد استفاده میشود. بهمنظور جلوگیری از دسترسی غیرمجاز به محیط پیکربندی روترها و سوئیچها و برای تنظیم پسورد جهت دسترسی به مدیریت آنها، به روشهای زیر عمل میشود:
مثلاً در روتر سیسکو براي تنظيم پسورد روی پورت Console میتوان بدین ترتیب عمل نمود :
Router (config) # line console 0
Router (config-line) # password password
Router (config-line) # login
بهاینترتیب اگر کسی بخواهد از طریق پورت کنسول به روتر متصل شود، نیاز به دانستن پسورد فوق دارد. حال اگر بخواهیم نام کاربری هم اضافه کنیم، میتوان نوشت :
Router (config) # username user password password
Router (config) # line console 0
Router (config-line) # login local
در این حالت برای دسترسی به محیط پیکربندی روتر نیاز به دانستن نام کاربری و پسورد است. توجه داشته باشید که اگر دستور login local را بدون تعریف نام کاربری استفاده کنید، دسترسی به روتر غیرممکن خواهد شد.
براي تنظيم پسورد روي کلیه ارتباطات Telnet به روش زير عمل مينماييم :
Router (config) # line vty 0 15
Router (config-line) # password password
Router (config-line) # login local
و برای آنکه دسترسی به روتر از طریق SSH هم ممکن باشد، دستورات زیر لازم خواهد بود :
Router (config) # hostname R
R (config) # ip domain-name cisco.com
R (config) # crypto key generate rsa
در پاسخ به سؤال تعداد بیت در modulus عدد 1024 را وارد مینماییم.
R (config) # line vty 0 15
R (config –line) # transport input ssh
R (config –line) # login local
R (config –line) # exit
R (config) # username user password password
درصورتیکه از دستور enable password و نیز enable secret استفاده نشده باشد و تنها یک line password برای کنسول موجود باشد، این رمز عبور بهعنوان enable password برای تمامی خطوط VTY یعنی نشستهای Telnet و SSH مورداستفاده قرار میگیرد.
- همچنین برای جلوگیری از اتصال دستگاههای غیرمجاز به سوئیچ بهتر است از آدرس فیزیکی یا MAC دستگاهها برای احراز هویت در سوئیچ استفاده شود. مثلاً در یک سوئیچ سیسکو میتوان به روش زیر عمل نمود :
Switch (config-if) # switchport mode access
Switch (config-if) # switchport port-security
Switch (config-if) # switchport port-security mac-address sticky
Switch (config-if) # switchport port-security violation shutdown
Switch (config-if) # end Switch (config) # errdisable recovery cause psecure-violation
Switch (config) # errdisable recovery interval 300
دستورات بالا به سوئیچ اجازه میدهند که آدرس فیزیکی (MAC) اولین دستگاه متصل به یک اینترفیس را بهطور خودکار یاد گرفته و نگه دارد. پسازآن هر دستگاه دیگری که به آن اینترفیس متصل شود باعث قطع شدن اینترفیس به مدت 300 ثانیه میشود.
- برای کاربرانی که از راه دور و خارج از محیط شرکت به شبکه وصل میشوند بهتر است از smartcard وOne time password بهره برد.
- باید یادآور شد که تغییر پسورد پیشفرض روی تجهیزات و استفاده از رمزهای عبور قوی یکی از عوامل افزایش امنیت در شبکههای کامپیوتری است.
-
سطح دسترسی
در این مرحله مشخص میکنیم، کاربری که احراز هویت شده مجوز انجام چهکارهایی را دارد یا امکان دسترسی به کدام سرویسها را دارد.
- برای تعیین سطح دسترسی روي روتر/سوئيچ از اين دستور بهره گرفته ميشود:
{Router (config) # enable password [level level ] {password | [encryption-type] encrypted-password
در اين دستور بعد از كلمه level عدد سطح دسترسي را مشخص مينماييم. براي اين كار يا ميتوان از مقادير پيشفرض بهره گرفت، مثلاً سطح 1 بهطور پيشفرض مجوز اجراي دستورات مود user EXEC و سطح 15 مجوز اجراي دستورات مود privileged EXEC را ميدهد. و یا ميتوان با استفاده از دستور زير سطح دسترسي جديدي را مشخص نماييم.
Router (config) # privilege mode level level command-string
مثلاً براي اعمال مجوز دستور configure به سطح 14 ميتوان به شيوه زير عمل نمود.
Router (config) # privilege exec level 14 configure
پسازآن لازم است براي فعال نمودن آن، اين سطح دسترسي به يك پسورد اختصاص يابد.
Router (config) # enable secret level 14 Pswd14
حالا كاربري كه با پسورد Pswd14 وارد سيستم شود امكان استفاده از دستور configure را خواهد داشت.
-
رمزنگاری
رمزنگاری فرآیندی است که طي آن اطلاعات بههمریخته ميشود تا هیچکس بهجز مقصد موردنظر نتواند آن را بخواند. دستگاه رمزنگاری قبل از قرار دادن اطلاعات روی شبکه، دادهها را رمزنگاری میکند. دستگاه رمزگشایی دادهها را قبل از انتقال به برنامه موردنظر، رمزگشایی مینماید. روترها، سرورها، سیستمهاي پایاني، یا يك دستگاه اختصاصی میتوانند بهعنوان دستگاه رمزگذاری یا رمزگشایی عمل کنند. دادههایی که رمزنگاریشدهاند، دادههای رمز شده نامیده میشوند. دادههایی که رمزنگاری نشدهاند، متن ساده ناميده ميشوند.
براي افزایش امنيت و رمزنگاری پسوردها در روتر/سوئیچ ميتوان از دستور زير استفاده نمود :
Router (config) # enable secret password
لازم به ذكر است كه امكان تعريف نام كاربري هم با يكي از دستورات زير وجود دارد.
Router (config) # username name password password
Router (config) # username name password encryption-type encrypted-password
دستور دوم در واقع یک پسورد رمزنگاری شده برای نام کاربری تعریف میکند. در این دستور برای encryption-type در حال حاضر فقط عدد ۵ میتوان قرار داد و بعد از آن باید یک پسورد رمزنگاری شده در یک روتر دیگر را، به همان صورت انکریپت شده، نوشت.
-
حسابرسی
برای آنکه بتوان وقایع امنیتی رخداده در شبکه را آنالیز نمود و نیز برای پاسخگویی مناسب در زمان وقوع اتفاقات یا حملات، باید دادههای مربوط به فعالیتهای انجامشده در شبکه جمعآوری شوند. مثلاً باید اطلاعات مربوط به تمام تلاشهای انجامشده برای ورود به سیستم (موفق یا ناموفق) یا دسترسی به سرویسها به همراه زمان وقوع آنها جمعآوری گردد.
- بهمنظور ثبت وقایع در روتر/سوئیچ سیسکو میتوان از حافظه داخلی روتر بهره گرفت. برای این منظور مقداری از حافظه را با دستورات زیر بهعنوان بافر ثبت وقایع تعریف میکنیم :
Router (config) # logging buffered buffer size severity_level
Router (config) # logging buffered
بايد متذكر شد كه اين بافر از نوع چرخشي است و با پر شدن بافر از ابتدا شروع به نوشتن روي اطلاعات قديمي ميكند. ضمناً نبايد حجم بافر را زياد در نظر گرفت چراکه این امر باعث کاهش حافظه مورداستفاده سیستم برای دیگر فعالیتها میشود. و برای مشاهده وقایع ثبتشده از دستور زیر استفاده میشود:
Router (config) # show log
برای مشاهدهٔ وقایعی که در حال رخ دادن روی روتر است میتوان از دستور debug استفاده نمود.
-
فيلترينگ بستهها
فیلترینگ بستهها مکانیسمهای احراز هویت و سطح دسترسی را تقویت میکند و به حفاظت از منابع شبکه در برابر استفاده غیرمجاز، سرقت، تخریب و حملات DoS کمک میکنند.
سیسکو با استفاده از لیست کنترل دسترسی (ACL)بستههای مشخصشده را عبور میدهد و بقیه بستهها را حذف میکند. روش کار به این صورت است که بستههای دریافت شده با جملههای ACL مقایسه میشوند و اولین تطبیق که اتفاق بیافتد شرط آن جمله اجرا میشود. یک ACL در یک روتر یا سوئیچ که نرمافزار IOS سیسکو را اجرا میکند، همیشه دارای یک جمله implicit deny در انتهای لیست ACL خود هست که بقیه بستهها را حذف میکند.
با توجه به اینکه نرمافزار IOS سیسکو، بسته دریافت شده را با تکتک جملهها مقایسه میکند تا اینکه یک مورد تطبیق پیدا کند، برای بهینه شدن این فرآیند باید شرایط کلیتر در جملههای بالاتر قرار گیرند و شرایط خاصتر در جملههای پایینتر. بهاینترتیب برای هر بسته تعداد جملههای مقایسه شده تا رسیدن به تطبیق، کمتر میشود و ما به throughput بهتری دست مییابیم.
- در اینجا یک مثال از نحوه تعریف ACL در یک روتر سیسکو، موردبررسی قرار میگیرد. فرض میکنیم این ACL برای اعمال به بستههای خارجشده از سازمان و در جهت out نوشته میشود. گفتیم برای رسیدن به throughput بهتر با جملههای کلیتر شروع میکنیم.:
Router (config) # access-list 101 permit tcp 192.168.1.0 0.0.0.255 any eq www
با این جمله به ترافیک وب از داخل سازمان اجازه خروج میدهیم (با فرض اینکه شبکه داخل سازمان رنج آدرس 192.168.1.0/24 داشته باشد).
Router (config) # access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.100 eq ftp
اگر یک FTP Server در شبکهای دیگر وجود داشته باشد، با جمله فوق به کاربران داخل سازمان اجازه دسترسی به آن را میدهیم. البته بسته به نوع FTP Server به یکی از جملات زیر هم نیاز داریم تا به ترافیک FTP Server اجازه عبور بدهیم. در مورد Active FTP :
Router (config) # access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.100 eq ftp-data established
و یا در مورد Passive FTP :
Router (config) # access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 192.168.2.100 gt 1024
میتوان برای شفافیت بیشتر جمله Deny را در پایان ACL ذکر نمود و نیز از ترافیکی که مجوز عبور نیافته log گرفت :
Router (config) # access-list 101 deny any any log
حال باید access list نوشتهشده را به اینترفیس موردنظر اعمال نمود. پس از وارد شدن به این اینترفیس دستور زیر را وارد مینماییم :
Router (config-if) # ip access-group 101 out
-
ديوارههاي آتش
فایروال دستگاهی است که سیاستهای امنیتی را در مرز بین دو یا چند شبکه اجرا میکند. فایروال میتواند یک روتر با ACL، یک دستگاه سختافزاری اختصاصی یا نرمافزاری باشد. قرار گرفتن فایروال در مرز بین شبکه سازمانی و اینترنت بسیار مهم است. یک فایروال دارای مجموعهای از قوانین است که مشخص میکند که کدام ترافیک مجاز است و کدامیک باید حذف شوند.
یکی از انواع فایروالها static stateless packet-filter firewall است که هر بسته را جداگانه موردبررسی قرار میدهد. این نوع از فایروالها ازنظر سرعت و سادگی کار با آنها مناسب هستند.
نوع دیگر فایروال stateful firewall است که میتواند هوشمندانهتر عمل کرده و کل یک نشست را بررسی نماید و ترافیک را عبور داده یا حذف کند. مثلاً میتواند به خاطر بسپارد که یک کامپیوتر درون سازمان از یک سرور خارجی درخواست دانلود یک فایل را داده است و در برگشت اجازه عبور آن فایل را به کامپیوتر صادر کند. این نوع فایروال میتواند با active FTP هم کار کند (در این نوع FTP سرور هم یک ارتباط به سمت کلاینت ایجاد مینماید).
نوع دیگر فایروال یک فایروال پراکسی است. فایروالهای پروکسی پیشرفتهترين نوع فایروال هستند، اما کمتر مورداستفاده قرار میگیرند. فایروال پراکسی بهعنوان واسطه عمل میکند، به این معنی که بین مشتریان سازمان شما و سرورهای خارجی قرار میگیرد و قسمتی یا همه ترافیک از آن عبور میکند. فایروالهای پروکسی هم میتوانند بستهها را بررسی نمایند و هم کل یک نشست را بازبینی نمایند. این نوع فایروالها میتوانند ترافیک مخرب و محتوای غیرقابلقبول را مسدود کنند.
- يكي از روشهاي توصیهشده جهت پيكربندي فايروال، بستن كليه پورتهای بدون استفاده و تنها باز گذاردن پورتهای مورداستفاده بر روي فايروال است.
- از ديگر موارد مورداستفاده در پيكربندي فايروال استفاده از NAT و پنهان نمودن كليه آدرسهای شبكه داخلي است.
- فایروال سیسکو (ASA 5500-X series) میتواند برای شبکههای کوچک گزینه مناسبی باشد. البته شرط استفاده از این فایروال سیسکو وجود دانش پیکربندی و استفاده از آن در سازمان است. در لینک زیر چند نمونه از این سری موردبررسی قرارگرفته است.
https://www.cisco.com/c/en/us/products/security/asa-firepower-services/index.html
در جدول زیر هم مقایسه throughput چند نمونه از سری ASA 5500-X series آمده است :
-
سيستمهاي تشخيص و پیشگیری از نفوذ
یک سیستم تشخیص نفوذ (IDS) وقایع مخرب را شناسایی میکند و مدیر شبکه را با استفاده از ایمیل، ارسال پیامک یا ثبت وقایع (log) مطلع میکند. همچنین یک IDS میتواند تجزیهوتحلیل آماری و آنالیز رفتارهای ناهنجار را انجام دهد. برخی از دستگاههای IDS میتوانند به یک پایگاه داده مرکزی گزارش دهند. این پایگاه داده مرکزی اطلاعات را از چندین حسگر جمعآوری میکند تا یک نمای کلی از امنیت شبکه را در زمان واقعی به مدیر نشان دهد.
یک سیستم پیشگیری از نفوذ (IPS) میتواند با افزودن قوانین به یک فایروال، ترافیک را بهصورت پویا مسدود نماید و یا طوری پیکربندی شود که ترافیک را بازرسی نماید و بهمحض ورود به فایروال آن را مسدود نموده یا مجاز به عبور بشناسد. درواقع IPS یک IDS است که میتواند حملات را شناسایی و مسدود نماید.
در تجهیزات Cisco ASA با افزوده شدن سرویسهای FirePower مرز بین فایروال و IPS کمرنگ شده است. و با ارتقاء نرمافزار به FTD ميتوان به قابلیتهای فايروال و IPS تحت يك نرمافزار مديريت دستیافت.