شبکه – چندگانه با 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.