TürkiyeVPS

امنیت سرور لینوکس: ۱۰ گام ضروری برای VPS جدید

از لحظه‌ای که سرور شما به اینترنت متصل می‌شود، ربات‌های خودکار شروع به اسکن آن می‌کنند. در این مقاله ۱۰ گام اساسی را که باید در روز اول برای ایمن‌سازی یک VPS لینوکسی جدید انجام دهید، به‌ترتیب توضیح می‌دهیم.

4 دقیقه مطالعه

وقتی یک VPS جدید راه‌اندازی می‌کنید، آدرس IP سرور شما در اینترنت برای همه قابل مشاهده می‌شود. در عرض چند دقیقه، ربات‌های خودکار از سراسر جهان برای یافتن رمزهای عبور ضعیف، شروع به امتحان کردن ورود SSH می‌کنند. این موضوع شخصی نیست؛ ربات‌ها همه IPها را اسکن می‌کنند. خبر خوب این است که با چند گام ساده می‌توانید تقریباً همه این حملات را بی‌اثر کنید.

دستورات زیر برای Ubuntu و Debian هستند. فرض ما این است که دستورات را با کاربر root اجرا می‌کنید.

۱. سیستم را به‌روزرسانی کنید

بخش بزرگی از آسیب‌پذیری‌های امنیتی با به‌روزرسانی‌ها برطرف می‌شوند.

apt update && apt upgrade -y

۲. یک رمز عبور قوی تعیین کنید

از رمزی با دست‌کم ۱۶ نویسه شامل حروف، اعداد و نمادها استفاده کنید. استفاده از نرم‌افزار مدیریت رمز عبور کار را آسان‌تر می‌کند.

passwd

۳. برای کارهای روزمره یک کاربر جداگانه بسازید

به جای انجام همه کارها با root، یک کاربر با دسترسی مدیریتی بسازید (در مثال زیر، ahmet را با نام کاربری دلخواه خود جایگزین کنید):

adduser ahmet
usermod -aG sudo ahmet

۴. ورود با کلید SSH را فعال کنید

رمز عبور قابل حدس زدن است، اما کلید SSH در عمل قابل حدس زدن نیست. نحوه ساخت کلید را در راهنمای SSH گام‌به‌گام توضیح داده‌ایم.

۵. ورود SSH با رمز عبور و با کاربر root را غیرفعال کنید

پس از اطمینان از اینکه ورود با کلید کار می‌کند، این سطرها را در فایل /etc/ssh/sshd_config تنظیم کنید:

PermitRootLogin no
PasswordAuthentication no

سپس سرویس را دوباره راه‌اندازی کنید:

systemctl restart ssh

پیش از این گام، در یک پنجره ترمینال جدید آزمایش کنید که می‌توانید با کلید وارد شوید. در غیر این صورت ممکن است دسترسی خودتان به سرور را از دست بدهید.

۶. فایروال را فعال کنید (UFW)

فقط به پورت‌هایی که نیاز دارید اجازه دسترسی بدهید:

apt install ufw -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

با دستور ufw status می‌توانید قوانین را مشاهده کنید.

۷. با Fail2ban جلوی حملات Brute Force را بگیرید

Fail2ban آدرس‌های IPای را که پشت سر هم تلاش ناموفق برای ورود دارند، به‌طور خودکار برای مدتی مسدود می‌کند:

apt install fail2ban -y
systemctl enable --now fail2ban

۸. به‌روزرسانی‌های امنیتی خودکار را فعال کنید

apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

۹. سرویس‌های غیرضروری را غیرفعال کنید

هر سرویسی که از آن استفاده نمی‌کنید، دری برای مهاجمان است. برای دیدن پورت‌هایی که به بیرون باز هستند:

ss -tulpn

سرویسی را که به آن نیاز ندارید با systemctl disable --now SERVISADI غیرفعال کنید (به جای SERVISADI نام سرویس را بنویسید). در صورت امکان، پایگاه داده خود (MySQL، PostgreSQL، Redis) را طوری تنظیم کنید که فقط روی 127.0.0.1 در دسترس باشد.

۱۰. به‌طور منظم نسخه پشتیبان تهیه کنید

هیچ اقدام امنیتی صددرصد نیست. بیمه اصلی شما نسخه پشتیبان است. از فایل‌های مهم و پایگاه داده خود به‌طور منظم در جایی خارج از سرور نسخه پشتیبان تهیه کنید و دست‌کم یک بار بازگردانی از نسخه پشتیبان را امتحان کنید.

نکات تکمیلی: برای وب‌سایت شما

  • حتماً سایت خود را با HTTPS منتشر کنید.
  • سیستم‌هایی مانند وردپرس و افزونه‌های آن را به‌روز نگه دارید.
  • افزونه‌ها و قالب‌هایی را که استفاده نمی‌کنید حذف کنید.

سوالات متداول

چگونه بفهمم به سرورم حمله شده است؟

در فایل /var/log/auth.log می‌توانید تلاش‌های ناموفق ورود را ببینید. مصرف بالا و غیرمنتظره CPU، فرایندهای ناشناخته یا کاربران جدید نیز نشانه‌های مشکوکی هستند.

آیا با فعال کردن فایروال، دسترسی خودم قطع می‌شود؟

اگر پیش از دستور ufw enable قانون ufw allow OpenSSH را اضافه کنید، اتصال SSH شما قطع نمی‌شود. با این حال، اگر مشکلی پیش آمد، می‌توانید از طریق کنسول پنل کاربری به سرور خود دسترسی پیدا کنید.

آیا باید آنتی‌ویروس نصب کنم؟

در سرورهای لینوکسی، خطر اصلی بیش از ویروس، رمزهای عبور ضعیف، نرم‌افزارهای به‌روزنشده و سرویس‌هایی است که بی‌دلیل باز مانده‌اند. گام‌های بالا بسیار مؤثرترند.

آیا این گام‌ها برای هاست اشتراکی هم لازم است؟

خیر. در هاست اشتراکی، امنیت سرور بر عهده ارائه‌دهنده است. مسئولیت شما استفاده از رمز عبور قوی و به‌روز نگه داشتن نرم‌افزار سایتتان است.