version: "3" services: iot: image: handsonsecurity/seed-server:flask container_name: iot-192.168.60.80 tty: true cap_add: - ALL volumes: - ./volumes/rebind_iot:/app/rebind_iot networks: net-192.168.60.0: ipv4_address: 192.168.60.80 command: bash -c " FLASK_APP=/app/rebind_iot flask run --host 0.0.0.0 --port 80 " Router: image: handsonsecurity/seed-ubuntu:large container_name: router tty: true cap_add: - ALL sysctls: - net.ipv4.ip_forward=1 networks: net-192.168.60.0: ipv4_address: 192.168.60.11 net-10.9.0.0: ipv4_address: 10.9.0.11 command: bash -c " iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables -A FORWARD -d 192.168.60.80 -j DROP && tail -f /dev/null " attacker-ns: build: ./image_attacker_ns image: attacker-ns container_name: attacker-ns-10.9.0.153 tty: true cap_add: - ALL networks: net-10.9.0.0: ipv4_address: 10.9.0.153 attacker-www: image: handsonsecurity/seed-server:flask container_name: attacker-www-10.9.0.180 tty: true cap_add: - ALL volumes: - ./volumes/rebind_server:/app/rebind_server networks: net-10.9.0.0: ipv4_address: 10.9.0.180 command: bash -c " FLASK_APP=/app/rebind_server flask run --host 0.0.0.0 --port 80 " local-dns-server: build: ./image_local_dns_server image: local-dns-server container_name: local-dns-server-10.9.0.53 tty: true cap_add: - ALL networks: net-10.9.0.0: ipv4_address: 10.9.0.53 networks: net-192.168.60.0: name: net-192.168.60.0 ipam: config: - subnet: 192.168.60.0/24 net-10.9.0.0: name: net-10.9.0.0 ipam: config: - subnet: 10.9.0.0/24