پس از نصب و راه اندازی CentOs نیاز دارید تا تنظیمات اولیه بر روی آنرا انجام دهید. در این مقاله قصد داریم تنظیمات یا تنظیمات اولیه CentOS 8 را آموزش دهیم. مواردی که در این مقاله بررسی خواهند شد عبارتند از:
- یافتن اطلاعات در مورد سیستمهای نصب شده یا سختافزاری که سرور روی آن نصب است
- “کانفیگ تسک” سیستمهای خاص همانند آپدیت سیستم، شبکه، دسترسیهای root
- کانفیگ ssh
- مدیریت سرویسها و …
گام اول: آپدیت نرم افزار سیستم
با دسترسی root به سرور، لاگین میکنیم. سپس دستورات زیر را وارد میکنیم تا سیستم آپدیتهای مربوط به کرنل، پچهای امنیتی، repository های نرم افزار و پکیج ها را به آخرین نسخهها انجامدهد.
# dnf check-update
# dnf update
زمانی که آپدیت به اتمام رسید، برای آزاد سازی فضای دیسک میتوانید تمام پکیجهای دانلود شده با کَش ریپازیتوریها را، با دستور زیر حذف کنید.
# dnf clean all
گام دوم: نصب ابزارهای سیستم برای انجام تسکهای مدیریتی روزانه
این ابزارها برای انجام تسکهای مدیریتی روزانه، بسیار مفید هستند:
nano، vim editor، wget و curl (ابزارهای دانلود پکیج)، net-tools (ابزارهای مدیریت نتورک)، lsof (برای دریافت لیست فایلهای در حال استفاده توسط پراسسها) و bash-completion (تکمیل خودکار دستورات).
# dnf install nano vim wget curl net-tools lsof bash-completion
گام سوم: تنظیمات hostname و network
در Centos/RHEL 8 ابزارهای بسیاری برای کانفیگ و مدیریت نتورک، وجود دارد. از آن جمله میتوان به ifconfig، ip، nmcli، nmtui اشاره کرد.
معمولا بهترین راهکار، برای افراد تازه کار که قصد مدیریت و کانفیگ نتورک همانند تنظیم hostname و پیکربندی ip استاتیک را دارند، استفاده از رابط گرافیکی دستور nmtui است.
تنظیم hostname
برای ست کردن و یا تغییر hostname دستور زیر را وارد کنید، که شما را به صفحه تغییر hostname هدایت میکند. نام مورد نظر خود را انتخاب و OK را بزنید.
# nmtui-hostname
تنظیم static IP در Centos/RHEL 8
برای کانفیگ کردن یک network interface کافی است که از دستور nmtui-edit استفاده کنیم. با اجرای این دستور interfaceهای موجود، نمایش داده میشود و میتوانیم نتورک مد نظر خود را انتخاب کنیم.
# nmtui-edit
پس از انتخاب، گزینه edit را میزنیم. همانند تصویر زیر تنظیمات IP را وارد میکنیم و نهایتا بر روی OK کلیک میکنیم.
پس از اتمام تنظیمات نتورک، دستور زیر را وارد کنید و سپس interface مد نظر خود را انتخاب کرده و آن را active کنید.
# nmtui-connect
برای بررسی صحت تنظیمات شبکه، میتوانید محتوای فایل interface را مشاهده کنید و یا یکی از دستورات زیر را اجرا کنید:
# ifconfig enp0s3
# ip a
# ping -c2 google.com
همچنین میتوانید از سایر ابزارهای مفید نتورک همانند ethtool و mii-tool نیز استفاده کنید. با این ابزارها میتوانید مواردی همچون سرعت interface، شرایط لحظهای لینک شبکه و دریافت اطلاعات دقیقتر درباره network interfaceهای سرور را، بررسی کنید.
# ethtool enp0s3
# mii-tool enp0s3
بخش مهم دیگری که باید در مورد نتورک سرور خود مد نظر داشته باشید، لیست کردن تمام سوکتهای باز شبکه است، تا بتوانید بررسی کنید که چه سرویسی در حال listen کردن چه پورتی است. همچنین شرایط نتورک متصل به چه شکل است و چه فایلهایی توسط پراسسهای باز، در حال استفاده هستند. از دستورات زیر میتوانید استفاده کنید:
# netstat -tulpn
# ss -tulpn
# lsof -i4 -6
گام چهارم: ایجاد اکانت کاربری جدید
به دلایل امنیتی همیشه سفارش شده است که یک یوزر معمولی با دسترسی root ایجاد شود، تا اعمال مدیریتی توسط آن انجام گیرد. برای اینکار با دستور useradd یک کاربر جدید ایجاد کنید. سپس پسورد آن را ست کرده و به جهت اعطای دسترسی root آن را به عضویت گروه wheel در آورید.
# useradd ravisaive
# passwd ravisaive
# usermod -aG wheel ravisaive
برای بررسی صحت وجود دسترسی root برای یوزر ایجاد شده، با آن یوزر لاگین کرده و سپس دستور dnf را با sudo اجرا کنید.
# su - ravisaive
# sudo dnf update
گام پنجم: تنظیمات لاگین SSH Passwordless به Centos/RHEL 8
برای افزایش امنیت سرور خود، امکان احراز هویت بدون پسورد را جهت دسترسی SSH برای یوزر جدید خود، فعال کنید. اینکار با ایجاد یک جفت SSH key، که شامل public key و private key است انجام میشود. از این به بعد برای ایجاد ارتباط SSH نیازمند به SSH key اختصاصی خود، خواهد بود که یک لایه امنیتی بیشتر محسوب میشود.
# su - ravisaive
$ ssh-keygen -t RSA
زمانی که کلید ایجاد شد، از شما یک passphrase درخواست خواهد کرد تا private key را ایمن کند. شما میتوانید یک پسورد قوی وارد کرده و یا اینکه خالی بگذارید، تا این مرحله انجام شود.
زمانی که SSH key ساخته شده، باید public key ایجاد شده را را دستور ssh-copy-id، و دسترسیهای سرور ریموت همانند زیر، کپی نمایید.
$ ssh-copy-id tecmint@192.168.0.104
زمانیکه کلید SSH کپی شد، میتوانید با استفاده از private key نسبت به لاگین در سرور، اقدام کنید.
$ tecmint@192.168.0.104
گام ششم: ایمن کردن لاگینهای ریموت SSH
در این مرحله باز هم قدری ارتباط به سرور را با غیرفعال کردن دسترسی SSH به سرور برای یوزر root، امن تر می کنیم. اینکار در فایل configuration مربوط به SSH انجام میشود.
# vi /etc/ssh/sshd_config
خط حاوی #PermitRootLogin yes را پیدا کنید و با حذف کردن # آن را از حالت کامنت خارج کرده و فعال کنید. سپس yes را به no تغییر دهید.
PermitRootLogin no
سپس سرویس SSH را ریست کنید تا تغییرات اعمال شود.
# systemctl restart sshd
میتوانید با اقدام به لاگین با یوزر root و مشاهده پیغام Permission Denied تست کنید.
# ssh root@192.168.0.110
گام هفتم: تنظیم فایروال
در Centos/RHEL 8 فایروال پیش فرض Firewall است، که از آن برای مدیریت رولهای iptables در سرور، استفاده میشود. برای فعال کردن و روشن کردن سرویس firewall از دستورات زیر، استفاده کنید.
# systemctl enable firewalld
# systemctl start firewalld
# systemctl status firewalld
جهت باز کردن امکان کانکشن ورودی برای یک سرویس خاص (به عنوان مثال SSH)، ابتدا باید از عدم وجود آن سرویس در firewall اطمینان حاصل کنید. سپس آن را، با استفاده از سوئیچ –permanent به سرویس ها اضافه کنید.
# firewall-cmd --add-service=
# firewall-cmd --add-service=ssh
# firewall-cmd --add-service=ssh --permanent
اگر قصد اضافه کردن سایر سرویسها همانند HTTP یا SMTP را دارید، کافیست از دستورات زیر استفاده کنید:
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# firewall-cmd --permanent --add-service=smtp
سپس firewalld را reload کنید:
# firewall-cmd --reload
برای مشاهده لیست تمام رول ها، از دستور زیر استفاده کنید:
# firewall-cmd --permanent --list-all
گام هشتم: حذف کردن سرویسهای بدون استفاده
پس از راهاندازی یک سرور Centos/RHEL 8 به شدت پیشنهاد میشود که سرویسهای بدون استفاده و نا خواسته پیش فرض را، حذف یا غیرفعال کنید تا احتمال هدف حمله قرار گرفتن سرور کاهش پیداکند.
برای لیست کردن تمام سرویسهای تحت شبکه شامل TCP و UDP از دستورات ss و netstat استفاده میکنیم.
# ss -tulpn
OR
# netstat -tulpn
دستورات بالا لیست جالبی از سرویسهایی که به صورت پیش فرض در سرور در حال اجرا هستند را نمایش میدهند. به عنوان مثال سرویس ایمیل Postfix. اگر تصمیمی به استفاده از میل سرور ندارید، حتما این سرویس باید stop و در صورت نیاز، حذف شود.
# systemctl stop postfix
# systemctl disable postfix
# dnf remove postfix
مازاد بر دستورات ذکر شده همچنین میتوانید از ps، top و pstree هم برای پیدا کردن این نوع سرویسها استفاده کنید.
# dnf install psmisc
# pstree -p
گام نهم: مدیریت سرویسها در Centos/RHEL 8
در Centos/RHEL 8، تمامی serviceها و daemonها با دستور systemctl قابل مدیریت هستند. با این دستور میتوانید تمام سرویسهای فعال، در حال اجرا یا fail شده را مشاهده کنید.
# systemctl list-units
برای اینکه متوجه شوید که آیا سرویسی یا daemon برای استارت شدن پس از بالا آمدن سیستم عامل فعال شده است یا خیر، میتوانید از دستور زیر استفاده کنید:
# systemctl list-unit-files -t service
در این مقاله تقریبا تمام موارد مورد نیاز ابتدایی برای مدیریت یک سرور Centos/RHEL 8 را با هم بررسی کردیم. با دانستن نکته های یاد شده و اعمال آن ها می توانید قدم های اول مدیریت سرور خود را با قدرت برداشته و از کارکرد صحیح بسیاری از سرویس ها اطمیان حاصل کنید.