پرش به مطلب اصلی

لیست کنترل دسترسی (ACL)

لیست کنترل دسترسی (ACL) سازوکار امنیتی اصلی راکارد برای تعیین کاربرانی است که می‌توانند با دستگاه شما نشست console یا terminal برقرار کنند. ACL مشخص می‌کند که درخواست اتصال ورودی یک کاربر مجاز یا رد شود.

چرا ACL مهمه؟

بدون پیکربندی صحیح ACL، دسترسی ممکن است کاملاً آزاد یا به‌طور کامل مسدود باشد. ACL امکان کنترل دقیق دسترسی را به تفکیک کاربر، سرور و نوع نشست فراهم می‌کند.

مفاهیم اصلی​

پیش از بررسی دستورها، با سه مؤلفه اصلی زیر آشنا شوید:

حالت فعالPolicyحالت فعالدر حالت RULES استفاده می‌شودRulesدر حالت RULES استفاده می‌شوددر ALLOWLIST / DENYLIST استفاده می‌شودListsدر ALLOWLIST / DENYLIST استفاده می‌شوداجازه یا ردتصمیم اتصالاجازه یا رد

Policy (سیاست)​

Policy رفتار کلی ACL را تعیین می‌کند. در هر زمان فقط یک policy فعال است. راکارد از سه policy اصلی پشتیبانی می‌کند:

  • RULES — کنترل دقیق و صریح allow/deny برای هر هدف
  • ALLOWLIST — همه اهداف به‌طور پیش‌فرض مسدود هستند و فقط اهداف فهرست‌شده می‌توانند متصل شوند.
  • DENYLIST — همه اهداف به‌طور پیش‌فرض مجاز هستند و فقط اهداف فهرست‌شده مسدود می‌شوند.

Rules (قوانین)​

Rules فقط زمانی استفاده می‌شوند که policy فعال RULES باشد. هر قانون، ترکیب مشخصی از سرور، شناسه هدف و نوع نشست را به‌صراحت مجاز یا رد می‌کند.

Lists (لیست‌ها)​

Lists (فهرست مجاز و فهرست ممنوع) در policyهای ALLOWLIST و DENYLIST استفاده می‌شوند و شامل اهدافی هستند که باید مجاز یا مسدود شوند.

مهم

تغییر policy، قوانین یا فهرست‌های ذخیره‌شده را حذف نمی‌کند. این موارد حفظ می‌شوند و با انتخاب دوباره policy مربوطه فعال خواهند شد.

توضیح سه Policy​

Policy RULES​

در policy RULES، قوانین صریح allow/deny برای هر هدف تعریف می‌شوند. هر هدفی که قانون منطبق نداشته باشد، به‌صورت خودکار رد می‌شود.

کاربرد مناسب: محیط‌هایی که به کنترل دقیق برای هر هدف نیاز دارند.

سناریوی نمونه: دسترسی console برای کاربر alice-123 مجاز و دسترسی terminal او رد شود؛ در عین حال، همه دسترسی‌های کاربر bob-456 به‌صراحت رد شوند.

نحوه فعال‌سازی
acl policy rules

Policy ALLOWLIST​

در policy ALLOWLIST، همه اهداف به‌طور پیش‌فرض رد می‌شوند. فقط اهدافی که به‌صراحت به فهرست مجاز افزوده شده‌اند می‌توانند متصل شوند.

کاربرد مناسب: محیط‌های با امنیت بالا که فقط مجموعه کوچک و مشخصی از کاربران مورد اعتماد هستند.

لیست مجاز خالی = قفل کامل

فعال‌سازی ALLOWLIST با یک فهرست خالی، اتصال همه کاربران را مسدود می‌کند. پیش از فعال‌سازی این policy، حداقل یک ورودی اضافه کنید.

نحوه فعال‌سازی
acl policy allowlist

Policy DENYLIST​

در policy DENYLIST، همه اهداف به‌طور پیش‌فرض مجاز هستند. فقط اهدافی که به‌صراحت به فهرست ممنوع افزوده شده‌اند مسدود می‌شوند.

کاربرد مناسب: محیط‌های باز که فقط به مسدودسازی عوامل مخرب مشخص نیاز دارند.

نحوه فعال‌سازی
acl policy denylist

مشاهده‌ی وضعیت فعلی ACL​

برای دیدن policy فعلی و همه‌ی قوانین یا ورودی‌های لیست، اجرا کن:

acl show

یا به‌سادگی:

acl

خروجی شامل این‌هاست:

  • policy فعال با توضیح کوتاه
  • تعداد قوانین یا ورودی‌های لیست
  • جدولی که هر ورودی را همراه با شماره ایندکس نمایش می‌دهد.
نام‌های مستعار

دستور acl show دارای نام‌های مستعار acl get، acl list، acl view و acl ls است. همه این دستورها خروجی یکسانی دارند.

نمونه خروجی​

ACL
Policy: RULES
Each rule explicitly allows or denies a target. Unmatched targets are denied.
Entries: 2 (allow 1, deny 1)

Rules (2)
┌───┬────────┬──────────┬───────────┬──────────┐
│ # │ Action │ Type │ Target │ Server │
├───┼────────┼──────────┼───────────┼──────────┤
│ 1 │ allow │ console │ alice-123 │ rakaard │
│ 2 │ deny │ terminal │ bob-456 │ rakaard │
└───┴────────┴──────────┴───────────┴──────────┘

ستون # شماره ایندکسی را نشان می‌دهد که در دستورهای edit و remove استفاده می‌شود.

مدیریت Policyها​

تغییر Policy فعال​

acl policy <rules|allowlist|denylist>

مثال‌ها:

acl policy rules
acl policy allowlist
acl policy denylist

برای رد شدن از پیغام تأیید (مفید برای اسکریپت‌ها):

acl policy denylist --yes

نام‌های مستعار پذیرفته‌شده برای Policy​

برای تعیین policy می‌توان از هر یک از مقادیر زیر استفاده کرد:

مقدار ورودیتفسیر به‌عنوان
rules, rule, enableRULES
allowlist, allow-list, whitelistALLOWLIST
denylist, deny-list, blocklistDENYLIST

مدیریت قوانین (Policy RULES)​

قوانین با گروه دستور acl rule مدیریت می‌شوند و فقط زمانی اثر دارند که policy فعال RULES باشد.

اضافه کردن قانون​

قانون را می‌توان به سه روش اضافه کرد:

0/30%

مثال‌های کامل:

acl rule add rakaard alice-123 console allow
acl rule add --server rakaard --target bob-456 --type terminal --deny
acl rule add

ویرایش قانون​

ابتدا ایندکس قانون را با acl show پیدا کرده و سپس دستور زیر را اجرا کنید:

acl rule edit <index> [flags]

فقط فیلدهایی که با flag مشخص شده‌اند تغییر می‌کنند؛ سایر فیلدها بدون تغییر باقی می‌مانند.

مثال‌ها:

acl rule edit 3 --target new-user-id
acl rule edit 1 --type terminal
acl rule edit 2 --deny
acl rule edit 2 --allow --server backup-server

حذف قانون​

acl rule remove <index>

دستور درخواست تأیید می‌کند. برای عبور از تأیید، دستور زیر را اجرا کنید:

acl rule remove 3 --yes
نام‌های مستعار

دستور acl rule remove با نام‌های acl rule rm، acl rule delete و acl rule del نیز قابل اجرا است.

مدیریت لیست مجاز (Policy ALLOWLIST)​

فهرست مجاز با acl allowlist مدیریت می‌شود. ورودی‌های آن فقط زمانی اثر دارند که policy فعال ALLOWLIST باشد.

اضافه کردن ورودی​

برخلاف قوانین، ورودی‌های allowlist به action مجاز/رد نیاز ندارند و به‌طور ضمنی مجاز هستند.

acl allowlist add <server> <target> <console|terminal>

مثال‌ها:

acl allowlist add rakaard alice-123 console
acl allowlist add --server rakaard --target alice-123 --type terminal
acl allowlist add

ویرایش ورودی​

acl allowlist edit <index> [flags]

مثال:

acl allowlist edit 1 --target new-alice-id

حذف ورودی​

acl allowlist remove <index>
نام‌های مستعار

دستور acl allowlist با نام‌های acl allow-list و acl whitelist نیز قابل اجرا است.

مدیریت لیست ممنوعه (Policy DENYLIST)​

فهرست ممنوع با acl denylist مدیریت می‌شود. ورودی‌های آن فقط زمانی اثر دارند که policy فعال DENYLIST باشد.

اضافه کردن ورودی​

acl denylist add <server> <target> <console|terminal>

مثال‌ها:

acl denylist add rakaard spammer-999 console
acl denylist add --server rakaard --target spammer-999 --type terminal
acl denylist add

ویرایش و حذف​

الگوی مشابه لیست مجاز:

acl denylist edit <index> [flags]
acl denylist remove <index>
نام‌های مستعار

دستور acl denylist با نام‌های acl deny-list، acl blocklist و acl block-list نیز قابل اجرا است.

انواع جلسه​

هر قانون و ورودی فهرست، یک نوع نشست مشخص را هدف قرار می‌دهد:

نوعمعنی
consoleجلسات دسکتاپ راه دور مبتنی بر GUI (VNC)
terminalجلسات shell متنی

برای یک هدف می‌توان قوانین جداگانه تعریف کرد؛ برای مثال، دسترسی console مجاز و دسترسی terminal رد شود.

راهنمای گام‌به‌گام Wizard تعاملی​

هنگام اجرای دستور add یا edit بدون آرگومان‌های کامل، راکارد یک راهنمای تعاملی برای دریافت مقادیر باقی‌مانده اجرا می‌کند:

rakaard> acl rule add
i Interactive wizard — fill in the missing values.
? Server (name/key/id) [rakaard]: rakaard
? Target ID: alice-123
? Type [console] (console/terminal): console
? Action [allow] (allow/deny): allow
OK Added rule: allow console target=alice-123 server=rakaard
رد شدن از wizard

برای عبور از راهنمای تعاملی، همه آرگومان‌های لازم را از ابتدا وارد کنید یا از --flags استفاده کنید.

گردش‌کارهای معمول​

گردش‌کار ۱: قفل کردن دستگاه به چند کاربر مورد اعتماد​

0/40%

گردش‌کار ۲: دسترسی باز ولی مسدود کردن عوامل مخرب خاص​

0/30%

گردش‌کار ۳: کنترل دقیق per-user​

0/40%

بهترین شیوه‌ها​

توصیه‌ها
  • برای آزمایش اولیه با DENYLIST شروع کنید تا دسترسی بدون محدودیت فراهم باشد.
  • به ALLOWLIST یا RULES سوییچ کن برای محیط‌های تولیدی یا حساس.
  • پیش از اعمال تغییرات، acl show را اجرا کنید تا وضعیت فعلی مشخص باشد.
  • ACL را با گذرواژه ترکیب کنید (password set) تا محافظت دولایه فراهم شود.
  • ACL را به‌صورت دوره‌ای بازبینی کنید و ورودی‌های قدیمی را حذف کنید.

رفع مشکل​

کاربر مجاز نمی‌تواند متصل شود
کاربر مسدودشده همچنان می‌تواند متصل شود
بعد از سوییچ به ALLOWLIST قفل شدم بیرون

مرجع دستورات​

دستورهدف
acl یا acl showنمایش وضعیت فعلی ACL
acl policy rulesفعال‌سازی policy RULES
acl policy allowlistفعال‌سازی policy ALLOWLIST
acl policy denylistفعال‌سازی policy DENYLIST
acl rule addاضافه کردن قانون (policy RULES)
acl rule edit <index>ویرایش قانون
acl rule remove <index>حذف قانون
acl allowlist addاضافه کردن ورودی به لیست مجاز
acl allowlist edit <index>ویرایش ورودی لیست مجاز
acl allowlist remove <index>حذف ورودی لیست مجاز
acl denylist addاضافه کردن ورودی به لیست ممنوعه
acl denylist edit <index>ویرایش ورودی لیست ممنوعه
acl denylist remove <index>حذف ورودی لیست ممنوعه

سؤالات متداول​

آیا تغییر policy باعث حذف قوانین می‌شود؟
آیا یک کاربر می‌تواند هم در فهرست مجاز و هم در فهرست ممنوع قرار داشته باشد؟
تفاوت RULES و ALLOWLIST چیست؟
ACL چگونه با گذرواژه تعامل دارد؟
آیا تغییرات ACL قابل اسکریپت‌نویسی هستند؟