Archive

همه چیز درباره کولوکیشن

خواندن این مطلب در ۷ دقیقه

کلوکیشن چیست ؟

سرویس Colocation (یا co-location یا به اختصار خدمات colo)  نوعی از خدمات قابل ارایه در دیتاسنترها می باشد که تجهیزات، فضا و پهنای باند موردنیاز کاربران را جهت میزبانی سرورها فراهم میکند. از جمله امکاناتی که در ارایه خدمات کولوکیشن فراهم میگردند؛ فضای رک، برق مورد نیاز سرورها، تجهیزات کولینگ و خنک سازی سرورها، و همچنین تامین امنیت سخت افزاری سرورها، ذخیره سازها و تجهیزات شبکه سایر شرکت ها می باشد. کلوکیشن، یک سرویس نسبتا ارزان قیمت جهت استفاده از اینترنت پایدار، نیروی متخصص با سطح دسترسی بالاتر، امنیت عملیاتی حرفه ای تر، و امکانات(Facility) دیتاسنترها بابت میزبانی تجهیزات و سرورهای شما می باشد.

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

استفاده از سرویس کولوکیشن ایران و برون سپاری میزبانی سرورها و تجهیزات، به شرکتها و سازمان ها این امکان را می دهد که سربار(overhead) مربوط به واحد IT را تا حد بسیار زیادی کاهش دهند و با تمرکز بیشتری به زمینه تخصصی و اصلی تجارت خود بپردازند.

در این نوع سرویس، دیتاسنترها انواع خدمات ارتباطی و شبکه ای موردنیاز شرکتها و افرادی که اقدام به خریداری سرور کرده اند را فراهم می کنند، از جمله این خدمات می توان موارد زیر را نام برد:

  • ارایه IPv4 یا IPv6 جهت دسترسی از طریق اینترنت
  • ارایه KVM Console جهت مدیریت از راه دور سرورها
  • مانیتورینگ سرورها جهت آگاهی از وضعیت لحظه ای سرورها
  • ارایه پهنای باند مناسب

نحوه استفاده از خدمات کلوکیشن چگونه است؟

در خدمات کولوکیشن، روال بدین گونه است که شرکت یا سازمان یا فردی که نیاز به این خدمات دارد، سرورها و تجهیزات موردنیاز خود را بصورت مستقل خریداری می کند؛ و شرکت میزبانی وب که ارایه دهنده این سرویس می باشد، مسئولیت نگهداری سرور و سایر تجهیزات و قراردادن آنها در شبکه اینترنت، تامین برق و روشن نگه داشتن ۲۴ ساعته سرورها، انجام موارد پشتیبانی و نگهداری سرورها به درخواست کاربر را برعهده خواهد داشت.

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

سرویس کلوکیشن چه ویژگی  ها و مزیت های فنی باید داشته باشد؟

مهم ترین ویژگی موردنیاز در خدمات اجاره فضای رک یا خدمات کلوکیشن این است که دسترس پذیری یا accessibility  بالا داشته باشند، و در سریعترین زمان ممکن بتوان به سرورها دسترسی داشت، و نیاز به سپری کردن بروکراسی ها و روالهای طاقت فرسا جهت دسترسی به سرور و تجهیزات وجود نداشته باشد.

خدمات کلوکیشن اگر با کیفیت استاندارد ارایه گردد، مزیت های بسیاری برای افراد و شرکت ها می توانند فراهم کنند؛ از جمله مزیتها و ویژگیهای آن می توان موارد زیر را نام برد:

  • در دسترس بودن بصورت ۲۴ x 7 x 365

مهمترین نگرانی بسیاری از رهبران و صاحبان کسب و کار این است که اگر سرورها و تجهیزات شرکتشان را در جایی خارج از دفتر شرکتشان نگهداری کنند، دسترسی به تجهیزات برایشان سخت خواهد بود و در صورت وقوع مشکل یا نیاز به اعمال تغییرات و بروزرسانی در سرورها، درگیر طی بروکراسی ها و روال اداری دیتاسنترها جهت دسترسی به تجهیزات خواهند شد؛ دسترسی ۷ x 24 x 365 بدین معناست که شما در هر ساعت از شبانه روز در طی سال، حتی در ایام تعطیلات امکان دسترسی و مدیریت سرورهایتان را داشته باشید، و هر دیتاسنتری که امکان دسترسی به سرورها را در زمان سریعتری فراهم کند، از مزیت بالاتری نسبت به رقبا برخوردار خواهد بود.

  • امنیت سخت افزاری سرورها

بدون شک امنیت سرورها، یکی از مهم ترین ملاک ها جهت انتخاب دیتاسنتر مناسب جهت میزبانی سرورها و تجهیزات شبکه می باشد. سرورهایی که جهت میزبانی به دیتاسنترها سپرده می شوند، باید از لحاظ موقعیت مکانی دیتاسنتر در امان باشند، بعنوان مثال ممکن است با شرکت ها و مجموعه هایی مواجه شویم که اعلام کنند دیتاسنتر میزبان سرورشان بالای برج یا ساختمان های بلند میزبانی میشوند و با ابزارهای تبلیغاتی این مورد را بعنوان یک امتیاز ویژه قلمداد کنند! ولی رهبران و صاحبان کسب و کار باید ابتدا این نکته بسیار مهم را در نظر بگیرند که آیا برای مواقع فورس ماژور، مانند جنگ، زمین لرزه، آتش سوزی، سیل، طوفان و … هم موقعیت دیتاسنتر انتخابی مناسب می باشد؟ یا از محل دیتاسنتر از اهداف بالقوه جهت آسیب دیدن مثلا در مواقع اضطراری مانند جنگ می باشد؟ آیا داخل دیتاسنتر به درستی عایق بندی شده است؟ آیا کنترلهای سخت افزاری و الکترونیکی تجهیزات داخل دیتاسنتر بدرستی انجام می شود؟ بعنوان مثال ناپایداری در برق دیتاسنتر می تواند آسیب جدی به تجهیزات شما وارد کند.

  • توجه ویژه به امکانات جانبی مورد نیاز

سخت افزارهای موجود امروزی، نیاز مبرم به سیستم های cooling (HVAC) جهت خنک نگه داشتن سرورها، سیستم برق ذخیره(UPS)  جهت مواقعی که برق اصلی سرور به مشکل برمی خورد، مولد برق (ژنراتور) ذخیره جهت مواقعی که کل برق اصلی دیتاسنتر با مشکل مواجه می شود، تنظیمات امینیتی ویژه از جمله فایروال سخت افزاری و … دارند و همچنین تمام این سیستم ها  نیاز به بکاپ دارند تا در مواقع نقصان یا وقوع مشکل در اسرع وقت جایگزین شوند، و سرور شما تحت هر شرایطی در دسترس باشد. ارایه دهنده خدمات کولوکیشن، باید تمام این نیازها را پیش بینی و تامین کند و تمام این سرویسها را بصورت مدام و ۲۴ ساعته توسط کارشناسان و متخصصان شبکه سرورها مانیتور نماید، تا هزینه جبران خسارات را به حداقل برساند و کیفیت حداکثری را ارایه دهد. توصیه می شود پیش از تهیه سرویس کلوکیشن، تمام این موارد را بررسی کنید تا میزبانی سرور شما به دیتاسنتری مناسب سپرده شود، البته این سرویسها به گونه ای نیست که شما بعنوان کاربر نیاز داشته باشید که همواره این موارد را بررسی کنید، ولی می توانید در هنگام سفارش، یا بصورت دوره ای به وضعیت سلامت این امکانات جانبی، نگاهی بیندازید و اطمینان حاصل کنید.

  • ارتباط نزدیک با کارکنان دیتاسنتر

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

  • نحوه رفتار کارکنان

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

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

  • اینترنت محلی

چنانچه اینترنت کامپیوتر شخصی شما با اینترنت سرویس کولوکیشن شما یکسان باشد، اتصال به سرور و کیفیت سرویس دهی شما از کیفیت بالاتری برخوردار خواهد بود؛ بعنوان مثال آپلود، دانلود یا ریکاوری اطلاعات همگی با سرعت و کیفیت بهتری قابل انجام خواهد بود. بعنوان مثال اگر از اینترنت پارس آنلاین استفاده می کنید، توصیه میشود از سرویس کلوکیشن پارس آنلاین، یا دیتاسنتری که شرکت میزبان اطلاعاتتان پیشنهاد میکند، استفاده کنید. شرکت میزبانی وب گنجه (www.ganje.host) امکان میزبانی اطلاعات شما در دیتاسنتر سروش رسانه، پارس آنلاین ، افرانت ، آسیاتک و شاتل را دارا می باشد و تیم فنی و فروش گنجه همواره با درنظر گرفتن موارد مذکور در این مقاله، بهترین خدمات کلوکیشن سرور را جهت میزبانی تجهیزات شما پیشنهاد می کند.

  • کاهش Downtime سرورها

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

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

استفاده از خدمات کولوکیشن چه مقدار هزینه دارد ؟

بطور کلی خدماتcolocation  ایران جزو سرویسهای نسبتا ارزان قیمت هستند و بر اساس تعداد یونیت و میزان فضایی که از رک اشغال می کنند قیمت گذاری می شوند، از همین جهت سرورها و تجهیزات شما باید رک مونت (Rack Mount) باشند و قابلیت جاگذاری داخل رک را داشته باشند. هر چه ارتفاع سرورها و تجهیزات شما کمتر باشد و تعداد یونیت کمتری از رک اشغال کند، در نتیجه هزینه پرداختی به همان نسبت کمتر می شود.

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

خرید رک و میزبانی سرورها در شرکت یا اجاره فضای رک و برون سپاری میزبانی سرور؟

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

آیا اینترنت شرکت کیفیت لازم جهت میزبانی سرور را دارد؟

آیا کارشناس مسئول در داخل شرکت، از تخصص لازم جهت میزبانی سرور و تجهیزات برخوردار است؟

آیا تهیه تجهیزات مورد نیاز از قبیل رک، کابل، UPS، تجهیزات شبکه مجزا از قبیل روتر و سوییچ، سیستم سرمایشی و خنک سازی، عایق های حرارتی، استانداردسازی اتاق سرور، فایروال سخت افزاری، تعبیه سنسورهای هشداردهنده حرارتی و … نسبت به  تهیه این سرویس از مراکز داده صرفه اقتصادی دارد ؟

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

آیا بهتر نیست هزینه ای که بابت ایجاد دیتاسنتر محلی در داخل شرکت صرف می کنید را روی تبلیغات یا گسترش کارتان سرمایه گذاری کنید؟

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

آیا اجاره یا خرید سرور اختصاصی از شرکت های میزبانی وب (پس از بررسی جوانب مختلف)، مزیت بیشتری برای ما فراهم می کند؟ یا خرید سرور فیزیکی و برون سپاری آن فقط برای میزبانی و قراردادن در بستر شبکه؟

و …

آشنایی کامل با دستور Rsync در سیستم عامل لینوکس

خواندن این مطلب در ۶ دقیقه

Rsync یکی از پرکاربردترین و دم دستی ترین دستوراتی است که در سیستم عامل لینوکس مورد استفاده قرار میگیرد. همانطور که از نامش پیداست از دستور Rsync برای همگام سازی و انتقال داده ها در پوشه ها ، دیسک ها و شبکه ها به صورت ریموت و لوکال استفاده می شود.

مزیت های استفاده از Rsync نسبت به روش های CP و SCP

  • دستور Rsync بهترین و موثرترین روش برای کپی و همگام سازی فایل ها و دایرکتوری ها از یک سیستم به دیگری است.
  • پشتیبانی کامل از لینک ها و دیوایس ها و ownerها و گروه ها و پرمیشن ها
  • این دستور سریعتر از SCP است (SCP همان secure copyاست)

نکته : علت سرعت بالای  rsync استفاده از پروتکل remote-update است. با استفاده از این پروتکل فقط خط های متفاوت انتقال پیدا میکند. دراولین انتقال Rsync تمام محتوای یک فایل یا یک دایرکتوری را کپی می کند اما از دفعات بعد، تنها خط ها و بایت ها ی تغییریافته را به مقصد کپی خواهد کرد.

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

آموزش استفاده و کار کردن با دستور Rsync

امکانات زیادی برای استفاده از دستور rsync وجود دارد؛ استفاده از آنها کاملا سلیقه ای بوده و هرکس با توجه به نیاز خود میتواند از آن ها استفاده کند. لازم به ذکر است برخی دستورات در rsync میتواند یک حرفی و یا چند حرفی باشد؛ به عنوان مثال  اجرای rsync -a نتیجه ای مشابه با rsync -rlptgoD خواهد داد. نکته دیگری که باید مراقب بود استفاده از دستور rsync هنگام کپی کردن فرمان ها از سایت ها و یا فروم های موجود در اینترنت است، بخصوص زمانی که با دستور مورد نظر آشنایی کامل ندارید.اگر به یاد داشته باشید هنگام استفاده از ویندوز با زدن کلید f1 صفحه راهنمای مربوطه برای شما باز می شود. برای آشنایی بیشتر با دستور rsync میتوانید با استفاده از دو فرمان زیر راهنمای این دستور را مشاهده نماییدman rsyncrsync –help ساختار اساسی یک دستور rsync شبیه به CP و SCP است.  rsync -[options] source destinationاگر چندین مقصد برای انتقال مورد نظر شماست، باید آن ها را به انتهای فرمان خود اضافه کنید.rsync -[options] source destination1 destination2 destination3

در ادامه جزئیات و ۱۰ فرمان مفید و پرکاربرد دستور rsync برای شما بیان خواهد شد.

امکانات رایج در دستور rsync

 

-v  :

ابتدای کلمه verbose که برای توضیحات بیشتر در دستور rsync از این آپشن استفاده می شود.

-r :

ابتدای کلمه recursive که داده ها را به صورت بازگشتی کپی میکند.

  • نکته: این آپشن پرمیشن و timestamp ها را در حال انتقال دیتا حفظ نمی کند.

-a :

به کلمه archive  اشاره دارد و مد آرشیو تمام فایل ها را به صورت بازگشتی کپی می کند

  • نکته: این آپشن لینک های سیمبولیک و پرمیشن فایل ها و user & group ownership و timestamp ها را حفظ می کند.

-z :

میتوان گفت که به کلمه zip اشاره دارد و مسئولیت فشرده سازی فایل ها را بر عهده دارد.

-h :

منظور کلمه human-readable  است که مسئولیت خوانا کردن داده ها را برای انسان برعهده دارد.

آپشن ها و امکانات بسیار زیادی در دنیای لینوکس وجود دارد ؛ اگر تمایل به یادگیری بیشتر درباره این موضوع دارید میتوانید به لینک زیر مراجعه نمایید:

https://www.computerhope.com/unix/rsync.htm

بررسی پرکاربردترین حالات دستور rsync

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

نصب rsync در سیستم عامل لینوکس

ممکن است در برخی از توزیع های لینوکس دستور rsync نصب نباشد؛ در اینگونه مواقع با استفاده از فرمان زیر به راحتی به نصب این دستور اقدام می شود :

#yum install rsync (On Red Hat based systems)

#apt-get install rsync (On Debian based systems)

  • کپی کردن و همگام سازی فایل ها و دایرکتوری ها روی یک سیستم محلی (local)

الف) کپی کردن و همگام سازی یک فایل بر روی یک سیستم محلی (local) :

با دستور زیر یک فایل از یک مسیر به مسیر دیگر کپی و همگام سازی می شود. در این مثال فایلی به نام backup.tar  به مسیر/tmp/backups/    کپی و sync شد. لازم به ذکر است در این مثال فرض شده است که مسیر مقصد وجود ندارد، در چنین مواردی فرمان rsync مسیر ذکر شده در دستور را به وجود خواه آورد.

 

 

ب) کپی کردن و همگام سازی یک دایرکتوری بر روی یک سیستم محلی (local) :

با استفاده از دستور زیر میتوان تمام فایل های موجود در یک دایرکتوری را به دایرکتوری جدیدی در همان سیستم کپی و همگام سازی کرد. در این مثال دایرکتوری /root/rpmpkgs   شامل برخی فایل های rpm می باشد که می بایست به دایرکتوری /tmp/backups/ کپی شود.

[root@linux-zone]# rsync -avzh /root/rpmpkgs /tmp/backups/

sending incremental file list

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent ۴٫۹۹M bytes  received ۹۲ bytes  ۳٫۳۳M bytes/sec

total size is ۴٫۹۹M  speedup is ۱٫۰۰

  • کپی کردن و همگام سازی فایل ها و دایرکتوری ها به/ از یک سرور

الف) کپی کردن یک دایرکتوری از سرور محلی به یک سرور ریموت:

دستور زیر یک دایرکتوری را از یک سیستم محلی به یک سرور ریموت کپی و همگام سازی می شود. در این مثال فایلی به نام rpmpkgs.tar در کامپیوتر شما، شامل یک سری فایل rpm  به مسیری مشخص در یک سرور ریموت که از شما دور استکپی و sync می شود.

[root@tecmint]$ rsync -avz rpmpkgs/ root@192.168.0.101:/home/

root@192.168.0.101’s password:

sending incremental file list

./

httpd-2.2.3-82.el5.centos.i386.rpm

mod_ssl-2.2.3-82.el5.centos.i386.rpm

nagios-3.5.0.tar.gz

nagios-plugins-1.4.16.tar.gz

sent 4993369 bytes  received 91 bytes  ۳۹۹۴۷۶٫۸۰ bytes/sec

total size is 4991313  speedup is 1.00

ب) کپی کردن و همگام سازی یک دایرکتوری ریموت به یک ماشین محلی

این دستور به شما کمک می کند یک دایرکتوری ریموت به یک دایرکتوری محلی کپی و همگام سازی شود. در این مثال، دایرکتوری /home/tarunika/rpmpkgs برروی یک سیستم راه ور(remote) می باشد. توسط دستور زیر به دایرکتوری  /tmp/myrpms  در سیستم محلی شما کپی خواهد شد.

[root@linux-zone]# rsync -avzh root@192.168.0.100:/home/tarunika/rpmpkgs /tmp/myrpms

root@192.168.0.100’s password:

receiving incremental file list

created directory /tmp/myrpms

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

rpmpkgs/nagios-3.5.0.tar.gz

rpmpkgs/nagios-plugins-1.4.16.tar.gz

sent ۹۱ bytes  received ۴٫۹۹M bytes  ۳۲۲٫۱۶K bytes/sec

total size is ۴٫۹۹M  speedup is ۱٫۰۰

  • rsync تحت SSH

یکی از موارد استفاده  rsync انتقال دیتا از SSH است، همانطور که می دانید استفاده از پروتکل SSH باعث افزایش امنیت فایل های شما هنگام انتقال می شود.

الف)کپی کردن یک فایل از یک سرور ریموت به یک سرور محلی با SSH

برای مشخص کردن یک پروتکل با rsync نیاز به استفاده از آپشن  –e به همراه نام پروتکل است. در این مثال، آپشن –e برای استفاده از پروتکل SSH استفاده شده است.

[root@linux-zone]# rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/

root@192.168.0.100’s password:

receiving incremental file list

install.log

sent 30 bytes  received 8.12K bytes  ۱٫۴۸K bytes/sec

total size is 30.74K  speedup is 3.77

ب) کپی کردن یک فایل از یک سرور محلی به یک سرور راه دور با SSH

[root@linux-zone]# rsync -avzhe ssh backup.tar root@192.168.0.100:/backups/

root@192.168.0.100’s password:

sending incremental file list

backup.tar

sent 14.71M bytes  received 31 bytes  ۱٫۲۸M bytes/sec

total size is 16.18M  speedup is 1.10

  • نمایش پیشرفت در حال انتقال دیتا با rsync

برای نمایش پیشرفت در حال انتقال دیتا از یک سیستم به سیستم دیگر، ما می توانیم از آپشن  –progress  استفاده کنیم. این آپشن تمام فایل ها و زمان باقی مانده برای کامل شدن انتقال را نشان خواهد داد.

[root@linux-zone]# rsync -avzhe ssh –progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs

root@192.168.0.100’s password:

sending incremental file list

created directory /root/rpmpkgs

rpmpkgs/

rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm

۱٫۰۲M ۱۰۰%        ۲٫۷۲MB/s        ۰:۰۰:۰۰ (xfer#1, to-check=3/5)

rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm

۹۹٫۰۴K ۱۰۰%  ۲۴۱٫۱۹kB/s        ۰:۰۰:۰۰ (xfer#2, to-check=2/5)

rpmpkgs/nagios-3.5.0.tar.gz

۱٫۷۹M ۱۰۰%        ۱٫۵۶MB/s        ۰:۰۰:۰۱ (xfer#3, to-check=1/5)

rpmpkgs/nagios-plugins-1.4.16.tar.gz

۲٫۰۹M ۱۰۰%        ۱٫۴۷MB/s        ۰:۰۰:۰۱ (xfer#4, to-check=0/5)

sent ۴٫۹۹M bytes  received ۹۲ bytes  ۴۷۵٫۵۶K bytes/sec

total size is ۴٫۹۹M  speedup is ۱٫۰۰

  • استفاده ازگزینه ی -include و-exclude

این دو گزینه به ما امکان include   و  exclude فایل ها توسط پارامتر های بخصوص را می دهد، به کمکexclude  از کپی و همگام سازی شدن فایل هایی که نمیخواهیم جلوگیری کنیم و به کمکinclude   آن فایل ها و یا دایرکتوری ها را شامل تغییرات وهمگام سازی کنیم

در این مثال، دستورrsync  تمام فایل ها و دایرکتوری هایی را که باR  شروع شده اند را include   کرده و بقیه را exclude  می کند.

[root@linux-zone]# rsync -avze ssh –include ‘R*’ –exclude ‘*’ root@192.168.0.101:/var/lib/rpm/ /root/rpm

root@192.168.0.101’s password:

receiving incremental file list

created directory /root/rpm

./

Requirename

Requireversion

sent ۶۷ bytes  received ۱۶۷۲۸۹ bytes  ۷۴۳۸٫۰۴ bytes/sec

total size is ۴۳۴۱۷۶  speedup is ۲٫۵۹

  • استفاده ازگزینه ی –delete

گاها حالتی پیش می آید که یک فایل یا دایرکتوری در مبدا وجود نداشته باشد، اما پیش از این در مقصد بوده است. اگربخواهید فایل یا دایرکتوری موجود را در حین همگام سازی حذف کنید می توانید از آپشن –delete  برای فایل هایی که در دایرکتوری مبدا وجود ندارند استفاده کنید. مبدا و مقصد همگام هستند. حالا فایل جدید test.txt  را در مقصد ایجاد کنید.

[root@linux-zone]# touch test.txt

[root@linux-zone]# rsync -avz –delete root@192.168.0.100:/var/lib/rpm/ .

Password:

receiving file list … done

deleting test.txt

./

sent ۲۶ bytes  received ۳۹۰ bytes  ۴۸٫۹۴ bytes/sec

total size is ۴۵۳۰۵۹۵۸  speedup is ۱۰۸۹۰۸٫۵۵

  • تنظیم Maximum فایل ها برای انتقال

ماکزیمم سایز فایل برای انتقال یا همگام سازی قابل نتظیم و کنترل است. شما می توانید با استفاده از گزینه ی  max-size   این کار را انجام دهید. در این مثال، ماکزیمم سایز فایل ۲۰۰k  است؛ بدین ترتیب تنها فایلهایی را که برابر یا کوچکتر از ۲۰۰k  هستند انتقال داده خواهند شد.

[root@linux-zone]# rsync -avzhe ssh –max-size=’200k’ /var/lib/rpm/ root@192.168.0.100:/root/tmprpm

root@192.168.0.100’s password:

sending incremental file list

created directory /root/tmprpm

./

Conflictname

Group

Installtid

Name

Provideversion

Pubkeys

Requireversion

Sha1header

Sigmd5

Triggername

__db.001

sent ۱۸۹٫۷۹K bytes  received ۲۲۴ bytes  ۱۳٫۱۰K bytes/sec

total size is ۳۸٫۰۸M  speedup is ۲۰۰٫۴۳

  • حذف اتوماتیک فایل های مبدا بعد از انتقال موفق

اکنون فرض کنید که شما یک وب سرور و یک سرور پشتیبان دارید، شما یک پشتیبان گیری و همگام سازی روزانه با سرور پشتیبان تان ایجاد کرده اید، حالا نمی خواهید که کپی از پشتیبانی که گرفته اید را روی همان وب سرور خود نگه دارید. بنابراین بجای منتظر ماندن تکمیل عملیات انتقال بکاپ گیری فایل روی سرور اصلی آن هم بصورت دستی؛ این حذف می تواند به صورت اتوماتیک با استفاده از گزینه ی –remove-source-files   انجام شود.

[root@linux-zone]# rsync –remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent ۱۴٫۷۱M bytes  received ۳۱ bytes  ۴٫۲۰M bytes/sec

total size is ۱۶٫۱۸M  speedup is ۱٫۱۰

[root@linux-zone]# ll backup.tar

ls: backup.tar: No such file or directory

  • اجرای آزمایشی دستورrsync

اگر شما یک تازه وارد هستید و از rsync   استفاده می کنید و نمی دانید دقیقا این دستور چه کار می کند باید بگویم که Rsync واقعا می تواند فولدر مقصد را به هم بریزد و متعاقبا برگرداندن اطلاعات با undo هم کار خسته کننده ای است.

استفاده از این گزینه هیچ تغییراتی را اعال نخواهد کرد و تنها دستور rsync را به صورت آزمایشی انجام داده و خروجی دستور را نشان می دهد، اگر خروجی همان چیزی باشد که شما می خواهید انجام شود، شما می توانید باز هم از همان دستور و این بار با حذف گزینه ی –dry-run   استفاده کنید

.

root@linux-zone]# rsync –dry-run –remove-source-files -zvh backup.tar /tmp/backups/

backup.tar

sent ۳۵ bytes  received ۱۵ bytes  ۱۰۰٫۰۰ bytes/sec

total size is ۱۶٫۱۸M  speedup is ۳۲۳۵۸۴٫۰۰ (DRY RUN)

  • تنظیم محدودیت پهنای باند و انتقال فایل

شما می توانید برای انتقال داده ها از یک ماشین یه ماشین دیگر محدودیت پهنای باند تنظیم کنید، با استفاده از آپشن –bwlimit  این کار را انجام دهید. این گزینه برای محدود کردن پهنای باندI/O   به ما کمک می کند.

[root@linux-zone]# rsync –bwlimit=100 -avzhe ssh  /var/lib/rpm/  root@192.168.0.100:/root/tmprpm/

root@192.168.0.100’s password:

sending incremental file list

sent ۳۲۴ bytes  received ۱۲ bytes  ۶۱٫۰۹ bytes/sec

total size is ۳۸٫۰۸M  speedup is ۱۱۳۳۴۷٫۰۵

همچنین، به صورت پیش فرض rsync   بلاک ها و بایت ها را تغییر می دهد، اگر شما می خواهید صریحا همگام سازی همه ی فایل ها را انجام دهید از گزینه ی –W با آن استفاده کنید.

[root@linux-zone]# rsync -zvhW backup.tar /tmp/backups/backup.tar

backup.tar

sent ۱۴٫۷۱M bytes  received ۳۱ bytes  ۳٫۲۷M bytes/sec

total size is ۱۶٫۱۸M  speedup is ۱٫۱۰

همه چیز راجع به کلید ها در محیط لینوکس و ویندوز

خواندن این مطلب در ۶ دقیقه

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

یکی از روش های رمزگذاری نامتقارن که از امنیت بسیار بالایی نیز برخوردار می باشد رمز گذاری به وسیله SSH-KEY است.

یکی از کاربرد های کلید ورود اتوماتیک به سیستم است. یکی از کاربرد های مهم کلید اتصال دو موجودیت به یک دیگر می باشد؛ برای مثال از کلید ها جهت اتصال دو سرور به یک دیگر و یا اتصال رایانه به یک سرور از راه دور از آنها استفاده می شود. با زبان بسیار ساده کلید ابزاری است که در مبدا و مقصد قرار میگیرد و فرآیند انتقال را به وسیله رمزنگاری ایمن می سازد. این اطلاعات را در مبدا رمزنگاری و سپس در مقصد رمزگشایی می شوند.

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

کلید SSH عمومی و کلید SSH خصوصی چیست و چگونه کار می کند؟

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

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

کلید خصوصی (private Key) :

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

کلید عمومی (public Key):

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

نمونه یک کلید عمومی :

۳۰۴۸ ۰۲۴۱ ۰۰C9 18FA CF8D EB2D EFD5 FD37 89B9 E069 EA97 FC20 5E35 F577 EE31 C4FB C6E4 4811 7D86 BC8F BAFA 362F 922B F01B 2F40 C744 2654 C0DD 2881 D673 CA2B 4003 C266 E2CD CB02 0301 0001

اگر به تازگی با این مفاهیم آشنا شده اید ممکن است کمی سردرگم باشید، بنابراین با ارائه مثالی سعی در تفهیم هرچه بیشتر موضوع برای شما را داریم :

تصور کنید  احسان قصد دارد داده های حساسی را به مریم ارسال کند ، و می خواهد مطمئن باشد که تنها آلیس قادر به خواندن آنها خواهد بود . کاری که احسان باید انجام دهد این است که داده ها را با کلید عمومی مریم رمزگذاری می کند. در آنطرف ماجرا فقط مریم به کلید خصوصی مربوط به خود دسترسی دارد. در نتیجه تنها شخصی که قابلیت رمزگشایی داده های رمزگذاری شده را دارد مریم خواهد بود. حتی اگر شخص دیگری به داده های رمزگذاری شده دسترسی پیدا کند ، قادر به خواندن و استفاده از آن نیست؛ تاکید برای حفظ و نگهداری کلید خصوصی نیز به همین علت است.حال که با مفهوم کلید و انواع آن آشنا شدید، نوبت آن است که یاد بگیرید چگونه کلید بسازیم ؟در دنیای دیجیتال کلید کاربرد های زیادی دارد، از جمله آن میتوان به استفاده از کلیدها برای انتقال فایل از سرور به یک سرور دیگر و یا از سرور به ویندوز و یا برعکس اشاره کرد که موضوع بحث ما در این مقاله می باشد. همانطور که گفته شد برای استفاده از کلید نیاز به یک کلید عمومی و یک کلید خصوصی می باشد؛ در اینجا آموزش ساخت کلید SSH در ویندوز و لینوکس به صورت کامل برای شما شرح داده خواهد شد.آموزش قدم به قدم ساخت کلید SSH ساخت کلید SSH در سیستم عامل لینوکس و ویندوز با یک دیگر تفاوت دارد. برای ساخت کلید در هر کدام از این سیستم عامل ها راه ها و برنامه های مختلفی موجود است که در اینجا ساده ترین و بهترین راه ساخت کلید SSH به شما عزیزان آموزش داده خواهد شد. ساخت کلید SSH در ویندوزنرم افزار های زیادی برای ساخت کلید SSH در ویندوز وجود دارد. از پرکاربردترین آنها میتوان به OpenSSH  و Putty اشاره کرد. پیشنهاد ما به شما استفاده از نرم افزار Putty می باشد که از لینک زیر قابل دریافت است:”لینک دانلود”برای ساخت کلید SSH به وسیله Putty دو راه پیش روی شماست :۱-   استفاده از CMD : پس از دانلود و نصب Puttygen وارد محیط  Command Prompt شوید (برای این کار از کلید های ترکیبی Win+R استفاده کنید) و بعد از ظاهر شدن صفحه سیاه رنگ  فرمان زیر را در آن کپی و سپس کلید Enter را بزنید.

  • puttygen -t rsa -C “your_email@example.com”
  • به جای your_email@example.com آدرس ایمیل خود را وارد نمایید.

پس از فشردن کلید Enter سیستم از شما درباره محل ذخیره سازی سوال میپرسد که همان مسیر پیش فرض را انتخاب کنید. در مرحله بعد سیستم از شما برای کلید SSH رمز عبور میخواهد که آنرا وارد و کلید Enter را فشار می دهید. حال اگر به همان آدرس پیش فرض بروید دو فایل با نام های id_rsa   و  id_rsa.pub مشاهده میکنید که id_rsa همان کلید خصوصی شماست و id_rsa.pub کلید عمومی است.

  • استفاده از محیط گرافیکی Putty :

وارد Puttygen شده و گزینه Generate را انتخاب کنید. زمانی که کلید SSH ساخته شد شما باید دوکار انجام دهید:

  • برروی گزینه Save Private Key کلیک کنید و فایل ارائه شده را در مکانی امن ذخیره نمایید (به یاد داشته باشید این فایل همان کلید خصوصی است که درباره اهمیت آن صحبت شد)
  • کل کلید عمومی را کپی کنید و در جایی نگه دارید.

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

استفاده از کلید SSH در سیستم عامل ویندوزی

استفاده از کلید در ویندوز ساده تر از آنچه فکر می کنید است. برای شفاف تر شدن موضوع ذکر این نکته ضروری است که برای استفاده و رمزگذاری اطلاعات در سیستم و سرور مورد نظر باید کلید عمومی را در آن سیستم آپلود کنید. (تو چه مسیری ؟؟؟)

سپس وارد نرم افزار Putty  شده و مسیر زیر را دنبال کنید :

 Connection -> SSH -> Auth

سپس با زدن گزینه Browse فایل .ppk که همان کلید خصوصی شماست را انتخاب کنید. پس از اتمام کار برای خارج شدن از کلید های Ctrl+d استفاده کنید.

تبریک میگوییم ! اتصال شما به سرور مورد نظر با موفقیت انجام شد.

ساخت کلید SSH در سیستم عامل لینوکس  و مک

ساخت کلید SSH در سیستم عامل لینوکس و مک کاملا شبیه به یک دیگر است. در ادامه ابتدا مطمئن می شویم که کلید ssh موجود نیست و در صورت عدم وجود کلید مراحل ساخت آن را قدم به قدم بیان خواهیم کرد.قدم اول )آیا سیستم عامل لینوکسی من در حال حاضر کلید SSH دارد؟برای پاسخ دهی به این سوال وارد محیل ترمینال شوید و دستور زیر را وارد نمایید

cd ~/.ssh

بعد از آن دو حالت وجود دارد، اگر با پیغام “No such file or directory ” روبرو شدید به این معناست که کلید SSH وجود ندارد و شما باید آن را ایجاد کنید (از قدم دوم صرف نظر و قدم سوم را انجام دهید)اما ممکن است کلیدی قبلا ساخته شده باشد و شما قصد استفاده از آن را داشته باشید، بدین منظور باید کلید مورد نظر را بازگردانی نمایید.قدم دوم ) بازکردانی کلید SSh

ممکن است قبلا کلیدی وجود داشته که به دلیل ….. نیاز به بکاپ گرفتن از آن باشد ، بدین منظور میبایست با استفاده از دستور زیر در محیط SSH اقدام به انجام اینکار نماییید

mkdir key_backup

copy id_rsa* key_backup

قدم سوم )آموزش ساخت کلید SSH در لینوکساز آنجایی که ساخت کلید SSH در سیستم عامل لینوکس در محیط ترمینال انجام می شود، میتوان از این روش برای ساخت کلید SSH در مک نیز استفاده کرد.برای تولید کلید sSH وارد محیط ترمینال خود شده و دستور زیر را وارد نمایید

ssh-keygen -t rsa -C "your_email@example.com"

نکته ۱ : وارد کردن آدرس در آینده به شما در شناسایی بهتری کلید کمک میکند

نکته ۲ : رمزگذاری پیش فرض در ssh 2048 بیتی می باشد برای تغییر آن به مقادیر بیشتر به جای دستور بالا میتوانید از دستور زیر استفاده نمایید.

ssh-keygen -t rsa -b 4096

پس از آن مطابق شکل بالا مسیر پیش فرضی که سیستم به شما پیشنهاد میدهد را قبول کنید (این مسیر دایرکتوری /.ssh است که در صورت عدم وجو توسط سیستم ساخته می شود)

در مرحله بعد که در شکل زیر مشاده مینمایید، سیسم از شما  رمز عبور میخواد، آن را وارد و تایید نمایید

تبریک میگوییم! شما موفق به ساخت کلید در سیستم عامل لینوکس شدید.

استفاده از کلید SSH در سیستم عامل لینوکس

پس از ساخت کلید در ترمینال سیستم عامل لینوکس، دو فایل با نام های id_rsa و id_rsa.pub در دایرکتوری /.ssh ذخیره می گردد (/.ssh  همان محل پیش فرض است که در مراحل قبل بیان شد). id_rsa همان کلید خصوصی شماست و id_rsa.pub کلید عمومی است.

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

ssh -i /path/to/id_rsa user@x.x.x.x

منظور از user@x.x.x.x همان نام کاربری شماست.