امنیت سرور یکی از مسائل مهم در حوزه فناوری اطلاعات بوده و شامل مجموعه ای از مباحث امنیت شبکه، امنیت سیستم عامل، امنیت وب سرویس ها و کانفیگ امنیتی آنها می باشد.
هکرها همیشه به دنبال آسیب پذیری سرور هستند. این وظیفه شماست که از امنیت و ایمن بودن داده های خود اطمینان حاصل کنید. با اجرای نکات و بهترین شیوه های امنیتی سرور ما، خطرات را به حداقل برسانید و مطمئن باشید که داده های شما در سرورهای امن ایمن است. در این ادامه نکاتی در رابطه با حفظ امنیت سرور توضیح خواهم داد.
-
ایجاد و استفاده از یک اتصال امن
هنگام اتصال به سرور از راه دور، ایجاد یک کانال امن برای ارتباط ضروری است. استفاده از پروتکل SSH (Secure Shell) بهترین راه برای ایجاد ارتباط محافظت شده است. برخلاف Telnet قبلاً استفاده شده، دسترسی SSH تمام داده های منتقل شده در مبادله را رمزگذاری می کند.
-
از SSH Keys Authentication استفاده کنید.
به جای رمز عبور، می توانید یک سرور SSH را با استفاده از یک جفت کلید SSH احراز هویت کنید، که جایگزین بهتری برای لاگین های سنتی است. کلیدها بیت های بیشتری نسبت به رمز عبور دارند و توسط اکثر کامپیوترهای مدرن به راحتی شکسته نمی شوند. رمزگذاری محبوب RSA 2048 بیتی معادل یک رمز عبور 617 رقمی است.
-
پروتکل انتقال امن فایل FTPS
برای اینکه از خطر هکرها و دزدی اطلاعاتتان در امان باشید برای انتقال فایل از/به سرور از پروتکل FTPS یا File Transfer Protocol Secure استفاده کنید. این پروتکل فایلهای اطلاعاتی و اطلاعات احراز هویت را رمزگذاری میکند.
FTPS هم از command channel و هم از data channel استفاده میکند و کاربر از هر دو میتواند استفاده کند. توجه داشته باشید که از فایلها فقط هنگام انتقال، محافظت میشود و به محض اینکه به سرور برسند دیگر رمزگذاری شده نیستند. به همین دلیل قبل از ارسال فایلها، لایه امنیتی دیگری اضافه کنید.
-
استفاده از SSL Certificate
برای بالا بردن امنیت در سرورهای وب از SSL یا Secure Socket Layer استفاده کنید. این پروتکل از اطلاعاتی که از طریق اینترنت بین سیستمها جابجا میشود، محافظت میکند. این پروتکل دیتا را به هم ریخته میکند؛ دیتایی مانند نامها و ID ها و شماره کارتها و دیگر اطلاعات شخصی؛ در نتیحه هنگام انتقال، قابل دزدیده شدن نیستند. وب سایتهایی که دارای SSL Certificate هستند در URL آنها HTTPS وجود دارد که نشاندهنده امن بودن آنهاست.
certificate به غیر از رمزگذاری دیتا، برای احراز هویت کاربر هم استفاده میشود. با مدیریت certificate در سرورهایتان میتوانید احراز هویت کاربر ایجاد کنید. ادمینها میتوانند سرورها را برای ارتباط با احراز هویت متمرکز و هر certificate دیگری پیکربندی کنند
-
از شبکه های خصوصی و VPN استفاده کنید
یکی دیگر از راههای تامین ارتباطات امن استفاده از شبکه های خصوصی و شبکه های خصوصی مجازی – virtual private networks است. این شبکهها برخلاف شبکههای باز که به دنیای بیرون دسترسی دارند، هستند یعنی فقط در داخل شبکه خصوصی ارتباط برقرار است. شبکههای باز در برابر حمله هکرها آسیبپذیرترند. اما شبکه های خصوصی و شبکه های خصوصی مجازی به کاربران خاصی، دسترسی میدهد و در دسترسیها محدودیت ایجاد میکند.
شبکه های خصوصی از آی پی خصوصی استفاده میکنند تا کانالهای ارتباطی ایزوله بین سرورها با همان رِنج ایجاد کنند. در نتیجه چند سرور با یک اکانت، اطلاعات و دیتا را بدون اینکه در معرض فضای عمومی قرار گیرند، جابجا میکنند. با استفاده از virtual private networks وقتی قصد اتصال به سرور ریموت را دارید مثل این است که به صورت لوکال این کار را میکنید.
در ادامه نکات مربوط به مدیریت کاربران سرور را برمیشماریم.
-
نظارت بر لاگینهای کاربر
یکی دیگر از راههای تامین ارتباطات امن استفاده از شبکه های خصوصی و شبکه های خصوصی مجازی – virtual private networks است. این شبکهها برخلاف شبکههای باز که به دنیای بیرون دسترسی دارند، هستند یعنی فقط در داخل شبکه خصوصی ارتباط برقرار است. شبکههای باز در برابر حمله هکرها آسیبپذیرترند. اما شبکه های خصوصی و شبکه های خصوصی مجازی به کاربران خاصی، دسترسی میدهد و در دسترسیها محدودیت ایجاد میکند.
شبکه های خصوصی از آی پی خصوصی استفاده میکنند تا کانالهای ارتباطی ایزوله بین سرورها با همان رِنج ایجاد کنند. در نتیجه چند سرور با یک اکانت، اطلاعات و دیتا را بدون اینکه در معرض فضای عمومی قرار گیرند، جابجا میکنند. با استفاده از virtual private networks وقتی قصد اتصال به سرور ریموت را دارید مثل این است که به صورت لوکال این کار را میکنید.
در ادامه نکات مربوط به مدیریت کاربران سرور را برمیشماریم.
-
مدیریت کاربران
هر سرور یک کاربر روت دارد که میتواند هر دستوری را اجرا کند. پس مراقب باشید این قدرت به دست فرد غیرمجاز نیفتد. پیشنهاد میشود لاگین به روت را در SSH غیرفعال کنید.
کاربر روت به عنوان قدرتمندترین کاربر همواره مورد توجه هکرها است و شما با غیرفعال کردن این کاربر، هکر را با درهای بسته مواجه میکنید در نتیجه سرورتان در برابر حملات در امان است.برای اینکه مطمئن شوید که کاربر روت مورد سواستفاده نیست بهتر است اکانت کاربری محدودی ایجاد کنید که تمام قدرت روت را نداشته باشد اما بتوانید اغلب کارهای ادمینی را با آن انجام دهید و فقط در مواقع ضروری از کاربر روت استفاده کنید.
-
پسورد سرور چگونه باشد؟
- از پسورد پیشفرض و پسورد خالی استفاده نکنید.
- پسورد حتما باید دارای پیچیدگی و طول مناسبی باشد.
- از پالیسی یا سیاست Lockout استفاده کنید.
- پسوردها را با استفاده از رمزگذاری قابل بازگشت – reversible encryption ذخیره نکنید.
- پسورد ها را روی کاغذ ننویسید.
- احراز هویت دو مرحلهای تعیین کنید.
- برای نشستهای غیرفعال، زمان تایم اوت مشخص کنید.
- واضح است که اطلاعات شخصی مثل تاریخ تولد و شهر و هر چیزی که شما را به کاربر مربوط کند را برای پسورد در نظر نگیرید. چون حدس آن مخصوصا برای کسانی که شما را میشناسند راحت است.
- از سری کاراکترهای تکراری استفاده نکنید.
- از کلمات معنی دارد (کلماتی که در دیکشنری هست) استفاده نکنید.
- از یک پسورد برای چند اکانت استفاده نکنید. اگر یک اکانت هک شود احتمال هک شدن باقی اکانتها هم بالا است.
- برای پیگیری پسوردها از برنامه مدیر پسورد مانند KeePass استفاده کنید.
- تاریخ انقضا برای پسورد تنظیم کنید. بسته به سطح امنیتی لازم، باید چند هفته یا چند ماه تعیین کنید.
-
استفاده از Passphrases برای پسورد سرور
برای افزایش امنیت سرور بهتر است از عبارت ورود به جای کلمه ورود استفاده کنید. تفاوت اصلی بین این دو این است که عبارت ورود بلندتر است و بین کلمات جای خالی قرار دارد یعنی در واقع جمله است. مثلا host45!TalaShnet34bGe425ftrenth. این عبارت ورود شامل حروف بزرگ و کوچک و عدد و کاراکترهای خاص است و البته بلندتر از پسورد. همچنین به خاطر سپردن عبارت ورود راحتتر است از یک سری حروف بیربط که در کنار هم قرار دارند.
از طرفی چون عبارت ورود دارای ۴۹ کاراکتر است، هک کردن آن بسیار سختتر است.
-
داشتن برنامه منظم آپدیت و آپگرید سرور
نرم افزارهای سرور را مرتب آپدیت کنید. این کار مرحله مهمی در تامین امنیت سرور در برابر هک است. اگر آپدیت نگنید، نقاط ضعفی که در نرم افزارهایی که آپدیت نشدهاند، وجود دارد و کشف شده، شانس هکرها را برای استفاده از آنها بالا میبرد. با آپدیت نکردن، راه هکر را برای صدمه زدن به سیستم تان باز میگذارید. اگر همه چیز را به روز رسانی کنید اولین خط دفاعی را ایجاد کردهاید.
آپدیت خودکار راهی تضمینی است تا آپدیت را فراموش نکنیم. البته اعمال تغییرات توسط خود سیستم میتواند خطرناک هم باشد. بهتر است محیط تستی فراهم کنید تا چگونگی اجرای آپدیت را بررسی کنید سپس روی کل سیستم اعمال کنید.
به طور مرتب کنترل پنل سرور، سیستمهای مدیریت محتوا و پلاگینهای آن را آپدیت کنید. هر وصله امنیتی جدیدی که عرضه میشود را استفاده کنید تا مشکلات امنیتی موجود را برطرف کند.
-
تمام سرویسهای غیرضروری را غیرفعال یا خاموش کنید.
با غیرفعال کردن تمام سرویسهای غیر ضروری، زمینه حمله so-called را کاهش میدهید. این اصطلاح امنیت سایبری یعنی نصب و نگهداری حداقل ملزومات اجرای سرویس. توصیه میشود که فقط پورتهای شبکه که سیستم عامل و اجزای نصب شده استفاده میکنند را فعال کنید. هرچه پورت فعال سیستم، کمتر باشد بهتر است.
-
اطلاعات سرور را Hide کنید.
تا حد امکان اطلاعات مربوط به زیرساخت را به حداقل برسانید. هرچه درباره سرور کمتر اطلاعات داده شود بهتر است. بهتر است شماره نسخه هر نرم افزاری که روی سرور نصب است را را هم مخفی کنید. به طور پیشفرض حتی تاریخ آپدیت هم ارایه میشود و نقطه ضعف و راهی خواهد بود برای حمله هکرها. برای حذف اطلاعات باید اطلاعات را از هدر HTTP در greeting banner نرم افزار پاک کنید.
-
از سیستمهای intrusion detection استفاده کنید.
برای تشخیص هرگونه فعالیت غیرمجاز از IDS یا intrusion detection system به عنوان مثال Sopho استفاده کنید تا تمام پروسسهای در حال اجرا روی سرور را مانیتور کنید. امکان تنظیم آن به صورت روزانه و اسکنهای اتوماتیک دورهای و یا اجرای دستی آن وجود دارد.
ویژگی Chassis Intruction Detection در تامین امنیت سرور به صورت فیزیکی، این امکان را فراهم میکند که اگر کسی بدون اجازه و مجوز، اقدام به باز کردن درب کیس و جابجا کردن قطعات کند، ادمین شبکه هشدارهایی دریافت کند. این ویژگی در سرورهای hp وجود دارد.
-
فایروال تنظیم کنید.
تامین امنیت سرور با کنترل و محدود کردن دسترسیها امکانپذیر است. به طور کلی سه نوع سرویس روی سرور ران است سرویس عمومی، سرویس خصوصی و سرویس داخلی. سرویس عمومی معمولا روی سرور وب اجرا میشود و باید اجازه دسترسی به وب را بدهیم. سرویسهای خصوصی مثلا با دیتابیس در ارتباط است و کاربران مختلف با سطح دسترسی مختلف روی سرور تنظیم میشود. سرویسهای داخلی هرگز نباید در معرض اینترنت و دنیای بیرون باشند و ارتباط فقط بین سرور و ارتباطات لوکال برقرار است.
نقش فایروالها این است که دسترسیها را فیلتر و محدود میکند. این محدود کردن بر اساس مجاز بودن یا نبودن کاربر در استفاده از سرویس انجام میشود. فایروال را برای محدود کردن تمام سرویسها به جز آنهایی که برای سرور ضروری است پیکربندی کنید.
-
از سرور بکاپ تهیه کنید.
اگرچه مراحل ذکر شده قبلی برای محافظت از داده های سرور شما طراحی شده اند، در صورت بروز مشکل، داشتن یک نسخه پشتیبان از سیستم بسیار مهم است.
پشتیبان های رمزگذاری شده از داده های حیاتی خود را در خارج از سایت ذخیره کنید یا از یک راه حل ابری استفاده کنید.
چه کارهای پشتیبان گیری خودکار داشته باشید یا آنها را به صورت دستی انجام دهید، مطمئن شوید که این اقدام احتیاطی را به صورت روتین انجام دهید. همچنین، شما باید نسخههای پشتیبان را آزمایش کنید، آزمایشهای جامع پشتیبانگیری را انجام دهید. این باید شامل «بررسی سلامت عقل» باشد که در آن مدیران یا حتی کاربران نهایی تأیید میکنند که بازیابی اطلاعات منسجم است.
-
محیطهای چندسروری ایجاد کنید.
ایزوله یکی از بهترین انواع محافظت از سرور است که می توانید داشته باشید.
جداسازی کامل مستلزم داشتن سرورهای فلزی لخت اختصاصی است که هیچ جزء با سرورهای دیگر به اشتراک نمی گذارند. اگرچه این ساده ترین مدیریت است و بیشترین امنیت را فراهم می کند، اما گران ترین است.
وجود محیط های اجرایی مجزا در یک مرکز داده، به اصطلاح جداسازی وظایف (SoD) و تنظیم پیکربندی سرور را با توجه به عملکردهایی که سرور انجام می دهد، اجازه می دهد.
جداسازی سرورهای پایگاه داده و سرورهای برنامه کاربردی وب یک عمل امنیتی استاندارد است. محیطهای اجرایی مجزا بهویژه برای کسبوکارهای مقیاس بزرگتر که نمیتوانند هیچ گونه نقض امنیتی را تحمل کنند، مفید است.
سرورهای پایگاه داده مستقل اطلاعات حساس و فایل های سیستمی را از هکرهایی که می توانند به حساب های اداری دسترسی پیدا کنند، ایمن می کند. همچنین، انزوا به مدیران سیستم اجازه میدهد تا امنیت برنامه وب را جداگانه پیکربندی کنند و با تنظیم فایروال برنامههای وب، سطح حمله را به حداقل برسانند.