네트워크 카드를 Dump모드로 변경해서 모든 패킷을 캡처하려면 Root권한이 있어야 합니다. 따라서 Wireshark같은 패킷 분석 툴을 사용하려면 기본적으로 프로그램을 Root권한으로 실행해야 합니다.
하지만 Wireshark 홈페이지에서는 보안상의 이유로 이 프로그램을 Root권한으로 실행하는 것을 권장하지 않습니다.
프로그램의 전체 코드중에 랜카드에서 패킷을 덤핑받는 영역은 극히 일부이고(Dumpcap 관련), 대부분은 파싱 및 분석을 위한 코드일텐데, 여기까지 Root권한으로 실행하면 위험의 소지가 있을수 있습니다. (발견되지 않은 버그라던가..)
그래서 Wireshark를 Root권한으로 실행하면 그러지 말라고 다음과 같이 경고창을 띄워 줍니다.
▲ Wireshark를 Root로 실행하면 뜨는 경고창
귀찮으니까 그냥 [OK] 눌러서 닫고 써도 잘 되기는 하지만.. 뭔가 깨림칙하니까, 이왕이면 개발자의 조언을 듣도록 합시다. 그 과정이 복잡할 것 같지만 그닥 복잡하지도 않습니다.
단지 로그아웃 후 다시 로그인해야 활성화 되니 그것때문에 작업 흐름이 깨진다면 뭐 어쩔 수 없지만, 이번만 Root로 쓰고 그 다음부터는 정상적(?)으로 쓸 수 있도록 설정이나 해 두도록 합시다. (그런데 컴퓨터를 끌 기회가 안생기고.. ASKY)
Wireshark 설치
아직 설치도 안했다면.. 이거 먼저
sudo apt-get install wireshark
Non-root User도 Capture 가능하도록 설정하기
이와 관련해서 구글링해보면 다음과 같이 간단하게 해결할 수 있는 방법이 있는데도 불구하고 여러 가지 삽질 방법 Hitchhiker's guide to SapJil을 제안해 놓은 경우를 심심치 않게 볼 수 있었습니다. (그래서 역시 삽질의 시작은 공홈에서 해야 합니다. 물론 영어 디버프를 감내해야하겠지만..)
sudo dpkg-reconfigure wireshark-common
▲ <Yes>를 선택하고 [Enter]
이렇게 설정하면 wireshark 그룹에 속한 유저는 Root권한 없이도 패킷을 캡처할 수 있게 됩니다. 이 명령은 일종의 스위치로, 필요에 따라 Non-root User가 패킷을 캡처하거나 할 수 없도록 설정을 바꿀 수 있습니다.
이제 필요한 User를 wireshakr 그룹에 포함시켜서 Root권한 없이도 패킷을 캡처할 수 있게 해 주도록 합니다.
sudo usermod -a -G wireshark $USER
※ 이후 로그아웃 후 다시 로그인하면 변경한 설정이 적용되어 사용자 권한으로도 패킷 캡처를 할 수 있습니다.
* Ref: https://ask.wireshark.org/questions/7976/wireshark-setup-linux-for-nonroot-user