هنگام ایجاد یک سرور Rocky Linux 9 جدید، برخی مراحل کانفیگ را در زمان اولیه تنظیمات باید انجام دهید. این تنظیمات امنیتی و قابلیت استفاده سرور شما را افزایش میدهد و بستر محکمی را برای ساخت پایه فراهم میکند.
مرحله 1 - ورود به عنوان روت
برای ورود به سرور خود، باید آدرس IP عمومی سرور خود را بدانید. همچنین به رمز عبور یا در صورت نصب کلید SSH برای تأیید هویت، کلید خصوصی حساب کاربری روت را نیاز دارید.
اگر هنوز به سرور خود متصل نیستید، اکنون با استفاده از دستور زیر به عنوان کاربر روت وارد شوید (بخش مشخص شده در دستور را با آدرس IP عمومی سرور خود جایگزین کنید):
ssh root@your_server_ip
اگر هشداری در مورد اعتبار اصالت میزبان نمایش داده شود، آن را قبول کنید. اگر از احراز هویت با رمز عبور استفاده می کنید، رمز عبور روت خود را برای ورود وارد کنید. اگر از یک کلید SSH که دارای عبارت رمز عبور استفاده می شود، استفاده می کنید، ممکن است هنگام استفاده از کلید در هر سشن برای اولین بار، از شما خواسته شود تا عبارت رمز عبور را وارد کنید. همچنین اگر این اولین باری است که با رمز عبور وارد سرور می شوید، ممکن است به شما خواسته شود رمز عبور روت را تغییر دهید.
درباره کاربر روت
کاربر روت، یک کاربر مدیریتی در یک محیط لینوکس است و دارای امتیازات بسیار گستردهای است. به دلیل امتیازات بالای حساب کاربری روت، از استفاده آن بصورت معمولی خودداری میشود. بطوری که بخشی از قدرت مرتبط با حساب کاربری روت، توانایی انجام تغییرات بسیار ویرانگر، حتی بصورت تصادفی است.
بنابراین، مرحله بعدی تنظیم یک حساب کاربری جایگزین با دامنه تأثیر کمتر برای کارهای روزمره است. این حساب هنوز قادر خواهد بود در صورت لزوم امتیازات افزایش یافته را کسب کند.
مرحله 2 - ایجاد یک کاربر جدید
هنگامی که به عنوان روت وارد شوید، می توانید یک حساب کاربری جدید ایجاد کنید که از این به بعد برای ورود به سیستم استفاده خواهید کرد.
این مثال یک کاربر جدید به نام "admin" ایجاد می کند، اما میتوانید آن را با هر نام کاربری دلخواه دیگری جایگزین کنید:
adduser admin
سپس، یک رمز عبور قوی برای کاربر جدید تنظیم کنید:
passwd admin
شما باید دو بار رمز عبور را وارد کنید. پس از انجام این کار، کاربر شما آماده استفاده خواهد بود، اما ابتدا به این کاربر امتیازات اضافی برای استفاده از دستور sudo را باید بدهید. این به شما امکان میدهد که در صورت نیاز دستورات را به عنوان روت اجرا کنید.
مرحله 3 - امکانات مدیریتی
در حال حاضر، یک حساب کاربری جدید با امتیازات حساب معمولی دارید. با این حال، گاهی اوقات ممکن است نیاز به انجام کارهایی با دسترسی مدیریتی داشته باشید.
شما میبایست برای اجرای دستورات اصلی از حساب کاربری معمولی خود خارج شده و به عنوان حساب روت وارد شوید، یا می توانید آنچه به عنوان امتیازات "sudo" یا روت برای حساب معمولی خود تنظیم کنید. با قرار دادن کلمه sudo قبل از هر دستور، امکان دسترسی به دستورات با امتیازات مدیریتی تأمین میشود.
برای افزودن این امتیازات به کاربر جدید خود، باید کاربر جدید را به گروه wheel اضافه کنید. بر اساس پیش فرض، در Rocky Linux 9، کاربرانی که به گروه wheel تعلق دارند، مجاز به استفاده از دستور sudo هستند.
به عنوان روت، این دستور را برای افزودن کاربر جدید به گروه wheel اجرا کنید (کلمه بولد شده را با نام کاربری جدید خود جایگزین کنید):
usermod -aG wheel admin
اکنون، هنگام وارد شدن به عنوان کاربر معمولی خود، می توانید قبل از دستورات sudo را تایپ کنید تا عملیاتی با امتیازات اوپری انجام دهید.
مرحله 4 - تنظیمات فایروال
فایروالها یک سطح پایه از امنیت را برای سرور شما فراهم میکنند. این برنامهها مسئول رد کردن ترافیک به هر پورت در سرور شما میباشند، به جز پورتها / سرویسهایی که صراحتاً تأیید کردهاید. Rocky Linux یک سرویس به نام firewalld دارد که برای انجام این عملکرد استفاده میشود. از ابزاری به نام firewall-cmd برای پیکربندی سیاستهای فایروال firewalld استفاده میشود.
ابتدا firewalld را نصب کنید:
dnf install firewalld -y
پیکربندی پیشفرض firewalld اجازهی اتصالات ssh را میدهد، بنابراین میتوانید فایروال را بلافاصله روشن کنید:
systemctl start firewalld
برای اطمینان از شروع کار سرویس، وضعیت سرویس را بررسی کنید
systemctl status firewalld
Output
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago
Docs: man:firewalld(1)
Main PID: 15060 (firewalld)
Tasks: 4 (limit: 10938)
Memory: 28.1M
CPU: 6.127s
CGroup: /system.slice/firewalld.service
└─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork –nopid
توجه کنید که اکتیو و فعال شده است، یعنی اگر سرور را راهاندازی مجدد کنید، به طور پیش فرض آغاز میشود.
اکنون که سرویس در حال اجرا است، میتوانید از ابزار firewall-cmd برای دریافت و تنظیم اطلاعات سیاست فایروال استفاده کنید.
ابتدا بیایید لیستی از سرویسهایی که قبلاً مجاز شدهاند، را ببینیم:
firewall-cmd --permanent --list-all
Output
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
:sources
services: cockpit dhcpv6-client ssh
: ports
:protocols
masquerade: no
:forward-ports
:source-ports
:icmp-blocks
:rich rules
برای مشاهده سرویسهای اضافی که میتوانید آنها را با نام فعال کنید، تایپ کنید:
firewall-cmd --get-services
برای اضافه کردن یک سرویس که باید مجاز شود، از تگ --add-service استفاده کنید:
firewall-cmd --permanent --add-service=http
این کار سرویس http را اضافه میکند و به ترافیک ورودی TCP را به پورت 80 مجاز میکند. پس از بارگذاری مجدد فایروال، پیکربندی بهروز خواهد شد:
firewall-cmd --reload
به خاطر داشته باشید که برای هر سرویس اضافی که ممکن است بعداً پیکربندی کنید، باید مجدد فایروال را (با سرویسها یا پورتها) باز کنید.
مرحله 5 - فعال سازی دسترسی خارجی برای کاربر عادی شما
اکنون که یک کاربر عادی غیر روت برای استفاده روزانه دارید، باید مطمئن شوید که میتوانید از آن برای SSH به سرور خود استفاده کنید.
توجه: تا مطمئن شوید که میتوانید با کاربر جدید خود وارد شوید و از sudo استفاده کنید، باید به عنوان روت وارد شوید. اینطوری، در صورت بروز مشکلات، میتوانید به عنوان روت رفتار کنید و هر تغییر لازم را انجام دهید.
فرایند پیکربندی دسترسی SSH برای کاربر جدید شما بستگی به این دارد که آیا حساب ریشه سرور شما از رمز عبور یا کلیدهای SSH برای احراز هویت استفاده میکند.
اگر حساب روت از احراز هویت رمزعبور استفاده میکند
اگر با استفاده از رمز عبور به حساب روت وارد شدهاید، در این صورت احراز هویت با رمز عبور برای SSH فعال است. شما میتوانید با باز کردن یک سشن ترمینال جدید و استفاده از SSH با نام کاربری جدید، به حساب کاربری جدید خود SSH بزنید:
ssh admin@your_server_ip
پس از وارد کردن رمز عبور کاربر عادی خود، وارد حساب کاربری خواهید شد. به خاطر داشته باشید که اگر نیاز به اجرای یک دستور با امتیازهای مدیریتی دارید، sudo را قبل از آن تایپ کنید، مانند این:
sudo command_to_run
هر بار که از sudo استفاده میکنید، برای اولین بار در هر سشن، از شما رمز عبور کاربر عادی خود خواسته میشود.
برای افزایش امنیت سرور خود، بهتر است به جای استفاده از احراز هویت رمزعبور، کلیدهای SSH را پیکربندی کنید.
اگر حساب روت از احراز هویت کلید SSH استفاده میکند
اگر با استفاده از کلیدهای SSH به حساب روت وارد شدهاید، در این صورت احراز هویت با رمز عبور برای SSH غیر فعال است. برای ورود موفقیتآمیز به حساب کاربری جدید، به یک کپی از کلید عمومی خود برای کاربر جدید در فایل ~/.ssh/authorized_keys نیاز دارید.پ
از آنجایی که کلید عمومی شما در فایل ~/.ssh/authorized_keys حساب ریشه در سرور قرار دارد، شما میتوانید این فایل و ساختار دایرکتوری آن را به حساب کاربری جدید خود کپی کنید.
سادهترین راه برای کپی کردن فایلها با مالکیت و مجوز صحیح، استفاده از دستور rsync است. این دستور، دایرکتوری .ssh کاربر روت را کپی خواهد کرد و مجوزها را حفظ کرده و مالکیت فایلها را تغییر خواهد داد، همه وهمه در یک دستور واحد. حتماً از تغییر بخشهای مشخص شده در دستور زیر برای هماهنگی با نام کاربر عادی خود استفاده کنید:
rsync --archive --chown=admin:admin ~/.ssh /home/admin
حال، در یک ترمینال جدید در دستگاه محلی خود، یک جلسه SSH جدید را با حساب کاربری غیر ریشه خود باز کنید:
ssh admin@your_server_ip
باید وارد حساب کاربری جدید شده باشید بدون استفاده از رمز عبور. به خاطر داشته باشید که اگر نیاز به اجرای یک دستور با امتیازات مدیریتی داشته باشید، sudo را قبل از آن بنویسید مانند این:
sudo command_to_run
در هر جلسه، برای نخستین بار و به طور دورهای پس از آن، برای استفاده از sudo، از شما رمز عبور حساب کاربری عادی خود را درخواست خواهد کرد. در حال حاظر، شما یک پایه قوی برای سرور خود دارید. اکنون میتوانید هر نرمافزاری که نیاز دارید را در سرورتان نصب کنید. به عنوان مثال، میتوانید با نصب وب سرور Nginx شروع کنید.
در این آموزش نحوه راه اندازی سرور اولیه با Rocky Linux 9 را توضیح دادیم. امیدواریم این مقاله آموزشی برای شما مفید بوده باشد، برای دیدن باقی آموزش ها میتوانید وارد منوی پشتیبانی بخش آموزش ها شوید، در صورتی که درباره این آموزش به مشکل یا سوالی برخورد کردید، میتوانید آن را در بخش دیدگاه بیان کنید.