DevOps Expert
3.37K subscribers
170 photos
3 videos
8 files
276 links
✔️ کانال آموزش دوآپس به فارسی

Contact:
@BobyCloud
@H_TESLA_S
@Majid_Aghamohamad
Download Telegram
Docker Security Tools
خب به عنوان اولین پستم تو انجمن !
📌دوست دارم یکی از ابزار های خوبی که تو بحث DevSecOps مطرح است را خدمتتان معرفی کنم که به اسم trivy شناخته می‌شود. این فریم ورک بطور کلی برای اسکن کانتینر ها و ایمیج های داکری و حتی Artifact های مختلف دیگه استفاده می‌شود و همینطور برای CI نیز مناسب هست. سعی کنید حتما از این ابزار فوق العاده در پروژه‌های خود استفاده کنید چرا که رعایت فاکتور های امنیتی حتی در پلتفرم های ایزوله‌ای چون کانتینر ها نیز مهم است ...
موفق و پیروز باشید🤘
Link:
https://github.com/aquasecurity/trivy
#container #ci #docker #security #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
🔥1
An Angry Docker Whale Whos Attacking The Iptables
داشتم مقاله‌ای رو مطالعه می‌کردم از اینکه چرا داکر با فایروال به خوبی کنار نمیاد برام جالب بود چون آخر مقاله یک لینک از داکیومنت اصلی داکر قرار داد و گفت که تمام مشکلات از چه چیزی هست و روش درست کردنش هم گفته جمله هم این بود
"Prevent Docker From Manipulating IPtables"
حتما مطالعه کنید:
Link1: https://medium.com/@erfansahaf/why-docker-and-firewall-dont-get-along-with-each-other-ddca7a002e10
2️⃣Link2: https://docs.docker.com/network/iptables/
#container #docker #firewall #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
💢 اگه به تازگی داکر رو شروع کردید و دید کافی نسبت به این ابزار ندارید، کی بهتر از خود داکر برای آشنایی با این ابزار فوق‌العاده؟

امروز داکر خبر از یک ورک‌شاپ یک روزه داد که در 17 نوامبر (27 آبان) برگزار میشه.

🧰 Join us tomorrow for our Getting Started with Docker Workshop.

Tuesday, November 17, 2020
1:00pm PT / 4:00pm ET

💢 تنها افرادی که در فرم ثبت نام کرده اند قادر به پیوستن به لایو استریم خواهند بود.

جهت ثبت نام فرم زیر را پر کنید:
https://dockr.ly/36Ge0Yf

#docker #container #live #getting_started #webinar #داکر #لایو

〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
کانتینر یا ایمیج؟؟ مسئله این است..

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

خیلی از شما ممکنه با شی گرایی آشنا باشین و تا حدودی مثال هایی ازش دیده باشین. ایمیج ها رو کلاس در نظر بگیرین و هر کانتینر رو یک Instance از اون کلاس (ایمیج) در نظر بگیرین.

معماری کانتینر-بیس خیلی شبیه به OOP هست با یک تفاوت کوچیک. هر کانتینری که از ایمیج می‌سازید و ران میکنید یک سشن ساخته میشه که هر زمانی که بخواین میتونین کیلش کنین و از بین ببرینش.

پس به این نتیجه رسیدیم که هر کانتینر یک Instance از ایمیج هست. شما میتونید از هر ایمیج هر تعداد کانتینری که دوست دارین راه اندازی کنین. درست زمانی که یک ایمیج رو ران میکنید کانتینر ساخته میشه. ایمیج هم تعدادی لایه هست که از قبل طراحی شده (یا طراحی کردین‌).

برای دیدن ایمیج ها از کامند زیر استفاده کنین:

$ docker images

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

$ docker run -d <image>

برای دیدن وضعیت کانتینر ها کامند زیر رو ران کنید:

$ docker ps -a

فلگ d- در کامند ران، کانتینر رو در background راه اندازی میکنه و سشن اون پایدار خواهد بود. در غیر اینصورت کانتینر سریعا از بین میره.

امیدوارم با ماهیت کانتینر ها و ایمیج ها بخوبی آشنا شده باشین :)

پی‌نوشت: فلگ های خیلی زیادی در کامند های بالا وجود دارن که با دیدن help اون کامند میتونید ازشون استفاده کنید. ❤️

#docker #container #داکر #کانتینر #image #ایمیج

〰️〰️〰️〰️〰️〰️〰️
© @DevOpsEx
👍1
✔️ تفاوت Publish و Expose پورت‌های کانتینر داکر

🔶احتمالا براتون سوال شده Publish و Expose پورت های کانتینر داکر چه تفاوتی با یکدیگر دارند؟ آیا هردو برای Port Forwarding استفاده میشوند؟
🔷از دیدگاه تکنیکال چه تفاوت هایی میان این ۲ روش وجود دارد؟

🖥 تماشا در یوتوب:
👉 Link: https://www.youtube.com/watch?v=riM5yxQJEXU

#Docker #داکر #Publish #Expose #Container #کانتینر
〰️〰️〰️〰️〰️
©️ @DevOpsEx
What is gVisor?
خب بریم یکمی راجب مباحث Security داخل کانتینر ها صحبت کنیم !!
امروز محصولی از گوگل را می خواهم خدمتتون معرفی کنم به اسم gVisor، که کارش بطور خلاصه این هست که عملا یک کانتینر رو داخل نوعی sandbox قرار میده و فراخوانی‌های سیستمی این کانتینر رو به شکل دقیقی رهگیری می‌کنه. دقیقا چیزی شبیه hypervisor ها در تکنولوژی مجازی سازی که میان فراخوانی های سیستمی یک VM رو رهگیری می‌کنن. طبق خوده داکیومنت یک تعریفی قشنگی که گفته شده این هست که gVisor عملا یک نوع "user-space kernel" خب یعنی چی حالا؟
عملا با استفاده از مفهوم ParaVirtualization اومدن کاری کردن که بتونن این فراخوانی‌هارو در لایه بالاتر از کرنل هاست بررسی کنن و خوبیش اینه که از ابزار هایی مثل Seccomp هم داخل این محصول استفاده شده ...
Links:
https://gvisor.dev/docs/
1️⃣https://devopscon.io/kubernetes-ecosystem/gvisor-kata-container-firecracker-docker-who-is-who-in-the-container-space/
#container #docker #security #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
This media is not supported in your browser
VIEW IN TELEGRAM
What is Dive?
خب بازم یکمی راجب Security تو کانتینر ها حرف بزنیم ...
راه‌های مختلفی برای تحلیل ایمیج‌های داکر وجود دارد. یکی از ابزارهایی که در تحلیل و مشاهده فایل‌ها و لایه‌های مختلف ایمیج جهت حذف، ویرایش و تحلیل می‌توانیم استفاده کنیم، dive است. هم از لحاظ امنیتی، هم از لحاظ DevOps، ابزاری بسیار کاربردی است. و حتی می‌تونید تغیراتی که هر لایه ایجاد کرده مشاهده کنید.
Link:
https://github.com/wagoodman/dive
#container #docker #security #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
⚡️Cloud-Native Developer Tool For Kubernetes
What is DevSpace?
Building modern, distributed and highly scalable microservices with Kubernetes is hard - and it is even harder for large teams of developers. DevSpace is the next-generation tool for fast cloud-native software development.
DevSpace is a client-only, open-source developer tool for Kubernetes:
1️⃣Build, test and debug applications directly inside Kubernetes
2️⃣Develop with hot reloading: updates your running containers without rebuilding images or restarting containers
3️⃣Unify deployment workflows within your team and across dev, staging and production
4️⃣Automate repetitive tasks for image building and deployment
Links:
◾️https://github.com/loft-sh/devspace
◾️https://www.youtube.com/watch?v=kgfg8r6_zPk
#container #docker #kubernetes #opensource #devops #cloudnative
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
DevOps Security Tools
همانطور که همه دوستان مطلع هستند Vulnerability Assessment یکی از مهم‌ترین تسک‌ها در حیطه IT Security بوده و هست.
چند وقت پیش ابزار تحت عنوان trivy در بحث Container Vulnerability Scanning معرفی کردم خدمت دوستان.
امروز دو ابزار دیگر به نام های Anchore Engine و Clair را هم معرفی می‌کنم که به شدت ابزارهای جالبی در بحث Inspection و Analysis کانتینرها هستند.
اینبار می‌خوام مقاله‌ای را به شما معرفی کنم که با استفاده از این 3 ابزار، Base Image های مختلف رو اسکن می‌کند و مقایسه می‌کند کدام یک دقیقتر و بهتر عمل می‌کنند !!
پ.ن یکی از مهم ترین کاربردهای این نوع ابزارها در بحث CI هست.
Links:
https://raesene.github.io/blog/2020/06/21/Container_Vulnerability_Scanning_Fun/
◾️https://medium.com/dev-genius/vulnerability-management-of-containers-using-opensource-1d864ccaaf83
◾️https://medium.com/@matuzg/testing-docker-cve-scanners-part-1-false-negatives-and-what-they-mean-for-your-security-77fc4eb1b2cf
#container #ci #docker #security #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
Docker Container’s Filesystem Demystified
موضوعی که می‌خواهیم باهم بررسی کنیم، کانسپتی هست تحت عنوان Storage Driver ها در اکوسیستم داکر !! تمام هدف این است که داکر بتواند نوعی فایل سیستم مناسب برای کانتینر ما فراهم آورد. درایوری که داکر در حال حاظر از آن استفاده می‌کند، در اصل نوعی Union FS تحت عنوان OverlayFS است. گرچه موارد مشابهی نیز مانند aufs و devicemapper و ... نیز وجود داشته و دارند اما داکر با اضافه کردن تغییراتی در این فایل سیستم بخصوص برای مثال اضافه کردن و بهبود قابلیتهایی چون Page Caching و ... نسخه‌ای تحت عنوان overlay2 را ایجاد نموده و در نسخ جدید از آن استفاده می‌کند. درک درست سازوکار نهفته در این نوع فایل سیستمها برای مثال عملیات CoW و ... می‌تواند در بالا بردن پرفورمنس سرویس هایی چون OSS و ... بسیار مفید و حیاتی باشد. در ادامه چندین مقاله مفید و بنچمارک های مختلف آورده شده است که می‌توانید از آنها استفاده کنید.
Main Links:
◾️Link 1 Link 2 Link 3 Link 4
Benchmark Links:
◾️Link 1 Link 2 Link 3
#container #docker #opensource #devops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
A Comparison Of Linux Container Images❗️
چند وقته پیش به نوشته جالبی از آقای Scott McCarty برخورد کردم گفتم بزارم شاید دوستان هم استفاده کردند. موضوع مورد بحث این هست که ایشون یک مقایسه بسیار جالب از تمام Container Image های Base انجام داده‌اند و از جهاتی چون موارد زیر آنهارو مقایسه کرده‌اند:
Architecture
Security
Binary Hardening
Performance
نکته جالبی هم راجب بحث ایمیج های DistroLess ارائه دادند که خوندنش خالی از لطف نبوده و دید نسبتا خوب و کاملی در انتخاب یک Base ایمیج متناسب با کارتون به شما می‌دهد.
ضمنا ایشون Content های به شدت پرمحتوایی در زمینه Container Internals و Container Standards ها دارن که می‌تونید در چنل یوتیوبشون اونهارو هم مطالعه کنید و استفاده کنید.
Link:
◾️https://crunchtools.com/comparison-linux-container-images/
Youtube Channel:
◾️https://www.youtube.com/channel/UCkWQhDzOxooYHp5LrTqnkdg
#container #docker #opensource #devops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
همیشه برام جالب بود که دلیل اصلی اینکه پلتفرم هایی مثل کوبرنتیز و یا داکر سرویس هایی رو تحت عنوان docker-proxy و kube-proxy نوشتن و هدف نهایی پشت این سرویس ها چی بوده و از چه مشکلاتی جلوگیری می کنن؟
کار مهمی که امروزه این سرویسها انجام میدن این هست که بقولی ما بتونیم حتی از طریق Local Network به اون پاد یا کانتینر مد نظرمون برسیم ( مشخصا این سرویس ها وظایف دیگه‌ای رو هم بر عهده دارند! ) چیزی که به شکل دیفالت در لینوکس ممکن نیست چرا که کرنل با پکت هایی که از شبکه داخلی آمده باشن 127.0.0.1/8 به شکلی خاصی رفتار می‌کنه چیزی که به ظاهر از RFC 1122 مقرر شده اینگونه باشه. به زبانی ساده تر، یک نود در شبکه هیچوقت پکتی که آدرس Destination اون 127.0.0.1 رو نمی‌تونه Transmit بکنه و به اصطلاح اون رو Drop میکنه.
ولی خب چیزی که همیشه مد نظرم بود ما بجای اینکه سرویسهایی بنویسیم مثل همون Proxy ها می‌تونیم به راحتی با ست کردن یک متغیر sysctl به نام route_localnet و یکمی بازی با IPTables مشکل رو حل کنیم یا دور بزنیم و به کانتینر مد نظرمون از طریق Localhost برسیم.
و خب بعد از حدود یک هفته تحقیق فهمیدم که در سال 2020 یک CVE-2020-8558 تحت همین سناریو بیرون آمد که اگر داکر یا کوبر با این متغیر کار بکنن چه مشکلی پیش میاد.
A flaw was found in Kubernetes that allows attackers on adjacent networks to reach services exposed on localhost ports, previously thought to be unreachable. This flaw allows an attacker to gain privileges or access confidential information for any services listening on localhost ports that are not protected by authentication.
و چقدر اون موقع به شکل راحتی سرویسهایی که به 127.0.0.1 به اصطلاح Bind شدن بدون هیچگونه Authentication و یا Encryption ای می‌تونن Expose بشن به خودی خود! که خب همین عامل باعث شد که داکر و یا کوبر سرویس هایی رو برای مدیریت بهتر این مشکلات بنویسن چرا که لینوکس به شکل دیفالت حتی Rule های IPTables رو برای پکت های Local Network در نظر نمی‌گیره !!

CVE-2020-8558:
◾️Link 1 Link 2
For More Info:
◾️Link 3

#container #docker #opensource #devops #devsecops
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
DevOps Expert
خب همه مطمئنا با انواع تایپ و مدل های پروکسی در اکوسیستم کوبرنتیز مثل kubectl proxy و apiserver proxy و از همه مهم تر ماژولی تحت عنوان kube-proxy آشنا هستیم و خب این موضوع رو هم می‌دونیم که بخش های عمده و مهمی از جادوی پشت بحث networking کوبر مثل بحث ریسورس…
Proxies in Kubernetes
◾️https://kubernetes.io/docs/concepts/cluster-administration/proxies/
Cracking Kubernetes Node Proxy (aka kube-proxy)
◾️https://arthurchiao.art/blog/cracking-k8s-node-proxy/
Connection Tracking (conntrack)
◾️https://arthurchiao.art/blog/conntrack-design-and-implementation/
A Deep Dive into Iptables and Netfilter Architecture
◾️https://www.digitalocean.com/community/tutorials/a-deep-dive-into-iptables-and-netfilter-architecture
Awesome BPF Resources
◾️https://arthurchiao.art/blog/awesome-bpf/
#container #kubernetes #opensource #devops #devsecops #networking
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ داکر به زبان ساده چیست؟
چرا داکر امروزه محبوب شده؟

🖥 مشاهده در یوتوب:
👉 Link: https://www.youtube.com/watch?v=FU--oBJZTMs

#docker #داکر #docker_image #کانتینر #کانتینر_پلتفرم #container #یوتوب_فارسی #bobycloud
〰️〰️〰️〰️〰️
©️ @DevOpsEx | @AI_Python
خب بعد از چند وقت بریم سراغ ادامه تاپیک جذاب همیشگی یعنی Container Networking ولی اینبار یکمی دقیق‌تر راجب طرز پیاده‌سازیش تو Kubernetes و نگاهی به بخشی از بقولی Under The Hood مکانیزم‌های استفاده‌شده برای تحقق این موضوع، چیزهایی مثل طرز پیاده‌سازی سرویس Kube-Proxy تو دو مد iptables و IPVS و تفاوت‌هاشون به شکل دقیق و همینطور روش‌هایی که CNI هایی مثل Calico برای Advertise کردن CIDR پاد استفاده می‌کنن یعنی دو تکنولوژی BGP و BIRD و درنهایت پیاده‌سازی OverLay Network به کمک مفاهیمی چون VXLAN و IPinIP.
◽️این پست ادامه بحث این پسته.
◽️عمده ریسورس‌های معرفی‌شده در لینک‌های زیر توسط آقای Dustin Specker نوشته شده است یکی از بهترین‌های این حوزه!
⚡️Links⚡️
Container Networking Series:
...
iptables: How Kubernetes Services Direct Traffic to Pods
IPVS: How Kubernetes Services Direct Traffic to Pods
Kubernetes Networking from Scratch: Using BGP and BIRD to Advertise Pod Routes
...
◾️https://dustinspecker.com/series/container-networking/
Deep Dive Kube-Proxy With iptables Mode:
◾️https://serenafeng.github.io/2020/03/26/kube-proxy-in-iptables-mode/
Container Networking From Scratch - Kristen Jacobs:
◾️https://www.youtube.com/watch?v=6v_BDHIgOY8
#container #kubernetes #opensource #devops #devsecops #networking
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
🔥10👍4👏1