SNMPVACM(1) Net-SNMP SNMPVACM(1)

snmpvacm - ایجاد و نگهداری مدخل‌های کنترل دسترسی مبتنی بر نما (VACM) برای SNMPv3 در یک موجودیت شبکه

snmpvacm [COMMON OPTIONS] AGENT createSec2Group MODEL SECURITYNAME GROUPNAME
snmpvacm [COMMON OPTIONS] AGENT deleteSec2Group MODEL SECURITYNAME
snmpvacm [COMMON OPTIONS] AGENT createView [-Ce] NAME SUBTREE MASK
snmpvacm [COMMON OPTIONS] AGENT deleteView NAME SUBTREE
snmpvacm [COMMON OPTIONS] AGENT createAccess GROUPNAME [CONTEXTPREFIX] MODEL LEVEL CONTEXTMATCH READVIEW WRITEVIEW NOTIFYVIEW
snmpvacm [COMMON OPTIONS] AGENT deleteAccess GROUPNAME [CONTEXTPREFIX] MODEL LEVEL
snmpvacm [COMMON OPTIONS] AGENT createAuth GROUPNAME [CONTEXTPREFIX] MODEL LEVEL AUTHTYPE CONTEXTMATCH VIEW
snmpvacm [COMMON OPTIONS] AGENT deleteAuth GROUPNAME [CONTEXTPREFIX] MODEL LEVEL AUTHTYPE

دستور snmpvacm یک برنامهٔ کاربردی SNMP است که می‌تواند برای انجام نگهداری‌های ساده روی جدول‌های ماژول کنترل دسترسی مبتنی بر نما (VACM) در یک کارگزار SNMP استفاده شود. مشخصات VACM در پروتکل SNMPv3 (ببینید RFC2575) جدول‌های گوناگونی را برای تعیین گروه‌های کاربری، نماهای MIB و تنظیمات دسترسی مجاز تعریف می‌کند. این دستورهای snmpvacm عملاً سطرهایی را در جدول مناسب ایجاد یا حذف می‌کنند و با دستورالعمل‌های پیکربندی معادل که در صفحهٔ راهنمای snmpd.conf(5) مستند شده‌اند، مطابقت دارند.

توضیحات کامل‌تر دربارهٔ نحوهٔ عملکرد این موارد را می‌توان در بخش سؤالات متداول (FAQ) پروژه یافت.

یک مدخل در جدول نام امنیتی به گروه در SNMPv3 ایجاد می‌کند. این جدول اجازه می‌دهد یک مدخل کنترل دسترسی منفرد به چندین کاربر (یا «اصیل»ها / principals) اعمال شود و با مقادیر مدل امنیتی و نام امنیتی نمایه‌گذاری می‌شود.

MODEL

یک عدد صحیح که بیانگر مدل امنیتی است و یکی از مقادیر زیر را می‌پذیرد:
1 - رزرو شده برای SNMPv1
2 - رزرو شده برای SNMPv2c
3 - مدل امنیتی مبتنی بر کاربر (USM)

SECURITYNAME

رشته‌ای که نام امنیتی یک اصیل را نشان می‌دهد (در قالبی مستقل از مدل امنیتی ارائه می‌شود). برای درخواست‌های مبتنی بر USM، نام امنیتی همان نام کاربری است.

GROUPNAME

رشته‌ای که گروهی را مشخص می‌کند که این مدخل (یعنی جفت نام امنیتی/مدل) باید به آن تعلق داشته باشد. سپس در جدول دسترسی به این نام گروه ارجاع داده خواهد شد (ببینید createAccess در زیر).

یک مدخل را از جدول نام امنیتی به گروه در SNMPv3 حذف می‌کند و بدین ترتیب تنظیمات کنترل دسترسی را برای اصیل موردنظر پاک می‌نماید. مدخلی که باید حذف شود با مقادیر MODEL و SECURITYNAME نمایه‌گذاری می‌شود که باید با مقادیر استفاده‌شده در دستور متناظر createSec2Group (یا معادل آن) مطابقت داشته باشند.

یک مدخل در جدول نمای MIB در SNMPv3 ایجاد می‌کند. یک نمای MIB شامل خانواده‌ای از زیردرخت‌های نما است که ممکن است به صورت جداگانه در نما گنجانده شده یا (گاهی اوقات) از آن مستثنی شوند. هر زیردرخت نما با ترکیبی از یک زیردرخت OID به همراه یک ماسک رشته بیتی تعریف می‌شود. جدول نما بر اساس نام نما و مقادیر OID زیردرخت نمایه‌گذاری می‌شود.

[-Ce]

یک فلگ اختیاری برای مشخص کردن اینکه این زیردرخت نما باید از نمای نام‌گذاری‌شده مستثنی شود. اگر مشخص نشود، حالت پیش‌فرض گنجاندن زیردرخت در نما است. هنگام ساخت یک نما از ترکیبی از زیردرخت‌های گنجانده‌شده و مستثنی‌شده، زیردرخت‌های مستثنی‌شده باید ابتدا تعریف شوند - به‌ویژه اگر نمای نام‌گذاری‌شده قبلاً در یک یا چند مدخل دسترسی ارجاع داده شده باشد.

NAME

رشته‌ای برای شناسایی یک نمای MIB خاص، که این زیردرخت OID/ماسک بخشی از آن (یا احتمالاً تنها بخش آن) را تشکیل می‌دهد.

SUBTREE

شناسه OID که ریشه زیردرخت را برای افزودن به (یا مستثنی کردن از) نمای نام‌گذاری‌شده تعریف می‌کند.

MASK

یک ماسک بیتی که مشخص می‌کند کدام زیرشناسه‌های OID زیردرخت مرتبط باید معنادار در نظر گرفته شوند.

یک مدخل را از جدول نمای SNMPv3 حذف می‌کند و بدین ترتیب زیردرخت را از نمای MIB داده‌شده برمی‌دارد. حذف آخرین (یا تنها) زیردرخت منجر به حذف کل نما خواهد شد. مدخلی که باید حذف شود با مقادیر NAME و SUBTREE نمایه‌گذاری می‌شود که باید با مقادیر استفاده‌شده در دستور متناظر createView (یا معادل آن) مطابقت داشته باشند.

هنگام حذف زیردرخت‌ها از یک نمای ترکیبی (یعنی شامل هر دو نوع زیردرخت‌های گنجانده‌شده و مستثنی‌شده)، زیردرخت‌های گنجانده‌شده باید ابتدا حذف شوند.

یک مدخل در جدول دسترسی SNMPv3 ایجاد می‌کند و به این ترتیب سطح مشخصی از دسترسی به نماهای خاص MIB را برای اصیل‌های موجود در گروه تعیین‌شده (با فرض ارائه مدل و سطوح امنیتی مناسب در درخواست) مجاز می‌سازد. جدول دسترسی بر اساس مقادیر نام گروه، پیشوند بافت (context prefix)، مدل امنیتی و سطح امنیتی نمایه‌گذاری می‌شود.

GROUPNAME

نام گروهی که این مدخل دسترسی به آن اعمال می‌شود (همان‌طور که توسط دستور createSec2Group یا معادل آن تنظیم شده است)

CONTEXTPREFIX

رشته‌ای که نمایانگر نام یک بافت (یا مجموعه‌ای از نام‌های بافت) است که این مدخل دسترسی به آن اعمال می‌شود. تفسیر این رشته به مقدار فیلد CONTEXTMATCH بستگی دارد (زیر را ببینید).
در صورت حذف، مقدار پیش‌فرض آن بافت تهی "" خواهد بود.

MODEL

یک عدد صحیح که بیانگر مدل امنیتی است و یکی از مقادیر زیر را می‌پذیرد:
1 - رزرو شده برای SNMPv1
2 - رزرو شده برای SNMPv2c
3 - مدل امنیتی مبتنی بر کاربر (USM)

LEVEL

یک عدد صحیح که بیانگر حداقل سطح امنیتی است و یکی از مقادیر زیر را می‌پذیرد:
1 - noAuthNoPriv
2 - authNoPriv
3 - authPriv
این مدخل دسترسی به درخواست‌های با این سطح یا بالاتر اعمال خواهد شد (که در آن authPriv بالاتر از authNoPriv است و آن نیز به نوبه خود بالاتر از noAuthNoPriv قرار دارد).

CONTEXTMATCH

نحوه تفسیر مقدار CONTEXTPREFIX را مشخص می‌کند. اگر این فیلد مقدار '1' (به معنی 'exact' یا دقیق) داشته باشد، نام بافت یک درخواست باید دقیقاً با مقدار CONTEXTPREFIX مطابقت داشته باشد تا این مدخل دسترسی برای آن درخواست قابل اعمال باشد.
اگر این فیلد دارای مقدار '2' (به معنی 'prefix' یا پیشوند) باشد، زیررشته ابتدایی نام بافتِ درخواست باید با مقدار CONTEXTPREFIX مطابقت داشته باشد تا این مدخل دسترسی برای آن درخواست اعمال شود. این یک شکل ساده از نویسه عمومی (wildcarding) را فراهم می‌کند.

READVIEW

نام نمای MIB (همان‌طور که توسط createView یا معادل آن تنظیم شده است) که اشیای MIB را تعریف می‌کند که این درخواست ممکن است مقادیر فعلی آن‌ها را بخواند.
اگر نمایی با این نام وجود نداشته باشد، دسترسی خواندن داده نمی‌شود.

WRITEVIEW

نام نمای MIB (همان‌طور که توسط createView یا معادل آن تنظیم شده است) که اشیای MIB را تعریف می‌کند که این درخواست ممکن است مقادیر جدیدی را برای آن‌ها مقداردهی (SET) کند.
اگر نمایی با این نام وجود نداشته باشد، دسترسی خواندن داده نمی‌شود.

NOTIFYVIEW

نام نمای MIB (همان‌طور که توسط createView یا معادل آن تنظیم شده است) که اشیای MIB مجاز برای گنجانده شدن در درخواست اعلان را تعریف می‌کند.
توجه داشته باشید که این جنبه از کنترل دسترسی در حال حاضر پشتیبانی نمی‌شود.

یک مدخل را از جدول دسترسی SNMPv3 حذف می‌کند و در نتیجه تنظیمات کنترل دسترسی مشخص‌شده را پاک می‌نماید. مدخلی که باید حذف شود با مقادیر نام گروه، پیشوند بافت، مدل امنیتی و سطح امنیتی نمایه‌گذاری می‌شود که باید با مقادیر استفاده‌شده در دستور متناظر createAccess (یا معادل آن) مطابقت داشته باشند.

یک مدخل در افزونه Net-SNMP برای جدول دسترسی استاندارد ایجاد می‌کند و بدین ترتیب نوع خاصی از دسترسی به نمای MIB را برای اصیل‌های موجود در گروه مشخص‌شده مجاز می‌سازد. تفسیر GROUPNAME، CONTEXTPREFIX، MODEL، LEVEL و CONTEXTMATCH همانند دستورالعمل createAccess است. جدول دسترسی افزونه بر اساس مقادیر نام گروه، پیشوند بافت، مدل امنیتی، سطح امنیتی و authtype نمایه‌گذاری می‌شود.

AUTHTYPE

نوع دسترسی که این مدخل باید به آن اعمال شود. برای جزئیات نشانه‌های معتبر به snmpd.conf(5) و snmptrapd.conf(5) مراجعه کنید.

VIEW

نام نمای MIB (همان‌طور که توسط createView یا معادل آن تنظیم شده است) که اشیای MIB مجاز برای این نوع دسترسی را تعریف می‌کند.

یک مدخل را از جدول دسترسی افزونه حذف می‌کند و در نتیجه تنظیمات کنترل دسترسی مشخص‌شده را پاک می‌نماید. مدخلی که باید حذف شود با مقادیر نام گروه، پیشوند بافت، مدل امنیتی، سطح امنیتی و authtype نمایه‌گذاری می‌شود که باید با مقادیر استفاده‌شده در دستور متناظر createAuth (یا معادل آن) مطابقت داشته باشند.

توجه داشته باشید که snmpget نیازمند یک آرگومان برای تعیین کارگزار مورد پرس‌وجو است، همان‌طور که در صفحهٔ راهنمای snmpcmd(1) توضیح داده شده است.

با فرض وجود کاربری از قبل به نام dave (که می‌توان آن را با دستور snmpusm(1) تنظیم کرد)، می‌توانیم دسترسی کامل خواندن و نوشتن به کل درخت OID را با استفاده از دستورهای زیر پیکربندی کنیم:

snmpvacm localhost createSec2Group 3 dave RWGroup
snmpvacm localhost createView all .1 80
snmpvacm localhost createAccess RWGroup 3 1 1 all all none

این دستورات یک گروه امنیتی جدید به نام «RWGroup» شامل کاربر SNMPv3 به نام «dave» ایجاد می‌کنند، یک نمای جدید «all» شامل کل درخت OID مبتنی بر .iso(1) ایجاد می‌نمایند و سپس به کاربران گروه «RWGroup» (یعنی «dave») هر دو دسترسی خواندن و نوشتن را به نمای «all» (یعنی کل درخت OID) هنگام استفاده از درخواست‌های احراز هویت‌شدهٔ SNMPv3 اعطا می‌کنند.

به عنوان مثال دوم، می‌توانیم دسترسی فقط-خواندنی به بخشی از درخت OID را با استفاده از دستورهای زیر برقرار کنیم:

snmpvacm localhost createSec2Group 3 wes ROGroup
snmpvacm localhost createView sysView system fe
snmpvacm localhost createAccess ROGroup 3 0 1 sysView none none

این دستورات یک گروه امنیتی جدید به نام «ROGroup» شامل کاربر (از قبل موجودِ) «wes» ایجاد می‌کنند، یک نمای جدید «sysView» شامل بخش درخت OID مبتنی بر .iso(1).org(3).dod(6).inet(1).mgmt(2).mib-2(1).system(1) ایجاد می‌نمایند و سپس به کاربران این گروه «ROGroup» (یعنی «wes») دسترسی خواندن، اما نه دسترسی نوشتن، به نمای «sysView» (یعنی گروه system) می‌دهند.

مقادیر خروج زیر بازگردانده می‌شوند:

0 - اتمام موفقیت‌آمیز

1 - خطای نحوی در استفاده (که پیام استفادهٔ مناسب را نمایش می‌دهد) یا اتمام مهلت زمانی (timeout) درخواست.

2 - رخ دادن خطا هنگام اجرای دستور (که پیام خطای مناسبی را نیز نمایش می‌دهد).

این ابزار از پیکربندی رشته‌های اجتماع (community strings) جدید پشتیبانی نمی‌کند، بنابراین فقط برای برپایی کنترل دسترسی جدید برای درخواست‌های SNMPv3 کاربرد دارد. می‌توان از آن برای اصلاح تنظیمات دسترسیِ رشته‌های اجتماع موجود استفاده کرد، اما نه برای ایجاد موارد جدید.

استفاده از پارامترهای عددی برای پارامترهای secLevel و contextMatch چندان شهودی و سرراست نیست. این دستورها انعطاف‌پذیری کامل دستورالعمل‌های معادل فایل پیکربندی را ارائه نمی‌دهند.

در حال حاضر هیچ معادلی برای دستورالعمل‌های پیکربندی یک‌بارهٔ rouser و rwuser وجود ندارد.

snmpcmd(1), snmpusm(1), snmpd.conf(5), snmp.conf(5), RFC 2575, Net-SNMP project FAQ

05 Sep 2006 V5.9.5.2