![ejecutando Wireshark dentro de un contenedor acoplable centOS](https://rvso.com/image/1555366/ejecutando%20Wireshark%20dentro%20de%20un%20contenedor%20acoplable%20centOS.png)
Instalé Wireshark usando yum
( RUN yum install -y wireshark wireshark-qt
) y no puedo ejecutarlo cuando entro al contenedor.
# 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.
Intenté ejecutar usermod -a -G wireshark root
(ya que cuando entro a la máquina por ssh, es como root). Esto no ayuda.
También lo intenté su -c '/usr/sbin/tshark'
sin éxito.
¿Qué tengo que hacer?
Respuesta1
dumpcap
requiere NET_RAW
(usar sockets RAW y PACKET) NET_ADMIN
(realizar operaciones relacionadas con la red) capacidades
$ getcap $(which dumpcap)
/usr/sbin/dumpcap = cap_net_admin,cap_net_raw+ep
No se otorgan de forma predeterminada a contenedores sin privilegios y deben agregarse explícitamente al --cap-add=NET_RAW --cap-add=NET_ADMIN
iniciar el contenedor.
$ 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
Respuesta2
Usé este comando y ejecutó:
usermod -a -G wireshark _your_username_
newgrp wireshark
sudo chgrp wireshark /usr/sbin/dumpcap
tshark -i eth0 -w outfile
Por favor, inténtalo.