حالت‌ها و تنظیمات کاربر

اتصال به SoodarOS

سه روش برای اتصال به روتر برای پیکربندی وجود دارد:

  • اتصال فیزیکی:

    1. اتصال مستقیم (از طریق monitor و keyboard)

    2. اتصال Console (RS-232)

  • اتصال از راه دور:

    1. اتصال SSH

اتصال از راه دور

با استفاده از پروتکل معروف SSH، دسترسی از راه دور به روتر فعال می‌شود.

مثال: داشتن یک interface مدیریتی با آدرس 192.168.1.1/24:

 m@m-pc:~$ ssh admin@192.168.1.1
 admin@192.168.1.1's password:

کاربران

SoodarOS از کاربران محلی برای دسترسی CLI پشتیبانی می‌کند. به صورت پیش‌فرض، یک کاربر admin در دسترس است. کاربران می‌توانند از حالت configuration ایجاد و مدیریت شوند.

ایجاد (یا ورود به) یک کاربر

user-name USERNAME

یک کاربر جدید ایجاد می‌کند (اگر وجود نداشته باشد) و وارد حالت user configuration می‌شود.

  • USERNAME: نام کاربری که باید ایجاد شود را مشخص می‌کند.

نکته

طول نام کاربری به 49 کاراکتر محدود است.

مثال:

soodar(config)# user-name ops
soodar(config-user-name)#
no user-name USERNAME

یک کاربر را حذف می‌کند.

  • USERNAME: نام کاربری که باید حذف شود را مشخص می‌کند.

نکته

کاربری که در حال حاضر logged in است نمی‌تواند حذف شود.

هشدار

یک کاربر تازه ایجاد شده هیچ پسوردی ندارد و نمی‌تواند به صورت محلی log in کند تا زمانی که پسورد تنظیم شود.

سطح دسترسی (Privilege Level)

هر کاربر دارای یک سطح دسترسی در محدوده 1 تا 15 است.

privilege (1-15)

سطح دسترسی کاربر را تنظیم می‌کند.

مثال:

soodar(config)# user-name ops
soodar(config-user-name)# privilege 5

نکته

کاربری با سطح دسترسی 15 دسترسی کامل به تمام دستورات دارد.

نکته

به صورت پیش‌فرض، یک کاربر تازه ایجاد شده دارای سطح دسترسی 15 است.

مدیریت پسورد

پسوردها می‌توانند در node user configuration تنظیم و تأیید شوند.

password

یک دستور interactive که برای پسورد جدید و تأیید آن prompt می‌کند.

نکته

پسورد فقط برای authentication کاربر محلی استفاده می‌شود. اگر AAA فعال باشد، authentication پسورد بر اساس تنظیمات AAA server انجام می‌شود.

نمایش اطلاعات کاربر

برای نمایش اطلاعات کاربر، از show user-name استفاده کنید.

show user-name [USERNAME] [json]

اطلاعات کاربر را نمایش می‌دهد.

  • USERNAME: نام کاربری را مشخص کنید تا اطلاعات آن کاربر نمایش داده شود. اگر ارائه نشود، اطلاعات تمام کاربران نمایش داده می‌شود.

  • json: خروجی را در فرمت JSON نمایش می‌دهد.

مثال (خروجی جدول):

soodar# show user-name
    Username   Privilege Level
 --------------------------------
    admin      15

مثال (خروجی JSON):

soodar# show user-name json
[
   {
      "userName": "admin",
      "uid": 1000,
      "gid": 1000,
      "environment": [],
      "shell": "/usr/bin/vtysh",
      "memberOf": [
         "systemd-journal",
         "vpp",
         "frrvty",
         "frr",
         "sudo"
      ]
   }
]

حالت‌ها (Modes)

  • حالت View: Admin دسترسی به برخی دستورات show برای مشاهده وضعیت روتر دارد.

  • حالت Enable: Admin نمی‌تواند تنظیمات روتر را تغییر دهد. اما می‌تواند دستورات debug و برخی دستورات privileged بیشتر از view mode را فعال کند.

  • حالت Config: دسترسی کامل به روتر.

پسوردها

SoodarOS توسط 3 سطح پسورد محافظت می‌شود:

  1. پسورد دسترسی (Access password)

  2. پسورد Enable

  3. پسورد Config

پسورد دسترسی (Access Password)

این پسورد اصلی برای log in با کاربر است. بدون داشتن پسورد دسترسی، یک شخص نمی‌تواند هیچ دسترسی به روتر داشته باشد. یک admin با دانستن فقط access password یک admin با فقط privilege view mode است.

password

پسورد دسترسی را تغییر می‌دهد.

پسورد Enable

یک admin را در enable mode قرار می‌دهد. زمانی که admin دستور enable را صادر می‌کند، از او خواسته می‌شود.

enable password PASSWORD

پسورد enable را تنظیم می‌کند.

no enable password PASSWORD

پسورد enable را غیرفعال می‌کند.

پسورد Config

زمانی که admin configure را در command line وارد می‌کند تا وارد config mode شود، از او خواسته می‌شود.

enable config password PASSWORD

پسورد config را تنظیم می‌کند.

no enable config password PASSWORD

پسورد config را غیرفعال می‌کند.

ریست کردن پسورد دسترسی

اگر رمز عبور روتر را فراموش کردید برای تنظیم مجدد آن باید از ایمیج ریکاوری سودار استفاده کنید . این ایمیج باید روی یک فلش به صورت bootable نوشته شود و پس از آن فلش را به روتر متصل کنید و از روی آن بوت شوید . بعد از اینکه روتر از روی فلش بوت شد شما گزینه هایی برای ریست کردن می بینید و می توانید رمز عبور و همچنین تنظیمات روتر را ری ست کنید .

نکته

✔️ دقت شود با ری ست کردن رمز عبور ، رمز عبور شما به admin تغییر می کند .
✔️ ریست کردن تنظیمات فقط تنظیمات روتری را به حالت پیش فرض بر می گرداند و تنظیمات سیستمی مانند رمز عبور کاربر و ساعت سیستم و کلیدها و … تغییر نمی کند .
✔️ با ریست کردن تنظیمات در اینترفیس ge0 شما (اولین اینترفیس روتر) ip به آدرس 192.168.1.55/24 تنظیم می شود .

طول پسورد

برای مجبور کردن کاربران به تنظیم پسوردهای قوی، admin می‌تواند حداقل طول برای پسوردها تنظیم کند.

security passwords min-length

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

مثال:

soodar(config)# security password min-length 8
no security passwords min-length

تمام محدودیت‌های مربوط به طول پسورد را حذف می‌کند.

خطاهای ورود (Login Failures)

Admin می‌تواند جزئیات log in های ناموفق را درخواست کند. این جزئیات عبارتند از:

User name: کاربری که تلاش شده به آن log in شود (در حال حاضر فقط admin)
Medium: اینکه از طریق SSH یا Console بوده است
Address: در صورت تلاش log in از راه دور، آدرس IP دستگاه initiator. در غیر این صورت ... است.

show login failures

جزئیات log in های ناموفق را نمایش می‌دهد.

clear login failures

تمام log in های ناموفق را پاک می‌کند.

مدیریت Session

show line

تمام session های فعال را نمایش می‌دهد.

clear line LINE

یک session را با مشخص کردن LINE آن terminate می‌کند.

نکته

پاک کردن یک line باعث می‌شود تمام session هایی که همان session ID را با session پاک شده دارند terminate شوند. در یک وضعیت عادی، هر line دارای session ID خود است. اما اگر چندین session روی یک اتصال SSH واحد اجرا شوند، همان session ID را به اشتراک می‌گذارند.

login block-for TIME attempts ATTEMPT within PERIOD

پارامترهای SSH jailing را تنظیم می‌کند. اگر کسی ATTEMPT (عددی در محدوده 1 تا 10) تلاش log in ناموفق در PERIOD ([30-600]) ثانیه انجام دهد، آدرس IP او برای TIME ([10-7200]) ثانیه بعدی محدود می‌شود. مقادیر پیش‌فرض 600 ثانیه jail time برای 5 تلاش در 30 ثانیه است.

show login blocked-ips

IP های در jail را نمایش می‌دهد.

login unblock <A.B.C.D|X:X::X:X|all>

یک IP را unblock می‌کند و از jail آزاد می‌کند. Admin می‌تواند تمام IP های blocked را با all به عنوان ورودی command unblock کند.

MOTD

گاهی اوقات administrator سیستم نیاز دارد یک پیام تنظیم کند، تا هر کاربری که تلاش می‌کند log in کند بتواند آن را ببیند. این کار می‌تواند با تنظیم یک banner MOTD انجام شود.

banner motd line LINE

رشته motd را از یک ورودی تنظیم می‌کند.

no banner motd

هیچ رشته banner motd چاپ نخواهد شد.

SSH

Soodar هم به عنوان client برای SSH و هم به عنوان SSH server عمل می‌کند. بنابراین، گزینه‌های مدیریت key به کاربران ارائه می‌شود.

SSH Server

ip ssh pubkey-chain

وارد node مدیریت authorized keys SSH server می‌شود.

username USER

وارد node مدیریت public key مجاز برای یک کاربر می‌شود. هر تلاش اتصال SSH به کاربر با یک public key مجاز پذیرفته می‌شود.

key LINE ..

یک public key را به authorized keys کاربر اضافه می‌کند.

no key HASH

یک public key را از authorized keys کاربر با hash آن حذف می‌کند.

no key (1-65535)

یک public key را از authorized keys کاربر با index آن در لیست keys حذف می‌کند.

show ip ssh pubkey-chain [verbose] [USER]

پایگاه داده authorized keys فعلی را برای USER نمایش می‌دهد (اگر USER ارائه نشود، پایگاه داده تمام کاربران نمایش داده می‌شود). اگر گزینه verbose فعال شود، خروجی keys کامل به جای hash های keys است.

ip ssh port (2000-10000)

هدف این دستور تغییر پورت listen پیش‌فرض SSH از 22 به یک شماره پورت مشخص در محدوده مشخص شده است.

  • (2000-10000): شماره پورتی که باید برای SSH server استفاده شود را مشخص می‌کند. مقادیر معتبر اعداد صحیح از 2000 تا 10000 هستند.

مثال:

soodar# show ip ssh pubkey-chain
List is empty
soodar# conf ter
soodar(config)# ip ssh pubkey-chain
soodar(conf-ssh-pubkey)# username admin
soodar(conf-ssh-pubkey-user)# key ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQChX8nvRsv/nmZE8r+ljuVjiwe8riTt+kmSilS44/Wr+EFWbncx/E39QugQba+0I21/wn17bHbQitMMnXjINUITzqwTnnYQekwSFjBuZKWKe4i0fYoYH2cqySHiecGJHaRD40Jw/6+FTDK4c0PdBIg1Vd3hF8H+bCyberpEzaJKwN2WBV4Pp2QQSU4hcIag0CB/5uk2NbO8/Ewa/cVG3uPURzDWA2RRh5SI320clRyYDkmrcPv6zcZ81tFx1t6F12N0/U12n/XQw+5YEL8HlbGEeQVG+p4eHuOBjP4Ta1Pz75F1Os/bylGQzTGlsrH4tAz7nj011XdAVAJ4ZuQ35KIwh0sVzEKVwZ9ZRFvOH4P0ijL59f/VRD878v7kVrRSKmKyZYUoJH4TBSkGEASGUXGYF+zzTI0RAa3+4j9yFaUMJJ1j1OaMq+FshykuX+3DpBKYQ3of3KWNfLHRCGYao7Eh3QOCxUCN5DuAtYhAd/vzF3DkyanO6LnnbCYkg7SFzWE= temp@test
soodar# show ip ssh pubkey-chain
admin:
   1: W7tjsK1S4C+CfMfjQSQzjiRQHPnHNMhFjbmMyOE02wU temp@test (ssh-rsa)
soodar# show ip ssh pubkey-chain verbose
admin:
   1: AAAAB3NzaC1yc2EAAAADAQABAAABgQChX8nvRsv/nmZE8r+ljuVjiwe8riTt+kmSilS44/Wr+EFWbncx/E39QugQba+0I21/wn17bHbQitMMnXjINUITzqwTnnYQekwSFjBuZKWKe4i0fYoYH2cqySHiecGJHaRD40Jw/6+FTDK4c0PdBIg1Vd3hF8H+bCyberpEzaJKwN2WBV4Pp2QQSU4hcIag0CB/5uk2NbO8/Ewa/cVG3uPURzDWA2RRh5SI320clRyYDkmrcPv6zcZ81tFx1t6F12N0/U12n/XQw+5YEL8HlbGEeQVG+p4eHuOBjP4Ta1Pz75F1Os/bylGQzTGlsrH4tAz7nj011XdAVAJ4ZuQ35KIwh0sVzEKVwZ9ZRFvOH4P0ijL59f/VRD878v7kVrRSKmKyZYUoJH4TBSkGEASGUXGYF+zzTI0RAa3+4j9yFaUMJJ1j1OaMq+FshykuX+3DpBKYQ3of3KWNfLHRCGYao7Eh3QOCxUCN5DuAtYhAd/vzF3DkyanO6LnnbCYkg7SFzWE= temp@test (ssh-rsa)

SSH Client

ip ssh client

وارد node مدیریت known host SSH client می‌شود.

known-host <A.B.C.D|X:X::X:X|HOST>

public key (های) یک server (ارائه شده توسط IP یا hostname آن) را به لیست known hosts کاربر فعلی اضافه می‌کند.

show ip ssh client known-host <A.B.C.D|X:X::X:X|HOST>

public key (های) یک server ذخیره شده در لیست known hosts را نمایش می‌دهد (در صورت وجود).

مثال:

soodar# show ip ssh client known-host 192.168.30.50
soodar# conf ter
soodar(config)# ip ssh client
soodar(conf-ssh-client)# known-host 192.168.30.50 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwOU2O2nNJGXIN5VT1Q0j7+H9kQQ9FnE0sl9aPQbOg/Sw1ryZyuUmApUFFABL7MDNZTKzWd3BfYsOBsXOsKOHiGTZCPLbS93tvHAYlkeIcYDR9JJEi4A67nN/zXSoT+Ew78iUADjWH6rQSy4dtg+ScHFAj3Z9P7TQpK8zWJDLgA28d+zyYSwNd/MkF+EPmAH7mPoKkg2EGCpr889pR5mcBiXPVq69yUNFUG7U0D2aqDaGbaXk9TcfqCrktVmjGVF8rY91TaLMJBngVaYYsnT+xdYp8i8nicxbJoYDvvde057soX6mcTLNXI0opUV9K5TPY7Idp6AWCAxhgJ11IN2z+HZGw56xKDVXL0VXNMngxxICqMV5CxhYHraGkyCha1KXnU2rPi8PbYJkJMIlsXZ+hW9oCZs9x6gzvHHdadi3Ox9JZ6KEqLI7OKf8KNd2alZrGUNjlDIlG/jZhWtYdB4W/oFPAWa5YFqDRfu+VJdVnrGqIzr8GWRlPOjAjwOsBcQk= HOST-KEY
soodar# show ip ssh client known-host 192.168.30.50
192.168.30.50 RSA SHA256:bYisVirAvDxXqwbmYIn7IEj6Grdkf6BeTYCJ7LS11s0 HOST-KEY
soodar# ssh test@192.168.30.50
test@192.168.30.50's password:

soodar# show ip ssh client known-host 192.168.30.39
soodar# ssh test@192.168.30.39
The authenticity of host '192.168.30.39 (192.168.30.39)' can't be established.
RSA key fingerprint is SHA256:lJ2gRSCd8Wh0CrcPU8sOlZJdrbff2QrGaJ5zBcZ2S4I.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.30.39' (RSA) to the list of known hosts.
test@192.168.30.39's password:
soodar# show ip ssh client known-host 192.168.30.39
192.168.30.39 RSA SHA256:lJ2gRSCd8Wh0CrcPU8sOlZJdrbff2QrGaJ5zBcZ2S4I