راهنمای راهاندازی اولیه سرور روی CentOS
انجام تنظیمات CentOS اولین اقدامی است که باید بعد از ایجاد سرور جدید CentOS انجام دهید. انجام این کار امنیت و قابلیتهای سرور را افزایش میدهد. مراحل اولیه تنظیمات اولیه CentOS بسیار راحت است و با دنبال کردن چند مرحله ساده میتوانید این کار را انجام دهید. در ادامه این مقاله آموزشی با ما همراه باشید تا بهصورت کامل با مراحل راهاندازی اولیه سرور روی CentOS 8 آشنا شوید.
مراحل نصب و پیکربندی تنطیمات سرور CentOS
برای انجام تنظیمات اولیه CentOS کافی است مراحل زیر را به ترتیب دنبال کنید:
مرحله اول – به عنوان کاربر Root لاگین کنید
برای ورود به سرور، ابتدا باید آدرس IP پابلیک خود را وارد کنید. سپس برای ورود به اکانت روت خود باید رمز عبور یا کلید SSH را برای احراز هویت وارد نمایید. اگر به سرور خود متصل نیستید، با استفاده از دستور زیر به عنوان کاربر روت وارد شوید (به جای قسمت هایلایت شده شما باید آدرس IP عمومی سرور را تایپ کنید):
ssh root@your_server_ip
در صورت مشاهده اخطار مربوط به اعتبار هاست، آن را قبول کنید. اگر از احراز هویت با پسورد استفاده میکنید، برای ورود به سیستم کافی است رمز عبور روت خود را وارد کنید. البته به این نکته توجه داشته باشید که اگر اولین بار است که با رمز عبور وارد میشوید، احتمالا از شما خواسته میشود آن را تغییر دهید. همچنین اگر از یک کلید SSH استفاده میکنید که با کلمه عبور محافظت میشود، ممکن است اولین باری که از کلید برای session استفاده میکنید، از شما خواسته شود که عبارت عبور را وارد کنید.
درباره یوزر روت
کاربر root یک یوزر administrative در محیط لینوکس بوده که دارای امتیازات بسیار زیادی است؛ به همین دلیل استفاده معمول از یوزر روت پیشنهاد نمیشود، زیرا ممکن است باعث ایجاد تغییرات بسیار مخرب در سرور حتی به صورت سهوی شود. برای جلوگیری از بروز این مشکل، باید یک اکانت جایگزین با دامنه نفوذ کمتری را برای کارهای روزانه با سرور ایجاد کنید. این اکانت در صورت لزوم میتواند امتیازات بیشتری کسب کند.
مرحله دوم پیکربندی تنظیمات CentOS – یک کاربر جدید ایجاد کنید
در این مرحله از پیکربندی تنظیمات CentOS به ساخت یک اکانت جدید میپردازیم. هنگامی که به عنوان یوزر root وارد شدید، میتوانید یک اکانت جدید بسازید تا برای ورود به سیستم از آن استفاده کنید. برای مثال، ما یک کاربر جدید به نام ali ایجاد میکنیم. توجه داشته باشید که شما میتوانید هر نام کاربری دیگری را برای اکانت خود انتحاب کنید.
برای ایجاد یک کاربر جدید به نام ali
باید دستور زیر را به کار ببرید:
adduser ali
اکنون باید برای یوزر ali
یک رمز عبور قوی انتخاب کنید:
passwd ali
حالا از شما درخواست میشود که رمز عبور را دو بار وارد کنید. پس از انجام این کار، یوزر جدید برای استفاده آماده است، اما ابتدا به این یوزر امتیازات اضافی برای استفاده از دستور sudo
را میدهیم تا در صورت لزوم دستورات را به عنوان root اجرا کنیم.
مرحله سوم- امتیازات Administrative را واگذار کنید
در مرحله قبلی مراحل انجام تنظیمات CentOS، یک اکانت جدید با امتیازات کاربر عادی ایجاد کردید. با این حال، ممکن است گاهی برخی از وظایف administrative را انجام دهید. برای اینکه هربار مجبور نباشید از کاربر عادی خارج و دوباره بهعنوان یوزر روت وارد شوید، میتوانید آنچه را که به عنوان «superuser» یا امتیازات root شناخته میشود برای اکانت عادی خود تنظیم کنید. این امر به کاربر عادی اجازه میدهد تا با قرار دادن کلمه sudo
قبل از هر دستور، دستورات با امتیازات administrative را اجرا کند.
برای افزودن این امتیازات به کاربر جدید، باید کاربر جدید را به گروه wheel اضافه کنید. به طور پیش فرض، در CentOS، کاربرانی که به گروه wheel تعلق دارند، میتوانند از دستور sudo
استفاده کنند.
به عنوان یوزر root، دستور زیر را اجرا کنید تا کاربر جدید را به گروه wheel اضافه کنید (نام کاربری ali را با نام کاربری جدید خود جایگزین کنید):
usermod -aG wheel ali
پس از اجرای این دستور، میتوانید بهعنوان کاربر عادی، عبارت sudo
را قبل از دستورات تایپ کنید تا هر دستور با امتیاز superuser اجرا شود.
مرحله چهارم پیکربندی تنظیمات CentOS – یک فایروال پایه ایجاد کنید
در این مرحله از پیکربندی تنظیمات CentOS یک فایروال پایه را ایجاد میکنیم. فایروالها امنیت اولیه سرور را فراهم میکنند. این برنامهها تنها اجازه عبور ترافیک روی پورتها یا سرویسهای مرتبط با سرور را میدهند که شما تعیین کردهاید. به این ترتیب ترافیک مربوط به سایر پورتها، راهی به سوی سرور شما پیدا نمیکنند.
CentOS یک سرویس به نام firewalld
برای انجام این عملکرد دارد. ابزاری به نام firewall-cmd
برای پیکربندی سیاستهای فایروال firewalld
استفاده میشود.
نکته: اگر اقدام به خرید سرور ابری یا دیتاسنتر ابری زَس کردهاید، میتوانید از فایروال سرور ابری یا فایروال پیشرفته دیتاسنتر ابری نیز استفاده کنید که هر دو، امکان پیکربندی فایروال در رابط گرافیکی تحت وب را در اختیارتان قرار میدهد. پیشنهاد میکنیم برای جلوگیری از پیش آمدن هرگونه تداخل، تنها از فایروال سرور ابری/دیتاسنتر ابری یا فقط از فایروال CentOS استفاده نمایید.
برای راهاندازی فایروال CentOS، ابتدا 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 Thu 2023-05-16 16:50:21 UTC; 4s ago
Docs: man:firewalld(1)
Main PID: 13180 (firewalld)
Tasks: 2 (limit: 5059)
Memory: 22.7M
CGroup: /system.slice/firewalld.service
└─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
توجه داشته باشید که هم نمایش active
و نیز enabled
به این معنا است که در صورت راهاندازی مجدد سرور، فایروال بهطور پیشفرض شروع به کار خواهد کرد.
اکنون که سرویس راهاندازی شده است، میتوانیم از ابزار 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
مرحله پنجم پیکربندی تنظیمات CentOS – دسترسی خارجی را برای کاربر عادی ایجاد کنید
اکنون که در ادامه پیکربندی تنظیمات CentOS یک کاربر عادی غیر روت ایجاد کردهاید، مطمئن شوید که میتوانید از آن برای اتصال به سرور از طریق SSH استفاده کنید.
نکته: پیشنهاد میکنیم تا زمان که اطمینان پیدا نکردهاید که میتوانید از دستور sudo برای کاربر تازه ایجاد شده استفاده کنید، به عنوان یوزر روت لاگین باقی بمانید و به عبارتی، از این یوزر خارج نشوید. این موضوع موجب میشود که اگر مشکلی در مورد یوزر جدید وجود داشته باشد، بتوانید آن را عیبیابی کرده و تغییرات مورد نظر را با استفاده از یوزر روت اعمال کنید. همچنین به یاد داشته باشید که در پنل سرور ابری و دیتاسنتر ابری زَس، حتی اگر امکان اتصال از طریق SSH را هم نداشته باشید، میتوانید از طریق گزینه کنسول تحت وب، به سرور متصل شوید.
فرایند پیکربندی دسترسی SSH برای کاربر عادی غیر روت به این بستگی دارد که آیا اکانت روت سرور، از رمز عبور برای احراز هویت استفاده میکند یا از کلیدهای SSH؟
ورود به اکانت روت با احراز هویت مبتنی بر رمز عبور
اگر برای ورد به اکانت روت از رمز عبور استفاده میکنید، احراز هویت رمز عبور برای SSH فعال میشود. میتوانید با باز کردن یک session ترمینال جدید و استفاده از SSH با نام کاربری جدید، از طریق SSH به اکانت خود متصل شوید:
ssh ali@your_server_ip
پس از وارد کردن رمز عبور کاربر عادی خود، لاگین خواهید شد. به این نکته توجه داشته باشید که اگر نیاز به اجرای دستوری با سطح دسترسی administrative دارید، عبارت sudo
را مشابه نمونه زیر، قبل از دستور تایپ کنید:
sudo command_to_run
هنگامی که از sudo
برای اولین بار در هر session استفاده کنید، احتمالاً از شما خواسته میشود رمز عبور خود را وارد کنید.
ورود به اکانت روت با احراز هویت کلید SSH
اگر با استفاده از کلیدهای SSH به اکانت روت لاگین کرده باشید، احراز هویت مبتنی بر پسورد، برای SSH غیر فعال میشود. برای لاگین موفق نیاز است یک کپی از کلید عمومی را به فایل ssh/authorized_keys./~
کاربر جدید اضافه کنید.
البته توجه داشته باشید، از آنجایی که کلید عمومی شما از قبل در فایل ssh/authorized_keys./~
اکانت روت روی سرور قرار دارد، میتوانید آن فایل و ساختار دایرکتوری را در حساب کاربری جدید کپی کنید.
سادهترین راهکار این است که با استفاده از دستور rsync
، فایلها را با مالکیت و مجوزهای صحیح کپی کنید. این کار در یک دستور واحد، دایرکتوری ssh.
کاربر روت را کپی، مجوزها را حفظ و مالکیت فایل را تغییر میدهد. به این نکته دقت کنید که بخشهای مربوط به نام کاریری ali در دستور زیر را با توجه به نام یوزر عادی خود تغییر دهید:
rsync --archive --chown=ali:ali ~/.ssh /home/ali
اکنون، در یک ترمینال جدید در دستگاه لوکال خود، یک SSH session جدید را با کاربر غیر روت خود باز کنید:
ssh ali@your_server_ip
سپس باید بدون استفاده از رمز عبور وارد اکانت جدید شوید. به یاد داشته باشید، برای اجرای دستوری با امتیازات administrative، باید عبارت sudo را قبل از دستور تایپ کنید:
sudo command_to_run
سخن پایانی
در این مقاله آموزشی، به نحوه پیکربندی اولیه تنظیمات CentOS پرداختیم. همانطور که مشاهده کردید راهاندازی اولیه سرور روی CentOS بسیار آسان است و با انجام مراحل بالا بهراحتی میتوانید آن را انجام دهید.