مباحث پایه امنیتی در CentOS
در CentOS هم مثل سایر توزیعهای لینوکسی، امنیت سیستم از سه لایه اصلی تشکیل میشود: کاربران و سطح دسترسی، سختکردن سرویسها (Hardening)، و بروزرسانی و پایش مداوم.
در ادامه، مباحث پایه امنیتی را برایت دستهبندی و با دستورات مهم آوردم که تبدیل به یک بنیان امنیتی استاندارد شوند.
1. مدیریت ایمن کاربران
- عدم استفاده مستقیم از root (ورود به سیستم به عنوان root را غیرفعال کن):
passwd -l root
- ایجاد کاربر عادی و دادن دسترسی sudo:
useradd -m -s /bin/bash myuser
usermod -aG wheel myuser
usermod -aG wheel myuser
- پسورد قوی با ترکیب حروف بزرگ/کوچک، عدد، و کاراکتر ویژه.
- تعیین تاریخ انقضا پسورد:
chage -M 90 myuser # تغییر رمز هر 90 روز
chage -E 2025-12-31 myuser # تاریخ انقضا کاربر
chage -E 2025-12-31 myuser # تاریخ انقضا کاربر
2. دسترسی و مجوز فایلها
- مشاهده دسترسیها:
ls -l
- تغییر سطح دسترسی با chmod:
chmod 600 private.txt # فقط صاحب فایل بخواند/بنویسد
- تغییر مالک فایل:
chown user:group file
- فایلهای حساس سیستم مثل /etc/shadow باید فقط توسط root قابل دسترسی باشند.
3. بروزرسانی سیستم
- امنیت بدون بهروز کردن پکیجها کامل نیست:
dnf update -y
- فعالکردن بروزرسانی خودکار (اختیاری):
dnf install dnf-automatic -y
systemctl enable --now dnf-automatic.timer
systemctl enable --now dnf-automatic.timer
4. مدیریت سرویسها با systemd
- غیرفعالکردن سرویسهای غیر ضروری:
systemctl disable --now servicename
- جلوگیری کامل از اجرا (Mask):
systemctl mask servicename
- بررسی سرویسهای فعال:
systemctl list-units --type=service --state=running
5. فایروال و کنترل نوار ورودی/خروجی
- وضعیت Firewalld:
firewall-cmd --state
- باز کردن پورت مشخص:
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload
firewall-cmd --reload
- استفاده از zoneها برای محدود کردن دسترسی.
6. امنیت SSH
- ویرایش تنظیمات SSH:
vim /etc/ssh/sshd_config
توصیهها:
Port 2222 # تغییر پورت پیشفرض
PermitRootLogin no # ممنوعیت ورود مستقیم root
PasswordAuthentication no # استفاده از کلید SSH
PermitRootLogin no # ممنوعیت ورود مستقیم root
PasswordAuthentication no # استفاده از کلید SSH
- ریستارت SSH:
systemctl restart sshd
7. SELinux – کنترل پیشرفته دسترسی
- وضعیت SELinux:
getenforce
- فعالکردن:
setenforce 1
- کانفیگ دائمی:
vim /etc/selinux/config
# SELINUX=enforcing
# SELINUX=enforcing
SELinux حتی اگر کسی به سیستم نفوذ کند، دسترسی او به سرویسها یا مسیرهای دیگر را محدود میکند.
8. پایش امنیتی
- مشاهده ورود و خروجها:
last
lastb # ورودیهای ناموفق
lastb # ورودیهای ناموفق
- بررسی لاگهای سیستم:
journalctl -xe
tail -f /var/log/secure
tail -f /var/log/secure
9. ابزارهای تست و سختسازی
- fail2ban → جلوگیری از Brute Force:
dnf install fail2ban -y
systemctl enable --now fail2ban
systemctl enable --now fail2ban
- Lynis → ابزار تحلیل امنیت سیستم:
dnf install lynis -y
lynis audit system
lynis audit system
چکلیست سریع امنیتی پایه CentOS
بخش | اقدام |
---|---|
کاربر | حذف دسترسی root، فعالکردن sudo |
دسترسیها | محدودکردن مجوز فایلهای حساس |
بروزرسانی | فعال بودن آپدیت منظم |
سرویسها | غیرفعالکردن سرویسهای غیرضروری |
فایروال | فعال و کانفیگ شده |
SSH | تغییر پورت، کلید امن، عدم ورود root |
SELinux | فعال و در حالت enforcing |
پایش | بررسی منظم لاگها |
ضد حمله | نصب fail2ban یا مشابه |
