Cisco Privilege Levels

Cisco Privilege Levels

آیا لازم است تمام کارمندان یک سازمان دسترسی کامل به منابع آنجا را داشته باشند؟ خیر. معمولان کارمندان یک اداره و یا سازمان تنها به بخشی از منابع آن سازمان میتوانند دسترسی داشته باشند. در مورد دسترسی کامل کارمندان بخش IT چطور ؟ یقینا خیر چون در دپارتمان IT نیز افراد گوناگون با مشاغل مختلف و سطح دسترسی های متفاوت مانند help desk، administrator، wan engineer و … وجود دارند. برای تامین امنیت شبکه یک سازمان از سرویسهای متفاوتی استفاده شده و عملیات زیادی انجام میشود. یکی از این کارها تنظیمات privilege level ها می باشد. هدف از تعریف privilege level ها اینست که مشخص کنیم چه کسانی به روتر دسترسی داشته باشند، در چه سطحی دسترسی داشته باشند و چه کارهایی بتوانند انجام دهند.

Cisco IOS CLI 3 سطح را در اختیار مدیر شبکه قرار میدهد :

 

  • Zero-level Mode در سطح 0 قرار داشته و تنها 5 دستور دارد.
  • User EXEC Mode که در سطح 1 قرار داشته و دستورات بیشتری نسبت به سطح 0 دارد.
  • Privileged EXEC Mode که در سطح 15 قرار داشته و دسترسی کامل را در اختیار کاربر قرار میدهد.

از IOS 10.3 به بعد، این قابلیت در اختیار مدیر شبکه قرار گرفت که چندین Privilege Level تعریف شود. یکی از موارد پرکاربرد Privilege Level  اینست که مدیران شبکه اصلی به سطح 15 دسترسی داشته با

شند و help desk ها که تنها باید وضعیت روتر را مانیتور کنند در سطوح 2 تا 14 قرار گیرند. سطوح 0، 1 و 15 پیشفرض تعریف شده اند. هر چه به سطح 15 نزدیک میشویم میزان دسترسی بالاتر میرود. زمانیکه به روتری لاگین میکنید در واقع وارد سطح 1 شده اید اما نمیتوانید تنظیماتی را انجام دهید و یا محتویات running config را ملاحظه کنید. تنها میتوان اطلاعات محدودی مانند وضعیت اینترفیسها و یا محتویات جدول مسیریابی را مشاهده نمود. این تنظیمات میتواند در یک شبکه کوچک با 2 یا 3 روتر و یک مدیر شبکه مورد استفاده قرار گیرد. اما در شبکه های بزرگ نیاز به انعطاف پذیری زیادی است زیرا ممکن است افراد متفاوتی به روتر دسترسی پیدا کنند. این انعطاف پذیری با تعریف 16 level برای کاربران متفاوت امکان پذیر است.

بدلیل محدودیتهای سطح 1، کاربران با استفاده از دستور enable وارد privileged exec mode که دارای level 15 میابشد، میشوند. ورود به این سطح مانند دسترسی root است.

گاهی ممکن است لازم شود که کاربران مختلفی مانند administrator assistant ها به روتر دسترسی پیدا کنند تا تنظیمات روتر را بررسی و یا مشکلات بوجود آمده برای اینترفیس ها را برطرف کنند. در این حالت باید به این افراد سطح دسترسی 1 تا 15 اختصاص داد.

ادمین میتواند چندین سطح یا level تعریف کرده و به هر سطح چندین دستور را اختصاص دهد. هرچه سطح بالاتر باشد دسترسی کاربر بیشتر است. دستورات تعریف شده در سطوح پایین در سطوح بالاتر نیز قابل استفاده هستند زیرا یک privilege level، تمامی levelهای زیرین خود را نیز شامل میشود. بطور مثال یک کاربر در سطح 10 تمامی دستورات سطوح 0 تا 10 را میتواند اجرا کند اما دستورات سطوح 11 تا 15 را خیر. یک کاربر سطح 15 تمامی دستورات را میتواند اجرا کند و دسترسی کامل دارد.

برای اختصاص یک دستور به یک level خاص از دستور privilege استفاده میکنیم :

Router(config)# privilege mode {level level command | resetcommand

 

نکته قابل توجه اینست که اختصاص یک دستور چند کلمه ای به یک سطح خاص باعث میشود تا به تمامی دستوراتی که با کلمات اول این دستور مرتبطند نیز بتوان دسترسی پیدا کرد. بطور مثال اگر دستور show ip route را به یک سطح اختصاص دهیم میتوان به دستوراتی که با کلمه show و show ip شروع میشوند نیز دسترسی داشت. زیرا برای اجرای دستور show ip route باید مجوز استفاده از show و show ip وجود داشته باشد و بدون دسترسی به این دو دستور، دستور show ip route غیر قابل اجراست.

در user exec mode از دستورات level 1 و در privilege exec mode از دستورات level 15 استفاده میشود.

میتوان هر سطح دسترسی که نیاز دارید را با استفاده از دستور privilege تعریف کنید.

مثال :

username user_9 privilege 9 password pass_1
username user_6 privilege 6 password pass_6
username user_15 privilege 15 password pass_15

privilege configure level 8 snmp-server community
privilege exec level 6 show running
privilege exec level 8 configure terminal

 

user_6 دارای سطح دسترسی 6 است اما تنها میتواند دستور show running-config را وارد کند.

بطور پیش فرض تمام دستورات روتر در level های 1و 15 قرار دارند. ایجاد privilege level بیشتر چندان موثر نیست مگر اینکه privilege level پیش فرض بعضی دستورات روتر تغییر کند. اگر این تغییرات ایجاد شود تنها کسانیکه آن سطح دسترسی را در اختیار دارند و یا کاربران در سطوح بالاتر، میتوانند آن دستور را ایجاد کنند.

در مثال زیر هیچ کاربری با user-level (level 1) نمیتواند به دستور telnet دسترسی داشته باشد. دسترسی به level 2 برای اجرای دستور telnet ضروری است.

Router#config terminal

Router(config)#privilege exec level 2 telnet

Router(config)#^Z

Router#

 

برای ورود به سطح بالاتر با استفاده از دستور enable، نیاز به تعیین رمز عبور برای آن level داریم. اگر بخواهیم به یک level بدون وجود رمز عبور وارد شویم با خطای no password set مواجه میشویم.  با استفاده از دستورات زیر میتوان برای یک سطح خاص رمز عبور تعیین کرد.

enable secret level <1-15> password

enable password level <1-15> password

 

نمایش سطح دسترسی فعلی شما با دستور show privilege امکان پذیر است.  همچنین تغییر سطح دسترسی را می توان با استفاده از دستورات enable و disable انجام داد. بدون تعیین پارامتر و بصورت پیشفرض دستور enable باعث ورود به level 15 و دستور disable کاربر را به level 1 منتقل میکند. هر دو دستور یک پارامتر دریافت کرده و سطحی که مورد نظرتان است را مشخص میکند.

 

جابجایی بین Privilege Level ها

پایینترین privilege level، 0 است. این تنها سطحی است که در کنار levelهای 1 و 15 بصورت پیشفرض بر روی روتر وجود دارد. این level تنها 5 دستور دارد که از طریق آن میتوان یا logout کرد و یا به level بالاتر وارد شد.

Router#disable 0

? Router<

: Exec commands

  disable  Turn off privileged commands

  enable   Turn on privileged commands

  exit     Exit from the EXEC

  help     Description of the interactive help system

  logout   Exit from the EXEC

 

Level 1 دستورات بسیار بیشتری را در اختیار کاربر قرار میدهد. کاربر میتواند اطلاعات زیادی دریافت کند، به دیگر سیستمها تلنت بزند و ارتباطات شبکه را از طریق ping و traceroute بررسی کند. Level 2 که بصورت پیشفرض فعال نیست، دستورات show و clear بیشتری در اختیار کاربر قرار میدهد. نهایتا level 15 دسترسی کاملی به تمام دستورات روتر میدهد.

از دستور enable برای دسترسی به level بالاتر استفاده میشود. توصیه میشود برای ورود به سطح بالاتر از پسورد استفاده شود.

Router>enable 5

Password: level-5-password

Router#show privilege

Current privilege level is 5

Router#

از دستور disable برای کاهش سطح دسترسی استفاده میشود. در این حالت احتیاجی به داتن پسورد نیست.

Router#show privilege

Current privilege level is 5

Router#disable 2

Router<

 

دستورات زیر مهم و پرکاربرد هستند :

  • Show privilede

مشاهده سطحی که کاربر در آن قرار دارد.

R1>enable

  <0-15>  Enable level

  <cr>

در این دستور میتوان سطح خاصی را برای ورود تعیین کرد.اگر شماره سطحی را نزنیم پیشفرض وارد level 15 میشود.

router(config)# username test privilege 5 password test

با استفاده از این دستور میتوان یک یوزر تعیین و برای آن رمز عبور و سطح دسترسی تعیین نمود.

R1(config)#privilege exec level 5 show ip route

با استفاده از دستور privilege میتوان برای یک سطح خاص، یک یا چند دستور تعیین کرد.

 

همچنین privilege level ها میتوانند برای authentication نیز بکار روند. 2 روش برای اختصاص پسورد به levelها وجود دارد :

  • اختصاص پسورد به یک level خاص با دستور enable secret level level
  • اختصاص پسورد به یک یوزر خاص با سطح دسترسی تعیریف شده با دستور username name privilege level secret password

 

یک مدیر شبکه میتواند 4 سطح دسترسی به روتر را تعریف کند :

  • A USER account (requiring level 1, not including ping)
  • A SUPPORT account (requiring all level 1 access, plus the pingcommand)
  • A JR-ADMIN account (requiring all level 1 and 5 access, plus the reloadcommand)
  • An ADMIN account (requiring complete access)

 

پیاده سازی انواع privilege level به سیاستها و ساختار سازمان و وجود مشاغل مختلفی که به دسترسی های گوناکون نیاز دارند، بستگی دارد.

در حالت user (router>) هیچ privilege level خاصی تعریف نمیشود زیرا user mode پیشفرض در سطح 1 قرار دارد.

Support account میتواند دسترسی سطح بالاتری مانند level 5 را اختیار کند. Level 5 بطور خودکار دستورات سطح های 1 تا 4 را به ارث برده و میتواند دستورات دیگری را نیز داشته باشد. زمانیکه دستوری را به یک level مشخص اختصاص میدهیم دسترسی به آن دستور در level های قبلی از بین می رود. بطور مثال زمانیکه با استفاده از دستور privilege exec level 5 ping دستور ping را به سطح 5 اختصاص میدهیم، دیگر نمیتوان آن را در سطح های 1 تا 4 مورد استفاده قرار داد.

User account به دستور ping دسترسی ندارد زیرا برای اجرای این دستور دسترسی به level 5 نیاز است.

برای اختصاص رمز عبور به level 5 دستور زیر را وارد میکنیم :

Enable secret level 5 cisco5

برای دسترسی به level 5 بعد از وارد کردن دستور enable، باید پسورد cisco5 را وارد کنیم.

برای اختصاص یک نام کاربری خاص به privilege level 5 دستور زیر را وارد میکنیم :

Username test privilege 5 secret cisco5

کسیکه با نام کاربری test وارد تنظیمات روتر میشود تنها دسترسی سطح 5 را در اختیار دارد (سطوح 1 تا 4 را نیز شامل میشود).

JR_Admin account نیاز به دسترسی به تمام دستورات level 1تا 5 را دارد. همچنین دستوری مانند reload را میتواند اجرا کند. این کاربر باید بطور مثال دسترسی سطح 10 داشته باشد که در این صورت به دستورات level های قبلی نیز میتواند دسترسی داشته باشد.

با استفاده از دستورات زیر این تنظیمات را میتوان اجرا نمود :

privilege exec level 10 reload
username jr-admin privilege 10 secret cisco10

و یا

username jr-admin privilege 10

enable secret level 10 cisco10

privilege exec level 10 reload

با استفاده از تنظیمات بالا، دستور reload را تنها کاربران سطح 10 به بالا می توانند اجرا کنند. کاربر jr-admin برای دسترسی به level 10 باید پسورد cisco10 را وارد کند.

کاربر admin میتواند دسترسی سطح 15 را در اختیار داشته باشد. در این حالت نیاز به تعریف دستور خاصی نیست. تنها میتوان یک رمز عبور بصورت enable secret level 15 cisco15 اختصاص داد. این دستور بر enable secret که برای ورود به privileged mode وارد میکنیم ارجحیت ندارد.

زمانیکه قصد داریم به یک نام کاربری یک سطح دسترسی را اختصاص دهیم، جای کلمات privilege و level قابل تعویض نیست. بطور مثال اگر دستور username test secret cisco privilege 1 را وارد کنیم این به این معنی نیست که کاربر test سطح دسترسی 1 دارد بلکه به این معنیست که این کاربر برای login باید پسورد cisco privilege 1 را وارد کند.

برای دسترسی به privilege level تعریف شده، دستور enable level را در user mode وارد میکنیم و پس از وارد کردن رمز عبور، به سطح مورد نظر دسترسی پیدا میکنیم.

گاهی ممکن است فراموش شود که در چه سطحی قرار داریم که با استفاده از دستور show privilege میتوان از سطح دسترسی فعلی مطلع شد.

 

با اینکه استفاده از privilege level ها مزیت هایی را در بر دارد اما بعضی از سازمان ها ممکن است به دلیل محدودیت های زیر از این قابلیت استفاده نکنند :

  • دستورات سطوح پایین در level های بالا قابل اجراست.
  • دستورات level های بالا برای سطوح پایینتر از آن غیر قابل اجراست.
  • اختصاص دستور x که دارای چند کلمه است تمامی دستوراتی که با کلمات اول دستور x شروع میشوند را هم در اختیار آن level خاص قرار میدهد. بطور مثال وقتی دستور show ip route را تعریف میکنیم کاربر میتواند به تمامی دستوراتی که با show و show ip شروع میشوند را نیز دسترسی پیدا کند.
  • اگر بخواهیم از یک کاربر دسترسی به چند دستور محدود را بگیریم باید تمام دستوراتی که میتواند اجرا کند را تعریف کنیم که کار بسیار دشوار و زمان بری است.

Line Privilege Levels

Lineهای console/vty/aux در سطح 1 قرار دارند. میتوان پس از ورود به line مورد نظر با استفاده از دستور privilege level، تغییرات level را ایجاد کرد.

 

Privilege Mode Example

در نظر داریم شرایطی را بررسی کنیم که یک سازمان قصد دارد بدون اختصاص level 5 password و با استفاده از privilege level به روتر دسترسی پیدا کند. این سازمان از چندین administrator و administrator assistant و یک مرکز کامپیوتر برای عیب یابی شبکه خود استفاده میکند. این سازمان administrator ها را در سطح 15 و administrator assistant ها را محدود کرده تا با استفاده از debugging و troubleshooting مشکلات شبکه را حل کنند. نهایتا مرکز کامپیوتر در صورت نیاز، بتواند دستور clear line را برای ریست کردن ارتباطات مودم اجرا کند. همچنین نتوان از روتر به دیگر سیستم ها telnet زد. به  administrator ها دسترسی level 15، به administrator assistant ها دسترسی level 10 برای debugging و telnet و به مرکز کامپیوتر دسترسی level 2 میدهیم تا دستور clear line را اجرا کند و دستور telnet را خیر.

Router#config terminal

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#username admin-joe privilege 15 password joes-password

Router(config)#username admin-carl privilege 15 password carls-password

Router(config)#username junior-jeff privilege 10 password jeffs-password

Router(config)#username junior-jay privilege 10 password jays-password

Router(config)#username ops-fred privilege 2 password freds-password

Router(config)#username ops-pat privilege 2 password pats-password

Router(config)#privilege exec level 10 telnet

Router(config)#privilege exec level 10 debug

Router(config)#privilege exec level 2 clear line

 

مقدار privilege تعریف شده در global بر مقدار آن در line ارجحیت دارد. در مثال زیر این موضوع مشاهده میشود.

R1#show run | inc username
username bob privilege 2 password 0 cisco
username admin privilege 15 password 0 cisco

R1#show run | begin line

line vty 0 4
privilege level 15
login local
!
!
end

R1#telnet 1.1.1.1
Trying 1.1.1.1 … Open

User Access Verification

Username: bob
Password:
R1#show privilege
Current privilege level is 2
R1#

 

اگر بطور مثال برای سطح 5 و سطح 4 دستور ping را مشخص کنیم و show running-config بزنیم ملاحظه میکنیم که این دستور در سطح 4 اعمال شده است.

 

پیاده سازی Role-Based CLI

برای دسترسی به انعطاف پذیری بشتر سیسکو قابلیت Role-Based CLI را از IOS 12.3(11)T به روتر خود اضافه کرد. این قابلیت کنترل بیشتری را بر دستورات قابل دسترس فراهم میکند. Role-Based CLI این اختیار را به مدیر شبکه میدهد تا View های متفاوتی از تنظیمات روتر را در اختیار کاربران مختلف قرار دهد. در هر View میتوان دستوراتی که هر کاربر میتواند اجرا کند را تعریف کرد.

همچنین با استفاده از Role-Based CLI و تعیین مجموعه ای از دستورات برای کاربران خاص، میتوان امنیت روتر را نیز افزایش داد.

Role-Based CLI از اجرای دستورات غیر مجاز توسط کاربری که مجوز لازم را ندارد جلوگیری میکند که این کار در عملکرد روتر و شبکه تاثیرگذار است.

 

Role-Based CLI دارای 3 نوع view است :

  • Root view
  • CLI view
  • Superview

 

Root View

برای پیاده سازی هر نوع view، مدیر شبکه باید در root view باشد. دسترسی کسیکه در root view قرار دارد مانند دسترسی privilege level 15 میباشد. اما این دو مانند هم نیستند. در واقع root view میتواند یک view جدید تعریف کرده، دستوراتی را به view های مختلف اضافه کرده و یا از آنها حذف کند.

 

CLI View

مجموعه ای از دستورات میتوانند در این view قرار گیرند. برخلاف privilege level، CLI View هیچگونه ساختار هرمی ندارد. هر view تنها میتواند دستورات همان view را اجرا کند و هیچ دستوری را از هیچ view دیگری به ارث نمیبرد. بعلاوه یک مجموعه دستورات مشابه میتوانند در چند view مورد استفاده قرار گیرند. این مدل با نام Parser View هم شناخته میشود.

 

Superview

متشکل از یک یا چند view است. ادمین میتواند تعیین کند از کدام دستورات استفاده شود و کدامیک از تنظیمات روتر مشاهده شوند. Superview به مدیر شبکه این اجازه را میدهد تا به جای اینکه به هر کاربر یک Cli View با مجموعه ای از دستورات را اختصاص دهد،  یک کاربر یا گروهی از کاربران را در یک SuperView قرار دهد تا آن مجموعه دستورات بصورت یکجا به کاربران مورد نظر اعمال شود.

Superview دارای ویژگیهای زیر میباشد :

  • یک CLI View میتواند در چندین Superview به اشتراک گذاشته شود.
  • دستورات نمیتوانند در Superview قرار گیرند. در واقع دستورات در CLI View و CLI View در Superview قرار میگیرد.
  • هر کاربری که به Superview لاگین میکند میتواند به تمامی دستورات CLI Viewهایی که در Superview قرار دارند دسترسی داشته باشد.
  • هر Superview یک رمز عبور دارد تا از طریق آن بتوان بین Superviewها سوییچ کرد و یا از یک CLI View وارد یک Superview شد.

 

اگر یک Superview پاک شود CLI View های مربوط به آن پاک نمیشوند تا در صورت نیاز به یک Superview دیگر اختصاص داده شوند.

 

قبل از ایجاد یک View باید یک پسورد با دستور enable secret تعریف و همچنین AAA با استفاده از دستور aaa new-model فعال شود. برای ایجاد یا تغییر view ها، ادمین باید بعنوان root view و با استفاده از دستور enable view در privileged exec mode لاگین کند. سپس باید پسورد مشخص شده توسط دستور enable secret را وارد کرد.

 

6 مرحله برای ایجاد و مدیریت یک View وجود دارد :

  • ابتدا با استفاده از دستور enable secret یک رمز عبور ساخته تا ادمین با استفاده از آن وارد root view شود و قادر باشد که دیگر view ها را بسازد.
  • فعالسازی AAA را با استفاده از دستور aaa new-model انجام میدهیم. سپس خارج شده و در privileged exec mode با استفاده از دستور enable view، وارد root view میشویم.
  • وارد محیط کانفیگ روتر شده و بکمک دستور parser view view-name یک view میسازیم. این دستور محیط کانفیگ view را ایجاد میکند. بجز root view میتوان 15 view دیگر نیز تعریف نمود.
  • یک پسورد را به یک view با استفاده از دستور secretencrypted-password اختصاص میدهیم.
  • دستور commandsparser-mode {include | include-exclusive | exclude} [all] [interface interface-name | command] باعث میشود تا دستورات مورد نیاز را در یک View قرار دهیم.
  • دستور exit را زده و از View Connfiguration Mode خارج میشویم.

به مثال زیر توجه کنید :

R1(config)#enable secret pass1

R1(config)#aaa new-model

R1(config)#exit

R1#enable parser view

Password : pass1

R1#show parser view

Current view is ‘Root’

R1#configure Terminal

R1(config)#parser view admin2

R1(config-view)#secret test

R1(config-view)#commands exec include show version

R1(config-view)#commands exec include all show ip

R1(config-view)#commands exec exclude configure

R1(config-view)#exit

در این مثال کاربر admin2 که پسورد test را دارد میتواند دستور show version و تمامی دستوراتی که با show ip شروع میشوند را اجرا کند اما نمیتواند از دستور configure terminal استفاده کند.

 

روشهای ایجاد Superview نیز مانند CLI View است با این تفاوت که بجای استفاده از دستور commands برای اختصاص دستورات، از View view-name استفاده میکنیم. ادمین باید در Root view باشد تا Superview را بتواند کانفیگ کند. برای استفاده از root view ادمین باید با استفاده از دستور enable view و یا enable view root در privileged exec mode لاگین کند. سپس باید پسورد مشخص شده توسط دستور enable secret را وارد کرد :

  • بکمک دستور parser view view-name superview یک Superview ایجاد میکنیم.
  • یک پسورد را به view با استفاده از دستور secretencrypted-password اختصاص میدهیم.
  • یک view از پیش تعریف شده را با دستور view view-name به Superview اختصاص میدهیم.
  • دستور exit را زده و از Superview خارج میشویم.

 

در ادامه مثال قبل یک Superview میسازیم :

R1(config)#parser view sv1 superview

R1(config-view)#secret superview

R1(config-view)#view admin2

R1(config-view)#exit

R1#enable parser view sv1

Password : superview

R1#show parser view

Current view is ‘sv1’

? #R1

Exec commands

enable  Turn on privileged commands

exit    Exit from the EXEC

show    Show running system information

 

در این مثال view admin2 را به superview sv1 اضافه کردیم در نتیجه دستورات موجود در این superview مانند دستورات view admin2 میباشند.

 

برای ورود به یک View تعریف شده در User mode دستور enable view view-name و برای ورود به Root view تنها دستور enable view را زده سپس پسورد مربوط به آن View را وارد میکنیم. از همین دستور برای جابجایی بین View ها استفاده میکنیم.

با استفاده از دستور show parser view all میتوان View های موجود را مشاهده کرد.

 

 

0 پاسخ

دیدگاه خود را ثبت کنید

Want to join the discussion?
Feel free to contribute!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

5 × پنج =