ฉันจะเรียกใช้ wireshark ด้วยสิทธิ์พิเศษรูทได้อย่างไร


94

การติดตั้งมาตรฐานของ Wireshark ไม่อนุญาตให้โปรแกรมเข้าถึงอินเทอร์เฟซเครือข่าย

ฉันคิดว่าฉันต้องรันโปรแกรมด้วยsudoแต่ไม่ทราบวิธีเพิ่มลงในไอคอน - ถ้านั่นเป็นวิธีที่จะทำ


คุณกำลังพูดเกี่ยวกับ WireShark? ถ้าไม่คุณสามารถลิงค์ไปที่หน้าแรกของแอปพลิเคชันเพื่อให้เราเห็นสิ่งที่คุณกำลังพูดถึง ขอบคุณ
Oli

ที่จริงแล้วเขาอาจพูดถึงWiresharkมากกว่า WireShark :-)

คุณสามารถลองtcpdumpใช้เครื่องมือใน Linux หากwiresharkคุณมีปัญหามากเกินไป
warfreak92

คำตอบ:


149

สำหรับ WireShark มีวิธีที่ดีกว่า บิตที่ปกติความต้องการรากเป็นโปรแกรมคอลเลกชันแพ็คเก็ตและนี้สามารถกำหนดค่าเพื่อให้คนบางคนที่จะใช้มันโดยไม่ต้องsudo, ,gksuetc

ในเทอร์มินัล (สำคัญมากที่คุณอยู่ในเทอร์มินัลไม่ใช่แค่กล่องโต้ตอบ Alt + F2) ให้รันสิ่งนี้:

sudo dpkg-reconfigure wireshark-common

สิ่งนี้จะถามคุณว่าคุณต้องการอนุญาตให้ผู้ใช้ที่ไม่ใช่รูทสามารถดมกลิ่นได้หรือไม่ นั่นคือสิ่งที่เราตั้งเป้าหมายไว้ดังนั้นเลือกYesและกดปุ่มย้อนกลับ

กำหนดค่า wireshark ใหม่อีกครั้ง

นี่เป็นการเพิ่มwiresharkกลุ่ม ทุกคนในกลุ่มนั้นจะสามารถดมกลิ่นได้โดยไม่ต้องรูต เห็นได้ชัดว่ามีความปลอดภัยมากกว่าปล่อยให้ใครก็ตามสูดดม แต่หมายความว่าไม่มีการตรวจสอบรหัสผ่าน ในทางเทคนิคบุคคลใดก็ตามที่สามารถเข้าถึงคอมพิวเตอร์ที่ลงชื่อเข้าใช้ด้วยwiresharkบัญชีจะสามารถดมกลิ่นได้ หากคุณยอมรับได้ให้ดำเนินการต่อไป

หากไม่ใช่ให้เรียกใช้อีกครั้งและเลือกไม่

จากนั้นคุณเพียงแค่ต้องเพิ่มผู้ใช้ในกลุ่มนั้น เรียกใช้สิ่งนี้:

sudo adduser $USER wireshark

และรีสตาร์ทหรือออกจากระบบ เมื่อคุณกลับมาแล้วควรปล่อยให้คุณเริ่มดมกลิ่นโดยไม่ต้องกังวลเรื่องการรูต


2
มีวิธีใดบ้างที่จะข้ามขั้นตอนเริ่มต้น / ออกจากระบบ?
Taha Jahangir

4
วิธีนี้หยุดทำงานใน 14.04
Janghou

9
และใช่ก็แน่นอนมากวิธีที่ดีกว่าการทำงาน Wireshark เป็นราก ไฟล์ README.packaging ในแหล่งที่มาของ Wireshark กล่าวว่า "WIRESHARK CONTAINS มีมากกว่าสองล้านสองแถวของรหัสแหล่งที่มา

3
@TahaJahangir หากการรีสตาร์ท / ออกจากระบบไม่สะดวกคุณสามารถใช้newgrp wiresharkคำสั่งเพื่อเข้ากลุ่มชั่วคราวหลังจากที่คุณเป็นสมาชิกของwiresharkกลุ่ม
Lekensteyn

3
@TahaJahangir และ Oli: สะดวกกว่าการออกจากระบบเพื่อใช้งานsu - $USERตามที่อธิบายไว้ที่Reload การมอบหมายกลุ่มผู้ใช้ Linux โดยไม่ต้องออกจากระบบ - ผู้ใช้ขั้นสูง
nealmcb

3

นอกจากนี้คุณยังสามารถเรียกใช้ Wireshark ด้วยสิทธิ์ของรูทได้ด้วยการรันgksu wiresharkจากเทอร์มินัล

โปรดทราบว่ามีข้อกังวลด้านความปลอดภัยเกี่ยวกับการรัน Wireshark ในโหมดนี้กล่าวคือการหาประโยชน์ที่ทำให้ Wireshark ในตอนนี้มีสิทธิ์ใช้งานรูทมากกว่าสิทธิ์ของผู้ใช้ สิ่งนี้เป็นข้อกังวลกับ Wireshark มากกว่าแอปพลิเคชั่นอื่น ๆ เนื่องจากเป็นเรื่องธรรมชาติ (การจับและประมวลผลอินพุตโดยพลการ) Wireshark มีความเสี่ยงต่อการถูกโจมตีมากกว่าแอพพลิเคชันเดสก์ท็อปทั่วไป คุณอาจปลอดภัยในเครือข่าย SOHO แต่คุณควรตระหนักถึงข้อกังวลนี้ก่อนดำเนินการต่อ

อ้างอิง:


ฉันเพิ่งกำหนดค่าด้วย --enable-setcap-install flag จากนั้นฉันทำไม่ได้
Smile.Hunter

นี่เป็นสิ่งที่อันตรายและเป็นปัญหามากกว่าเพราะมีข้อบกพร่องที่หาประโยชน์ได้มากกว่าเมื่อเรียกใช้ gui แบบเต็มในฐานะที่เป็นรากและปัญหาการกำหนดค่าสามารถครอบตัดเมื่อโปรแกรม gui ทำงานเป็นรูท ดูโซลูชัน dpkg-reconfigure ด้านบนสำหรับตัวเลือกที่ดีกว่ามาก
nealmcb

สำหรับผู้ใช้เดสก์ท็อปฉันคิดว่านี่เป็นวิธีแก้ปัญหา เมื่อคุณ sudo แอปไฟล์ทั้งหมดที่สร้างขึ้นมีสิทธิ์การใช้งานรูทและคุณต้องเปลี่ยนการอนุญาตไฟล์อย่างต่อเนื่องเพื่อให้ผู้ใช้ปัจจุบันสามารถใช้งานได้ในโฮมไดเร็กตอรี่ของคุณ สำหรับเซิร์ฟเวอร์และดูแลระบบโดยทั่วไปแล้ว sudo เป็นวิธีที่ดีที่สุด
JulioHM

@JulioHM การใช้งาน Wireshark เนื่องจาก root นั้นมีอันตรายสำหรับทุกคนรวมถึงเซิร์ฟเวอร์และ sysadmins
kraxor

1
ที่ประมาณ 40 บรรทัดของไฟล์ doc / README.packagingของWiresharkกล่าวว่า "WIRESHARK มีมากกว่าสองล้านล้านบรรทัดของรหัสที่มาอย่าเรียกใช้พวกเขาเป็นรูต" ทำตามคำกล่าวนั้นอย่างจริงจัง

3

จริงๆคุณไม่จำเป็นต้องเปิดใช้ WireShark ในฐานะที่เป็นรูต โปรดอ่านหน้าอย่างเป็นทางการ โดยสังเขปคุณควรทำ:

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

จากนั้นออกจากระบบและลงชื่อเข้าใช้อีกครั้ง

หมายเหตุ: วิธีนี้ทดสอบบน 16.04 LTS, 17.10 และ 18.04 LTS


1
สิ่งนี้จะยังคงอยู่อินเตอร์เฟซจากการโหลดเว้นแต่มีการเปลี่ยนแปลง sudo chgrp USER_NAME / usr / bin / dumpcap
amrx

1

คุณสามารถลองสิ่งนี้ได้เช่นกันเปิดเทอร์มินัลเรียกใช้คำสั่งนี้

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

รัน wireshark ในฐานะผู้ใช้ที่ไม่ใช่รูท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.