راه اندازی سرور به همراه مجازی ساز داکر

سلام

بنده قصد دارم یک vps بگیرم و از مجازی سازی docker برای راه اندازی کانتیرنهای مورد نیاز جهت بالا آوردن سایتی که با فونیکس درست شده به همراه سرویس email استفاده کنم و همچنین یک سرویس ftp و یک انجمن discourse که در خارج از docker هست بالا بیارم .

مواردی که میخوام روی سرور و داکر انجام بدم به صورت زیر هست:

  • سرور
  1. حذف پکیج های اضافه

  2. بستن پورت های اضافه

  3. راه اندازی سرویس ها با تنظیمات درست و امن

  4. تنظیم درست فایروال

  5. نصب برنامه‌های امنیتی مثل ‫‪rkhunter‬‬ - ‫‪OSSEC‬‬

  6. استراتژي برای جلوگیری از حمله ها

  7. بکاپ گرفتن (بکاپ درست با تست)

  8. لاگ گرفتن . ارسال لاگ . بررسی لاگ

  9. مانیتورینگ شبکه و سرویس ها

  10. آپدیت های منظم

  11. کنترل دسترسی فایل‌ها

  12. چک کردن امنیت کلی سیستم عامل با برنامه

  13. مستند سازی برای نصب اولیه و تغییرات آتی

  14. خودکار کردن فرایندها تا حد ممکن

  15. حذف هدرها در سرویس ها و برنامه‌هایی که استفاده میشه یا عوض کردن اسم اونا

  16. استفاده از Selinux برای محدود کردن دسترسی سرویس ها

  • سرویس های مورد نیاز برروی سرور
  1. Docker

  2. FTP مثل ‫‪PureFTPd‬‬

  3. SSH

===============================

  • Docker
  1. درست کردن کانتینر با تنظیمات درست و امن

  2. شبکه بندی درست و امن

  3. محدود کردن منابع روی هر کانتینر

  4. داکر swarm

  5. بالانس کردن

  6. مانیتور کردن کانتینرها

==============================

  • کانتینرها در داکر
  1. فونیکس

  2. redis

  3. postgresql

  4. mail

  5. nginx

  6. discourse

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

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

2 پسندیده

خیلی از چیزایی که نوشتین رو نیاز ندارین. مخصوصا در مورد امن کردن سیستم

2 پسندیده

اکثر چیزهایی که نوشتم مربوط به Hardening لینوکس بود . امکانش هست بیشتر توضیح بدید که به چه مواردی برای امن کردن نیاز نیست

خیلی بستگی به scale کارتون داره. ولی مثلا مواردی رو که می نویسم نیازی بهشون نیست.

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

خیلی واضح نیست که می خواید چکار کنین ؟ rsyslog ؟

؟؟؟

اگر توسعه ندارید این مورد معنی نداره.

امنش رو متوجه نمی شم.

در کل به scale بر می گرده و همیشه این رو در نظر داشته باشید که per-optimization باید ازش جلوگیری بشه

2 پسندیده

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

بله rsyslog و اینکه میخوام لاگ رو به جای دیگه ای بفرستم حالا یک سرور دیگه یا برای خودم ایمیل بکنم

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

[quote=“lxsameer, post:4, topic:2379”]
اگر توسعه ندارید این مورد معنی نداره.

در مورد خودکار کردن فرایندها فعلا بکاپ مد نظر بود

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

این مورد چه زمانی نیاز میشه ؟‌

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

منظورم از امن در همه قسمت ها این هست که تنظیماتی که برای secure کردن یک سرویس وجود داره انجام بشه .

لطفا این مورد رو کمی توضیح بدید با تشکر از شما

برای ایمیل و ftp که با یه بک آپ در سطح storage اوکی هستند و عملا شما کاری لازم نیست بکنین. discourse هم خودش بک آپ اتوماتیک داره رو S3 یا هر ستوریج S3 compatible.

سرور ممکن هست اوکی باشه اما میل نه. از طرفی شما احتمالا به یه log aggregator نیاز دراین تا rsyslog

بستگی به scale داره . باید بدونم چقدر کاربر دارید. اما در کل برای استفاده از orchestration باید یه سری چیزا رو رعایت کنین و یه minimum ی هم نیاز هست وگر نه overkill هستش

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

منظور اینه که از اول باید نگران چیزایی باشید که مهم هست. فکر کردن و زمان گذاشتن روی چیزایی که در اون stage مهم نیستند می تونه هزینه الکی براتون داشته باشه

1 پسندیده

سمیر جان برخی از تنظیمات امنیتی خود nginix به نظر شما نیاز نیست؟ مثل اضافه کردن هدر های امنیتی و …

سمیر جان در مورد تنظیمات دیفالت سو آرم . فکر می کنید به صورت کلی کمک کننده نیست ؟ چون به کل ما دیدی از تعداد کاربر نداریم . به صورت مثال در یک روز فقط ۲۰ نفر بازدید کننده اومده به سایت ولی در یک روزی بر اساس تبلیغات دوره ای قرار دادن نرم افزار رایگان برای عموم یک دفعه ۱۰۰ هزار نفر اومده روی سایت. این مورد یک بار اتفاق افتاده برامون

روی سرور یک سایت نیست یعنی یک کانیتنر باشه . اینجوری سه سایت ما اگر یک کانتینر کل رم رو بگیره می خوابه درسته ؟

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

من بد منظور رو رسوندم یه مطلبی رو در لینک زیر

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

مثلا چه تنظیماتی ؟ یادتون باشه که هرچیزی که توی اینترنت می خونین لزوما به درد شما نمی خوره.

آیا اپ شما قابلیت این رو داره یه صورت horizontal سکیل بشه ؟ و آیا cloud provider شما API داره ؟
از اینها که بگذریم برای لول کاری که می خواید انجام بدید به نظر من orchestration نیازی ندارید. چون بی خودی هزینه براتون داره در صورتی که خودتون می تونین این کار رو تا حدودی انجام بدید که هزینه براتون کم شه. ولی خوب انتخاب با شماست.

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

2 پسندیده

خیر متاسفانه هیچکدوم از اینارو نداره و فقط بالا بردن سخت افزار سرور امکان پذیر هست .

دوستان تقریبا توضیح دادند، من فقط یک مورد رو اضافه میکنم و اون اینه که داکر بر اساس مجازی سازی کار میکنه اما مجازی ساز نیست. بیشتر یک کانتینر ساز هست

1 پسندیده

خوب پس swarm یا هر جور orchestration دیگه ای به کارتون نمیاد

1 پسندیده

من در مورد swarm کمی سرچ کردم . اینطور که متوجه شدم swarm برای کانتینرهای زیادی هست که بخوایم مدیریت و بالانس انجام بدیم و طبق صحبت شما با تعداد کانتیرها و سرویس های کمی که ما داریم فایده ای نداره . من یک پستی رو خوندم که برای اینکه swarm رو فعال بکنه چندتا داکر ماشین درست کرد یکی manager و چند تا worker

آیا هر داکر ماشین یک vps هست ؟

یادمه قبلا روی یک سرور که vps بود خواستم داکر ماشین درست کنم با درایور Oracle VirtualBox ولی نشد حالا نمیدونم اصلا درایور متناسب بود یا نه . آیا برای فعال کردن و استفاده از حالت swarm باید یک سرور dedicate داشت که چند تا داکر ماشین درست کرد یا روی vps هم امکان پذیره که بعدا همه رو با هم join کرد ؟

برای ران کردن داکر نیازی به virtualbox ندارید. داکر مستقیما روی lxc کرنل لینوکس ران می شه. در مورد swarm و هر orchestration دیگه ای شما یه سری سرور نیاز دارید که می تونن VPS باشن اما خوب خیلی توصیه می شه که از سرور های bare metal استفاده کنین

1 پسندیده

درسته روی یک vps در حالت نرمال که میشه داکر رو نصب و استفاده کرد ولی منظورم این بود که روی یک vps با استفاده از دستور docker-machine چندتا دیگه درست بکنم تا توی حالت swarm استفاده بکنم

docker-machine تا جایی که می دونم برای مک هست و دلیلش هم اینه که کرنل مک چیزی شبیه lxc لینوکس نداره و برای همین یه ابزار ساختن به اسم docker-machine که روی virtualbox یه لینوکس نصب می کنه و روی اون یه داکر. برای swarm هیچ نیازی به docker-machine نیست

1 پسندیده

سمیر جان یک باری که از http://scaleway.com خرید داشتیم به کمک شما که هنوز شرمنده شما هستیم از اون موقع تاحالا . متاسفانه روی کرنل های کاستومش خیلی مشکل بود حتی ایشو های زیادی در گیت هابشون بود که همه مشکل داشتن و پاسخ نگرفته بودن. آیا شما سرور های برا متال رو جایی دیگه می شناسید .
متاسفانه انقدر وضعیت قیمت ارز نا به سامانه بسیار ترس و ریسک داره خریدشون . صبح دیروز یک وی پی اس گرفتم ۲۰۰ غروبش شد ۲۵۰

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

منظور از bare metal سرور سخت افزاری هست و به پرداکت هیچ شرکتی اشاره نکردم. در مورد scaleway شما احتمالا در مورد سرور های ARM شون صحبت می کنین که داشتانشون فرق داره کلا.

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

2 پسندیده

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

1 پسندیده
brew install lxc

http://www.brewformulas.org/Lxc

1 پسندیده