ویرگول
ورودثبت نام
Akira
Akira
خواندن ۱۳ دقیقه·۳ سال پیش

دلایل به خطر افتادن سرور سایت شما و افزایش امنیت آن

به نام خدا سلام آکیرا هست، یک فریلنسر آزاد :) و قراره توی این مقاله راهکار هایی را به شما معرفی کنم که از هک شدن سرور سایتتون تا حد ممکن جلوگیری بکنه.
ابتدا یک توضیح مختصری میدم و بعد راهکار هایی به شما میگم که کمک میکنه به افزایش امنیت سرور سایت شما.



منبع عکس
منبع عکس

حتما تا الان براتون سوال شده که مگه سروری که سایت شما درونش نگه داری میشه در مسائل امنیتی از اهمیتی برخوردار است؟ یا اینکه دارید میگید که من سرورم را از شرکت *** خریدم و چون این شرکت مطرح است دیگه نیاز نیست نگران باشم. همین جا باید بگم که اولین نگرانی من در تامین امنیت سایت ها اینه که طرفی که با من قرار داد بسته سایتش رو چه چیزی نگه داری میشه؟ و توسط چه شرکتی ؟ این دو سوال همین الان در پایین بهتون توضیح میدم.

اهمیت در انتخاب نوع سرور برای سایت ها

ما انواع مختلفی فضای نگهدارنده سایت داریم که میتونیم به سرور، سرور ابری، سرور مجازی، هاست ابری، هاست و... اشاره کرد. که هر کدوم از این ها برای کاربرد های مختلفی استفاده میکنیم . منظور از کاربرد اینه که سایتی که درون اون نگه داری میشه چه نوع سایتی هست؟ سایت بزرگیه؟ یا نه یه سایت تازه تاسیس شد؛

مثلا سایت ما سایت دیجیکالا هست یا یه سایت کوچک فروشگاهی که نهایتا 5 تا مشتری در روز برای سایتش داره (یه عدد شانسی گفتم لطفا زیاد به این مورد سخت نگیرید?)

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

https://virgool.io/@SadraSamii/%D9%87%D8%A7%D8%B3%D8%AA-%D9%87%D8%A7%D8%B3%D8%AA-%DA%86%DB%8C%D8%B3%D8%AA-lrdjm7mzjg3w

این مقاله بالا را از داخل همین سایت پیدا کردم و به نظرم مقاله مفیدی بود که توضیحی در مورد انواع مختلف هاست ها و سرور ها پرداخته بود.
برای اون دسته از افرادی که نمیدانند که این کلماتی را که الان گفتم چه معنی میده میتونن این مقاله را بخوانند :) تا متوجه حرف هایی را که قصد دارم در آیینده بگم را، متوجه بشوند.

و حالا خیالم راحت شد که شما پیش نیاز هایی برای ادامه حرف هایم دارید و میتوانم حرف هایم را ادامه بدهم. چیزی که حساس است برای من در انتخاب نوع سرور اینه دسترسی افراد به سرور ما کم تر باشه. بزارید برای توضیح بهتر به شما عکسی را که از این سایت برداشتم نشان بدهم

منبع عکس
منبع عکس

در این عکس، سمت راستش سرور اختصاصی را مشاهده میکنید که در پایین آن لپ تاپی را نشان میدهد که به منظور دسترسی داشتن به سرور ما است، چون ما در سرور های اختصاصی دسترسی ها را خودمون انتخاب میکنیم، میتونم بگم که به مراتب امن نگه داشتن این سرور ها راحت تر است. زیرا که غیر از شما کسی دیگه ای به سرور دسترسی ندارد و یکی از شروط ما در بالا نگه داشتن امنیت همین مورد است. یعنی محدود بود دسترسی ها البته شما میتونید به یک کاربر ( منظورم از کاربر، کارمند شماست) دسترسی به این سرور را بهش بدید ولی با این وجود مدیریت کامل این سرور دست شماست و این اجازه ای که شما به این کاربر دادید را میتوانید در هر زمان قطع یا تغییرش بدید و فرد غریبه ای به این سرور دسترسی ندارد و همه افرادی که به این سرور دسترسی دارن را شما میشناسید و این دسترسی ها به لول های مختلف محدود میباشد.

سرور مجازی یا VPS (Virtual Private Server) به کامپیوتر هایی گفته میشه که درون سرورها با کمک نرم افزارهای مجازی سازی سرور مانند : VMwarevSphere، KVM، Microsoft Hyper-V شبیه سازی میشه ومنابع سرور را مانند رم، فضا ذخیره سازی و سی پی یو به آن سیستم ها اختصاص میدهند به گونه ای که با سرور های واقعی فرقی نداشته باشند، ممکنه از یه سرور 2 تا 50 حتی بیشتر سرور مجازی بسازند که این تعداد بستگی به منابع سخت افزاری آن سرور دارد. و حتی میتوان این سرور های مجازی را با سیستم عامل های مختلف راه اندازی بکنند.

چیزی که در اینجا اهمیت داره برای من اینه که ما دیگه در سرور مجازی دسترسی اختصاصی به سرور اصلی نداریم. این مورد تقریبا مانند مثال اجاره نوع خونه هستش مثلا: شما میتونید یه خونه ویلایی اجاره کنید. زمانی که شما خونه ویلایی اجاره میکنید دیگه همسایه ای ندارید که بخواهد برای شما مزاحمتی ایجاد کند. و شما به کل اون خونه دسترسی دارید یعنی تا زمانی که دارید اجاره خونتون را میدید میتونید برید وسط حیات درخت بکارید یا حتی برید علف بکارید (منظورم علف برای گوسفنده فکر بد نکنید???). در این مثال منظورم از خونه ویلایی سرور اختصاصی بود و صاحب خونه همون شرکتی است که شما این سرور را ازش اجاره کردید.

ولی در خانه های اپارتمانی چطور؟؟ قبل از این که آپارتمان هارا بسازند نیاز به یک زمینی دارند که بتواند روی آن زمین ساختمان را بنا کنند و شروع به ساخت آن اپارتمان بکنند (نمیدونم چرا احساس میکنم یکی از جملات اقای جواد خیابانی رو گفتم??? ). این زمین مانند سرور اختصاصی میباشد و هر واحد از این اپارتمان مانند سرور مجازی هستش.

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

در هاست اشتراکی ما مانند سرور اختصاصی و مجازی درسترسی کاملی به اون سرور نداریم. در اینجا ما فقط میتونیم کار های مربوط به سایت را انجام بدهیم مانند: آپلود سایت روی هاست، ساخت دیتابیس، ساخت ایمیل و... ولی نمیتونیم کانفیگ های امنیتی سرور را روی هاست انجام بدیم. زیرا که به عنوان یه یوزر محدود شما حق دسترسی به تنظیمات آن سرور ندارید. در هاست های اشتراکی همان طور در سمت چپ عکس امده ما کلی یوزر غریبه داریم که هیچ کدوم از آن هارا نمیشناسیم و هر کدوم از این یوزر ها یه سایتی برای خودش داره. حالا مسئله اینجاست که اگه یک هکر به دلیل کانفیگ نامناسب سرور به خود سرور نفوذ کنه تکلیف چی میشه؟ بزارید من بگم به جای شما :) کل سایت های روی اون هاست، هک میشه به همین راحتی. حتی اگه یک هکر یکی از سایت های روی اون هاستو هک کنه ممکنه بتونه به سایت شما هم دسترسی پیدا کنه. و نمیدونم لازم هست که بگم اگر هکری روی یکی از این سایت ها حملات DOSیا DDOS را اجرا بکنه سایت شما و دیگر سایت های روی اون سرور همگی Down میشید (البته این مثال برای هاست ها و سرور های ابری اشتباه است)

و حالا درک کردید که چرا انتخاب نوع سرور برای من انقدر مهمه ؟؟ توصیه شخصی من اینه که اگه یه کسب و کار خیلی بزرگی دارید حتما از سرور های اختصاصی استفاده کنید. اگه این کسب کار اینترنتی شما متوسط هست حداقل از سرور های مجازی استفاده کنید و اگه یه کسب کار تازه تاسیس هستید میتونید از این هاست ابری استفاده کنید. و توصیه ای که من در انتخاب نوع اون سرور دارم اینه که از سرور های نسل ابری که اخیرا مورد استقبال زیادی هست استفاده کنید.
برای اون دسته از افرادی که توان خرید سرور مجازی و سرور اختصاصی را ندارن و قصد دارن سایت خودشون را در هاست های اشتراکی نگه داری کنند. توصیه میکنم که اگر توانستن برای اون هاست اشتراکی یک IP اختصاصی بخرن که هزینه زیادی را هم نداره و این نکته هم برای امنیت سایتشون خوبه و هم برای seo سایتشون و نیاز که نیست که بگم هاستتون حتما ابری باشه !! ??

انتخاب مناسب یک شرکت ارائه دهنده خدمات میزبانی وب مناسب

اینکه از چه شرکتی دارید خدمات دریافت میکنید، یکی دیگر از مسائل مهم هست. بزارید قبل از اینکه دلایلمو بگم یه تیکه از رزومه خودمو شرح بدهم. من تا حالا به واسطه شغلم برای چندین شرکت ارائه دهنده خدمات میزبانی کار کردم چه بزرگ و چه کوچیک و تقریبا تونستم از نحوه ارائه دادن خدمات این شرکت ها سر در بیارم.

این حرفی که دارم میگم بر اساس تجربه ای هست که تا الان کسب کردم و نمیتونم که بگم برای همه شرکت ها این طوری است و ممکنه واقعا در بیشتر شرکت ها این طوری نباشه!!

سعی کنبد تا حد امکان از شرکت های خیلی کوچیک خدمات برای میزبانی وبتون دریافت نکنید!! البته این جماه را برای سایت هایی میزنم که نگران امنیت سایتشون هستن.
دلیل این حرفم اینه که من در بعضی از شرکت ها که مشاهده کردم، دیدم که محصولاتی را که استفاده میکنند مانند کنترل پنل، فایروال، ویندوز سرور و... را نسخه های کرکی استفاده میکنند البته تا یک حدی به این شرکت های حق میدم چون هزینه تهیه لایسنس اورجینال این محصولات زیاده و برای یه شرکت کوچک سخته که بخواد هزینه های به این سنگینی را بپردازه.

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

البته از حق نگذریم من شرکت های کوچکی را هم دیدم که از محصولات اورجینال برای مشتریانشان استفاده میکنند.

ولی تشخیص دادن این شرکت ها ممکنه برای شما ها سخت باشد. و توصیه من اینه از شرکت های بزرگ و مطرح استفاده کنید.

این شرکت هایی را که در پایین به شما قصد معرفی کردن دارم شرکت هایی هستن که سال هاست در ایران فعالیت دارند و من به شخصه از این شرکت ها راضی هستم.

کانفیگ های امنیتی مهم در سرور

سومی گام اینه که بدونید ایا سرور شما امن هست تا خیر ؟؟ زمانی که من قصد خرید هاست از شرکتی را داشته باشم از اون شرکت میپرسم که آیا سرور که قراره سایت من را میزبانی کنه این کانفیگ ها و نرم افزار ها روش نصب هست یا نه؟؟

آیا انتیDDOS روی سرور اصلی نصب شده است؟ که این مورد اگه شرکت ارائه دهنده بگوید بله و انتی دیداس ما از نوع سخت افزاری هست، بدونید که نیاز به نگرانی از بابت حملات دیداس نیست.

آیا انتی شلر برای این سرور نصب شده است؟ قبل اینکه بگویم انتی شلر چیه و چه کاربردی دارد باید بگویم که شل یا همان شل اسکریپت چیه؟ البته شل معنی های مختلفی دارد ولی در دنیای امنیت و تست نفوذ معنی دسترسی داشتن به سیستم از طریق خط فرمان را میده و شل اسکریپت هم نوعی شل است که برای هکر ها دسترسی گرفتن به سرور را آسان تر میکنه.

این شل اسکریپت ها تقریبا محیط گرافیکی دارد و میتوان به معروف ترین شل اسکریپت ها مانند C99، AlFA، R57 اشاره کرد البته این شل ها به زبان php هستن و ممکنه سایت شما به زبان های پایتون یا جاوا یا حتی ASP.NET باشه که برای هر زبانی یک شل به خصوصی داره.

زمانی که این شل ها در سرور شما اپلود بشه هکر ها میتونن به راحتی به فایل های سرور شما دسترسی پیدا کنند واینجاست که انتی شلر ها میان جلئی این اسکریپت ها را میگیرند و نمیزارند که هکر ها به این آسونی ها شیطونی بکنند که معروف ترین انتی شلر میتوان به CXS اشاره کرد.
البته یه نکته هم بگم که این انتی شلر هارو هم میشه دور زد ولی نه به راحتی.

آیا غیر از فایروال اصلی سیستم فایروال دیگه ای هم نصب است؟؟ این سوال را وقتی که از شرکت ها میپرسم تقریبا 99 درصدشون میگن که بله نصب است ولی اگه اون شرکت جواب این سوالمو نده و از دادن سوال طفره بره میتونه این معنی بده که نه ما همچین چیزی نصب نکردیم. و بدون پرسیدن سوال دیگه از خرید هاست اون شرکت منصرف میشم. چون که میدونم این شرکت هیچ اهمیتی به امنیت سایت هایی که میزبانی میکنه نمیدهد.

فایروال های زیادی برای سرورها داریم ولی یکی از اون فایروال ها که من اون را تایید میکنم و بیشتر موقع ها از این فایروال استفاده میکنم فایروال Imunify360است.
دلیل این کار من هم اینه که با نصب این فایروال یا اسمی که بیشتر افراد با سیستم امنیتی Imunify360 میدانند اینه که با یک تیر 6 نشان را میزنم.

دلیلش هم اینه که این سیستم بر اساس یک ساختار 6 لایه مستقل و امنتی که این ایمنی با یک دیتابیس اصلی(مرکزی) از سرور ما محافظت میکنه که این شش لایه عبارتند از:

اسکن خودکار برای بدافزارها و پاک کردن خودکار آنها که بعضی ها این بد افزارها رو به اسم Malware میشناسن.

فایروال وب (WAF) و با قابلیت به روزرسانی دستور ها بر اساس هوش مصنوعی. این امکان فایروال این خوبی که داره اینکه میتونه جلوی حملات SQL Injection، XSS بگیره.

سیستم تشخیص و محافظت در برابر نفوذ (IDS) که این قابلیت این معنی رو میده که اگه یک هکر دست به شیطونی بزنه اونو سریع شناسایی میکنه و فورا ایپیشو بلاک میکنه که جلوی این هکر گرفته بشه :)

سیستم محافظت پیشگیرانه برای وب سایت های PHP. این قابلیت تقریبا همون کاری رو میکنه که انتی شلر CXS انجام میده.

بروزرسانی و پچ نرم افزارها.

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

این سوالاتی که تا الان گفتم برای اون دسته از افرادی که سرور اختصاصی و مجازی استفاده میکنند. توصیه میکنم که اگر شناختی به مدیریت سرور ندارید دست به کانفیگ این تنظیمات نزنید چون ممکنه کل سرور به هم بریزه. و همچنین من به گونه ای در بالا توضیح دادم که شما در اینترنت یه سرچ کوتا بکنید میتونید یاد بگیرید که چه طوری این تنظیمات را روی سرور خودتون اعمال کنید مثلا:

برای نصب فایروال Imunify360: آموزش نصب Imunify360در لینوکس

ولی توصیه من به شما اینه که از منابع انگلیسی تا حد امکان استفاده کنید چون متاسفانه بعضی از منابع فارسی ما از روی یک دیگر کپری رفتن و اگه یکی یک جایی را اشتباه رفته باشه و بقیه هم همون اشتباه رو تایید میکنند و ممکنه باعث خرابی نرم افزاری در سرور شما بشه. ولی بازم میگم که این مورد را اگه زیاد تخصص ندارید انجام ندید. البته اگر روی سرور چیز مهمی ندارید. من میگم انجام بدید چون ادم ها با خراب کردن و امتحان کردن هست که یاد میگیرند. ???

چند نکته پایانی

اگر میتونید حتما از CDN استفاده کنید چون CDNها علاوه بر کاهش پهنای باند شما و افزایش سئو سایت شما کمک میکنه تا حدی از حملات DDOS جلوگیری بشه البته این مورد در خیلی جاها گفته شده و من با CDN های مختلفی کار نکردم و تنها شرکتی که کار کردم شرکت cloudflare بوده که واقعا تونسته جلوی این حمله را بگیره البته تنها بدی این شرکت اینه که برای دامنه های ای ار قابل استفاده نیست. و فکر کنم لازم باشه که بگم این شرکت SSL و CDN رایگان هم میده.

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

حتما دسترسی SSH را به یوزر روت ببنید

حتما از رمز عبور قوی استفاده کنید. که اگه از این سایت کمک بگیرید بهتون میگه که تا چه اندازه پسورد شما قوی است و تا کی میتونی از حمله brute force مقاومت نشان بده.
البته اینو هم بگم که پسوردتون رو هر 15 روز یکبار حداقل عوض کنید.

مداوم از اصلاعات مهم سرورتون را مانند اطلاعات دیتابیستون بکاپ بگیرید و روی سرور جدا گانه نگه داری کنید با ورژن ها مختلف.

ببخشید که این تیکه اخر رو انقدر زود بستم چون تا متوجه شدم دیدم مقاله حجمش بالا رفته و مجبور شدم زودتر تمومش کنم.





اگه این مقاله براتون مفید و کاربردی بود لطفا چند تا صلوات برای سلامتی آقا امام زمان(عج) بفرسید(هر چقدر کرمتون بود ?)

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