زمانی که شما یک سرور ابری را از یک ارائهدهنده سرویس ابری مانند کلادینو دریافت میکنید، اکثر موارد بر روی این سرور تنظیم گردیدهاست. با این حال جهت تنظیم متناسب با موارد مدنظر شما و افزایش امنیت آن نیاز به انجام تنظیماتی است تا سرور برای استفاده کاملا آماده باشد. در این مقاله به موارد مورد نیاز برای یک سرور ابری با سیستم عامل CentOS 7 توجه شده است. قبل از این که مراحل راهاندازی اولیه سرور با CentOS 7 را دنبال کنید، بهتر است درباره CentOS اطلاعات بیشتری به دست بیاورید.
پروژه CentOS یک توزیع لینوکس است که یک پلتفورم محاسباتی رایگان و پشتیبانی شده توسط جامعه را فراهم میکند و به طور عملکردی با منبع بالادست آن RedHat سازگار است. در این مقاله به نحوه راهاندازی اولیه سرور با CentOS 7 تمرکز خواهیم کرد.
کاربر root، یک کاربر administrative در محیط لینوکس است که دسترسی بسیار گستردهای دارد. با وجود دسترسی ویژهای که کاربر root دارد؛ استفاده مداوم از آن چندان عاقلانه به نظر نمیرسد، زیرا این کاربر قدرت ایجاد تغییرات بسیار مخرب حتی به صورت تصادفی را دارا میباشد. بنابراین نیاز به یک حساب کاربری با قدرت کنترل شده خواهید داشت تا با خیال راحت بتوانید به صورت روزمره از آن استفاده کنید. به مرور زمان میتوانید دسترسی این حساب کاربری را افزایش دهید و قدرت محدود آن را بیشتر نمایید.
در مرحله اول از راهاندازی اولیه سرور با CentOS 7، باید برای ورود به سرور، آدرس IP عمومی سرور خود و رمز عبور حساب کاربری root را بدانید. اگر تا کنون به سرور خود متصل نشدهاید، با استفاده از دستور زیر به عنوان کاربر root وارد سیستم شوید (به جای دستوری که با رنگ دیگر مشخص شدهاست باید آدرس IP عمومی سرور خود را قرار دهید).
local$ ssh root@SERVER_IP_ADDRESS
در صورت ظاهر شدن هشدار مربوط به احراز اصالت host، آن را پذیرفته و رمز root را برای ورود به سیستم وارد نمایید. اگر اولین بار است که با رمز عبور وارد سرور میشوید، از شما خواسته خواهد شد که رمز عبور root را تغییر دهید.
در این مرحله از راهاندازی اولیه سرور با CentOS 7 باید ابتدا به عنوان کاربر root وارد سیستم شده و سپس نام کاربری جدید را برای استفاده به سیستم اضافه کنید. در این مثال یک کاربر جدید با نام demo ایجاد کردهایم. انتخاب نام کاربر جدید اختیاری است و شما میتوانید نام دیگری را برای کاربر خود انتخاب نمایید.
# adduser demo
سپس به کاربر جدید یک رمز عبور اختصاص دهید.
رمزعبور قدرتمندی را وارد کنید و برای تأیید دوباره آن را تکرار کنید.
# passwd demo
اکنون، یک حساب کاربری جدید با دسترسیهای حساب معمولی داریم. با این وجود، ممکن است گاهی اوقات نیاز به انجام وظایف administrative داشته باشیم و نمیتوانیم
برای اینکه مجبور به خروج از حساب کاربری عادی و ورود مجدد به آن به عنوان حساب کاربری root نباشیم، میتوانیم برای حساب عادی خود چیزی را که به عنوان “کاربر فوق العاده” یا دسترسیهای root شناخته میشود تنظیم کنیم. این امر به کاربر عادی ما امکان میدهد تا با قرار دادن کلمه sudo قبل از هر دستور، دستوراتی را با دسترسیهای administrative اجرا کند.
به منظور افزودن این دسترسیها به حساب کاربری جدید، باید حساب کاربری جدید را به گروه “wheel” اضافه کنیم. به صورت پیش فرض، در CentOS 7، کاربرانی که متعلق به گروه “wheel” هستند، مجاز به استفاده از دستور sudo میباشند. به عنوان root، این دستور را اجرا کنید تا حساب کاربری جدید شما به گروه wheel اضافه شود (به جای کلمهای که با رنگ دیگر مشخص شدهاست، نام کاربری جدید خود را جایگزین کنید):
# gpasswd -a demo wheel
حال، حساب کاربری شما میتواند با دسترسیهای حساب کاربری ممتاز، دستورات را اجرا کند.
در این مرحله، برای محافظت از سرور شما، به ایجاد یک کلید عمومی احراز هویت برای کاربر جدید شما میپردازیم و با راهاندازی کلید خصوصی SSH برای ورود، امنیت سرور شما ارتقا خواهد بخشید.
در صورتی که تاکنون یک زوج کلید SSH که شامل یک کلید عمومی و یک کلید خصوصی میشود، نداشتهاید، باید آن را ایجاد کنید. اگر کلیدی دارید که میخواهید از آن استفاده کنید، به قسمت’ کلید عمومی را کپی کنید‘ بروید.
برای ایجاد یک زوج کلید جدید، دستور زیر را در پایانه دستگاه محلی خود وارد کنید:
local$ ssh-keygen
با در نظر گرفتن این که کاربر محلی localuser نام گذاری شده است، خروجی زیر را مشاهده خواهید کرد.
ssh-keygen output Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
برای پذیرش این نام و مسیر پرونده (یا ورود یک نام جدید) بر روی Enter کلیک کنید.
در مرحله بعد، برای تأمین امنیت کلید از شما یک عبارت عبور خواسته خواهد شد. ممکن است یک عبارت عبور وارد کنید یا جای آن را خالی بگذارید.
توجه: اگر جای عبارت عبور را خالی بگذارید، میتوانید بدون وارد کردن یک عبارت عبور، از کلید خصوصی برای احراز اصالت استفاده کنید. در صورتی که عبارت عبور را وارد کنید، برای ورود به سیستم، به یک کلید خصوصی و هم به عبارت عبور نیاز خواهید داشت. تأمین امنیت کلیدهای شما با عبارات عبور ایمنتر است، اما هر دو روش کاربردهای خود را دارند و از احراز هویت رمز عبور پایه مطمئنتر هستند.
این عمل کلید خصوصی، id_rsa و یک کلید عمومی، id_rsa.pub را در دایرکتوری .ssh در قسمت دایرکتوری localuser ایجاد میکند. به یاد داشته باشید که کلید خصوصی نباید با افرادی که اجازه دسترسی به سرورهای شما را ندارند، به اشتراک گذاشته شود.
پس از ایجاد یک زوج کلید SSH، باید کلید عمومی خود را در سرور جدید کپی کنید. در این مقاله، دو راه آسان برای انجام این فرایند را مطرح خواهیم کرد.
اگر در دستگاه محلی شما، اسکریپت ssh-copy-id نصب شده است، میتوانید از آن برای نصب کلید عمومی خود برای هر کاربری که اعتبار ورود به سیستم را دارد استفاده کنید.
با مشخص کردن کاربر و آدرس IP سروری که میخواهید کلید را روی آن نصب کنید اسکریپت ssh-copy-id را مانند زیر اجرا کنید.
local$ ssh-copy-id demo@SERVER_IP_ADDRESS
پس از ارائه رمزعبور خود، به سرعت کلید عمومی شما به پرونده ssh/authorized_keys کاربر از راهدور اضافه میشود. هم اکنون میتوانید برای ورود به سرور از کلید خصوصی مربوطه استفاده کنید.
با فرض اینکه شما با استفاده از مرحله قبلی یک زوج کلید SSH ایجاد کردهاید، برای چاپ کلید عمومی خود از دستور زیر در پایانه دستگاه محلی خود استفاده کنید (id_rsa.pub).
local$ cat ~/.ssh/id_rsa.pub
این دستور باید کلید عمومی SSH شما را که مشابه به عبارت زیر خواهد بود را چاپ کند.
id_rsa.pub contents ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
کلید عمومی را انتخاب کنید و آن را در clipboard خود کپی کنید.
برای فعال کردن استفاده از کلید SSH به منظور احراز هویت به عنوان کاربر از راهدور جدید، باید کلید عمومی به یک پرونده ویژه از دایرکتوری کاربر اضافه شود.
در سرور، به عنوان کاربر ریشه، دستور زیر را وارد کنید تا به کاربر جدید تبدیل شود (نام کاربری اختصاصی خود را جایگزین کنید):
# su – demo
حال شما در دایرکتوری کاربر جدید خود خواهید بود.
یک دایرکتوری جدید که .ssh نامیده میشود ایجاد کنید و مجوزهای آن را با دستورهای زیر محدود کنید:
• $ mkdir .ssh • • $ chmod 700 .ssh
حال یک فایل در .ssh که authorized_keys نام دارد را با استفاده از یک ویرایشگر متن، باز کنید. در این مقاله، از vi برای ویرایش فایل استفاده خواهد شد.
$ vi .ssh/authorized_keys
با فشردن i، وارد حالت insert شوید، سپس کلید عمومی خود را (که در clipboard کپی کردهاید)، در ویرایشگر وارد کنید. حال با کلیک برروی ESC از حالت Insert خارج شوید.
واژهی X : سپس ENTER را برای ذخیره و خروج از فایل وارد کنید.
حال با استفاده از دستور زیر، مجوزهای فایل authorized_keys را محدود کنید.
$ chmod 600 .ssh/authorized_keys
دستور زیر را تایپ کنید تا به حساب کاربری root بازگردید.
$ exit
اکنون میتوانید با استفاده از کلید خصوصی به عنوان احراز هویت، به صورت کاربر جدید خود وارد SSH شوید.
حال که حساب جدید خود را دارید، میتوانید با ایجاد مقداری تغییر در تنظیمات SSH daemon ( برنامهای که امکان ورود از راهدور را ایجاد میکند)، امنیت سرور را تأمین کنید تا از دسترسی از راهدور SSH به حساب root جلوگیری کنید.
با باز کردن فایل تنظیمات توسط یک ویرایشگر متن به عنوان حساب کاربری root، آغاز کنید:
# vi /etc/ssh/sshd_config
اینجا، گزینهای دارید که ورود ریشه از طریق SSH را غیرممکن میسازد. این مورد به صورت کلی یک تنظیم ایمنتری است چرا که میتوانید از طریق حساب کاربری عادی به سرور خود دسترسی داشته باشید و در صورت لزوم دسترسیها را افزایش دهید.
به منظور غیرفعال سازی ورود به سیستم root از راهدور، نیازمند سطری مشابه آنچه در زیر مشاهده میکنید، هستید. )برای جستجوی سطر، PermitRoot/ را تایپ کرده و سپس ENTER را فشار دهید.این دستور باید مکاننما را روی حرف”P” در این سطرقرار دهد.
/etc/ssh/sshd_config (before) #PermitRootLogin yes
با پاک کردن نماد “#” (فشردن Shift-x)، این سطر را Uncomment کنید.
حال مکان نما را با فشردن C برروی “yes” حرکت دهید.
اینک با فشردن cw، “yes” را جایگزین کنید، سپس “no” را تایپ کنید. کلید Escape را پس از انجام اصلاحات فشار دهید.
/etc/ssh/sshd_config (after) PermitRootLogin no
غیرفعال کردن ورود به سیستم از راه دور برای هر سروری بسیار توصیه می شود!
واژهی X : سپس ENTER را برای ذخیره و خروج از فایل، وارد کنید.
اکنون که تغییرات خود را ایجاد کردهاید، باید سرویس SSH را مجدداً راهاندازی کنید تا از تنظیمات جدید استفاده کند.
عبارت زیر را برای راهاندازی مجدد SSH تایپ کنید.
# systemctl reload sshd
حال قبل از اینکه از سرور خارج شوید، باید تنظیمات جدید خود را تست کنید زیرا تا زمانی که برقراری موفقیت آمیز اتصالات جدید تأیید نشده است، نمیخواهید ارتباط را قطع کنید.
یک پنجره پایانه جدید باز کنید. در پنجره جدید، باید ارتباط جدیدی را با سرور خود شروع کنید. این بار به جای استفاده از حساب root از حساب کاربری جدیدی که ایجاد کردید استفاده کنید.
به سروری که در بالا تنظیماتش را انجام دادید، با استفاده از دستور زیر وصل شوید و اطلاعات شخصی خود را در جایی که مناسب است جایگزین کنید:
local$ ssh demo@SERVER_IP_ADDRESS
توجه: اگر از PuTTY برای اتصال به سرورهای خود استفاده میکنید، حتماً port number، session را به روز کنید تا با تنظیمات فعلی سرور شما مطابقت داشته باشد.
از شما رمز ورود حساب کاربر جدیدی که تنظیم کردهاید خواسته خواهد شد. پس از آن شما به عنوان کاربر جدید خود وارد سیستم میشوید.
به خاطر داشته باشید که اگر قصد اجرای یک دستور با دسترسیهای root را دارید، عبارت”sudo” را قبل از آن، همانند زیر تایپ کنید:
$ sudo command_to_run
اگر همه چیز به خوبی پیش رفته باشد، میتوانید با تایپ کردن عبارت زیر، از session های خود خارج شوید.
$ exit
در این مرحله، شما یک اساس محکم برای سرور خود دارید. اکنون میتوانید هرکدام از نرمافزارهای مورد نیاز را روی سرور خود نصب کنید.