نمایش نتایج: از شماره 1 تا 2 از مجموع 2
Like Tree2نفر پسندیدند
  • 2 ارسال توسط ناصر آرام نژاد

موضوع: Access Control List ( ACl )

  1. #1
    مدیر بازنشسته
    تاریخ عضویت
    2011 June
    محل سکونت
    تهران
    سن
    36
    ارسال ها
    37
    تشکر
    11
    تشکر شده 66 بار در 26 پست


    آيا اين پست براي شما سودمند بود؟ بله | خیر

    Access Control List ( ACl )

    ACL چیست؟

    پیشنیاز : آشنایی مقدماتی با IOS

    ACL همونطور که از اسمش مشخص هست یک لیست هست که سطر های درون اون به صورت جملات Permit یا Deny برای IP خاص به همراه پروتکل خاص و شماره پورت خاص هستند.

    ACL ها باید روی یکی از Interface های روتر(CCNA) و یا سوئیچ (CCNP ) ست بشن تا بتونن هر پکتی که به اون اینترفیس از دنیای بیرون روتر وارد میشه(inbound) یا از روتر به سمت دنیای خارج از روتر میره ( Outbound ) رو کنترل کنند.

    ACL ها انواع مختلفی دارند که من اینجا چون فعلاً در حد CCNA خوندم و نه بیشتر براتون تا همون حد میگم. انواع کاربردی در CCNA اینها هستند:

    Standard ACL :


    با استفاده از این فقط میتونیم بسته ها رو بر اساس ادرس مبداء فیلتر کنیم. امکاناتش کمه ولی از نظر پردازش خیلی کم هزینه و سریع هست

    Extended ACL:
    با این ACL میتونیم بسته هارو براساس پروتکل مثلاً فقط TCP پورت80 یا فقط UDP و... و ادرس مبداء و همچنین مقصد فیلتر کنیم. ( مثلا میشه دسترسی به یک سایت اینترنتی خاص رو با این ACL از یک شبکه یا یک کامپیوتر خاص بست) امکاناتش خیلی زیاد هست ولی پردازش زیادی میخواد.

    Reflexive ACL:

    فرض کنید میخواید هر نوع دسترسی ار اینترنت به داخل شبکه خودتون رو ببندید. اونوقت اگه از Extended استفاده کنید شما هم نمیتونید به اینترنت دسترسی داشته باشید چون بعد از درخواست شما اینترنت نمیتونه جواب رو واسه شما ارسال کنه. اما با استفاده از Reflexive و استفاده از کلمه کلیدی Established میشه کاری کرد که اینترنت نتونه به سیستم شما دسترسی داشته باشه مگه اینکه شما یک درخواستی داده باشید و اون چیزی که داره از اینترنت میاد در جواب اون درخواست باشه( شما یک جلسه TCP برقرار کرده باشید و جوابی که از اینترنت میاد هم تو هموم جلسه باشه)

    انواع دیگه ای مثل Dynamic و ... هم هستند که اگه رسیدم اونارو بعداً اضافه می کنم.

    این ACL ها تو قابلیت ها و تنظیماتشون و قوانین استفاده با هم متفاوت هستند.

    ACL چجوری کار میکنه؟
    فرض کنید روتر ما مثل یک شهر کوچیک میمونه و Packet ها مثل ماشین ها. این شهر 2 یا 3 تا یا بیشتر دروازه برای ارتباط با شهرهای کناریش داره ( interface ها ) و هر ماشینی از این دروازه عبور می کنه 2 حالت بیشتر نداره. یا داره میره داخل روتر (Inbound ) و یا داره از روتر خارج میشه ( outbound ). خب، در حالت عادی همه چی آرومه و کسی موقع رد شدن از دروازه ها واسه ورود و یا خروج به شهر بررسی و تایید نمیشه و همه میتونن وارد یا خارج بشند. اما فرض کنیم که میخوایم دسترسی یکی ازین ماشین هارو به یکی از شهرها محدود کنیم.

    بهتره بریم تو دنیای واقعی:

    هر Packet وقتی میخواد از یک مبداء به یک مقصد بره توی خودش IP مبداء و IP مقصدش نوشته شده. بنابراین میشه چک کرد و دید این پکت داره از کجا میاد و میخواد به کجا بره.

    ما میایم یک ACL روی یکی از interface های روترمون میگذاریم تو جهت ( outbound ) یعنی در واقع اومدیم یک نگهبان استخدام کردیم گذاشتیم تو راه خروجی شهرمون. و یک لیست دادیم دستش که توش نوشته شده اگه مبدا کسی فلان جا بود نگذار عبور کنه یا اگه مبدا کسی فلان جا بود بذار بره و نذار بقیه برن و ....

    حالا این نگهبان میاد واسه هر یکدونه ماشینی که میخواد از دروازه رد بشه میگه ایست!!! و شروع میگنه از بالا جملات لیست رو میخونه و میبینه که آیا با این ماشین مچ هست یا نه. مثلاً تو ACL ی که دست نگهبانمون هست این جملات نوشته شده ( که این IP ها IP مبداء بسته ما هستند )

    Access-List 10:
    permit host 192.168.10.10
    deny host 192.168.10.12
    deny host 172.16.22.12

    permit all
    deny all!!!!!

    و این پکت ما که داره میره بیرون IP مبداءش هست 172.16.22.12



    برای مشخص کردن آدرس IP تو ACL میتونیم از چند روش استفاده کنیم.


    اگه میخوایم یک سیستم خاص و یک IP خاص باشه میتونیم از 2 روش استفاده کنیم.:

    اولی اینکه بنویسیم permit host 192.168.10.10
    دومی اینکه بنویسیم 0.0.0.0 permit 192.168.10.10

    اون صفر ها به Wildcard Bits معروف هستند. هر بایتی که Wildcard ش صفر باشه یعنی اون بایت دقیقاً باید همونی باشه که نوشته شده. و هر بایتی که wildcard ش 255 باشه یعنی اون بایت مهم نیست چی باشه.

    میمونه 2 تا دیگه:

    ایمنکه بخوایم دسترسی یک شبکه خاص رو محدود کنیم. یعنی به جای یک آدرس خاص یک شبکه رو محدود کنیم. اونوقت میایم مینویسیم

    permit 192.168.10.10 0.0.0.255

    یعنی شبکه 192.168.10.0 /24 رو محدود کن

    و برای مشخص کردن همه هم میتونیم هم از wildcard 255.255.255.255 و هم از کلمه any استفاده کنیم.

    ببینیم چه اتفاقی میفته. بعد ازین که نگهبان ما گفت ایست!! میاد میگه: آیا شما 192.168.10.10 هستی؟ ماشین میگه : نه قربان!
    نگهبان : پس آیا شما 192.168.10.12 هستی؟ ماشین: نه قربان!نگهبان : پس آیا شما 172.16.22.12 هستی؟ ماشین : امممم بله قریان! ;)

    به محض شنیدن بله قربان چون توی لیست ما نوشته بود deny یعنی نباید این ماشین عبور کنه نگهبان دیگه باقی لیست رو نمیخونه ( یعنی به محض پیدا کردن اولین مچ باقی لیست رو نگاه نمیکنه) پس نگهبان ما با یک RPG7 میزنه اون ماشین و نیست و نابود میکنه ( Packet رو Drop میکنه )

    اما اون Deny All!!! که قرمز نوشتمش: وقتی ما بیایم یک ACL درست کنیم. وقتی جملاتمون رو بهش اضافه کردیم ( در ادامه میبینیم چجوری) خود روتر همیشه میاد به آخرش یک جمله Deny All اضافه میکنه. حالا فکر کنید ما اون عبارت permit all رو نمیگذاشتیم بالای deny all. اونوقت نگهبان میومد چک میکرد میدید ماشین دیگر ما اولی که نیست. دومی نیست. سومی هم نیست و میرسید به deny all پس در واقع جلوی همه packet ها به جز 192.168.10.10 گرفته میشد . چرا؟ چون این packet با جمله اول ما مچ هست و میگذاره عبور کنه و واسه اون packet باقی لیست رو نگاه نمیکنه.

    واسه اینکه این مشکل حل بشه و جلوی اونایی که تو لیست بهشون اشاره نشده رو نگیره میایم قبل از deny all یک permit all اضافه میکنیم. اینجوری اگه بسته ای با جملات ما مچ نبود، میرسه به permit all و چون all داره به همه اشاره میکنه پس بهش اجازه عبور میده و هیچ وقت به جمله آخر یعنی deny all نمیرسه.


    خب امیدوارم نحوه کار ACL و متوجه شده باشید. توضیحات بالا واسه Standard ACL بود. پس فهمیدیم که Standard فقط میتونه بسته هارو بر اساس Source Ip اونا فیلتر کنه و نه چیز دیگه.

    نحوه ساختن Standard ACL :

    R1 > Enable Enter
    R1# configure terminal Enter
    R1(config)# access-list <1-99> <permit/deny> <source IP> Enter

    مثال:

    R1(config)# access-list 70 deny 192.168.10.5 Enter

    access-list ها هم میتونن اسم دار باشند هم شماره دار. جلوتر درباره اسم دار هاشون هم صحبت می کنیم. خب برای تعریف Standard ACL باید یک عدد بین 1-99 انتخاب کنیم که این بازه برای تعریف Standard هستش. و 100 تا 199 واسه Extended

    بعدش میایم permit یا deny رو انتخاب میکنیم. و در نهایت IP که میخوایم این قوانین روش اجرا بشه رو مینویسیم. بعد از این واسه نوشتن permit all هم مثل همین مینویسیم: Enter
    R1(config)# access-list 70 permit any Enter

    که اینجا کلمه any حکم all رو داره. حالا اگه یک دستور show access-list 70 بزنیم میتونیم محتویات ACL مون رو ببینیم ( اون Deny All رو نمیشه دید )

    برای ست کردن این نگهبان روی یک دروازه خاص ( اینترفیس خاص):
    R1> Enable Enter
    R1# Configure Terminal Enter
    R1(config)# int fa 0/0 Enter
    R1(Config-if)# ip access-group 70 out Enter
    ip و access-group کلمات کلیدی هستند. 70 شماره access-list ی هست که بالا ساختیم و out مشخص میکنه که میخوایم فقط بسته هایی بررسی بشن که دارن از روتر ما با استفاده از اینترفیس fa0/0 خارج میشن.

    ================================================== ===========================
    خب پس فهمیدیم که استاندارد چیه و چجوری میشه تنظیمش کرد. اگه سوالی دارید تو همین تاپیک بپرسید .

    میریم سراغ Extended:

    این ACL هم تنظیماتش مثل Standard هست با این تفاوت که علاوه بر ادرس IP مبدا میشه بسته ها رو براساس پروتکل ارتباطی و ادرس مقصد هم فیلتر کرد.

    R1 > Enable Enter
    R1# configure terminal Enter
    R1(config)# access-list <100-199> <permit/deny> <Protocol ><source IP> <Destination IP> <Destination Port# or Name> Enter

    همونطور که میبینید Extended ACL خیلی طولانی تر هست و خیلی امکانات بیشتری داره. با یک مثال توضیح میدمش.

    مثلاً ما میخوایم کاری کنیم دسترسی یک PC خاص تو شبکه ما به یک سایت خاص ( از اینترنت ) قطع بشه. برای اینکار باید کاری کنیم که اون سیستم نتونه به IP اون سایت دسترسی داشته باشه و چون بحث ما سر سایت هست پس منظور ما TCP 80 یا همون http هست. مراحل:

    1) بدست آوردن آدرس IP سایت ===> این کار خیلی ساده با یک Ping انجام میشه.
    مثلاً میخوایم دسترسی به سایت Facebook رو ببیندیم رو اون سیستم. میایم مینویسیم ping facebook , جوابش میشه 69.63.181.12

    2) میایم تو نزدیکترین روتر به PC مورد نظر یک ACL به صورت زیر میسازیم.:
    R1(config)# access-list 101 deny tcp host 192.168.3.1 host 69.63.181.12 80
    R1(config)# access-list 101 permit ip any any
    R1(config)# int fa0/0
    R1(config-if)# ip access-group 101 in
    خب تموم شد.

    حالا توضیح:
    این سیستم ما که IPش هست 192.168.3.1 واسه اینکه بیاد برسه به روتری که به اینترنت وصل هست خودش از چند تا روتر عبور میکنه( شبکه لوکال ما اینجوریه ). اولین روتری که بهش میرسه R1 هست. یادتون باشه Standard ACL باید تو نزدیکترین روتر و اینترفیس به مقصد و Extended ACL باید تو نزدیک ترین روتر و اینترفیس به مبداء تنظیم بشه.
    access-list که دستورشه. 101 شماره ACL ماست. همونطور که بالاتر گفتم اگه 100-199 انتخاب کنیم خود روتر میفهمه که میخوایم Extended ACL بسازیم. TCP پروتکل ماست. یعنی فقط بسته هایی که مبدا و مقصدشون اون ای پی که ذکر شده هستند و از TCP استفاده میکنند و پورت مقصدشون هم HTTP یا همون 80 هست رو deny کن. یعنی اینکه این PC ما میتونه مثلاً با FTP اون سایت کار کنه و.... ولی اون سایت خاص رو با اکسپلورر یا فایرفاکس با HTTP نمیتونه باز کنه.

    حالا اگه بخوایم کلاً دسترسی این سیستم رو به یک IP خاص واسه همه پروتکل ها ببیندیم میایم به جای TCP مینویسیم IP
    IP شامل همه پروتکل ها میشه.

    همونطور که تو Standard باید یک جمله permit any اضافه میکردیم ( دلیلشو بالا توضیح دادم) تو extended هم باید تعریف بشه اما یکمی متفاوت هست.
    permit که همون permit هست. ip یعنی همه پروتکل ها. any اولی یعنی از هر جایی که اومده. any دومی یعنی به هر جایی که بخواد بره بذار بره.
    access-list 101 permit ip any any
    و در نهایت میایم تو اولین روتر و اولین اینترفیسش ( قبل از ورود به روتر ) این رو ست می کنیم. و چون داریم روی اینترفیس ورودی اینکارو می کنیم پس میگیم inbound یعنی موقع ورود بسته به روتر چک بشه.

    برای دیدن تنظیمات ACL و ACL هایی که روی یک روتر ساخته شده میتونید اینکارو انجام بدید.
    R1# show access-lists
    یا
    R1# show access-list <access-list #/Name> k

    بزودی Reflexive ACL هم همینجا هوا میکنم تا بحث ACL در حد CCNA تموم بشه. فایل تمرینیPacket tracer خودم رو هم که اینا روش اجرا کردم میگذارم بزودی.


    موضوعات مشابه:
    ویرایش توسط ناصر آرام نژاد : 25th August 2011 در ساعت 12:04 PM
    Hossein و soroush این را میپسندند

  2. #2
    بنیانگذار
    تاریخ عضویت
    2010 January
    محل سکونت
    زیر سایه خدا
    سن
    37
    ارسال ها
    1,308
    تشکر
    2,923
    تشکر شده 2,205 بار در 886 پست
    نوشته های وبلاگ
    37


    آيا اين پست براي شما سودمند بود؟ بله | خیر
    بسیار عالی .
    keep up the good work son:D

    توکل بخدا
    http://DeepLearning.ir
    اولین و تنها مرجع یادگیری عمیق ایران


    هرکس از ظن خود شد یار من
    از درون من نجست اسرار من




 

 

کاربران برچسب خورده در این موضوع

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  


Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.6.0
Persian Language By Ustmb.ir
این انجمن کاملا مستقل بوده و هیچ ارتباطی با دانشگاه علوم و فنون مازندران و مسئولان آن ندارد..این انجمن و تمامی محتوای تولید شده در آن توسط دانشجویان فعلی و فارغ التحصیل ادوار گذشته این دانشگاه برای استفاده دانشجویان جدید این دانشگاه و جامعه دانشگاهی کشور فراهم شده است.لطفا برای اطلاعات بیشتر در رابطه با ماهیت انجمن با مدیریت انجمن ارتباط برقرار کنید
ساعت 08:37 AM بر حسب GMT +4 می باشد.