چک لیست کامل امنیت سرور لینوکس
شما به تازگی سرور مجازی (VPS) جدید خود را تهیه کردهاید، اما در همین لحظه که IP سرور شما در فضای اینترنت فعال میشود، هزاران ربات و اسکنر در اینترنت در حال جستجو برای یافتن کوچکترین روزنه امنیتی در سرورهایی مانند سرور شما هستند. خرید سرور تنها نیمی از مسیر است؛ نیمه دیگر، که کمتر به آن توجه میشود اما اهمیت بسیار بالایی دارد، ایمنسازی آن است.
امنیت سرور یک فرآیند مداوم است. یک اشتباه کوچک میتواند منجر به دسترسی غیرمجاز، سرقت اطلاعات، از کار افتادن کامل سرویسهای شما و یا حتی دریافت یک گزارش تخلف (Abuse) و مسدود شدن سرور از سمت دیتاسنتر شود. این مقاله، یک چکلیست جامع و کاربردی است که به شما کمک میکند تا لایههای دفاعی قدرتمندی را در سرور لینوکس خود ایجاد کنید.
بخش اول: امنیت دسترسی و مدیریت کاربران (قفل کردن درهای ورودی)
اولین و مهمترین لایه دفاعی، کنترل افرادی است که میتوانند به سرور شما وارد شوند و چه اختیاراتی دارند.
1. ایجاد کاربر جدید با دسترسی root
کار کردن مستقیم با کاربر root
یکی از بزرگترین اشتباهات امنیتی در مدیریت سرور لینوکس است. زیرا یک دستور اشتباه یا دسترسی غیرمجاز به این کاربر میتواند کل سیستم شما را در اختیار بگیرد. بهترین و امنترین روش، غیرفعال کردن ورود مستقیم کاربر root
و ایجاد یک کاربر جدید است که میتواند در مواقع لزوم، با استفاده از دستور sudo
به اختیارات مدیریتی دسترسی پیدا کند.
# 1. یک کاربر جدید با نام دلخواه خود ایجاد کنید (مثلا blue) adduser blue # 2. کاربر جدید را به گروه sudo اضافه کنید تا دسترسیهای مدیریتی را دریافت کند usermod -aG sudo blue
از این پس، همیشه با کاربر جدید خود (در این مثال blue
) به سرور متصل شوید و دیگر هرگز از root
برای ورود مستقیم استفاده نکنید. زمانی که به اختیارات مدیریتی نیاز داشتید، کافی است ابتدای دستور خود کلمه sudo
را اضافه کنید.
۲. امنسازی سرویس SSH
SSH اصلیترین دروازه ورود به سرور شماست. این تنظیمات در فایل /etc/ssh/sshd_config قرار دارند.
غیرفعال کردن ورود کاربر root از طریق SSH:
بعد از باز کردن فایل تنظیمات، دسترسی ورود کاربر root را از حالت yes به no تغییر میدهیم
PermitRootLogin no
تغییر پورت پیشفرض SSH (از 22 به یک پورت دیگر):
اکثر حملات خودکار Bot ها روی پورت پیشفرض 22 انجام میشود و باید این پورت را عوض کنید، مثلا از پورت 2200 استفاده کنید.
Port 2200
نکته مهم: قبل از تغییر پورت، حتما پورت جدید را در فایروال خود باز کنید
استفاده از کلید SSH به جای رمز عبور :
رمزهای عبور قابل حدس زدن یا شکستن هستند. کلیدهای SSH یک روش احراز هویت بسیار امنتر هستند. پس از تنظیم کلید، ورود با رمز عبور را غیرفعال کنید.
PasswordAuthentication no
محدود کردن دسترسی کاربران:
میتوانید مشخص کنید که فقط کاربران خاصی اجازه ورود از طریق SSH را داشته باشند.
AllowUsers your_username
پس از هر تغییر در این فایل، سرویس SSH را ریاستارت کنید:
sudo systemctl restart sshd
بخش دوم: امنیت شبکه و فایروال
۱. راهاندازی فایروال با UFW
فایروال مانند یک نگهبان عمل میکند و تمام پورتهای ورودی و خروجی سرور را کنترل میکند. UFW (Uncomplicated Firewall) سادهترین راه برای مدیریت فایروال در اوبونتو است.
# 1. (مهم) ابتدا به پورت SSH جدید خود اجازه دسترسی بدهید sudo ufw allow 2200/tcp # 2. به سرویسهای عمومی مانند وبسرور اجازه دسترسی بدهید sudo ufw allow http sudo ufw allow https # 3. فایروال را فعال کنید sudo ufw enable # 4. وضعیت فایروال را بررسی کنید sudo ufw status
۲. نصب و کانفیگ Fail2Ban
Fail2Ban ابزاری مهمی است که لاگهای سرور شما را برای تلاشهای ناموفق ورود (مانند حملات Brute-force به SSH) اسکن کرده و IP مهاجم را برای مدتی مسدود میکند.
# 1. نصب Fail2Ban sudo apt update sudo apt install fail2ban # 2. ایجاد یک فایل کانفیگ محلی (هرگز فایل اصلی را ویرایش نکنید) sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
سپس فایل jail.local را ویرایش کرده و تنظیمات مربوط به [sshd] را مطابق نیاز خود تغییر دهید (مثلا زمان مسدود بودن یا تعداد تلاشهای مجاز). Fail2Ban به صورت پیشفرض برای SSH فعال است و نیاز به تنظیمات پیچیدهای ندارد.
بخش سوم: بهروزرسانی سیستم عامل
۱. بهروزرسانی منظم سیستم
بسیاری از حملات از طریق آسیبپذیریهای شناختهشدهای انجام میشوند که برای آنها آپدیت امنیتی منتشر شده است. سیستم خود را همیشه بهروز نگه دارید.
sudo apt update && sudo apt upgrade -y
۲. حذف سرویسهای غیرضروری
هر سرویسی که روی سرور شما در حال اجراست، یک نقطه بالقوه برای حمله است. با دستور ss -tuln لیست پورتهای در حال گوش دادن را مشاهده کنید و هر سرویسی را که نیاز ندارید، حذف یا غیرفعال کنید.
بخش چهارم: مانیتورینگ و پشتیبانگیری
۱. بررسی منظم لاگها
لاگها اتفاقات سرور شما را نگهداری میکنند. یاد بگیرید که لاگهای مهم را به صورت دورهای بررسی کنید تا فعالیتهای مشکوک را شناسایی نمایید.
- لاگ احراز هویت (ورود و خروجها): /var/log/auth.log
- لاگ کلی سیستم: /var/log/syslog
۲. پشتیبانگیری منظم و خودکار
هیچ استراتژی امنیتی بدون یک برنامه پشتیبانگیری (Backup) کامل نیست. حتی امنترین سرورها نیز ممکن است به دلیل خطای سختافزاری یا انسانی از دسترس خارج شوند.
- سه نسخه از دادههای خود داشته باشید، روی دو نوع سرور مختلف، که یکی از آنها داخل سرور، و دیگر خارج از محل سرور اصلی و یکی هم در کامپیوتر شخصی شما نگهداری شود.
- خودکارسازی: فرآیند بکاپگیری را خودکار کنید تا فراموش نشود.
- تست بکاپ: یک بکاپ تستنشده، بکاپ نیست! به صورت دورهای فرآیند بازیابی را تست کنید.
در حالی که این مراحل امنیت نرمافزاری سرور شما را به شدت افزایش میدهند، همه اینها بر روی یک بستر سختافزاری و شبکهای پایدار بهترین عملکرد را خواهند داشت. سرورهای مجازی بلوسرور با ارائه یک محیط ایزوله و شبکه پایدار از دیتاسنترهای معتبر مانند هتزنر، زیرساخت قابل اعتمادی را که برای ارائه سرور مجازی در اختیار شما قرار میدهد.
فهرست تیترها