services: # ---------------------------------------- # MariaDB Database # ---------------------------------------- mariadb: image: mariadb:10.6 container_name: sec_lab_db environment: MYSQL_ROOT_PASSWORD: root_password MYSQL_DATABASE: sec_lab MYSQL_USER: lab_user MYSQL_PASSWORD: lab_password volumes: - db_data:/var/lib/mysql networks: - lab_net restart: always # ---------------------------------------- # وب‌سرور اپلیکیشن اصلی (Victim) # ---------------------------------------- victim-nginx: image: nginx:stable-alpine container_name: sec_lab_victim_nginx ports: - "58690:80" volumes: - ./:/var/www/html:ro - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - php networks: - lab_net restart: always # ---------------------------------------- # هسته پردازشی PHP (مشترک بین دو سایت) # ---------------------------------------- php: container_name: sec_lab_php build: context: . dockerfile: ./docker/php/Dockerfile args: # اینجا می‌توانید آدرس Nexus داخلی سرور خود را بدهید - COMPOSER_REGISTRY=http://192.168.1.201:8081/repository/composer-runflare/ - LINUX_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan - SECURITY_REGISTRY=http://192.168.1.201:8081/repository/debian-arvan-security - NPM_REGISTRY=http://192.168.1.201:8081/repository/npm-group/ - NODE_REGISTRY=http://192.168.1.201:8081/repository/node-dist volumes: - ./:/var/www/html:rw depends_on: - mariadb networks: - lab_net restart: always # ---------------------------------------- # وب‌سرور اپلیکیشن مهاجم (Hacker) # ---------------------------------------- attacker-app: image: nginx:stable-alpine container_name: sec_lab_attacker_nginx ports: - "58691:80" volumes: - ./:/var/www/html:ro # حالا هکر هم به کدهای لاراول دسترسی دارد - ./docker/nginx/hacker.conf:/etc/nginx/conf.d/default.conf:ro # کانفیگ اختصاصی هکر depends_on: - php networks: - lab_net restart: always networks: lab_net: driver: bridge volumes: db_data: