PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مقاله :‌ نحوه تشخیص سرور مجازی از سرور اختصاصی



secure_host
September 24th, 2013, 02:01
با سلام
یکی از همکاران در تاپیک سؤال: چگونگی تشخيص vps و سرور اختصاصی ، که اجاره می شود ؟ (http://www.webhostingtalk.ir/f6/91965) سوالاتی در زمینه نحوه تشخیص سرور اختصاصی با سرور مجازی نموده بود که ترجیح دادم جواب را در تاپیک مجزایی بذارم تا در موتور های جستجو نیز به راحتی جواب پیدا شود.
با سلام
سوال بسیار خوبی است . ولی قبل از جواب دادن باید موارد زیر را همیشه در نظر داشته باشید .

۱- از جای مطم‍‍ن خریداری نمایید.
۲- به فروشنده اعتماد نمایید.
--------------------
جواب :
اصولا تشخیص این مطلب از طرق نرم افزاری و سخت افزای تواما امکان پذیر است ولی اگر کسی قصد خیانت داشته باشد تا حدودی از لحاظ نرم افزاری غیرممکن است . زیرا تمامی موارد نرم افزاری بررسی می شود و مقادیر نرم افزاری را هم می توان تغییر داد. تا تشخیص داده نشود.
کلا چند راه برای نشخیص وجود دارد.که برخی از این موارد را همکاران ذکر کردند. بنده مواردی که به ذهنم میرسد به همراه موارد دوستان در اینجا مینوسم تا انشاا... یک پاسخ جامع برای این مورد وجود داشته باشد.

موارد به شرح ذیل است .
1- بررسی اطلاعات مجازی ساز ها :
مسیر های زیر را بررسی نمایید.

برای openvz :


/proc/vz/veinfo
یا


/proc/user_beancounters

برای xen :


/proc/sys/xen

/sys/bus/xen

/proc/xen

برای vserver :‌

در فایل
/proc/self/status دنبال عبارات s_context و یا VxID بگردید.

برای VMWare یا Parallers :
دستورات زیر را در سرور اجرا نمایید.


lspci
demidecode
به عنوان مثال :


lspci | gep VMware
demidecode | grep VMware

برای KVM :
دستور lspci را وارد نمایید و دنبال عبارت RAM memory: Qumranet, Inc. Virtio memory balloon باشید.

برای Solaris :‌

از وجود فایل
/sbin/zonename مطمن شوید.
همچنین از دستور esxtop نیز می توانید استفاده نمایید که اطلاعات تکمیلی در لینک زیر موجود است.
ESXTOP - Yellow Bricks (http://www.yellow-bricks.com/esxtop/)
ویا از دستور dmesg نیز می توانید استفاده کنید و برخی از مقادیر بالا را در آن جستجو کنید.
-----------------------------
2-با استفاده از مشخصات سخت افزاری مانند MAC Address ویا مدل CPU و هارد دیسک و یا benchmark کردن سرور
برای MAC Address می توانید در آدرس زیر برای Mac Address مطمن شوید مثلا مک آدرس 00:50:56:9F:5A:BD مربوطه به vmware

Wireshark · OUI Lookup Tool (http://www.wireshark.org/tools/oui-lookup.html)
برای مدل cpu و هارد هم مدلش رو در اینترنت جستجو کنید.

3- اطلاعات مربوط به کارت شبکه :‌
می تونید با دستور ifconfig خروجی را ببنید که اگر اینترفیس های شبکه با عبارت venet و یا veth شروع شده بود بدانید که کارت شبکه مجازی است . مانند venet0 یا venet0:0 ویا veth0
4- از طریق لایسنس ارایه شده برای برخی کنترل پنل ها به عنوان مثال CPanel :
اگز شما از VPS استفاده کتید بعد از نصب CPanel و ورود به کنترل پنل می بینید که عبارت VPS Optimized به عنوان logo در CPanel خودنمایی می کند که نشان دهنده این است که شما از VPS استفاده می کنید که مورد در سرور اختصاصی وجود ندازد.
5- استفاده از موتور جستجو whois :
شما آی پی سرور خود را جستجو کنید اگر دیدید به شرکتی مانند softlayer و یا دیتا سنتر های بزرگ رسیدید که مطمن هستید در داخل وب سایتشان خدمات VPS ندارند . پس بدانید که سرور شما اختصاصی است.
6- از طریق kernel سیستم عامل :‌
openvz کرنل های مخصوص به خود دارد و از کرنل های عمومی استفاده نمی کند و شما نمی توانید عملیات بروزرسانی به کرنل های رایج را انجام دهید. که برای بروز رسانی مشکلات امنیتی باید منتظر پج های کرنل custom خود openvz باشید که عموما همزمان با بروز رسانی کرنل های معمولی این بروزرسانی در openz نیز انجام می گردد که شما بتوانید کرنل جدیدرا دریافت نمایید.
راه دیگر تشخیص از طریق kernel استفاده از دستور uname می باشد که عمدتا کرنل های openvz هنگام نمایش ورژن کرنل عبارت stab را دارند
کرنل های Xen عمدتا عبارت xen و یا عبارت DomU را در خروجی دستور uname نشان می دهند.
7-استفاده از اسکریپت :
برخی از اسکریپت ها به زبان های مختلف نوشته شده اند که خروجی دستورات ذکر شده در بالا را استخراج می کنند و سپس به شما نوع مجازی ساز شما را ارایه میدهند. اگر ذهنم به درستی یاری کند فکر کنم سال ۲۰۰۵ بودکه اسکریپتی را سایت a2b2.com با نام vpschek ارایه کرده بود که این کار رو میکرد . الان که چک کردم فکر کنم نابود شده . توی اینترنت بگردید می تونید از mirror های دیگه دانلود نمایید. اون موقع از این لینک دانلود میشد.

wget http://www.a2b2.com/vpscheck
و یا اسکریپت دیگری به نام virutal بود که با زبان ruby on rails نوشته شده بود . از آدرس http://github.com/reductivelabs/facter/blob/master/lib/facter/virtual.rb دانلود می شد.

----------------------------------
من جیث المجموع باز هم میگم ممکن است کسی که قصد خیانت داشته باشد تمامی این موارد رو از طریق نرم افزاری دستکاری کند . (انشاا... که باب نشه این موضوع در ایران با دانستن موارد بالا)

بهترین راه بررسی سخت افزاری سروراست که به عنوان مثال می توانید درخواست های زیر را از دیتا سنتر داشته باشید . تا مطمن شوید که سرور اختصاصی خرید کرده اید.
راه های زیادی است .مثلا :
1- از دیتا سنتر بخواهید یا حضورا در آنجا حاض شوید و یا از طریق tour که در خود دیتا سنتر فراهم میشود بصورت اینترنتی سرور فیزیکی خود را با مانیتور ببینید.(برخی از دیتاسنتر ها این امکان را دارند.)
2- ار دیتا سنتر بخواهید سرور شما را rebuild کنه و یک هارد SSD به سرور ADD کنه و mysql رو به هارد SSD متصل کند. چون در سرور های مجازی SSD و.. معنی ندارد. اگر این کار انجام شد بدانید سرورتان اختصاصی است.
3- از دیتا سنتر بخواهید که USB Token که شما در اختیارش می گذارید به سرور شما به صورت سخت افزاری متصل کند تا encryption برای برنامه های موجود در سرورتان انجام شود و بتوانید از نرم افزار های سرور خودتون استفاده کنید. اگر این کار انجام شد . پس سرور اختصاصی دارید.

-------------------------------
مواردی بود که به ذهنم میرسید. انشاا... که مفید واقع بشه .

camelian77
September 24th, 2013, 02:07
توضیح عالی نوشتید. زحمت بکشید قسمت های کد و کامند رو در تگ code بگذارید تا چپ چین بشه.

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

name3
October 7th, 2013, 17:49
آيا ميشه برنامه اي نوشت كه موارد گفته شده را جعل و ارائه كند و باز خريدار را فريب دهد ؟

از "زماني" كه اختصاص داديد ، ممنون

camelian77
October 7th, 2013, 20:57
بعید می دونم. در حالت نهایی قابل تشخیص هست و بیشتر is a matter of how experienced the user is !