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

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

دسترسی راه دور به سرور داکر:

به طور معمول خیلی از ما برای ایجاد ارتباط راه دور به سرور داکر(dockerd) از پروتکل tcp استفاده می کنیم که این ارتباط در مرحله اول امن نیست و در صورت اضافه کردن SSL/TLS هم با اینکه ارتباط امنی خواهیم داشت اما احراز هویت کاربر صرفا بر اساس مجوزی هست که استفاده میکنه و هر دو این روش ها میتونن باعث به وجود اومدن مشکلات امنیتی برای محیط ما بشن و در طولانی مدت هم حساب مجوز ها و… ممکنه از دستمون در بره! اما راه چاره چیه؟

dockerd -H tcp://0.0.0.0:2375
dockerd --tlsverify --tlscacert ca.pem --tlscert server-cert.pem --tlskey server-key.pem -H tcp://0.0.0.0:2376

دو دستور بالا برای انتشار API موتور داکر روی شبکه با پروتکل TCP هست.

پیشنهاد میکنم از tcp استفاده نکنید!

دسترسی امن راه دور به سرور داکر با SSH:

یکی از امکانات باحال که از Docker 18.09 به بالا در اختیارمون قرار گرفته امکان ارتباط با Daemon با استفاده از پروتکل SSH هست که هم از امنیت بالایی برخورداره و هم با ابزارهای مختلف میشه کاربرانی که ssh میزنن رو مانیتور و لاگ کرد. پس این راه حل خیلی کمک میکنه که یک ارتباط ایمن با سرورهای مختلفی که داکر روشون هست داشته باشیم و به راحتی با سرور داکر کار کنیم. از همه جالبتر اینکه نیاز به دستکاری کانفیگ سرور داکر هم نداره!

برای ارتباط با داکر با SSH:

1- کاربر مورد نظرتون رو روی سرور بسازید.

2- عضو گروه docker ش کنید.

3- از سیستم خودتون کلید عمومی رو کپی کنید به سروری که داکر داره.

4- روی سیستم خودتون پارامتر H یا متغیر محیطی DOCKER_HOST رو ست کنید.

5- با کلاینت داکر(docker) کارتون رو انجام بدید.

DOCKERSERVER# sudo useradd sshdockeruser
DOCKERSERVER# echo PASSWORD | sudo passwd sshdockeruser --stdin
DOCKERSERVER# sudo usermod -aG docker sshdockeruser
CLIENT# ssh-copy-id sshdockeruser@dockerserver.com
CLIENT# docker -H ssh://sshdockeruser@dockerserver.com COMMAND
CLIENT# export DOCKER_HOST=ssh://sshdockeruser@dockerserver.com
CLIENT# docker COMMAND

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

برای دسترسی همزمان به چند سرور از دستور docker context میشه استفاده کرد.

آموزش داکر رایگان رو از دست ندید.

موفق و پیروز باشید.

5

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *