SSH

سرور SSH

RouterOS سرور SSH را ساخته است که به طور پیش فرض فعال است و به اتصالات ورودی در پورت TCP/22 گوش می دهد. در منوی Services امکان تغییر پورت و غیرفعال کردن سرور وجود دارد .

خواص

منوی فرعی: /ip ssh

ویژگیشرح
allow-none-crypto (yes|no; Default: no)در صورتی که الگوریتم‌های رمزنگاری روی هیچ‌کدام تنظیم نشده باشند، امکان اتصال وجود دارد یا خیر.
always-allow-password-login (yes | no; Default: no)اجازه ورود رمز عبور همزمان با پیکربندی مجوز کلید عمومی.
forwarding-enabled (both | local | no | remote; Default: no)

اجازه می دهد تا کنترل کنید کدام روش ارسال SSH مجاز است:

  • خیر – ارسال SSH غیرفعال است.
  • محلی – به کلاینت های SSH اجازه می دهد تا اتصالات را از سرور (روتر) ایجاد کنند، این تنظیم همچنین ارسال پویا را کنترل می کند.
  • از راه دور – به مشتریان SSH اجازه می دهد تا به سرور (روتر) گوش دهند و اتصالات ورودی را ارسال کنند.
  • هر دو – به هر دو روش حمل و نقل محلی و راه دور اجازه دهید.
host-key-size (1024 | 1536 | 2048 | 4096 | 8192; Default: 2048)اندازه کلید RSA زمانی که کلید میزبان در حال بازسازی است.
host-key-type (ed25519 | rsa; Default: rsa)نوع کلید میزبان را انتخاب کنید
strong-crypto (yes | no; Default: no)

از رمزگذاری قوی‌تر، الگوریتم‌های HMAC استفاده کنید، از اعداد اول DH بزرگ‌تر استفاده کنید و موارد ضعیف‌تر را ممنوع کنید:

  • از رمزگذاری 256 و 192 بیتی به جای 128 بیت استفاده کنید.
  • غیرفعال کردن رمزگذاری تهی؛
  • از sha256 برای هش به جای sha1 استفاده کنید.
  • md5 را غیرفعال کنید.
  • از 2048 بیت پرایم برای تبادل Diffie Hellman به جای 1024 بیت استفاده کنید.

دستورات

ویژگیشرح
export-host-key (key-file-prefix)

RSA/Ed25519 عمومی و خصوصی را به فایل‌ها صادر کنید. دستور یک پارامتر می گیرد:

  • key-file-prefix – پیشوند مورد استفاده برای فایل های تولید شده، به عنوان مثال، پیشوند “my” فایل های “my_rsa”، “my_rsa.pub” و غیره را تولید می کند.
import-host-key (private-key-file)

کلید خصوصی RSA/Ed25519 را از فایل مشخص شده وارد و جایگزین کنید. دستور یک پارامتر می گیرد:

  • private-key-file – نام فایل کلید خصوصی RSA/Ed25519
regenerate-host-key ()مجموعه جدیدی از کلیدهای خصوصی (RSA/Ed25519) روی روتر تولید شده و جایگزین شده است. توجه داشته باشید که کلیدهای وارد شده قبلی ممکن است کار نکنند.

صادر کردن کلید میزبان SSH به دستورات کاربر “sensitive” نیاز دارد.

فعال کردن احراز هویت PKI

نمونه ای از وارد کردن کلید عمومی برای مدیر کاربر

کلیدهای SSH را در دستگاه مشتری (دستگاهی که از آن متصل خواهید شد) ایجاد کنید. کلید عمومی SSH را در روتر آپلود کرده و آن را وارد کنید

				
					/user ssh-keys import public-key-file=id_rsa.pub user=admin
				
			

کلاینت SSH

منوی فرعی: /system ssh

ورود ساده به هاست راه دور

این دستور می تواند به هاست راه دور متصل شود و سشن ssh را آغاز کند. آدرس IP از هر دو IPv4 و IPv6 پشتیبانی می کند.

				
					/system ssh 192.168.88.1
/system ssh 2001:db8:add:1337::beef
				
			

در این مورد، نام کاربری ارائه شده به میزبان راه دور، نامی است که به روتر وارد شده است. اگر مقدار دیگری مورد نیاز است، باید از user=<username> استفاده شود.

				
					/system ssh 192.168.88.1 user=lala
/system ssh 2001:db8:add:1337::beef user=lala
				
			

با آدرس IP خاصی از روتر وارد شوید

به دلایل آزمایشی یا امنیتی ممکن است لازم باشد با استفاده از آدرس منبع خاصی از اتصال، به میزبان دیگری وارد شوید. در این مورد باید از آرگومان src-address=<ip address> استفاده شود. توجه داشته باشید که آدرس IP در این مورد از هر دو IPv4 و IPv6 پشتیبانی می کند

				
					/system ssh 192.168.88.1 src-address=192.168.89.2
/system ssh 2001:db8:add:1337::beef src-address=2001:db8:bad:1000::2
				
			

در این حالت، کلاینت ssh سعی می کند به آدرس مشخص شده متصل شود و سپس اتصال ssh به میزبان راه دور را آغاز کند.

با استفاده از کلید عمومی/خصوصی RSA وارد شوید

نمونه ای از وارد کردن کلید خصوصی برای مدیر کاربر

اول از همه، کلیدهای SSH تولید شده در حال حاضر را به یک فایل صادر کنید:

				
					/ip ssh export-host-key key-file-prefix=admin
				
			

دو فایل admin_rsa و admin_rsa.pub تولید خواهد شد. فایل pub باید در سمت سرور SSH قابل اعتماد باشد ( نحوه فعال کردن SSH PKI در RouterOS ) کلید خصوصی باید برای کاربر خاص اضافه شود.

				
					/user ssh-keys private import user=admin private-key-file=admin_rsa
				
			

فقط کاربر با حقوق کامل روی روتر می‌تواند مقدار ویژگی «user» را در /user ssh-keys private تغییر دهد.

پس از نصب کلید عمومی و اعتماد بر روی سرور SSH، می توان یک جلسه PKI SSH ایجاد کرد.

				
					

/system ssh 192.168.1.1


				
			

اجرای دستورات از راه دور

برای اجرای فرمان از راه دور باید در انتهای خط ورود به سیستم ارائه شود

				
					

/system ssh 192.168.88.1 "/ip address print"
/system ssh 192.168.88.1 command="/ip address print"
/system ssh 2001:db8:add:1337::beef "/ip address print"
/system ssh 2001:db8:add:1337::beef command="/ip address print"


				
			

 

اگر می خواهید دستورات از راه دور را از طریق اسکریپت یا زمانبندی اجرا کنید ، از دستور ssh-exec استفاده کنید .

اجرایی SSH

منوی فرعی: /system ssh-exec

Command ssh-exec یک دستور ssh غیر تعاملی است، بنابراین اجازه می دهد تا دستورات را از راه دور بر روی دستگاه از طریق اسکریپت ها و زمانبندی اجرا کنید.

بازیابی اطلاعات

دستور دو مقدار را برمی گرداند:

  • exit-code : در صورت موفقیت آمیز بودن اجرای دستور، 0 را برمی گرداند
  • output : خروجی فرمان اجرا شده از راه دور را برمی گرداند


مثال: کد زیر وضعیت رابط ether1 را از دستگاه 10.10.10.1 بازیابی می کند و نتیجه را به “Log” ارسال می کند.

				
					

:local Status ([/system ssh-exec address=10.10.10.1 user=remote command=":put ([/interface Ethernet monitor [find where name=ether1] Once as-value]->\"status\")" as-value]-> "output")
:log info $Status


				
			

به دلایل امنیتی، ورود رمز عبور متن ساده مجاز نیست. برای اطمینان از اجرای ایمن فرمان از راه دور، از احراز هویت SSH PKI برای کاربران هر دو طرف استفاده کنید.

گروه کاربر و خط مشی اسکریپت اجرای دستور به مجوز تست نیاز دارد