سرور مجازی (vps) یک نوع منبع کامپیوتری است که فیزیکی نیست، بلکه بر روی یک سرور فیزیکی واقعی ایجاد شده و به نظر میرسد که یک سرور مستقل است. این کار با استفاده از نرمافزار مجازیسازی انجام میشود. و به دلابل مختلف که در ادامه خواهیم گفت باید امنیت سرور مجازی حفظ شود.
تصور کنید یک خانه بزرگ دارید (که این خانه نمایانگر یک سرور فیزیکی است) و در این خانه، چندین اتاق جداگانه به وجود آوردهاید (که هر اتاق نمایانگر یک سرور مجازی است). هر اتاق میتواند مستقل از دیگری و با تنظیمات مختلف باشد. به عبارت دیگر، در یک سرور فیزیکی میتوان چندین سرور مجازی با سیستمعاملها و برنامههای مختلف راهاندازی کرد، به طوری که هر یک از این سرورها فکر میکند که تنها سروری است که بر روی این سختافزار در حال اجرا است.
بیشتر بخوانید: سرور مجازی چیست؟
امنیت سرور مجازی به مجموعهای از روشها، فرآیندها و ابزارها اطلاق میشود که با هدف حفاظت از منابع و دادههای موجود در یک سرور مجازی به کار گرفته میشوند.
به طور خلاصه، امنیت سرور مجازی به مفهوم حفاظت از منابع و اطلاعات موجود در سرور مجازی در برابر دسترسیهای غیرمجاز، تهدیدات و آسیبپذیریها است.
افزایش امنیت سرور مجازی کامل و طولانی مطلب حیاتی است. در ادامه چند گام پیشنهادی برای افزایش امنیت سرور مجازی آورده شدهاست:
همیشه از آخرین نسخههای نرمافزارها و سیستمعامل استفاده کنید.
مثال: برای بهروز رسانی سیستمعامل لینوکس، میتوانید از دستور `sudo apt update && sudo apt upgrade` استفاده کنید.
برای افزایش امنیت در یک سرور مجازی با استفاده از فایروال، شما باید مراقب باشید که فقط به سرویسهای ضروری دسترسی داشته باشید و سایر پورتها را مسدود کنید. در اینجا چند گام کلی برای تنظیم فایروال در یک سرور مجازی آورده شده است:
برای نصب:
sudo apt install ufw
برای فعالسازی:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
برای مثال، اگر شما میخواهید فقط به SSH، HTTP و HTTPS دستریسی داشته باشید:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
یا اگر SSH را در یک پورت خاص اجرا میکنید، مانند 2222:
sudo ufw allow 2222/tcp
اگر فقط میخواهید یک آدرس IP خاص به سرور دسترسی داشته باشد، مانند برای SSH:
sudo ufw allow from 123.456.78.90 to any port 22
اگر UFW اپلیکیشنهای مشخصی را شناسایی کند، شما میتوانید به صورت خاص به آنها دستریسی دهید یا آنها را مسدود کنید. به طور مثال:
sudo ufw allow 'Nginx Full'
برای مشاهده قوانین فعال:
sudo ufw status
برای مشاهده قوانین با شمارهها:
sudo ufw status numbered
اگر میخواهید یک قاعده خاص را حذف کنید، از شماره قاعده در خروجی `ufw status numbered` استفاده کنید:
sudo ufw delete [number]
توجه داشته باشید که همیشه پیش از تغییرات اساسی در فایروال، از تنظیمات خود پشتیبان بگیرید و در موارد احتمالی مشکل، برای دسترسی به سرور خود یک راه دیگری در نظر بگیرید.
برای دسترسی به سرور، از احراز هویت دو مرحلهای استفاده کنید.
مثال: افزونههایی مثل `Google Authenticator` برای SSH در لینوکس وجود دارد.
فقط به کاربرهای مورد نیاز اجازه دسترسی به SSH دهید و استفاده از گذرواژههای قوی تأکید داشته باشید. برای محدود کردن دسترسی SSH در سرور مجازی (و همچنین در سرورهای فیزیکی)، میتوانید از روشها و تنظیمات زیر استفاده کنید:
به جای استفاده از پورت پیشفرض 22، یک پورت دیگری را انتخاب کنید.
– ویرایش فایل sshd_config. : sudo nano /etc/ssh/sshd_config
– تغییر خط Port 22 به مثلاً Port 2222
– سپس، سرویس SSH را با دستور sudo service ssh restart مجدداً راهاندازی کنید.
– در فایل sshd_config، خطوط زیر را اضافه کنید:
AllowUsers username1 username2
– با استفاده از AllowUsers فقط کاربران مذکور میتوانند وارد شوند.
– در فایل sshd_config، خطوط زیر را اضافه کنید:
AllowUsers username@your.ip.address.here
یا:
AllowUsers *@your.ip.address.here
– با استفاده از این تنظیم، فقط آدرسهای IP مذکور میتوانند به سرور SSH وارد شوند.
– غیرفعال کردن ورود با گذرواژه و اجبار به استفاده از کلیدهای SSH.
– در فایل sshd_config، تنظیمات زیر را اعمال کنید:
PasswordAuthentication no
– استفاده از یک فایروال مانند `UFW` برای محدود کردن دسترسی به پورت SSH.
– مثلاً برای الحاق دسترسی فقط از یک آدرس IP خاص به پورت 22:
sudo ufw allow from your.ip.address.here to any port 22
بعد از هر تغییری که در فایل `sshd_config` ایجاد کردید، مطمئن شوید که سرویس SSH را مجدداً راهاندازی کنید.
نکته: همیشه پیش از اعمال تغییرات، از تنظیمات فعلی پشتیبان بگیرید و مطمئن شوید که در یک جلسه SSH دیگر به سرور وصل هستید تا در صورت مشکلات احتمالی قادر به رفع مشکل باشید.
به جای استفاده از پورت 22، پورت دیگری را استفاده کنید. تغییر پورت SSH به 2222 در فایل `/etc/ssh/sshd_config`.
برای جلوگیری از ورود به سرور مجازی با استفاده از ارتباطهای رمز نشده، شما باید اطمینان حاصل کنید که تمام ارتباطها و ورودها از طریق پروتکلهای امن و رمزگذاری شده انجام میشوند. در مورد SSH، میتوانید از راهنماییهای زیر پیروی کنید:
بهجای استفاده از گذرواژه، استفاده از کلیدهای SSH مطمئنتر است. اولاً یک جفت کلید عمومی/خصوصی ایجاد کنید و کلید عمومی را به سرور اضافه کنید. سپس ورود با گذرواژه را غیرفعال کنید. در فایل sshd_config:
PasswordAuthentication no
SSH نسخه 1 مشکلات امنیتی دارد. مطمئن شوید که فقط از نسخه 2 پشتیبانی میکنید. در فایل sshd_config:
Protocol 2
شما میتوانید مشخص کنید که کدام الگوریتمهای رمزگذاری مجاز هستند. در فایل sshd_config:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
استفاده از سیستمهای مانند PAM (Pluggable Authentication Modules) برای اعمال سیاستهای امنیتی مختلف.
برای سرویسهایی مانند وب سرور، پایگاه داده یا ایمیل، از اتصالات TLS یا SSL استفاده کنید تا اطمینان حاصل شود که ارتباطات رمزگذاری شدهاند.
با پیادهسازی این راهنماییها، شما میتوانید اطمینان حاصل کنید که ورود به سرور مجازی شما از طریق ارتباطات رمز نشده امکانپذیر نیست. همیشه در ذهن داشته باشید که بهروزرسانی نرمافزارها و سیستمعامل به طور منظم نیز بخش مهمی از یک استراتژی امنیتی موثر است.
نصب سیستمهای تشخیص نفوذ و پیشگیری از نفوذ مثل `Fail2Ban` یا `Snort`.
بهطور دورهای لاگهای سرور را بررسی کنید تا از هر گونه فعالیت مشکوک آگاه شوید.
بهطور منظم از دادهها و تنظیمات سرور پشتیبان بگیرید.
نرمافزارهایی مثل `ClamAV` برای جلوگیری از ویروسها و `rkhunter` برای جلوگیری از rootkits.
با انجام این گامها، میتوانید امنیت سرور مجازی خود را به طور قابل توجهی افزایش دهید.
بیشتر بخوانید: تفاوت سرور مجازی و هاست اشتراکی
امنیت در سرورهای مجازی اهمیت زیادی دارد. سرورها اغلب اطلاعات حساسی نگهداری میکنند و هرگونه نقص در امنیت میتواند سبب دسترسی ناخواسته به اطلاعات، سوءاستفاده توسط هکرها، یا حتی توقف خدمات شود. از دیگر آسیبهای احتمالی، آسیب به نام و شهرت سازمان، افزایش هزینههای ناگهانی مانند جریمهها یا هزینههای قانونی و نقض مقررات قانونی است. بنابراین، تأمین امنیت مناسب در سرورهای مجازی نه تنها به حفظ اطلاعات و خدمات کمک میکند، بلکه از نظر اقتصادی نیز برای سازمانها و کسبوکارها حیاتی است.
امنیت سرور مجازی به معنای حفاظت از دادهها، منابع و خدماتی است که روی یک ماشین مجازی اجرا میشود. با توجه به افزایش استفاده از سرورهای مجازی در دنیای دیجیتال، محافظت از این سرورها در برابر تهدیدات مختلف، از جمله نفوذ به سیستم، حملات DDoS و سوءاستفادههای مختلف، بسیار حیاتی است. دسترسی نادرست به یک سرور مجازی میتواند منجر به دزدیده شدن اطلاعات حساس، از دست دادن اعتماد کاربران و همچنین هزینههای قابل توجهی شود. بنابراین، استفاده از تکنیکها و ابزارهای مناسب امنیتی برای محافظت از سرورهای مجازی الزامی است تا از دادهها و منابع حفاظت شود و بتوان با خیال آسوده در محیطی امن عملکردی مطمئن داشت.