ubuntu – اضافه کردن حساب کاربری اصلی به گروه docker

daemon daock اجرا می شود با دسترسی ریشه، اما ظروف درون آن اجرا می شود، حتی آنهایی که کاربر فعلی ( دستور USER را در فایل Dockerfile خود تنظیم نمی کند) با دسترسی محدودی اجرا می شود.

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

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

در اینجا مثال docker run --rm -it -v '/: / mnt' debian: 9.2 cat / mnt / etc / shadow دسترسی به / به عنوان ریشه، به این معنی است که می تواند فایل های باینری را آلوده کند، به فایل / etc / shadow شما دسترسی داشته باشد، اضافه / حذف / تغییر رمز کاربر و غیره … [19659002] مرجع کامل: https://docs.docker.com/engine/security/security/#conclusions

آیا خطرناک است که حجم Tmpfs را در Docker قرار دهید؟

گاهی اوقات من نیاز به عملیات شدید I / O در حافظه دارم. تسهیلات tmpfs برای این کار بسیار خوب است، اما من تعجب کردم که آیا خطرات زیادی برای استفاده از مانیتورهای tmpfs در داخل ظرف وجود دارد. آیا می توان آن را برای مصالحه میزبان مورد استفاده قرار داد؟

شبکه – چندگانه با Docker

من سعی می کنم ترافیک بین دو ظرف Docker ("وب سرور" و "chrome_client") را با استفاده از ظرف "middle" در حالت MITM ترسیم کنم. بنابراین ما این توپولوژی اساسی داریم:

[chrome_client] -> [intermediate] -> [webserver]

شرح مختصری از ظروف است:

  • [chrome_client] : ظرف مورد استفاده برای بازکردن کروم به صورت گرافیکی

  • [intermediate] : ظرف کالی با استفاده از ettercap برای راه اندازی آن در حالت mitm و گرفتن هر ترافیکی از طریق عبور

  • [webserver] : یک سرور ساده lighttpd یک ویرایشگر ساده Markdown را نشان می دهد

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

 # شبکه جدا شده
شبکه docker ایجاد --subnet = 172.19.0.0 / 24 - gateway 172.19.0.254 mynet123

در حال حاضر، ظرف "middle":

 docker run --rm -it --net mynet123 --ip = 172.19.0.7 - privileged kali / wireless: ettercap bash

مرورگر کروم:

 docker run --rm -d -u = 1000: 1000 --net mynet123 --ip = 172.19.0.4 -v /tmp/.X11-unix:/tmp/.X11- unix -e DISPLAY = unix $ DISPLAY -v $ HOME / EmptyDir: / data -v / dev / shm: / dev / shm --cap-add = SYS_ADMIN image / chrome: latest

و سرور وب (یک سرور lighttpd، نمایشگر ویرایشگر Markdown):

 docker run --rm -d --net mynet123 --ip = 172.19.0.5 image / markdown: latest

در ظرف "middle"، من اجرا می کنم:

 # اول، برخی از تنظیمات برای حمل و نقل
sysctl -w net.ipv4.ip_forward = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -w net.ipv4.conf.all.send_redirects = 0
iptables-FORWARD -i eth0 @ if16 -o eth0 @ if16 -j ACCEPT

# راه اندازی mitm برای گرفتن چیزی بین 2 ظرف دیگر:
ettercap -T -M arp: remote -i eth0 / 172.19.0.5// /172.19.0.4//

اکنون، URL مرورگر Chrome را وارد کنید http://172.19.0.5 و هیچ چیز ظاهر نمی شود. همه خالی است، در حالی که در خروجی ettercap من دریافت می کنم:

 جمعه ژوئن 19 16:19:22 2018 [463117]
TCP 172.19.0.4:51840 -> 172.19.0.5:80 | S (0)


جمعه ژوئن 19 16:19:22 2018 [463119]
TCP 172.19.0.4:51842 -> 172.19.0.5:80 | S (0)

 ... و غیره ....

من نمی فهمم که چه چیزی به من می گوید. توجه داشته باشید که من نه با استفاده از https، بنابراین نباید هیچ مشکلی با گواهینامه داشته باشم. راست؟

PD: در عین حال، من در تلاش برای استفاده از mitmproxy در "پروکسی میانجی، اما من فکر کردم ممکن است راه حل اشتباه را با حذف هر گونه مشکل با گواهینامه SSL.