# ایمن سازی یا OpenSSH

- پیوند: https://negarnovin.com/%d8%a7%db%8c%d9%85%d9%86-%d8%b3%d8%a7%d8%b2%db%8c-%db%8c%d8%a7-openssh/
- منتشرشده: 2021-05-17T03:44:04+00:00
- نویسنده: نگارنوین

# ![ایمن سازی یا OpenSSH](https://negarnovin.com/wp-content/uploads/2021/05/fire-wall.jpg)

# ایمن سازی یا OpenSSH

با شما هستیم با آموزش ایمن سازی یا OpenSSH در خدمت شما خواهیم بود تا انتهای این 
مطلب ما را همراهی کنید. و یا با  محیط آن آشنا گردید به مطالعه این مطللب بپردازید.

بکاپ منظم روزانه هفتگی ماهانه در یک سرور مجزا از مزیت نگارنوین نسبت به سایرین می
باشد.

شرکت نگارنوین با همت بهترین کارشناس های قوی به شما کاربران و مشتریهای عزیز خدمت 
رسانی میکند تا هرچه آسان تر و بهتر به درخواست های خود برسید.

[کاموا](https://kamvataghavi.com/)

## ** ****OpenSSH**

ایمن سازی یا OpenSSH، همانند پروتکل telnet عمل می کند و تعدادی عملیات را برای ایمن
سازی ارتباط و محیط سیستم عامل به عنوان نصب SSH می توان مطرح کرد.

## **استفاده از نام کاربری و رمز عبور قوی**

یکی از مهم ترین مسائلی که به آن باید توجه داشت، جلوگیری از لو رفتن نام کاربری و 
رمز عبور است. به خاطر داشته باشید استفاده از نام کاربری و رمز عبور قوی طبق استانداردها
سبب می شود امنیت بیشتر و امکان حدس زدن و یا شناختن آن بسیار کاهش یابد. برای ایجاد
یک رمز عبور قوی لازم است تا از یک (Password generator) استفاده کنید، یا اگر خود 
می خواهید آن را انتخاب کنید نکات زیر را در آن رعایت کنید:

 * حداقل تعداد کاراکترها در آن ۸ باشد.
 * استفاده از کاراکترهای (Upper & Lower case) در آن.
 * در آن هم از کاراکتر الفبا و هم از اعداد استفاده شود.
 * از کاراکترهای غیر الفبایی نیز در آن استفاده گردد.

## **جلوگیری از لاگین شدن ****root**

تنظیمات مربوط به SSH در آدرس (/etc/ssh/sshd_config) است. بنابراین برای جلوگیری از
ورود root دستورهای زیر را اجرا می کنیم.

`# Prevent root logins:`

`PermitRootLogin no`

و سپس restart می کنیم:

`service sshd restart`

اگر نیاز به دسترسی root داشتید، می توانید در ابتدای دستورات مورد نظر خود از پیشوند(
Su) استفاده کنید.

### **محدود کردن لاگین های کاربران**

به یاد داشته باشید تنها به افرادی اجازه ی ورود به سیستم بدهید که نیاز دارند و از
اعطای این حق به همه خودداری کنید. برای مشخص کردن کاربرانی که مجوز وارد شدن دارند،
ابتدا باید آن ها را تعریف کرد. به تنظیمات SSH در آدرس (/etc/ssh/sshd_config) بروید
و نام کاربری کاربران را اضافه کنید.

`AllowUsers allice bob`

### **غیرفعال کردن پروتکل ****۱**

SSH دارای دو پروتکل است که با نام های پروتکل ۱ و پروتکل ۲ شناخته می شود. پروتکل 
۱ به نسبت دارای امنیت کمتری است و می بایست آن را غیرفعال کنید؛ مگر آن که بدانید 
مستقیماً به همان نیاز دارید. برای غیر فعال کردن این پروتکل باز به تنظیمات SSH در
آدرس (/etc/ssh/sshd_config) می رویم و پروتکل را (uncomment) می کنیم:

`# Protocol 2,1`

 `Protocol 2`

 سپس sshd را restart می کنیم.

### **استفاده از پورت های کمتر شناخته**

به طور پیش فرض ssh برای دریافت کانکشن ها از پورت ۲۲ استفاده می کند؛ اگر هکری بخواهد
به سیستم شما نفوذ کند، به راحتی می تواند با اسکن کردن پورت ۲۲ به اطلاعات پی ببرد.
بنابراین لازم است تا پورت آن را از حالت پیش فرض به یکی از پورت های دیگر تغییر دهیم.
بسیاری از افراد پورت ۲۲۲۲ را به عنوان پورت جایگزین و یا ۸۰۸۰ را به عنوان پورت جایگزین
برای (http) قرار می دهند. البته انتخاب پورت ۲۲۲۲ خیلی عاقلانه نیست؛ چرا که بدلیل
شباهت به پورت ۲۲ هکرها حتماً آن را نیز اسکن می ‍کنند. بهتر است پورتی را انتخاب کنید
که کمتر شناخته شده باشد. برای این که تنظیمات پورت را تغییر دهید:

`# Run ssh on a non-standard port:`

`Port 2345  #Change me`

و سپس ssh را restart کنید. به یاد داشته باشید این تغییرات پورت را در فایروال و روترها
نیز تأثیر گذار است و باید تغییراتی در آن ها نیز ایجاد کنید. برای مثال در CentOS 
۷ نیاز است تا تغییرات زیر در فایروال انجام گیرد:

`$ firewall-cmd --add-port 2345/tcp`

`$ firewall-cmd --add-port 2345/tcp --permanent`

در سیستم عامل های CentOS ۶ و بالاتر نیاز است تا (selinux ، Labeling) را نیز تنظیم
کنید.

`$ semanage port -a -t ssh_port_t -p tcp 2345 #Change me`

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

`ssh -p 2345 myserver`

### **فیلتر کردن ****SSH**** در فایروال**

اگر شما تنها یک IP برای دسترسی کنترل از راه دور دارید، بهتر است تا دیگر ارتباط ها
را در فایروال مثلا توسط Iptable ها  فیلتر کنید:

`iptables -A INPUT -p tcp -s 72.232.194.162 --dport 22 -j ACCEPT`

اگر شما نمی توانید آدرس IP مبدأ را محدود کنید و می بایست که پورت SSH را باز بگذارید،
در آن صورت استفاده از 0Iptabl ها می توانند جلوی حمله ی (Brute-force attack) را با
مسدود کردن لاگین های تکراری از یک IP آدرس بگیرند.

`iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name
ssh --rsource iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent!--
rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT`

دستور اول (IP )هایی که ورود یا سعی بر ورود می کنند را رکورد و نگه داری می کند و 
دستور دوم چک می کند که (IP) ورودی در۶۰ ثانیه بیش از ۴ باز قصد ورود نداشته باشد. 
آن گاه اجازه دسترسی به آن داده می شود.

### **استفاده از کلیدهای عمومی و خصوصی**

استفاده از کلیدهای رمزدار شده برای احراز هویت دو هدف اصلی را تأمین می کند. اول این
که دیگر نیازی به وارد کردن رمز عبورهای سخت و طولانی نیست و ثانیاً بدون وجود کلید
خصوصی (private) دیگر نمی توان احراز هویت کرد و وارد شد؛ درصورتی که قبلا با داشتن
رمز عبور هر کسی می توانست به سیستم وارد شود و خطر حمله های تشخیص رمز نیز کاهش می
یابد.

ابتدا یک جفت کلید (public/private) را در کلاینت خود ایجاد کنید و سپس آن را با سرور
به اشتراک بگذارید. توجه داشته باشید هر کلاینتی که نیاز به برقراری ارتباط با سرور
داشته باشد نیاز به داشتن این کلید دارد.

`ssh-keygen -t rsa`

این دستور سبب ایجاد دو فایل مخفی با نام های (id_rsa) «کلید خصوصی»، و (id_rsa.pub)«
کلید عمومی» در دایرکتوری (~/..ssh) می سازد.

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

پس از آن برای private key حق و مجوز تعریف کنید:

`chmod 700 ~/.sshchmod 600 ~/.ssh/id_rsa`

پس از آن کلید عمومی را بر روی سرور ذخیره کنید و (authorized_key) را نصب کنید:

`cat id_rsa.pub >> ~/.ssh/authorized_keys`

و نهایتاً اگر (StrictModes) در (/etc/ssh/sshd_config) به عنوان پیش فرض (Y) تعریف
شده باشد، نیاز است تا حقوق دسترسی آن را مشخص کنید:

`chmod 700 ~/.sshchmod 600 ~/.ssh/authorized_keys`

مطمئن شوید قسمت های درستی از (SELinux) تنظیم شده اند:

`restorecon -Rv ~/.ssh`

برای غیرفعال کردن رمز عبور به طور کامل می توان از دستور زیر استفاده کرد:

`# Disable password authentication forcing use of keys`

`PasswordAuthentication no`

[**سرور مجازی فنلاند**](https://negarnovin.com/%D8%B3%D8%B1%D9%88%D8%B1-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D9%81%D9%86%D9%84%D8%A7%D9%86%D8%AF/)

#### تبریک می گوییم مقاله آموزش ایمن سازی یا OpenSSH پایان رسید با مقالات بعدی ما را همراهی کنید.

شعار همیشگی: حفظ مشتریان فعلی ، دعوت از مشتریان قبلی ، جذب مشتریان آتی.

### 📌 خلاصه

ایمن سازی یا OpenSSH/SSH دارای دو پروتکل است که با نام های پروتکل ۱ و پروتکل ۲ شناخته
می شود. پروتکل ۱ به نسبت دارای امنیت کمتری است
