ACL در شبکه
جواب کوتاه
ACL (Access Control List، فهرست کنترل دسترسی) در شبکه فهرستی از خطهاست روی روتر یا سوییچ که میگوید کدام بستهها، بر پایهی نشانی IP و پورت، بگذرند یا نه. خطها از بالا سنجیده میشوند و نخستین خطی که جور شد تصمیم میگیرد؛ آخر هر ACL یک رد پنهان هست. ACL ساده فقط مبدأ را میسنجد و ACL گسترده مبدأ، مقصد، پروتکل و پورت را. بهتر است ACL نزدیک مبدأ ترافیک گذاشته شود. (ACL زانو چیز دیگری است.)
نام
ACL کوتاهشدهی Access Control List است: «فهرست کنترل دسترسی». فهرستی از اجازهها که میگوید چه کسی یا چه چیزی به یک منبع دسترسی دارد. در شبکه، ACL روی روترها و سوییچها مینشیند و با نشانیهای IP و شمارهی پورتها میگوید کدام ترافیک بگذرد و کدام نه.
اگر دنبال «ACL زانو» آمدهاید: آن نام یک رباط زانو در پزشکی است و به این درس ربطی ندارد. این درس دربارهی شبکه است.
چهار کلمه
- خط (entry)هر سطر ACL: اگر بسته این ویژگیها را داشت، اجازه بده یا رد کن.
- اجازه و رد (permit و deny)دو کاری که هر خط میکند: بگذار بگذرد، یا نگذار.
- ردِ پنهانخط نانوشتهی آخر هر ACL: هر چه صریحا اجازه نگرفته، رد میشود.
- wildcard maskماسکی وارونهی سابنت مسک: ۰ یعنی باید جور باشد، ۱ یعنی مهم نیست.
فهرست مهمانهای یک عروسی
فرض کنید میزبان یک عروسی دم در باغ ایستاده و فهرستی در دست دارد. هر مهمانی که میرسد، فهرست را از بالا میخواند: خانوادهها به سالن، همسایهها فقط به حیاط، آشپزها به آشپزخانه. نخستین خطی که با مهمان جور شد، تصمیم میگیرد. و کسی که در فهرست نیست، وارد نمیشود؛ حتی اگر هیچجای فهرست ننوشته باشند «نه».
ACL همین فهرست است. میزبان روتر است، مهمانها بستهها، و سالن و حیاط و آشپزخانه بخشهای شبکه. در درس فایروال دیدید که فیلتر بسته با همین فهرست کار میکند.
ساده و گسترده
روترها معمولا دو گونه ACL دارند. فرقشان در این است که میزبان چند سؤال میپرسد:
wildcard mask
برای گفتن «همهی دستگاههای یک شبکه» در ACL، بهجای سابنت مسک از «wildcard mask» یا ماسک وارونه استفاده میکنند. کارش برعکس سابنت مسک است: هر ۰ یعنی این بیت باید دقیقا جور باشد، و هر ۱ یعنی مهم نیست. مثلا 0.0.0.255 یعنی سه بخش اول نشانی باید دقیقا همان باشد و بخش آخر هر چه باشد:
ورودی و خروجی
ACL روی یک رابط (interface) روتر گذاشته میشود، و میتواند ورودی باشد یا خروجی. ورودی: وقتی بسته به رابط میرسد، پیش از آنکه از روتر بگذرد، سنجیده میشود. خروجی: بسته از روتر گذشته و مسیرش پیدا شده، و پیش از بیرون رفتن از رابط سنجیده میشود.
جای درست: نزدیک مبدأ
اگر میخواهید ترافیکی را ببندید، بهتر است ACL را روی رابطی بگذارید که به مبدأ آن ترافیک نزدیکتر است؛ مثل میزبانی که دم در باغ میپرسد، نه دم در آخرین سالن.
ACL و فایروال
ACL ترافیک ورودی و خروجی را کنترل میکند، و از این نظر شبیه فایروال است؛ هم روتر میتواند ACL داشته باشد و هم سرور. ولی ACL بیشتر فهرست سادهای از نشانی و پورت است، و فایروالهای تازهتر کارهای بیشتری میکنند.
یک نکته: میشود ACL را با نام دامنه هم نوشت، ولی کار درستی نیست؛ چون سرآیند بستهها نام دامنه ندارد و دستگاه باید جداگانه نام را به نشانی برساند، و همین راه تازهای برای حمله باز میکند.
سه اشتباه
- «هر چه در فهرست نیست، میگذرد.»برعکس؛ آخر هر ACL یک رد پنهان هست، پس هر چه صریحا اجازه نگرفته، رد میشود.
- «یک خط رد کافی است، بقیه خودشان میگذرند.»ACLی که فقط یک خط رد دارد، همه را رد میکند؛ دستکم یک خط اجازه لازم است.
- «wildcard mask همان سابنت مسک است.»وارونهی آن است: در wildcard، ۰ یعنی دقیقا جور و ۱ یعنی مهم نیست؛ مثلا 0.0.0.255 بهجای 255.255.255.0.
جمعبندی. آنچه از این درس با خودتان میبرید.
- ACL شبکه: فهرست اجازه و رد بر پایهی نشانی IP و پورت، روی روتر و سوییچ.
- خطها از بالا؛ نخستین خط جور تصمیم میگیرد؛ پرکاربردها بالا.
- آخر هر ACL ردِ پنهان؛ دستکم یک خط اجازه لازم است.
- ساده: فقط مبدأ؛ گسترده: مبدأ، مقصد، پروتکل، پورت.
- wildcard mask: ۰ یعنی جور، ۱ یعنی مهم نیست.
- ورودی یا خروجی روی رابط؛ بهتر نزدیک مبدأ.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.