Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

tcpdump für normale User erlauben

5 views
Skip to first unread message

Marco Moock

unread,
Jul 12, 2023, 5:32:05 AM7/12/23
to
Hallo zusammen!

Kennt wer eine Möglichkeit, das Mitschneiden mit tcpdump ür bestimmte
User zu erlauben, so wie es z.B. Wireshark mit der Gruppe wireshark
macht?

Hintergrund:
Ich will per Wireshark sshdump nutzen und von außen auf einem Debian
mitschneiden. Da wird tcpdump aufgerufen. Der User da soll aber keinen
root-Zugriff haben.

--
Gruß
Marco

Stefan Möding

unread,
Jul 12, 2023, 6:18:01 AM7/12/23
to
Marco Moock <mo...@posteo.de> writes:

> Kennt wer eine Möglichkeit, das Mitschneiden mit tcpdump ür bestimmte
> User zu erlauben, so wie es z.B. Wireshark mit der Gruppe wireshark
> macht?

Berechtigungen für eine neue Gruppe tcpdump setzen, so dass nur die
Mitglieder dieser Gruppe das Programm starten dürfen:

# ls -l /usr/bin/tcpdump
-rwxr-x--- 1 root tcpdump 1331320 Feb 10 19:14 /usr/bin/tcpdump

Mit setcap (dafür ggfs. noch das Paket libcap2-bin installieren) die
entsprechenden Capabilities setzen, damit das Executable die Rechte zum
Mitschneiden hat, ohne dass dafür root-Rechte erforderlich sind. Das muss
dann so aussehen:

# getcap /usr/bin/tcpdump
/usr/bin/tcpdump cap_net_admin,cap_net_raw=eip

--
Stefan

Enrik Berkhan

unread,
Jul 12, 2023, 7:13:06 AM7/12/23
to
Hi,

Marco Moock <mo...@posteo.de> wrote:
> Kennt wer eine Möglichkeit, das Mitschneiden mit tcpdump ür bestimmte
> User zu erlauben, so wie es z.B. Wireshark mit der Gruppe wireshark
> macht?

Ich habe gerade kein Debian mit wireshark zur Hand, aber Ubuntu macht
das so, indirekt über `dumpcap', wenn man das Paket so konfiguriert,
dass Mitglieder der Gruppe wireshark es mit echten Netzwerkinterfaces
benutzen dürfen:

1. `dumpcap' nur für user root und Grupp wireshark ausführbar machen:

#v+

$ ls -l /usr/bin/dumpcap
-rwxr-xr-- 1 root wireshark 129704 Jan 20 11:25 /usr/bin/dumpcap

#v-

2. `dumpcap' per file-capabilies erweiterte Rechte geben:

#v+

$ getcap /usr/bin/dumpcap
/usr/bin/dumpcap cap_net_admin,cap_net_raw=eip

#v-

Diese file-capabilities kann man mit `setcap` auch setzen.

Müsste mit tcpdump genauso gehen. Nur muss man das wohl manuell
einrichten. Fürs Dumpen sollte cap_net_raw reichen. (AppArmor kann auch
noch dazwischen funken.)


Gruß,
Enrik

Marco Moock

unread,
Jul 12, 2023, 8:48:05 AM7/12/23
to
Am 12.07.2023 um 12:17:59 Uhr schrieb Stefan Möding:

> Berechtigungen für eine neue Gruppe tcpdump setzen, so dass nur die
> Mitglieder dieser Gruppe das Programm starten dürfen:

Wird das nicht bei jedem Update überschrieben?
Das wäre dann keine wirklich gute Idee.

Stefan Möding

unread,
Jul 12, 2023, 9:22:20 AM7/12/23
to
Marco Moock <mo...@posteo.de> writes:

> Wird das nicht bei jedem Update überschrieben?
> Das wäre dann keine wirklich gute Idee.

Ja, wird es.

Ich habe das in Puppet hinterlegt, daher wird das bei mir spätestens 30
Minuten nach dem Update wieder repariert.

Wenn du keine Änderungen an den vom OS verwalteten Programmen haben
möchtest, dann könntest du eine Sudo-Regel anlegen, die für entsprechende
User das tcpdump-Programm als root startet.

--
Stefan

Enrik Berkhan

unread,
Jul 12, 2023, 9:53:06 AM7/12/23
to
Natürlich. There's no free lunch ...

Du könntest z.B.:

- eigenes tcpdump Paket pflegen

- Maintainer von deinem Feature Request überzeugen

- mit Apt-Hooks spielen

- lokal gebautes tcpdump für diesen Zweck verwenden

Gruß,
Enrik

Bastian Blank

unread,
Jul 12, 2023, 11:05:52 AM7/12/23
to
Marco Moock wrote:
> Hintergrund:
> Ich will per Wireshark sshdump nutzen und von außen auf einem Debian
> mitschneiden. Da wird tcpdump aufgerufen. Der User da soll aber keinen
> root-Zugriff haben.

Du kannst ja mal schauen ob du auch direkt dumpcap, der Teil der bei
Wireshark das dumpen übernimmt und pcap rauswirft, nutzen kannst.

In der sshdump-manpage steht was zu dumpcap.

Bastian

Enrik Berkhan

unread,
Jul 12, 2023, 12:13:05 PM7/12/23
to
Ja, das funktioniert einwandfrei und ist wohl die beste Lösung des
konkreten Problems. `dumpcap' kann in der Wireshark-GUI ausgewählt
werden.

Auf dem entfernten System muss dazu wireshark-common installiert sein,
und das sollte mit --no-install-recommends oder gemeinsam mit tshark
erfolgen. Sonst fängt man sich auf dem System wireshark mit allen
Abhängigkeiten ein.

Gruß,
Enrik

Marco Moock

unread,
Jul 12, 2023, 4:05:42 PM7/12/23
to
Am 12.07.2023 um 16:07:29 Uhr schrieb Enrik Berkhan:

> Ja, das funktioniert einwandfrei und ist wohl die beste Lösung des
> konkreten Problems. `dumpcap' kann in der Wireshark-GUI ausgewählt
> werden.
>
> Auf dem entfernten System muss dazu wireshark-common installiert sein,
> und das sollte mit --no-install-recommends oder gemeinsam mit tshark
> erfolgen. Sonst fängt man sich auf dem System wireshark mit allen
> Abhängigkeiten ein.

Danke, das ist wirklich die einfachste und vor allem gescheiteste
Lösung.

0 new messages