آموزش متوقف کردن و غیرفعال کردن سرویسهای ناخواسته در لینوکس
در دنیای مدیریت سیستمهای لینوکس، بهینهسازی عملکرد و امنیت همواره از اولویتهای اصلی مدیران سیستم بوده است. یکی از چالشهای کمتر مورد توجه، اما بسیار تاثیرگذار در این زمینه، سرویسهای ناخواسته در لینوکس است؛ سرویسهایی که اغلب بدون اطلاع کاربر، بهصورت پیشفرض فعال شده و در پسزمینه اجرا میشوند.
هنگامیکه یک سرور را بر اساس نیازها و الزامات خاص خود پیکربندی میکنید، انتظار دارید که عملکردی سریع، بهینه و کارآمد داشته باشد. با این حال، آیا میدانستید که بسیاری از توزیعهای مدرن لینوکس -بهویژه آنهایی که از systemd استفاده میکنند – بهصورت پیشفرض تعداد قابلتوجهی سرویس را نصب و اجرا میکنند، حتی در صورتی که کاربردی برای شما نداشته باشند.
اجرای این سرویسهای غیرضروری نهتنها منابع ارزشمند سیستم را اشغال میکند، بلکه میتواند سطح حملهی سیستم را افزایش داده و تهدیدهای امنیتی بالقوه ایجاد کند.
در این مطلب، به بررسی روشهای شناسایی و غیرفعالسازی سرویسهای غیرضروری در توزیعهای مبتنی بر systemd نظیر Fedora، CentOS، Ubuntu، Debian و سایر توزیعهای مشابه خواهیم پرداخت.
چرا باید به سرویسهای ناخواسته در لینوکس اهمیت دهید؟
هنگام نصب لینوکس، سیستم عامل معمولا چندین سرویس را به طور خودکار فعال میکند. به عنوان مثال، ممکن است در نهایت وبسرورها، سرورهای FTP، سرورهای پرینت یا سرویسهای شبکه بدون درخواست شما اجرا شوند. اما اگر سرور شما به آنها نیاز نداشته باشد، آنها فقط CPU، حافظه و سطوح حمله را هدر میدهند.
قبل از غیرفعال کردن سرویسها، از خود بپرسید:
- من واقعا به این سرور برای انجام چه کاری نیاز دارم؟
- آیا میخواهم یک وبسرور را اجرا کند؟
- آیا به اشتراکگذاری FTP یا Samba نیاز دارم؟
- آیا سرورهای DNS یا دیتابیس را اجرا میکنم؟
فقط سرویسهایی را فعال کنید که از هدف سرور شما پشتیبانی میکنند.
کدام سرویسها در حال اجرا هستند
با systemd، مدیریت و بررسی سرویسها آسانتر از همیشه است، در اینجا نحوه فهرست کردن سرویسهای فعال روی سیستم آورده شده است.
فهرست کردن تمام سرویسهای در حال اجرا
برای فهرست کردن تمام سرویسهای فعال و در حال اجرا، میتوانید از دستور systemctl زیر استفاده کنید.
نگاهی دقیق به سرویسهای در حال اجرا بیندازید. اگر یک سرویس برای هدف سرور شما ضروری نیست، بهتر است آن را غیرفعال کنید.
بررسی پورتهای باز و شناسایی سرویسهای در حال گوش دادن
برای دیدن اینکه کدام سرویسها به طور فعال در حال listening به اتصالات شبکه روی سرور شما هستند، از یکی از دستورات زیر استفاده کنید: ss یا netstat.
این دستورات تمام پورتهای TCP و UDP را که در حال حاضر باز و منتظر اتصالات هستند، نمایش میدهند. به عنوان مثال، اگر پورت ۲۱ (که توسط FTP استفاده میشود) را باز میبینید اما در واقع به FTP نیازی ندارید، این یک نشانه واضح است که باید آن سرویس را غیرفعال کنید تا سرور شما ایمن و با منابع سازگار باشد.
سرویسهای غیرضروری رایج در سیستمهای systemd
هر سرویسی که روی دستگاه لینوکس شما اجرا میشود، چیزی نیست که واقعا به آن نیاز داشته باشید. بسته به اینکه از سیستم خود به عنوان دسکتاپ، سرور یا ماشین مجازی استفاده میکنید، بسیاری از سرویسها ممکن است در پسزمینه اجرا شده و بیسروصدا حافظه، پردازنده یا حتی حفرههای امنیتی را اشغال کنند.
سرویسهای رایجی که ممکن است به آنها نیاز نداشته باشید
در این بخش لیستی از سرویسهایی که مرتب در حال اجرا هستند و میتوانید آنها را بررسی کنید، آورده شده است. اگر از آنچه پشتیبانی میکنند استفاده نمیکنید، آنها را غیرفعال کنید.
- avahi-daemon – شبکهسازی بدون پیکربندی (برای کشف سرویسها در شبکه لوکال)
- bluetooth.service – مدیریت بلوتوث؛ در سرورهای بدون واسط گرافیکی (headless) بیاستفاده است.
- iscsi.service, iscsid.socket, iscsiuio.socket – مربوط به ذخیرهسازی شبکهای iSCSI
- lvm2-monitor.service, lvm2-lvmpolld.socket – برای مدیریت حجمهای LVM
- mdmonitor.service, raid-check.timer – مرتبط با RAID نرمافزاری
- qemu-guest-agent.service – فقط در صورتی مفید است که داخل ماشین مجازی QEMU/KVM باشید.
- nfs-convert.service, nfs-client.target – مربوط به فایلسیستمهای شبکهای (NFS)
- cups.service – سرویس چاپ، معمولا در سرورها بیاستفاده است.
- postfix.service – سرور ایمیل، فقط در صورت ارسال ایمیل نیاز است.
- sssd.service – اتصال به دامنههایی مثل LDAP یا Active Directory.
- hyperv-daemons – فقط در ماشینهای مجازی Hyper-V موردنیاز هستند.
- apport.service – ابزار گزارش خطای اوبونتو.
- zeitgeist, telepathy – سرویسهای لاگگیری دسکتاپ و پیامرسانی، مخصوص دسکتاپ، نه سرور.
از دستورات زیر برای غیرفعال کردن سرویسهای ذکر شده در بالا استفاده کنید:
اگر میخواهید آنها را فورا متوقف کنید، فقط در هر دستور، کلمه disable را با stop جایگزین کنید.
نحوه شناسایی و بررسی سرویسها
مطمئن نیستید چه چیزی روی سیستم شما در حال اجرا است یا چه چیزی به طور خودکار استارت میشود؟
در این قسمت چند دستور آسان برای کمک به شما در تشخیص این موضوع آورده شده است:
برای فهرست کردن تمام سرویسهای فعال و تنظیم آنها برای استارت هنگام بوت شدن سیستم .
برای دیدن سرویسهای در حال اجرا که در حال حاضر فعال هستند.
برای تجزیه و تحلیل زمان بوت و دیدن اینکه کدام سرویسها باعث کند شدن بوت میشوند
خروجی این دستور نشان میدهد که هر سرویس در طول بوت چقدر زمان میبرد. به دنبال هر چیزی باشید که چند ثانیه طول میکشد و تصمیم بگیرید که آیا واقعا به آن نیاز دارید یا خیر.
خرید VPS لینوکس با دسترسی کامل SSH و منابع اختصاصی، مناسب برای برنامهنویسان، توسعهدهندگان و مدیران سایت در پارسدو فراهم است.
نحوه متوقف کردن و غیرفعال کردن یک سرویس
اگر چیزی را پیدا کردید که نیازی به آن ندارید، میتوانید آن را متوقف کرده و از شروع مجدد آن جلوگیری کنید:
برای جلوگیری از شروع دستی یا به عنوان یک وابستگی یک سرویس
اگر زمانی خواستید آن را برگردانید:
جمعبندی
با غیرفعال کردن سرویسهای ناخواسته در لینوکس خود، منابع را آزاد میکنید، امنیت را بهبود میبخشید و مسیرهای حمله احتمالی را کاهش میدهید. systemd مدرن مدیریت این سرویسها را ساده میکند.
به یاد داشته باشید، سرور خوب، سروری سریع است. کنترل آنچه روی سیستم شما اجرا میشود را در دست بگیرید. سرور خود را روی کاری که برای آن ساخته شده است متمرکز نگه دارید.