امنسازی CentOS 7 با CIS؛ نکات مهم بعد از پایان عمر
CentOS 7 سالها یکی از انتخابهای رایج برای سرورهای لینوکسی بود؛ مخصوصاً در محیطهایی که پایداری، سازگاری و مستندات زیاد اهمیت داشت. اما نکته مهم این است که CentOS 7 به پایان عمر رسیده و دیگر گزینه مناسبی برای نصب جدید نیست. بنابراین اگر هنوز سروری با CentOS 7 دارید، امنسازی آن باید در کنار برنامه مهاجرت به Rocky Linux، AlmaLinux یا توزیع پشتیبانیشده دیگر دیده شود.
این مطلب را باید بهعنوان یک چکلیست عملی برای کاهش ریسک CentOS 7 در محیطهای موجود ببینید، نه توصیه برای راهاندازی سرور جدید با این نسخه.
قبل از شروع: هدف Hardening چیست؟
Hardening یعنی کم کردن سطح حمله. قرار نیست با چند دستور، سرور «کاملاً امن» شود. هدف این است که سرویسهای اضافه حذف شوند، دسترسیها محدود شود، لاگها قابل بررسی باشند، تنظیمات خطرناک اصلاح شوند و اگر مشکلی رخ داد، سریعتر قابل تشخیص باشد.
برای CentOS 7، استفاده از راهنماهای CIS میتواند نقطه شروع خوبی باشد؛ اما نباید کورکورانه اجرا شود. بعضی کنترلها ممکن است با سرویسهای شما تداخل داشته باشند. همیشه اول روی محیط تست اجرا کنید و بعد به Production ببرید.
۱. وضعیت پشتیبانی و بهروزرسانی را مشخص کنید
مهمترین مشکل CentOS 7 پایان پشتیبانی رسمی است. اگر این سرور هنوز در شبکه فعال است، باید دقیقاً بدانید چه بستههایی روی آن نصب است، از کجا Update میگیرد و چه برنامهای برای جایگزینی آن دارید.
cat /etc/centos-release
uname -r
rpm -qa --last | head
اگر امکان مهاجرت فوری ندارید، حداقل این سرورها را از اینترنت مستقیم دور کنید، دسترسی مدیریتی را محدود کنید و مانیتورینگ و لاگگیری را جدیتر بگیرید.
۲. سرویسهای غیرضروری را حذف یا غیرفعال کنید
هر سرویس باز، یک سطح حمله اضافه است. روی سرورهای لینوکسی زیاد دیده میشود که سرویسهایی از نصب اولیه باقی ماندهاند اما واقعاً استفاده نمیشوند.
systemctl list-unit-files --type=service
ss -tulpn
بعد از بررسی، سرویسهای غیرضروری را غیرفعال کنید:
systemctl disable service-name
systemctl stop service-name
در Production قبل از Stop کردن هر سرویس، وابستگیها را بررسی کنید. خاموش کردن اشتباه یک سرویس ممکن است سرویس اصلی کسبوکار را مختل کند.
۳. SSH را جدی بگیرید
SSH معمولاً اولین مسیر مدیریت سرور است و اگر بد تنظیم شود، یکی از اولین نقاط حمله هم خواهد بود. حداقل تنظیمات پیشنهادی:
- غیرفعال کردن ورود مستقیم Root
- استفاده از Key بهجای Password تا جای ممکن
- محدود کردن کاربران مجاز برای SSH
- محدود کردن دسترسی SSH در Firewall یا ACL شبکه
- فعالسازی لاگ و بررسی تلاشهای ناموفق
vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
AllowUsers adminuser
systemctl restart sshd
قبل از بستن PasswordAuthentication، حتماً در یک Session دیگر تست کنید که ورود با Key درست کار میکند؛ وگرنه ممکن است دسترسی خودتان را قطع کنید.
۴. Firewall و دسترسی شبکه
روی CentOS 7 معمولاً firewalld استفاده میشود. فقط پورتهایی را باز بگذارید که واقعاً نیاز دارید. اگر سرور پشت فایروال شبکه قرار دارد، باز هم Firewall لوکال را بیاهمیت ندانید؛ دفاع لایهای همینجا معنی پیدا میکند.
firewall-cmd --state
firewall-cmd --list-all
firewall-cmd --permanent --remove-service=dhcpv6-client
firewall-cmd --reload
برای سرویسهای مدیریتی مثل SSH بهتر است محدودیت IP هم در سطح فایروال شبکه و هم در سطح سرور اعمال شود.
۵. کاربران، sudo و دسترسیها
کاربرهای قدیمی، دسترسیهای sudo بیدلیل و رمزهای ضعیف از مشکلات رایج سرورها هستند. هر چند وقت یک بار این موارد را بررسی کنید:
cat /etc/passwd
getent group wheel
lastlog
- کاربرهای بلااستفاده را غیرفعال کنید.
- دسترسی sudo را فقط به افراد و سرویسهای لازم بدهید.
- برای اکانتهای سیستمی Shell ورود تعریف نکنید مگر واقعاً لازم باشد.
- از رمزهای مشترک بین چند نفر استفاده نکنید.
۶. لاگ، زمان و مانیتورینگ
بدون لاگ خوب، بعد از رخداد امنیتی تقریباً کور هستیم. زمان سیستم هم باید درست باشد تا لاگها قابل تحلیل باشند.
timedatectl
systemctl status chronyd
journalctl -p warning
اگر در سازمان Syslog یا SIEM دارید، لاگهای مهم مثل auth، secure، messages و لاگ سرویسهای اصلی را به آن ارسال کنید. نگه داشتن لاگ فقط روی همان سرور، در بعضی حملات کافی نیست.
۷. SELinux را بدون دلیل خاموش نکنید
در بسیاری از محیطها اولین واکنش به خطاهای دسترسی، خاموش کردن SELinux است. این کار شاید مشکل را سریع پنهان کند، اما یک لایه امنیتی مهم را حذف میکند. بهتر است علت خطا بررسی و Policy درست اصلاح شود.
getenforce
sestatus
ausearch -m avc -ts recent
اگر مجبور شدید موقتاً حالت Permissive بگذارید، آن را بهعنوان وضعیت دائمی رها نکنید.
۸. اسکن و ارزیابی با ابزارهای کمکی
ابزارهایی مثل Lynis میتوانند برای ارزیابی اولیه مفید باشند. خروجی این ابزارها را باید تحلیل کرد؛ هر هشدار الزاماً به معنی خطر فوری نیست، اما میتواند نقطه شروع خوبی برای اصلاح باشد.
lynis audit system
اگر از Benchmarkهای CIS استفاده میکنید، تغییرات را مرحلهای اعمال کنید و بعد از هر مرحله سرویسهای اصلی را تست کنید.
چکلیست کوتاه برای CentOS 7 موجود
- برنامه مهاجرت از CentOS 7 مشخص شده باشد.
- سرور از اینترنت مستقیم دور باشد مگر واقعاً لازم باشد.
- SSH فقط از IPهای مشخص قابل دسترس باشد.
- ورود مستقیم Root غیرفعال باشد.
- سرویسهای غیرضروری خاموش باشند.
- Firewall لوکال فعال و محدود باشد.
- لاگها به مقصد امن ارسال شوند.
- Backup و روش Restore تست شده باشد.
- دسترسی sudo و کاربران قدیمی بازبینی شده باشند.
جمعبندی
امنسازی CentOS 7 در سالهای قبل یک کار عادی برای سرورهای لینوکسی بود، اما امروز باید با احتیاط بیشتری به آن نگاه کرد. چون خود سیستمعامل دیگر انتخاب مناسبی برای نصب جدید نیست. اگر هنوز CentOS 7 در شبکه دارید، Hardening لازم است، اما جایگزین Migration Plan نمیشود.
بهترین کار این است که ریسک سرورهای موجود را با تنظیمات امنیتی، محدودسازی دسترسی و مانیتورینگ کم کنید و همزمان مسیر مهاجرت به نسخه پشتیبانیشده را جلو ببرید.
مطالب مرتبط: هاردنینگ چیست؟، معرفی ابزار Lynis، امنیت شبکه و امنیت سایبری.

کنترل امنیت شبکه های کامپیوتری شماره ۲: لیست نرم افزار های مجاز و غیر مجاز
هاردنینگ – تجهیزات سیسکو – جلوگیری از تغییرات همزمان
هاردنینگ چیست و چرا باید امنسازی سیستمها را جدی بگیریم؟
اهمیت امنیت شبکه
کنترل امنیت شبکه های کامپیوتری شماره ۱۲ : دفاع از مرزها (Boundary Defense)
کنترل امنیت شبکه های کامپیوتری شماره ۱۰: قابلیت بازیابی اطلاعات
واقعا خوشحالم که استاد عزیزم همچی سایت فوق العاده ای با مطالب عالی و آموزنده راه اندازی کردن
سپاس