From e89442f538fcf3f6594e8d7f004fdfe58f6467cd Mon Sep 17 00:00:00 2001 From: Oxbian Date: Mon, 11 Nov 2024 14:13:06 -0500 Subject: [PATCH] feat: update docker compose & adding dockerfiles for each docker --- Demo/Dockerfiles/Dockerfile.attaquant | 13 +++++++++++ Demo/Dockerfiles/Dockerfile.cible | 12 +++++++++++ Demo/Dockerfiles/Dockerfile.idps | 12 +++++++++++ Demo/Dockerfiles/Dockerfile.ids | 12 +++++++++++ Demo/docker-compose.yml | 31 ++++++++++++++++++--------- README.md | 10 +++++++-- 6 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 Demo/Dockerfiles/Dockerfile.attaquant create mode 100644 Demo/Dockerfiles/Dockerfile.cible create mode 100644 Demo/Dockerfiles/Dockerfile.idps create mode 100644 Demo/Dockerfiles/Dockerfile.ids diff --git a/Demo/Dockerfiles/Dockerfile.attaquant b/Demo/Dockerfiles/Dockerfile.attaquant new file mode 100644 index 0000000..aa5466f --- /dev/null +++ b/Demo/Dockerfiles/Dockerfile.attaquant @@ -0,0 +1,13 @@ +FROM python:alpine3.20 + +# Installation des paquets nécessaires pour scapy +RUN apk -U upgrade && \ + apk add --no-cache libpcap libpcap-dev gcc musl-dev libffi-dev nmap +RUN pip install scapy + +# Copier le script d'attaque +#COPY attack.py /attack.py + +# Lancer le script d'attaque +#CMD ["python", "/attack.py"] + diff --git a/Demo/Dockerfiles/Dockerfile.cible b/Demo/Dockerfiles/Dockerfile.cible new file mode 100644 index 0000000..c10bf58 --- /dev/null +++ b/Demo/Dockerfiles/Dockerfile.cible @@ -0,0 +1,12 @@ +FROM python:alpine3.20 + +# Installation des paquets nécessaires pour scapy +RUN apk -U upgrade && \ + apk add --no-cache libpcap libpcap-dev gcc musl-dev libffi-dev +RUN pip install scapy + +# Copier le script de détection d'attaques +#COPY cible.py /cible.py + +# Lancer le script de détection +#CMD ["python", "/cible.py"] diff --git a/Demo/Dockerfiles/Dockerfile.idps b/Demo/Dockerfiles/Dockerfile.idps new file mode 100644 index 0000000..0f84f02 --- /dev/null +++ b/Demo/Dockerfiles/Dockerfile.idps @@ -0,0 +1,12 @@ +FROM python:alpine3.20 + +# Installation des paquets nécessaires pour scapy +RUN apk -U upgrade && \ + apk add --no-cache libpcap libpcap-dev gcc musl-dev libffi-dev +RUN pip install scapy + +# Copier le script de l'idps +#COPY idps.py /idps.py + +# Lancer le script de détection +#CMD ["python", "/idps.py"] diff --git a/Demo/Dockerfiles/Dockerfile.ids b/Demo/Dockerfiles/Dockerfile.ids new file mode 100644 index 0000000..201b37f --- /dev/null +++ b/Demo/Dockerfiles/Dockerfile.ids @@ -0,0 +1,12 @@ +FROM python:alpine3.20 + +# Installation des paquets nécessaires pour scapy +RUN apk -U upgrade && \ + apk add --no-cache libpcap libpcap-dev gcc musl-dev libffi-dev +RUN pip install scapy + +# Copier le script de la sonde IDS +#COPY ids.py /ids.py + +# Lancer le script de la sonde IDS +#CMD ["python", "/ids.py"] diff --git a/Demo/docker-compose.yml b/Demo/docker-compose.yml index 1197f5d..ccc268a 100644 --- a/Demo/docker-compose.yml +++ b/Demo/docker-compose.yml @@ -2,7 +2,9 @@ version: "3.8" services: # Attaquant 1 atk1: - image: python:alpine3.20 + build: + context: Dockerfiles/. + dockerfile: Dockerfile.attaquant container_name: attaquant1 command: sleep infinity networks: @@ -12,7 +14,9 @@ services: # IDPS idps: - image: python:alpine3.20 + build: + context: Dockerfiles/. + dockerfile: Dockerfile.idps container_name: idps command: sleep infinity cap_add: @@ -27,7 +31,9 @@ services: # Cible cible: - image: python:alpine3.20 + build: + context: Dockerfiles/. + dockerfile: Dockerfile.cible container_name: cible command: sleep infinity networks: @@ -37,7 +43,9 @@ services: # Attaquant 2 atk2: - image: python:alpine3.20 + build: + context: Dockerfiles/. + dockerfile: Dockerfile.attaquant container_name: attaquant2 command: sleep infinity networks: @@ -45,16 +53,19 @@ services: ipv4_address: 172.20.2.4 restart: unless-stopped + # Sonde IDS ids: - image: python:alpine3.20 + build: + context: Dockerfiles/. + dockerfile: Dockerfile.ids container_name: ids command: sleep infinity cap_add: - NET_ADMIN - NET_RAW - networks: - net_private: - ipv4_address: 172.20.2.5 + #networks: + #net_private: + #ipv4_address: 172.20.2.5 # Network mode host obligatoire pour que la sonde puisse sniffer le réseau network_mode: host restart: unless-stopped @@ -74,11 +85,11 @@ services: networks: net_public: driver: bridge - ipam: + ipam: config: - subnet: 172.20.1.0/24 net_private: driver: bridge - ipam: + ipam: config: - subnet: 172.20.2.0/24 diff --git a/README.md b/README.md index 82e9ae2..90dc920 100644 --- a/README.md +++ b/README.md @@ -47,10 +47,16 @@ Puis executer le script `tests/cef-generator.py` avec le python3 du l'environnem Ce projet étant réaliser dans le cadre d'un cours à l'université, une démonstration est donc nécessaire. Ci-dessous, le schéma de l'architecture réseau de la démonstration: -![Architecture réseau démo](Demo/architecture.png) +![Architecture réseau démo](Demo/architecture.png) -Cette démonstration peut être déployer facilement grâce à un docker-compose `Demo/docker-compose.yml`. +Cette démonstration peut être déployer facilement grâce à un docker-compose `Demo/docker-compose.yml`. +Pour lancer cette démonstration, il faudra avoir `docker` & `docker compose` d'installer. Puis executer les commandes suivantes: + +```bash +cd Demo/ +docker compose up -d +``` ## TODO