دولوپرها اکثراً با پورتهایی همچون ۸۰ برای Web Server و یا پورت ۲۱ برای FTP و غیره آشنایی دارند؛ میدانیم که برای ارتباطات امن ریموت هم از SSH با پورت پیشفرض ۲۲ استفاده میشود. متنی که در ادامه میخوانید، ماجرایی است به قلم Tatu Ylonen -مبتکر Secure Sell یا بهاختصار SSH- در مورد نحوهٔ اختصاص یافتن پورت شماره ۲۲ به این پروتکل که در نوع خود، داستانی جالب است.
نکته : اگر دسترسی روت به سرور دارید نیازی به زدن sudo اول دستور نیست.
خب وقتشه بریم سراغ اینکه چطوری میتونیم با استفاده از SSH به سرور خودمون متصل بشیم
اگر لینوکس دارید و کاربر لینوکس هست کافی هست ترمینال رو باز کنید و به صورت زیر عمل کنید
ssh user@ip -p port
با استفاده از دستور ssh در لینوکس میتوانید به سرور خود متصل گردید.(در مک هم نیز جواب گو هست)
user: نام کابری شما
ip: ای پی سرور شما
-p : پورت SSH هست که به صورت دیفالت ۲۲ هست که اگر تغییر نداده اید نیازی نیست از فلگ -p استفاده کنید اما اگر پورت SSH رو تغییر داده اید باید از فلگ -P استفاده کنید به صورت یک فاصله و شماره پورت رو جلوش وارد کنید! و اما اگر تغییر نداده اید در ادامه بهتون میگم چطوری پورت SSH رو تغییر بدید!
اما ابزاری هم در لینوکس هست که با استفاده از اون میتونید از طریق SSH به سرورتون متصل بشید مثل ابزار remmina یا putty
و در اخر در ویندوز کافی هست که نرم افزار پوتی (putty) رو از آدرس زیر دانلود و نصب کنید.
که در قسمت hostname (or ip) باید هاست نیم (Hostname) یا آیپی (ip) سرور خود را وارد کنید.
نکته: میتوانید به صورت user@ip هم در این قسمت وارد کنید یعنی یوزر شما @ ای پی سرور
در قسمت port هم پورت SSH خود را وارد کنید. و سپس روی open کلیک کنید تا فرایند اتصال انجام گیرد.
برای تغییر پورت SSH ابتدا به مسیر زیر مراجعه کنید با استفاده از دستور cd :
نکته : با استفاده از دستور cd میتوانید بین دایرکتوری ها حرکت کنید.
cd /etc/ssh
سپس فایل کانفیگ SSH را با نام sshd_config ویرایش کنید با استفاده از ویرایشگر نانو(nano):
نکته : نانو(nano) یکی از معروف ترین ویرایشگر های خط فرمان لینوکس میباشد.
sudo nano sshd_config
و سه پس به دنبال عبارت زیر بگردید.
#Port 22
اگر نتوانستید پیدا کنید ctrl+w را بفشارید و Port را سرچ کنید توجه کنید با P بزرگ.
و این خط را از حالت کامنت خارج کنید برای خارج کردن کامنت # را حذف کرده و به جای ۲۲ پورت مورد نظر خود را بنویسید.
نکته: کامنت به زبان ساده توضیحات هستند و هیچ تاثییری در برنامه یا فایل کانفیگ سرویس ما ندارند تا زمانی کامنت شده باشند.
پس از این کار با Ctrl+x را بفشارید از شما سوال میکند که تغییرات رو سیو کند یا خیر ؟ y به معنای تایید و بله هست و n به معنای خیر.y را تایپ کرده و اینتر را بفشارید.
تبریک میگم پورت اس اس اچ رو با موفقیت تغییر دادید حالا سرویس SSH را با دستور ریستارت کنید و با پورت جدید متصل بشید و لذت ببرید.(برای توزیع های مختلف دستور مشخص شده.)
بد نیست به یک نکته اشاره بکنیم ! چطوری از ورود یوزر root به سرور از طریق SSH جلوگیری کنیم ؟
برای این کار فایل کانفیگ SSH را دوباره ادیت میکنیم
sudo nano /etc/ssh/sshd_config
و به به دنبال
#PermitRootLogin yes
به گردید و از حالت کامنت آن را خارج کرده و yes را به no تغییر دهید.
سپس سرویس SSH را ریستارت کنید.(در دستورات بالا گفتیم چگونه ssh را ریستارت کنید.)
اکنون دیگر یوزر root توانایی اتصال به سرور از طریق SSH را ندارد.
با استفاده از دستور useradd یک یوزر جدید بسازید به طور مثال hosthey
sudo useradd hosthey
سپس آن را به گروه sudoer ها اضافه نمایید
sudo visudo
و خط زیر را اضافه و سیو کنید.
hosthey ALL=(ALL) ALL
زین پس با یوزر hosthey اول هر دستوری که sudo بذارید از شما درخواست پسورد کرده که با زدن پسورد دسترسی های لازم را گرفته و اجرا میگردد.
مورد آخر هم میخواییم در مورد اینکه چطوری دسترسی به ssh رو کلا ببندیم و فقط به یک یا یکسری آی پی خاص دسترسی بدیم که بتونن از طریق ssh متصل بشن به سرور!خب بیایید شروع کنیم ابتدا فایل hosts.allow را در مسیر /et ویرایش کنید.
sudo nano /etc/hosts.allow
سپس عبارت زیر را به آن بیفزایید
به جای ipaddress آی پی مورد نظر خود را وارد کنید.
SSHD : ipaddress : ALLOW
خب ما با این کار فقط به یک آی پی اجازه دادیم به سرویس ssh بتونه متصل بشه اما ! تعریف نکردیم که تکلیف مابقی ای پی ها چیه! باید دسترسی مابقی ای پی ها رو ببندیم ! پس میایم فایل hosts.deny در مسیر /etc ویرایش میکنیم
sudo nano /etc/hosts.deny
و خطر زیر رو بهش اضافه میکنیم
SSHD : ALL : DENY
این یعنی دسترسی همه ای پی ها بهش بسته باشه به جز ای پی هایی که داخل فایل hosts.allow مشخص کردیم.
و در نهایت سرویس ssh رو ریستارت کنید و از تنظیماتی که انجام دادید لذت ببرید.