Esempio di Wireshark in Docker
02net1-ccli-chttp
Una rete, client e server HTTP.
Collegamento a server HTTP dal browser dello host.
Scaffolding
Creare la directory di progetto:
cd ~/ex
mkdir -p 02net1-ccli-chttp
cd 02net1-ccli-chttp
Preparare lo scaffolding:
mkdir ccli chttp
touch ccli/Dockerfile docker-compose.yml
Il risultato è:
tree
.
├── ccli
│ └── Dockerfile
├── chttp
└── docker-compose.yml
Il file ccli/Dockerfile
è lo stesso di un esercizio precedente:
cp ../01net1-ccli-cssh/ccli/Dockerfile ccli
Il server HTTP userà un’immagine dal Docker Hub, non vi sarà bisogno di costruirne una.
docker-compose.yml
vim docker-compose.yml
version: '3.6'
services:
one:
build: ccli
image: ccli
container_name: one
hostname: one
cap_add:
- ALL
networks:
net1:
ipv4_address: 192.168.101.11
two:
image: httpd:2.4-alpine
container_name: two
hostname: two
cap_add:
- ALL
ports:
- 8888:80
networks:
net1:
ipv4_address: 192.168.101.12
networks:
net1:
name: net1
ipam:
driver: default
config:
- subnet: 192.168.101.0/24
NOTA
Il progetto è disponibile come file tar al link 02net1-ccli-chttp.tar
Lancio
Partenza del progetto:
docker compose up -d
Aprire un browser sulla macchina virtuale.
Collegarsi a http://localhost:8888
e verificare.
Terminare il progetto:
docker compose down
Cooperazione tra Host e Container
Una rete, client e server HTTP.
Da tcpdump
di un container a Wireshark
sullo host.
Installare Wireshark sulla macchina host:
sudo apt install wireshark-qt
Richiede tempo.
Far partire il progetto:
docker compose up -d
Dalla macchina host:
Lanciare Wireshark che si collega al tcpdump del container one
sudo wireshark -i <(docker exec one tcpdump -i eth0)
Qualsiasi interfaccia vethxxx va bene.
Su one:
Aprire un terminale.
Collegarsi al server HTTP con curl:
curl -v http://two
Monitorare il traffico su Wireshark.
Terminare il progetto:
docker compose down