اتصال به یک رایانه از راهدور برای مدیرسیستم یک امر ضروری است. سرورها، که در اتاقهای جداگانهای بدون صفحهکلید و نمایشگر قرار میگیرند - به شبکه متصل هستند.
9.2.1. ورود امن از راهدور: SSH
پروتکل SSH یا Secure SHell با توجه به اصول امنیتی و قابلیت اطمینان طراجی شده است. ارتباطاتی که از SSH استفاده میکنند امن هستند: طرف مقابل احراز هویت شده و تمام اطلاعات به صورت رمزگذاری شده ارسال میشوند.
SSH همچنین تو سرویس انتقال فایل را ارائه میدهد. scp
یک ابزار خط فرمان است که عملکردی مشابه cp
دارد، به جز مسیرهای خارج از یک رایانه که باید ابتدا نام رایانه به همراه دو نقطه آورده شود.
$
scp file machine:/tmp/
sftp
یک دستور تعاملی مشابه ftp
است. در یک نشست واحد، sftp
میتواند چندین فایل را منتقل کند و امکان ایجاد تغییرات در فایلهای راهدور نیز وجود دارد (حذف، تغییر نام، تغییر مجوزها و از این قبیل).
دبیان از OpenSSH، یک نسخه آزاد از SSH که توسط پروژه OpenBSD
مدیریت میشود (یک سیستم عامل آزاد مبتنی بر کرنل BSD با تمرکز بر امنیت) و انشعاب نسخه اصلی نرمافزار SSH که توسط شرکت SSH Communications Security Corp در فنلاند اداره میشد، استفاده میکند. این شرکت در ابتدا SSH را به عنوان نرمافزار آزاد منتشر کرد، اما در ادامه مسیر تصمیم گرفت تا توسعه آن را تحت یک مجوز انحصاری انجام دهد. پروژه OpenBSD با ایجاد OpenSSH تصمیم گرفت یا یک نسخه آزاد از آن ارائه دهد.
OpenSSH به دو بسته تقسیم شده است: بخش مربوط به کلاینت در بسته openssh-client و بخش مربوط به سرور در بسته openssh-server قرار دارد. بسته ssh به هر دو آنها وابسته بوده و عملیات نصب آنها را انجام میدهد (apt install ssh
).
9.2.1.1. احرازهویت کلید-محور
با هر بار ورود از طریق SSH، سرور راهدور درخواست یک گذرواژه برای احزارهویت کاربر میکند. این میتواند در صورت خودکارسازی ارتباط یا استفاده از ابزاری که نیاز به ارتباط مداوم با سرور دارد، مشکلساز گردد. به همین دلیل است که SSH سیستم احرازهویت کلید-محور را فراهم کرده است.
کاربر در رایانه خود اقدام به ایجاد یک جفت کلید با استفاده از دستور ssh-keygen -t rsa
میکند؛ کلید عمومی در فایل ~/.ssh/id_rsa.pub
و کلید خصوصی در فایل ~/.ssh/id_rsa
ذخیره میشوند. کاربر با اجرای دستور ssh-copy-id server
کلید عمومی خود را به انتهای فایل ~/.ssh/authorized_keys
موجود در سرور اضافه میکند. اگر کلید خصوصی در زمان تولید خود با استفاده از “گذزواژه” محافظت نشده باشد، تمام ورودهای جداگانه به سرور بدون درخواست گذرواژه کار خواهند کرد. در غیر اینصورت، کلید خصوصی در هر مرتبه ورود به سرور نیاز به رمزگشایی با استفاده از گذرواژه مربوطه دارد. خوشبختانه، ssh-agent
امکان نگهداری کلید خصوصی در حافظه را به منظور دسترسی آسانتر فراهم میکند. به این منظور، کافی است ssh-add
را (برای هر نشست جداگانه) با یک نسخه کامل ssh-agent
بکار میبرید. دبیان این کار را در نشستهای گرافیکی به صورت خودکار انجام میدهد اما میتوانید با تغییر در /etc/X11/Xsession.options
آن را غیرفعال کنید. برای یک نشست کنسول، میتوانید آن را به صورت دستی و با eval $(ssh-agent)
آغاز کنید.
9.2.1.2. استفاده راهدور از برنامههای X11
پروتکل SSH امکان فوروارد کردن دادههای گرافیکی را میدهد (نشست “X11”، که از نام متداولترین سیستم گرافیکی یونیکس گرفته شده است)؛ سرور یک کانال اختصاصی برای آن در نظر میگیرد. به خصوص، یک برنامه گرافیکی که از راهدور اجرا میشود میتواند روی سرور X.org سیستم محلی نمایش یابد و تمام نشست جاری (ورودی و نمایش) امن خواهد بود. از آنجا که این سیستم اجازه تداخل برنامههای راهدور با سیستم محلی را میدهد، به صورت پیشفرض غیرفعال است. میتوانید با مشخص کردن X11Forwarding yes
در فایل پیکربندی سرور (/etc/ssh/sshd_config
) آن را فعال کنید. در نهایت، کاربر نیز هنگام درخواست ssh
باید گزینه -X
را بیان کند.
9.2.1.3. ایجاد تونلهای رمزگذاری شده با پورت فورواردینگ
گزینههای
-R
و
-L
به
ssh
امکان ایجاد “تونلهای رمزگذاریشده” بین دو رایانه را میدهند، که به تبع آن یک پورت TCP محلی (قسمت
بازگشت به مقدمات TCP/UDP را مشاهده کنید) به شیوهای امن میتواند به یک ماشین راهدور فوروارد شود یا بر عکس.
دستور
ssh -L 8000:server:25 intermediary
یک نشست SSH با میزان
intermediary برقرار کرده و به پورت محلی ۸۰۰۰ گوش میدهد (
شكل 9.3, “فوروارد کردن یک پورت محلی با SSH”
را مشاهده کنید). برای هر ارتباطی که روی این پورت برقرار شود،
ssh
یک ارتباط میانی از رایانه
intermediary با پورت ۲۵ روی
server برقرار کرده و هر دو ارتباط را به یکدیگر متصل میکند.
دستور
ssh -R 8000:server:25 intermediary
نیز یک نشست SSH با رایانه
intermediary برقرار میکند، اما روی این رایانه است که
ssh
به پورت ۸۰۰۰ (
شكل 9.4, “فوروارد کردن یک پورت راهدور با SSH”
را مشاهده کنید) گوش میدهد. هر ارتباطی که روی این پورت برقرار شود
ssh
یک ارتباط با پورت ۲۵
server برقرار کرده و هر دو ارتباط را به یکدیگر متصل میکند.
در هر دو مورد، ارتباطات با پورت ۲۵ میزان server برقرار شد، که جریان داده آن از طریق تونل SSH بین سیستم محلی و سیستم intermediary میگذرد. در مورد اول، ورودی تونل پورت ۸۰۰۰ محلی است و داده قبل از اینکه به server در شبکه “عمومی” برسد از طریق رایانه intermediary میگذرد. در مورد دوم، ورودی و خروجی تونل برعکس شده است؛ ورودی پورت ۸۰۰۰ از رایانه intermediary است و خروجی روی سیستم محلی قرار دارد و جریان داده به این شکل به server هدایت میشود. در عمل، سرور همان سیستم محلی یا میانی است. به این شیوه SSH میتواند ارتباط امنی بین هر دو رایانه برقرار کند.
9.2.2. استفاده از میزکارهای گرافیکی راهدور
VNC یا Virtual Network Computing اجازه دسترسی راهدور به میزکارهای گرافیکی را میدهد.
این ابزار بیشتر برای راهنمایی فنی استفاده میشود؛ مدیرسیستم میتواند خطاهایی را ببیند که کاربر با آن مواجه است و به آنها شیوه حل مساله را آموزش دهد.
First, the user must authorize sharing their session. The GNOME graphical desktop environment in Jessie includes that option in its configuration panel (contrary to previous versions of Debian, where the user had to install and run vino
). KDE Plasma still requires using krfb
to allow sharing an existing session over VNC. For other graphical desktop environments, the x11vnc
command (from the Debian package of the same name) serves the same purpose; you can make it available to the user with an explicit icon.
When the graphical session is made available by VNC, the administrator must connect to it with a VNC client. GNOME has vinagre
and remmina
for that, while the KDE project provides krdc
(in the menu at → → ). There are other VNC clients that use the command line, such as xvnc4viewer
in the Debian package of the same name. Once connected, the administrator can see what is going on, work on the machine remotely, and show the user how to proceed.
VNC همچنین برای کاربران یک شرکت، مانند مدیران اجرایی، که نیاز به دسترسی به رایانه شرکت از خانه خود را دارند بکار میرود. پیکربندی چنین سرویسی کمی پیچیدهتر است: ابتدا بسته vnc4server را نصب میکنید، پیکربندی مدیر نمایش را به منظور قبول درخواستهای XDMCP Query
تغییر میدهید (برای gdm3
، اینکار با افزودن Enable=true
در قسمت “xdmcp” از فایل /etc/gdm3/daemon.conf
صورت میگیرد) و در نهایت سرور VNC را با استفاده از inetd
آغاز میکنید به طوری که هر زمان کاربر درخواست داد نشست مربوطه آغاز گردد. برای نمونه، میتوانید این خط را به فایل /etc/inetd.conf
بیفزایید:
5950 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 16 securitytypes=none
هدایت ارتباطات ورودی به مدیر نمایش مشکل احراز هویت را حل میکند، چرا که تنها کاربران با حسابهای کاربری محلی میتوانند از صفحه gdm3
عبور کنند (یا معادل kdm
، xdm
و از این قبیل). از آنجا که این عملیات امکان چندین ورودی مختلف را فراه میکند (در صورت قوی بودن سرور)، میتواند برای ارائه میزکارهای گرافیکی برای کاربران سیار (یا برای سیستمهای رومیزی ضعیفتر) استفاده شود. کاربران تنها کافی است با استفاده از vncviewer server:50
به سرور متصل شوند، چرا که پورت مورد استفاده ۵۹۵۰ است.