executando o wireshark dentro de um contêiner docker centOS

executando o wireshark dentro de um contêiner docker centOS

Instalei o wireshark usando yum( RUN yum install -y wireshark wireshark-qt) - e não consigo executá-lo quando faço ssh no contêiner.

# tshark
tshark: Couldn't run /usr/sbin/dumpcap in child process: Operation not permitted
Are you a member of the 'wireshark' group? Try running
'usermod -a -G wireshark _your_username_' as root.

Tentei rodar usermod -a -G wireshark root(como quando faço ssh na máquina, é como root). Isso não ajuda.

Também tentei su -c '/usr/sbin/tshark'sem sucesso.

O que devo fazer?

Responder1

dumpcaprequer NET_RAW(usar soquetes RAW e PACKET) NET_ADMIN(realizar operações relacionadas à rede) recursos

$ getcap $(which dumpcap)
/usr/sbin/dumpcap = cap_net_admin,cap_net_raw+ep

Eles não são concedidos por padrão a contêineres sem privilégios e devem ser adicionados explicitamente ao --cap-add=NET_RAW --cap-add=NET_ADMINiniciar o contêiner

$ docker build -t tshark - <<EOF 
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y tshark && rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["tshark"]
EOF

$ docker run --rm -it \
    --net=[container:<name|id> | host] \
    --cap-add=NET_RAW --cap-add=NET_ADMIN tshark


Responder2

Eu usei este comando e ele foi executado:

usermod -a -G wireshark _your_username_  

newgrp wireshark

sudo chgrp wireshark /usr/sbin/dumpcap

tshark -i eth0 -w outfile

Tente por favor.

informação relacionada