پیکربندی Cygwin

فایل C:\cygwin\cygwin.bat را ویرایش کنید و خط زیر را بین خطوط chdir و bash اضافه کنید:

set CYGWIN=binmode ntsec

فایل باید به این شکل باشه:

چک کردن نصب Cygwin

همیشه چک کردن خوبه

تو این مرحله می‌خوایم ببینیم cygwin به درستی نصب شده یا نه. برای این چک فایل زیر را با دسترسی admin اجرا کنید:

C:\cygwin\cygwin.bat

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

cygrunsrv -h

تصاویر رو باهم می‌بینیم:

اگه خروجی بالا رو داشتید یعنی همه چی خیلی خوب و عالیه

خواهشاً این cli رو نبندید باهاش کار داریم

پیکربندی SSH

تو cli قبلی دستور زیر را برای پیکربندی SSH وارد کنید:

ssh-host-config

به سوالات مثل من پاسخ بدید و خواهشاً از خودتون چیزی درنیارید:

*** Query: Overwrite existing /etc/ssh_config file? (yes/no) yes
*** Query: Should StrictModes be used? (yes/no) yes
*** Query: Should privilege separation be used? (yes/no) yes
*** Query: new local account 'sshd'? (yes/no) yes
*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: [] binmode ntsec
*** Query: Do you want to use a different name? (yes/no) no
*** Query: Create new privileged user account 'cyg_server'? (yes/no) yes
*** Query: Please enter the password: ******
*** Query: Reenter: ******

حالا برای استارت سرویس ssh از دستور زیر استفاده کنید:

cygrunsrv -S sshd

چک کردن سرویس SSH

بعد از اقدامات بالا سرویس ssh باید استارت باشه برای چک کردن وضعیت سرویس:

Start -> run -> services.msc

پیکربندی کاربر SSH

این مرحله به ایجاد و پیکربندی یک کاربر برای دسترسی مستقیم به ماشین از طریق SSH می‌پردازیم. این کاربر به OEM اجازه میده که از طریق SSH یک ارتباط امن با host ایجاد کنه و دسترسی به host از طریق OEM ایجاد بشه

یک راه خیلی آسون برای نصب و پیکربندی cygwin به این صورته که سرور OEM شما و سروهای host در یک domain ویندوزی باشند و کاربر SSH شما (مثلاً Oracle DBA) دسترسی administrator رو در domain روی host مورد نظر داشته باشه.

ما می‌تونیم این کاربر رو از قبل در سیستم‌عامل ایجاد کنیم (چه local و چه domain)

برای اینکه cygwin کاربرها و گروه‌های ویندوزی شما رو بشناسه و جزو کاربرهای خودش بیاره از دستورات زیر استفاده کنید:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

و یا با دستور زیر این کاربر domainای رو در cygwin ایجاد کنیم:

mkpasswd -d -u oracle_dba >> /etc/passwd

یا اگه شما یه کاربر لوکالی میخواین از دستورات زیر استفاده کنید:

mkpasswd -l -u oracle_dba >> /etc/passwd

خب من میخوام از راه‌حل اول استفاده کنم پس دستورات زیر را در cli می‌زنم:

mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group

حالا باید مسیر home کاربر مورد نظرم رو بسازم ولی قبلش فایل /etc/passwd رو باز میکنم:

خب همونطور که می‌بینید تمام کاربرهای سیستم‌عامل ویندوز تو فایل passwd آورده شده. خب من میتونم یه کاربر جدید باری ssh بسازم و یا میتونم از یکی از کاربرهای موجود استفاده کنم من از کاربر em_cloud استفاده میکنم.

فونت کوزه‌گری

از این فایل اسم کاربر با hostname قبلش رو کپی میکنم که برای مراحل بعدی لازممون میشه. (MDC-DWH01+em_cloud)

حالا باید home کاربرمون رو بسازیم و مجوزمون رو بهش بدیم:

mkdir -p /home/em_cloud
chown MDC-DWH01+em_cloud /home/em_cloud

اعطای مجوزها به کاربر SSH

دادن مجوزهای زیر به کاربر SSH واجب و ضروریه:

chown MDC-DWH01+em_cloud /var/log/sshd.log
chown -R MDC-DWH01+em_cloud /var/empty
chown MDC-DWH01+em_cloud /etc/ssh*
chmod 755 /var/empty
chmod 644 /var/log/sshd.log

نکته: البته نیازی به اعصای این مجوز به sshd.log نیستش ولی به نظرم بهتره برای راحتتر خوندن لاگ‌ها این کار کوچیک رو هم انجام بدیم.

امنیت

برای اینکه پیکربندی ما بوی امنیت هم بده خط زیر رو به انتهای فایل C:\cygwin\etc\sshd_config  اضافه می‌کنیم:

KexAlgorithms diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

خب حالا اگه شما لینوکس کار باشید می‌دونید که ما الان یه کار فوق العاده کردیم و از الان به بعد شما می‌تونید از قابلیت‌های شگفت انگیز ssh استفاده کنید و مثلا رو ویندوز پراکسی با امنیت خیلی بالا ایجاد کنید و یا دیگه به جای استفاده از remote desktop به سادگی با ssh و فعال کردن x11 forwarding از کار به صورت ریموت لذت ببرید.

قطعاً هم اگه آدم شادی هستید دارید از لینوکس استفاده می‌کنید.

عوض کردن کاربر سرویس SSH

خب حالا وقتشه کاربر سرویس SSHامون رو عوض کینم. به مسیر زیر می‌ریم:

Start -> run -> services.msc

روی سرویس CYGWIN sshd راست کلیک می‌کنیم و Properties رو انتخاب می‌کنیم:

تب Log On رو انتخاب می‌کنیم و Log On as رو روی This account میذاریم:

روی دکمه Browse کلیک می‌کنیم و اگه ویندوزمون join domain باشه به سرعت وارد پنجره زیر می‌شیم:

حالا باید با یه کاربر ادمینی که join domain هستش لاگین کنیم تا دسترسی‌هامون باز بشه.

روی دکمه‌ی Find Now کلیک می‌کنیم:

کاربر em_cloud را انتخاب می‌کنیم و روی دکمه OK کلیک می‌کنیم تا به صفحه زیر برسیم

در این صفحه بر روی دکمه OK کلیک می‌کنیم تا وارد صفحه زیر شویم

در این پنجره پسورد کاربر را وارد می‌کنیم

پیغام‌های زیر را تایید می‌کنیم:

ریستارت سرویس SSH

یکبار سرویس را رستارت می‌کنیم:

خب پیکربندی SSH ما تموم شد برای اینکه مطمئن بشیم همه چی به درستی کار میکنه و مشکلی وجود نداره از ماشین EM Cloud Control به host ویندوزیمون SSH می‌زنیم:

نکته: توجه داشته باشید سیستم‌عامل OEM 13C من اوراکل لینوکس هستش

[root@mdc-em ~]# ssh MDC-DWH01+em_cloud@mdc-dwh01
MDC-DWH01+em_cloud@mdc-dwh01's password:
Last login: Wed Jan 11 15:27:49 2017 from 172.16.9.217 
MDC-DWH01+em_cloud@MDC-DWH01 ~
$ pwd
/home/em_cloud 
MDC-DWH01+em_cloud@MDC-DWH01 ~
$ exit
logout
Connection to mdc-dwh01 closed.

خب دیگه آخرهای کاره

تودو: حواسم باشه کاربر dbsnmp رو unlock‌کنم که oem بدجوری بهش نیاز داره