اتصال امن به سرور
1. ایجاد و استفاده از یک اتصال امن
هنگام اتصال به سرور راه دور، ایجاد یک کانال امن برای ارتباط ضروری است.
استفاده از پروتکل SSH (Secure Shell) بهترین راه برای ایجاد یک اتصال محافظت شده است. برخلاف Telnet که قبلا استفاده می شد، دسترسی SSH تمام داده های ارسال شده در تبادل را رمزگذاری می کند.
شما باید SSH Daemon را نصب کنید و یک سرویس گیرنده SSH داشته باشید که با آن دستورات را صادر کنید و سرورها را مدیریت کنید تا با استفاده از پروتکل SSH دسترسی از راه دور داشته باشید.
به طور پیش فرض، SSH از پورت 22 استفاده می کند. همه، از جمله هکرها، این را می دانند. اکثر مردم این جزئیات به ظاهر ناچیز را پیکربندی نمی کنند. با این حال، تغییر شماره پورت یک راه آسان برای کاهش احتمال حمله هکرها به سرور شما است. بنابراین بهترین روش برای SSH استفاده از شماره پورت بین 1024 تا 32767 است.
2. از SSH Keys Authentication استفاده کنید.
به جای رمز عبور، می توانید یک سرور SSH را با استفاده از یک جفت کلید SSH احراز هویت کنید، که جایگزین بهتری برای لاگین های سنتی است. کلیدها بیت های بیشتری نسبت به رمز عبور دارند و توسط اکثر کامپیوترهای مدرن به راحتی شکسته نمی شوند. رمزگذاری محبوب RSA 2048 بیتی معادل یک رمز عبور 617 رقمی است.
جفت کلید از یک کلید عمومی و یک کلید خصوصی تشکیل شده است.
کلید عمومی چندین نسخه دارد که یکی از آنها روی سرور باقی می ماند و بقیه با کاربران به اشتراک گذاشته می شود. هر کسی که کلید عمومی را داشته باشد، قدرت رمزگذاری داده ها را دارد، در حالی که فقط کاربر با کلید خصوصی مربوطه می تواند این داده ها را بخواند. کلید خصوصی با کسی به اشتراک گذاشته نمی شود و باید ایمن نگه داشته شود. هنگام برقراری یک اتصال، سرور قبل از اجازه دسترسی ممتاز، شواهدی را درخواست می کند که کاربر کلید خصوصی را در اختیار دارد.
-
پروتکل انتقال امن فایل
برای انتقال فایل ها به و از سرور بدون خطر هکرها به خطر انداختن یا سرقت داده ها، استفاده از پروتکل انتقال فایل امن (FTPS) ضروری است. این فایل های داده و اطلاعات احراز هویت شما را رمزگذاری می کند.
FTPS از هر دو کانال فرمان و کانال داده استفاده می کند و کاربر می تواند هر دو را رمزگذاری کند. به خاطر داشته باشید که فقط از فایل ها در حین انتقال محافظت می کند. به محض رسیدن به سرور، داده ها دیگر رمزگذاری نمی شوند. به همین دلیل، رمزگذاری فایل ها قبل از ارسال، لایه دیگری از امنیت را اضافه می کند.
-
گواهینامههای لایه سوکت ایمن
مناطق و فرم های مدیریت وب خود را با لایه سوکت ایمن (SSL) ایمن کنید که از اطلاعات ارسال شده بین دو سیستم از طریق اینترنت محافظت می کند. SSL را می توان هم در ارتباط سرور-کلینت و هم در ارتباط سرور-سرور استفاده کرد.
این برنامه داده ها را درهم می کند تا اطلاعات حساس (مانند نام، شناسه، شماره کارت اعتباری و سایر اطلاعات شخصی) در حین انتقال به سرقت نرود. وبسایتهایی که گواهی SSL دارند، HTTPS در URL دارند که نشان میدهد امن هستند.
گواهی نه تنها داده ها را رمزگذاری می کند، بلکه برای احراز هویت کاربر نیز استفاده می شود. بنابراین، با مدیریت گواهیها برای سرورهای شما، به ایجاد اعتبار کاربر کمک میکند. مدیران می توانند سرورها را برای برقراری ارتباط با مرجع متمرکز و هر گواهی دیگری که مرجع امضا می کند پیکربندی کنند.
-
از شبکههای خصوصی و VPN استفاده کنید
راه دیگر برای اطمینان از برقراری ارتباط ایمن، استفاده از شبکه های خصوصی و مجازی خصوصی (VPN) و نرم افزارهایی مانند OpenVPN است (به راهنمای ما در مورد نصب و پیکربندی OpenVPN در CentOS مراجعه کنید). برخلاف شبکههای باز که برای دنیای خارج قابل دسترسی هستند و در نتیجه مستعد حملات کاربران مخرب هستند، شبکههای خصوصی و مجازی دسترسی به کاربران منتخب را محدود میکنند.
شبکه های خصوصی از یک IP خصوصی برای ایجاد کانال های ارتباطی ایزوله بین سرورها در همان محدوده استفاده می کنند. این به چندین سرور تحت یک حساب اجازه می دهد تا اطلاعات و داده ها را بدون قرار گرفتن در معرض یک فضای عمومی مبادله کنند.
هنگامی که می خواهید به یک سرور راه دور متصل شوید، گویی این کار را به صورت محلی از طریق یک شبکه خصوصی انجام می دهید، از VPN استفاده کنید. این یک اتصال کاملا ایمن و خصوصی را فعال می کند و می تواند چندین سرور راه دور را در بر بگیرد. برای اینکه سرورها تحت یک VPN با هم ارتباط برقرار کنند، باید داده های امنیتی و پیکربندی را به اشتراک بگذارند.
مدیریت کاربر سرور
-
نظارت بر تلاشهای ورود
استفاده از نرم افزار جلوگیری از نفوذ برای نظارت بر تلاش های ورود به سیستم، راهی برای محافظت از سرور شما در برابر حملات brute force است. این حملات خودکار از روش آزمون و خطا استفاده می کنند و از هر ترکیب ممکنی از حروف و اعداد برای دسترسی به سیستم استفاده می کنند.
نرمافزار جلوگیری از نفوذ بر تمامی فایلهای گزارش نظارت میکند و اگر تلاشهای مشکوکی برای ورود وجود داشته باشد، تشخیص میدهد. اگر تعداد تلاشها از حد تعیینشده بیشتر شود، نرمافزار جلوگیری از نفوذ آدرس IP را برای مدت معینی یا حتی برای مدت نامحدود مسدود میکند.
-
مدیریت کاربران
هر سرور یک کاربر ریشه دارد که می تواند هر دستوری را اجرا کند. به دلیل قدرتی که دارد، روت میتواند برای سرور شما بسیار خطرناک باشد، اگر به دست اشتباه بیفتد. غیرفعال کردن ورود ریشه در SSH به طور کلی روشی رایج است.
از آنجایی که کاربر اصلی بیشترین قدرت را دارد، هکرها توجه خود را بر تلاش برای شکستن رمز عبور آن کاربر خاص متمرکز می کنند. اگر تصمیم بگیرید که این کاربر را به طور کامل غیرفعال کنید، مهاجمان را در یک نقطه ضعف قابل توجه قرار می دهید و سرور خود را از تهدیدات احتمالی نجات می دهید.
برای اطمینان از اینکه افراد خارجی از امتیازات root سوء استفاده نمی کنند، می توانید یک حساب کاربری محدود ایجاد کنید. این اکانت دارای قدرت یکسانی با روت نیست اما همچنان قادر به انجام وظایف اداری با استفاده از دستورات sudo است.
بنابراین، میتوانید بیشتر کارها را بهعنوان حساب کاربری محدود مدیریت کنید و فقط در صورت لزوم از حساب root استفاده کنید.
امنیت رمز عبور سرور
-
الزامات رمز عبور را تعیین کنید
اولین چیز این است که الزامات و قوانین رمز عبور را تنظیم کنید که باید توسط همه اعضای سرور رعایت شود.
پسوردهای خالی یا پیش فرض را مجاز نکنید. حداقل طول رمز عبور و پیچیدگی را اعمال کنید. یک سیاست قفل داشته باشید. رمزهای عبور را با استفاده از رمزگذاری برگشت پذیر ذخیره نکنید. مهلت زمانی جلسه را برای عدم فعالیت اجباری کنید و احراز هویت دو مرحله ای را فعال کنید.
-
سیاست انقضای رمز عبور را تنظیم کنید
تعیین تاریخ انقضا برای رمز عبور یکی دیگر از روش های معمول در هنگام ایجاد الزامات برای کاربران است. بسته به سطح امنیتی مورد نیاز، رمز عبور ممکن است چند هفته یا چند ماه دوام بیاورد.
-
از کلمات عبور برای رمزهای عبور سرور استفاده کنید
دلایل متعددی وجود دارد که چرا استفاده از عبارت عبور به جای رمز عبور می تواند به افزایش امنیت سرور کمک کند. تفاوت اصلی بین این دو این است که یک عبارت عبور طولانی تر است و حاوی فاصله بین کلمات است. بنابراین، اغلب یک جمله است، اما لازم نیست که یکی باشد.
برای مثال، یک رمز عبور ممکن است این باشد: Ilove!ToEatPizzaAt1676MainSt.
مثال داده شده طولانی تر از یک رمز عبور معمولی است و شامل حروف بزرگ و کوچک، اعداد و کاراکترهای منحصر به فرد است.
علاوه بر این، به خاطر سپردن یک عبارت عبور بسیار ساده تر از یک رشته حروف تصادفی است. در نهایت، از آنجایی که از 49 کاراکتر تشکیل شده است، کرک کردن آن دشوارتر است.
-
رمز عبور انجام نمیشود
اگر میخواهید یک سرور امن داشته باشید، در مورد رمزهای عبور باید از چند چیز اجتناب کنید. در مرحله اول، مراقب باشید که رمزهای عبور را کجا ذخیره می کنید. آنها را روی کاغذ ننویسید و در اطراف دفتر پنهان کنید.
به طور کلی توصیه می شود از اطلاعات شخصی مانند تاریخ تولد، زادگاه، نام حیوانات خانگی و سایر مواردی که می تواند شما، کاربر را به رمز عبور متصل کند، استفاده نکنید. حدس زدن این موارد بسیار آسان است، به خصوص توسط افرادی که شما را شخصاً می شناسند.
رمزهای عبوری که فقط حاوی کلمات فرهنگ لغت ساده هستند نیز به راحتی شکسته می شوند، مخصوصاً با حملات دیکشنری (بروت فورس). با توجه به خطر مشابه، سعی کنید از تکرار توالی کاراکترها در یک رمز عبور خودداری کنید.
در نهایت، از رمز عبور یکسان برای چندین حساب استفاده نکنید. با بازیافت رمزهای عبور، خود را در معرض خطر جدی قرار می دهید. اگر یک هکر موفق شود به یک حساب کاربری دسترسی پیدا کند، همه حساب های دیگر با رمز عبور مشابه ممکن است در خطر باشند. سعی کنید از یک رمز عبور متفاوت برای هر حساب جداگانه استفاده کنید و با استفاده از یک مدیریت رمز عبور مانند KeePass آنها را پیگیری کنید.
بهترین روشهای دیگر برای ایمنسازی سرور
12. نرم افزار را به طور منظم به روز رسانی و ارتقا دهید
به روز رسانی منظم نرم افزار بر روی سرور، گامی حیاتی برای ایمن نگه داشتن آن در برابر هکرها است. نرم افزار منسوخ شده قبلاً به دلیل نقاط ضعف آن مورد بررسی قرار گرفته است، و آن را برای هکرها باز گذاشته است تا از آنها استفاده کنند و به سیستم شما آسیب برسانند. اگر همه چیز را به روز نگه دارید، مطمئن می شوید که برای محافظت از خود در اولین خط دفاعی به روز شده است.
به روز رسانی خودکار یکی از راه هایی است که تضمین می کند هیچ به روز رسانی فراموش نمی شود. با این حال، اجازه دادن به سیستم برای ایجاد چنین تغییراتی به تنهایی ممکن است خطرناک باشد. قبل از به روز رسانی محیط تولید خود، تمرین خوبی است که نحوه عملکرد به روز رسانی در یک محیط آزمایشی را بررسی کنید.
مطمئن شوید که کنترل پنل سرور را به طور معمول به روز کنید. شما همچنین باید به طور منظم سیستم های مدیریت محتوا را، در صورت استفاده از یکی، و همچنین هر افزونه ای که ممکن است داشته باشد، به روز کنید. هر نسخه جدید شامل وصله های امنیتی برای رفع مشکلات امنیتی شناخته شده است.
13. همه سرویسهای غیر ضروری را حذف یا خاموش کنید
افزایش امنیت سرور با کاهش به اصطلاح بردار حمله.
این اصطلاح امنیت سایبری به نصب و حفظ تنها حداقل الزامات مورد نیاز برای اجرای خدمات شما اشاره دارد. فقط پورت های شبکه مورد استفاده توسط سیستم عامل و اجزای نصب شده را فعال کنید. هر چه کمتر در سیستم داشته باشید، بهتر است.
یک سرور سیستم عامل ویندوز فقط باید دارای اجزای سیستم عامل مورد نیاز باشد. یک سرور سیستم عامل لینوکس باید حداقل نصب داشته باشد و فقط بسته های واقعا ضروری نصب شده باشد.
از آنجایی که اکثر توزیعهای لینوکس به اتصالات ورودی در اینترنت گوش میدهند، میخواهید یک فایروال را پیکربندی کنید تا فقط پورتهای خاصی را مجاز کند و همه ارتباطات غیر ضروری دیگر را رد کند.
قبل از نصب نرم افزار بر روی سیستم خود، وابستگی ها را بررسی کنید تا مطمئن شوید که چیزی را که نیاز ندارید اضافه نمی کنید. بهعلاوه، بررسی کنید که کدام وابستگیها بهطور خودکار در سیستم شما راهاندازی شدهاند و آیا میخواهید آنها را در آنجا قرار دهید.
-
اطلاعات سرور را مخفی کنید
سعی کنید تا حد امکان اطلاعات کمی در مورد زیرساخت های زیربنایی ارائه کنید. هر چه کمتر در مورد سرور شناخته شده باشد، بهتر است.
همچنین، بهتر است شماره نسخه هر نرم افزاری را که روی سرور نصب کرده اید مخفی کنید. اغلب آنها به طور پیش فرض تاریخ دقیق انتشار را نشان می دهند که می تواند در جستجوی نقاط ضعف به هکرها کمک کند. معمولاً حذف این اطلاعات با حذف آن از هدر HTTP بنر تبریک آن ساده است.
-
از سیستمهای تشخیص نفوذ استفاده کنید
برای شناسایی هرگونه فعالیت غیرمجاز، از یک سیستم تشخیص نفوذ (IDS) مانند Sophos استفاده کنید که فرآیندهای در حال اجرا بر روی سرور شما را نظارت می کند. میتوانید آن را طوری تنظیم کنید که عملیات روزانه را بررسی کند، اسکنهای خودکار دورهای را اجرا کند یا تصمیم بگیرید که IDS را به صورت دستی اجرا کنید.
حسابرسی فایل
ممیزی فایل یک راه خوب دیگر برای کشف تغییرات ناخواسته در سیستم شما است.
در صورتی که سیستم شما در وضعیت خوب و «سالم» قرار داشته باشد، تمام ویژگیهای سیستم شما را ثبت میکند و آن را با وضعیت فعلی مقایسه میکند. با مقایسه دو نسخه از یک سیستم در کنار یکدیگر، می توانید تمام ناهماهنگی ها را شناسایی کرده و منشاء آنها را دنبال کنید.
-
حسابرسی خدمات
حسابرسی سرویس بررسی میکند که چه سرویسهایی روی سرور اجرا میشوند، پروتکلهای آنها و از طریق کدام پورتها ارتباط برقرار میکنند. آگاهی از این مشخصات به پیکربندی سطوح حمله در سیستم کمک می کند.
-
یک فایروال را راهاندازی و نگهداری کنید
سرور خود را با کنترل و محدود کردن دسترسی به سیستم خود ایمن کنید.
استفاده از CSF (ConfigServer و Firewall) در افزایش امنیت سرور شما ضروری است. این فقط به اتصالات حیاتی خاص اجازه می دهد و دسترسی به سایر خدمات را قفل می کند.
در طول راه اندازی اولیه سرور یا زمانی که تغییراتی در خدماتی که سرور ارائه می دهد، یک فایروال راه اندازی کنید. به طور پیش فرض، یک سرور معمولی سرویس های مختلفی از جمله سرویس های عمومی، خصوصی و داخلی را اجرا می کند.
خدمات عمومی عموماً توسط وب سرورهایی اجرا می شوند که نیاز به اجازه دسترسی به وب سایت دارند. هر کسی می تواند به این خدمات، اغلب به صورت ناشناس، از طریق اینترنت دسترسی داشته باشد.
برای مثال، هنگامی که با کنترل پنل پایگاه داده سروکار دارید، از خدمات خصوصی استفاده می شود. در آن صورت، تعدادی از افراد انتخاب شده نیاز به دسترسی به همان نقطه دارند. آنها دارای حساب های مجاز با امتیازات ویژه در داخل سرور هستند.
خدمات داخلی خدماتی هستند که هرگز نباید در معرض اینترنت یا دنیای خارج قرار گیرند. آنها فقط از داخل سرور قابل دسترسی هستند و فقط اتصالات محلی را می پذیرند.
نقش فایروال اجازه دادن، محدود کردن و فیلتر کردن دسترسی بر اساس سرویسی است که کاربر برای آن مجاز است. فایروال را به گونه ای پیکربندی کنید که همه سرویس ها را به جز خدمات اجباری برای سرور شما محدود کند.
-
از سرور خود نسخه پشتیبان تهیه کنید
اگرچه مراحل ذکر شده قبلی برای محافظت از داده های سرور شما طراحی شده اند، در صورت بروز مشکل، داشتن یک نسخه پشتیبان از سیستم بسیار مهم است.
پشتیبان های رمزگذاری شده از داده های حیاتی خود را در خارج از سایت ذخیره کنید یا از یک راه حل ابری استفاده کنید.
چه کارهای پشتیبان گیری خودکار داشته باشید یا آنها را به صورت دستی انجام دهید، مطمئن شوید که این اقدام احتیاطی را به صورت روتین انجام دهید. همچنین، شما باید نسخههای پشتیبان را آزمایش کنید، آزمایشهای جامع پشتیبانگیری را انجام دهید. این باید شامل «بررسی سلامت عقل» باشد که در آن مدیران یا حتی کاربران نهایی تأیید میکنند که بازیابی اطلاعات منسجم است.
20. محیطهای چند سروری ایجاد کنید
ایزوله یکی از بهترین انواع محافظت از سرور است که می توانید داشته باشید.
جداسازی کامل مستلزم داشتن سرورهای فلزی لخت اختصاصی است که هیچ جزء با سرورهای دیگر به اشتراک نمی گذارند. اگرچه این ساده ترین مدیریت است و بیشترین امنیت را فراهم می کند، اما گران ترین است.
وجود محیط های اجرایی مجزا در یک مرکز داده، به اصطلاح جداسازی وظایف (SoD) و تنظیم پیکربندی سرور را با توجه به عملکردهایی که سرور انجام می دهد، اجازه می دهد.
جداسازی سرورهای پایگاه داده و سرورهای برنامه کاربردی وب یک عمل امنیتی استاندارد است. محیطهای اجرایی مجزا بهویژه برای کسبوکارهای مقیاس بزرگتر که نمیتوانند هیچ گونه نقض امنیتی را تحمل کنند، مفید است.
سرورهای پایگاه داده مستقل اطلاعات حساس و فایل های سیستمی را از هکرهایی که می توانند به حساب های اداری دسترسی پیدا کنند، ایمن می کند. همچنین، انزوا به مدیران سیستم اجازه میدهد تا امنیت برنامه وب را جداگانه پیکربندی کنند و با تنظیم فایروال برنامههای وب، سطح حمله را به حداقل برسانند.
21. محیطهای ایزوله مجازی ایجاد کنید
اگر نمی توانید یا نیازی به ایزوله سازی کامل با اجزای سرور اختصاصی ندارید، می توانید محیط های اجرایی را نیز ایزوله کنید.
انجام این کار به شما کمک می کند تا با مشکلات امنیتی که ممکن است پیش بیاید مقابله کنید و اطمینان حاصل کنید که سایر داده ها به خطر نمی افتند. شما می توانید بین کانتینرها یا مجازی سازی VM که راه اندازی آنها بسیار ساده تر است، انتخاب کنید.
یکی دیگر از گزینه های محیط های مجازی سازی شده در سیستم عامل یونیکس، ایجاد زندان های chroot است. Chroot یک فرآیند را از دایرکتوری ریشه سیستم عامل مرکزی جدا می کند و به آن اجازه می دهد فقط به فایل های موجود در درخت دایرکتوری خود دسترسی داشته باشد. با این حال، این یک انزوا کامل نیست و باید فقط با سایر اقدامات امنیتی انجام شود.
جمع بندی: ایمن سازی سرور شما
پس از مطالعه این مقاله و رعایت توصیه های امنیتی، باید از امنیت سرور خود اطمینان بیشتری داشته باشید.
بسیاری از اقدامات امنیتی باید در طول راه اندازی اولیه سرور اجرا شوند، در حالی که برخی دیگر باید بخشی از نگهداری مداوم یا دوره ای باشند. اگر نظارت بر سرور شما خودکار نیست، مطمئن شوید که بررسی های امنیتی برنامه ریزی شده را طراحی و دنبال کنید.
برای به روز ماندن با بهترین شیوه ها در مورد امنیت سایبری، توصیه می کنیم گواهینامه های امنیت سایبری را در نظر بگیرید و از رهبران صنعت در زمینه امنیت در بسیاری از پادکست های موجود پیروی کنید.