Làm cách nào để chạy wireshark, với quyền root?


95

Bản cài đặt tiêu chuẩn của Wireshark không cho phép chương trình truy cập vào giao diện mạng.

Tôi cho rằng tôi phải chạy chương trình cùng sudo, nhưng không biết cách thêm nó vào biểu tượng - nếu đó là cách để làm điều đó.


Bạn đang nói về WireShark? Nếu không, bạn có thể liên kết đến trang chủ của ứng dụng để chúng tôi có thể biết bạn đang nói về điều gì không. Cảm ơn.
Oli

Trên thực tế, anh ta có lẽ đang nói về Wireshark chứ không phải là WireShark. :-)

Bạn có thể thử tcpdumpcông cụ trong Linux nếu wiresharkgây cho bạn quá nhiều rắc rối.
warfreak92

Câu trả lời:


149

Đối với WireShark có một cách tốt hơn. Các bit thông thường cần gốc là ứng dụng bộ sưu tập gói và điều này có thể được cấu hình để cho phép mọi người nhất định để sử dụng nó mà không có sudo, gksu, etc.

Trong một thiết bị đầu cuối (rất quan trọng là bạn đang ở trong một thiết bị đầu cuối, không chỉ là đối thoại Alt + F2) chạy điều này:

sudo dpkg-reconfigure wireshark-common

Điều này sẽ hỏi bạn nếu bạn muốn cho phép người dùng không root có thể đánh hơi. Đó là những gì chúng tôi đang hướng tới, vì vậy hãy chọn Yesvà quay trở lại.

Cấu hình lại wireshark-common

Điều này thêm một wiresharknhóm. Bất cứ ai trong nhóm đó sẽ có thể đánh hơi mà không cần root. Điều này rõ ràng an toàn hơn là chỉ để bất kỳ ai đánh hơi nhưng điều đó có nghĩa là không có kiểm tra mật khẩu. Về mặt kỹ thuật, bất kỳ người nào có quyền truy cập vào máy tính đăng nhập bằng wiresharktài khoản đều có thể đánh hơi được. Nếu điều đó được bạn chấp nhận, hãy tiếp tục.

Nếu không, chạy lại và chọn không.

Sau đó, bạn chỉ cần thêm người dùng vào nhóm đó. Chạy này:

sudo adduser $USER wireshark

Và khởi động lại hoặc đăng xuất. Khi bạn quay lại, nó sẽ cho phép bạn bắt đầu đánh hơi mà không có bất kỳ phiền phức nào về việc root.


2
Bất kỳ cách nào để bỏ qua bước khởi động lại / đăng xuất?
Taha Jahangir

4
Giải pháp này đã ngừng hoạt động vào ngày 14.04
Janghou

9
Và, vâng, đó chắc chắn là một cách tốt hơn nhiều so với việc chạy Wireshark với quyền root. Tệp README.packaging trong nguồn Wireshark cho biết "WIRESHARK CONTAIN QUA HAI TRIỆU DÒNG MÃ NGUỒN. KHÔNG CHẠY NHƯ VẬY ROOT."

3
@TahaJahangir Nếu khởi động lại / đăng xuất là bất tiện, bạn có thể sử dụng newgrp wiresharklệnh để tạm thời vào nhóm sau khi bạn đã trở thành thành viên của wiresharknhóm.
Lekensteyn

3
@TahaJahangir và Oli: Tiện lợi hơn nhiều so với đăng xuất là sử dụng su - $USERnhư được mô tả tại Tải lại bài tập nhóm của người dùng Linux mà không cần đăng xuất - Siêu người dùng
nealmcb

3

Bạn cũng có thể chạy Wireshark với quyền root bằng cách chạy gksu wiresharktừ thiết bị đầu cuối.

Lưu ý rằng có những lo ngại về bảo mật khi chạy Wireshark trong chế độ này, cụ thể là bất kỳ khai thác nào thỏa hiệp với Wireshark hiện đều có quyền root chứ không phải là đặc quyền của người dùng. Đây là mối quan tâm của Wireshark hơn so với các ứng dụng khác bởi vì, về bản chất (bắt và xử lý đầu vào tùy ý), Wireshark dễ bị khai thác hơn các ứng dụng máy tính để bàn thông thường. Bạn có thể an toàn trên mạng SOHO, nhưng bạn nên lưu ý về mối quan tâm này trước khi tiếp tục.

Trích dẫn:


Tôi chỉ cấu hình nó với cờ --enable-setcap-install thì tôi không thể làm điều này.
Smile.Hunter

Điều này nguy hiểm hơn và có nhiều vấn đề hơn, bởi vì có nhiều lỗi có thể khai thác hơn khi chạy toàn bộ gui với quyền root và các vấn đề cấu hình có thể tăng lên khi chương trình gui chạy bằng root. Xem giải pháp cấu hình lại dpkg ở trên để có lựa chọn tốt hơn nhiều.
nealmcb

Đối với người dùng máy tính để bàn, tôi coi đây là một cách giải quyết. Khi bạn sudo ứng dụng, tất cả các tệp mà nó tạo ra đều có quyền root và bạn cần liên tục thay đổi quyền truy cập tệp để cung cấp chúng cho người dùng hiện tại trong thư mục chính của bạn. Đối với máy chủ và sysadins nói chung, sudo thực sự là phương pháp tốt nhất.
JulioHM

@JulioHM Chạy Wireshark với quyền root rất nguy hiểm cho mọi người, bao gồm cả máy chủ và sysadmin.
kraxor

1
Ở khoảng 40 dòng tệp doc / README.packaging của Wireshark , nó ghi "WIRESHARK CONTAIN QUA HAI TRIỆU DÒNG MÃ NGUỒN. KHÔNG CHẠY NHƯ ROOT." Hãy xem tuyên bố đó rất nghiêm túc.

3

Thực sự bạn không cần phải khởi chạy WireShark với quyền root. Xin vui lòng đọc trang chính thức . Tóm lại bạn nên làm:

sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod o-rx /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
sudo getcap /usr/bin/dumpcap

Sau đó đăng xuất và đăng nhập lại.

Lưu ý: phương pháp này đã được thử nghiệm trên 16.04 LTS, 17.10 và 18.04 LTS.


1
Điều này sẽ vẫn giao diện từ tải trừ khi thay đổi. sudo chgrp USER_NAME / usr / bin / dumpcap
amrx 30/03/2015

1

bạn cũng có thể thử điều này, mở terminal, chạy lệnh này

# setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

chạy wireshark với tư cách là người dùng không root

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.