![CentOS Docker 컨테이너 내에서 Wireshark 실행](https://rvso.com/image/1555366/CentOS%20Docker%20%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%20%EB%82%B4%EC%97%90%EC%84%9C%20Wireshark%20%EC%8B%A4%ED%96%89.png)
yum
( )를 사용하여 Wireshark를 설치했는데 RUN yum install -y wireshark wireshark-qt
컨테이너에 SSH로 연결할 때 실행할 수 없습니다.
# 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.
나는 실행을 시도했습니다 usermod -a -G wireshark root
(머신에 ssh를 접속할 때 루트로 접속하는 것처럼). 이것은 도움이 되지 않습니다.
또한 su -c '/usr/sbin/tshark'
실패했습니다.
어떻게 해야 하나요?
답변1
dumpcap
NET_RAW
(RAW 및 PACKET 소켓 사용) NET_ADMIN
(네트워크 관련 작업 수행) 기능이 필요합니다 .
$ getcap $(which dumpcap)
/usr/sbin/dumpcap = cap_net_admin,cap_net_raw+ep
권한이 없는 컨테이너에는 기본적으로 부여되지 않으며 --cap-add=NET_RAW --cap-add=NET_ADMIN
컨테이너를 시작할 때 명시적으로 추가해야 합니다.
$ 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
답변2
이 명령을 사용했고 다음과 같이 실행되었습니다.
usermod -a -G wireshark _your_username_
newgrp wireshark
sudo chgrp wireshark /usr/sbin/dumpcap
tshark -i eth0 -w outfile
시도해 보십시오.