لیست کنترل دسترسی (ACL)
لیست کنترل دسترسی (ACL) سازوکار امنیتی اصلی راکارد برای تعیین کاربرانی است که میتوانند با دستگاه شما نشست console یا terminal برقرار کنند. ACL مشخص میکند که درخواست اتصال ورودی یک کاربر مجاز یا رد شود.
بدون پیکربندی صحیح ACL، دسترسی ممکن است کاملاً آزاد یا بهطور کامل مسدود باشد. ACL امکان کنترل دقیق دسترسی را به تفکیک کاربر، سرور و نوع نشست فراهم میکند.
مفاهیم اصلی
پیش از بررسی دستورها، با سه مؤلفه اصلی زیر آشنا شوید:
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, enable | RULES |
allowlist, allow-list, whitelist | ALLOWLIST |
denylist, deny-list, blocklist | DENYLIST |
مدیریت قوانین (Policy RULES)
قوانین با گروه دستور acl rule مدیریت میشوند و فقط زمانی اثر دارند که policy فعال RULES باشد.
اضافه کردن قانون
قانون را میتوان به سه روش اضافه کرد:
مثالهای کامل:
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
برای عبور از راهنمای تعاملی، همه آرگومانهای لازم را از ابتدا وارد کنید یا از --flags استفاده کنید.
گردشکارهای معمول
گردشکار ۱: قفل کردن دستگاه به چند کاربر مورد اعتماد
گردشکار ۲: دسترسی باز ولی مسدود کردن عوامل مخرب خاص
گردشکار ۳: کنترل دقیق per-user
بهترین شیوهها
- برای آزمایش اولیه با DENYLIST شروع کنید تا دسترسی بدون محدودیت فراهم باشد.
- به ALLOWLIST یا RULES سوییچ کن برای محیطهای تولیدی یا حساس.
- پیش از اعمال تغییرات،
acl showرا اجرا کنید تا وضعیت فعلی مشخص باشد. - ACL را با گذرواژه ترکیب کنید (
password set) تا محافظت دولایه فراهم شود. - ACL را بهصورت دورهای بازبینی کنید و ورودیهای قدیمی را حذف کنید.
رفع مشکل
مرجع دستورات
| دستور | هدف |
|---|---|
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> | حذف ورودی لیست ممنوعه |