[gelöst] ping nur via sudo möglich

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

[gelöst] ping nur via sudo möglich

Beitrag von tomi89 » 04.07.2015 15:24:11

Ist das normal, dass ein Ping nur via sudo möglich ist?

Ohne sudo sieht das so aus:

Code: Alles auswählen

ping -c 5 8.8.8.8
ping: icmp open socket: Operation not permitted
Ich benutze Jessie 64 (Standard-Image und danach Openbox installiert).
Zuletzt geändert von tomi89 am 04.07.2015 16:14:24, insgesamt 3-mal geändert.

Benutzeravatar
RobertS
Beiträge: 512
Registriert: 15.04.2012 13:50:53
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Rastatt BaWü

Re: ping nur via sudo möglich

Beitrag von RobertS » 04.07.2015 15:29:32

ja ist normal.
Ein socket öffnen benötigt root Rechte.

Grüße

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: ping nur via sudo möglich

Beitrag von thoerb » 04.07.2015 15:30:26

tomi89 hat geschrieben:Ist das normal, dass ein Ping nur via sudo möglich ist?

Ohne sudo sieht das so aus:

Code: Alles auswählen

ping -c 5 8.8.8.8
ping: icmp open socket: Operation not permitted
Ich benutze Jessie 64 (Standard-Image und danach Openbox installiert).
Das funktioniert auch als User, aber woran das jetzt bei dir hängt, kann ich dir leider nicht sagen.

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: ping nur via sudo möglich

Beitrag von niesommer » 04.07.2015 15:42:28

Also bei mir als normaler nutzer geht das, siehe:

Code: Alles auswählen

shelly@tbbt:~$ ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=16.3 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=14.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=14.4 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=14.2 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=57 time=14.6 ms

--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 14.270/14.887/16.381/0.771 ms
Gruß niesommer

Benutzeravatar
RobertS
Beiträge: 512
Registriert: 15.04.2012 13:50:53
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Rastatt BaWü

Re: ping nur via sudo möglich

Beitrag von RobertS » 04.07.2015 15:54:02

Das ist sehr schön wenn es bei euch funktioniert.
Bei einer frischen Jessie ohne Nachgefummel ist das dokumentiertes Verhalten.
Ob die anderen beiden jetzt SuSE, RedHat oder was aus dem Ubuntu Sumpf verwenden geht ja leider aus der Antwort nicht hervor.

Grüße

Robert

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: ping nur via sudo möglich

Beitrag von tomi89 » 04.07.2015 16:03:49

Gut danke. Dann hab ich wieder was nicht mitbekommen.

Ist ja schön, dass ohne Root kein Socket mehr aufgehen kann.

Ich hoffe einfach mal, dass das auch sicher ist, wenn dann immer als Root Sockets geöffnet werden.

niesommer
Beiträge: 2493
Registriert: 01.10.2006 13:19:37
Lizenz eigener Beiträge: GNU General Public License

Re: ping nur via sudo möglich

Beitrag von niesommer » 04.07.2015 16:05:47

RobertS hat geschrieben:Das ist sehr schön wenn es bei euch funktioniert.
Bei einer frischen Jessie ohne Nachgefummel ist das dokumentiertes Verhalten.
Das kann ich nicht bestätigen. Hier noch einmal ein frisch installiertes Jessie ohne Nachgefummel:

Code: Alles auswählen

shelly@aurora:~$ ping -c 5 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=71.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=14.9 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=14.4 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=14.5 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=57 time=14.6 ms

--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 14.404/26.048/71.679/22.816 ms
shelly@aurora:~$ file /bin/bash 
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=a8ff57737fe60fba639d91d603253f4cdc6eb9f7, stripped
shelly@aurora:~$ uname -a
Linux aurora 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1 (2015-05-24) x86_64 GNU/Linux
RobertS hat geschrieben: Ob die anderen beiden jetzt SuSE, RedHat oder was aus dem Ubuntu Sumpf verwenden geht ja leider aus der Antwort nicht hervor.

Grüße

Robert
Stimmt, das hätte ich dazu schreiben sollen!
Leider weiß ich auch nicht wo hier das Problem ist, es scheint aber nicht ein grundsätzliches Problem zu sein bzw. ein Fehler.
Gruß niesommer

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: ping nur via sudo möglich

Beitrag von thoerb » 04.07.2015 16:06:39

RobertS hat geschrieben:Ob die anderen beiden jetzt SuSE, RedHat oder was aus dem Ubuntu Sumpf verwenden geht ja leider aus der Antwort nicht hervor.
Ich dachte wir sind hier im Debianforum.

Ich benutze ebenfalls Jessie. Aber es ist keine frische Installation, sondern besteht schon seit Squeeze. Nachgefummelt habe ich da nichts was mir jetzt bewusst wäre.

Radfahrer

Re: [gelöst] ping nur via sudo möglich

Beitrag von Radfahrer » 04.07.2015 16:25:41

Bei mir funktioniert es auch sowohl unter Jessie als auch unter Stretch als User. Als root natürlich auch. Sudo gibt es bei mir nicht.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: [gelöst] ping nur via sudo möglich

Beitrag von catdog2 » 04.07.2015 17:45:40

Was sagt denn

Code: Alles auswählen

getcap /bin/ping
?

Hier sagt das:

Code: Alles auswählen

/bin/ping = cap_net_raw+ep
Bei dir dann vmtl nicht, also:

Code: Alles auswählen

setcap cap_net_raw+ep /bin/ping
Unix is user-friendly; it's just picky about who its friends are.

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: [gelöst] ping nur via sudo möglich

Beitrag von tomi89 » 04.07.2015 18:18:51

Code: Alles auswählen

sudo getcap /bin/ping
Failed to get capabilities of file `/bin/ping' (Operation not supported)
Sofern es sicherer ist, ist es schon ok. Hatte mich bloß gewundert weil es früher ohne sudo geklappt hat.

Oder kann es unsicher sein, die Sockets immer via root zu öffnen?

Benutzeravatar
RobertS
Beiträge: 512
Registriert: 15.04.2012 13:50:53
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Rastatt BaWü

Re: [gelöst] ping nur via sudo möglich

Beitrag von RobertS » 04.07.2015 19:19:57

ich kopier mal eben aus der manpage

Code: Alles auswählen

SECURITY
       ping requires CAP_NET_RAW capability to be executed. It may be used as set-uid root.
set-uid root hab ich das auch gesetzt um ping in einem Userscript zu verwenden.

Grüße

Robert

tomi89
Beiträge: 269
Registriert: 21.08.2014 00:21:52

Re: [gelöst] ping nur via sudo möglich

Beitrag von tomi89 » 04.07.2015 19:38:56

Habe es mal neu installiert. Das Problem war, dass setcap nicht funktionierte. Naja dank suid klappt es jetzt ohne Root.

Code: Alles auswählen

sudo apt-get install iputils-ping --reinstall
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 56.5 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://http.debian.net/debian/ jessie/main iputils-ping amd64 3:20121221-5+b2 [56.5 kB]
Fetched 56.5 kB in 0s (176 kB/s)      
(Reading database ... 56537 files and directories currently installed.)
Preparing to unpack .../iputils-ping_3%3a20121221-5+b2_amd64.deb ...
Unpacking iputils-ping (3:20121221-5+b2) over (3:20121221-5+b2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up iputils-ping (3:20121221-5+b2) ...
Failed to set capabilities on file `/bin/ping' (Invalid argument)
The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Setcap failed on /bin/ping, falling back to setuid
Scanning processes...                                                                                                                                                   
Scanning kernel images...                                                                                                                                               
Running kernel seems to be up-to-date.
No services need to be restarted.

Benutzeravatar
catdog2
Beiträge: 5352
Registriert: 24.06.2006 16:50:03
Lizenz eigener Beiträge: MIT Lizenz

Re: [gelöst] ping nur via sudo möglich

Beitrag von catdog2 » 04.07.2015 21:52:03

Failed to get capabilities of file `/bin/ping' (Operation not supported)
Seltsames Dateisystem? Nur CAP_NET_RAW zu setzen Ist gegenüber dem suid bit schon zu bevorzugen.
Unix is user-friendly; it's just picky about who its friends are.

dirk11
Beiträge: 2818
Registriert: 02.07.2013 11:47:01

Re: ping nur via sudo möglich

Beitrag von dirk11 » 05.07.2015 01:14:12

RobertS hat geschrieben:Das ist sehr schön wenn es bei euch funktioniert.
Bei einer frischen Jessie ohne Nachgefummel ist das dokumentiertes Verhalten.
Ob die anderen beiden jetzt SuSE, RedHat oder was aus dem Ubuntu Sumpf verwenden geht ja leider aus der Antwort nicht hervor.
Keine Ahnung, aus welchem "Sumpf" du diese Erkenntnis hast, korrekt ist sie jedenfalls nicht. ping funktionierte schon immer auch als User. Im übrigens hat es 755 als Rechte.

Norcoen
Beiträge: 61
Registriert: 27.08.2013 19:08:03

Re: [gelöst] ping nur via sudo möglich

Beitrag von Norcoen » 28.12.2015 21:56:40

Bei mir hat eine eine Reinstallation auch geholfen, war auch bei mir trotz frischer Installation nicht möglich als User einen Ping abzusetzen.

Code: Alles auswählen

root@xyz:/tmp# apt-get install iputils-ping --reinstall
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 1 erneut installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 56,5 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Holen: 1 http://ftp.de.debian.org/debian/ jessie/main iputils-ping amd64 3:20121221-5+b2 [56,5 kB]
Es wurden 56,5 kB in 1 s geholt (41,1 kB/s).
(Lese Datenbank ... 208711 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../iputils-ping_3%3a20121221-5+b2_amd64.deb ...
Entpacken von iputils-ping (3:20121221-5+b2) über (3:20121221-5+b2) ...
Trigger für man-db (2.7.0.2-5) werden verarbeitet ...
iputils-ping (3:20121221-5+b2) wird eingerichtet ...
Setcap worked! Ping(6) is not suid!

Benutzeravatar
jaguar
Beiträge: 54
Registriert: 17.08.2008 19:07:07
Wohnort: Germany

Re: ping nur via sudo möglich

Beitrag von jaguar » 23.06.2016 11:28:22

RobertS hat geschrieben:ja ist normal.
Ein socket öffnen benötigt root Rechte.

Grüße
sudo chmod u+s `which ping`

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: ping nur via sudo möglich

Beitrag von Livingston » 24.06.2016 19:36:06

RobertS hat geschrieben:ja ist normal.
Ein socket öffnen benötigt root Rechte.

Grüße
Ein UDP- oder TCP-socket zu öffnen ist generell allen Usern erlaubt, solange der Port nicht <1024 ist. Ping arbeitet aber standardmäßig mit ICMP, ohne UDP oder TCP zu nutzen. Für diese Spezialität sind root-Rechte oder caps notwendig.
Zwar wird ICMP als "Hilfsprotokoll" auch bei Connections mit Ports >=1024 genutzt (also auch für Standard-User), aber dies geschieht dort implizit und entspricht dann dem üblichen Gebrauch - im Gegensatz zur Nutzung durch Ping.

nudgegoonies
Beiträge: 939
Registriert: 16.02.2009 09:35:10

Re: [gelöst] ping nur via sudo möglich

Beitrag von nudgegoonies » 09.12.2016 11:32:25

Ich hatte dieses Problem auch. Die Ursache war ein Umzug meines Systems auf eine neue Festplatte mit RSYNC. Da habe ich das -X vergessen, was die Capabilities mitkopiert. Bei cp braucht man -a zusätzlich.

Da ich selber aber den Befehl noch gar nicht kannte und nichts damit gemacht habe waren die fehlenden Capabilities in Debian einfach zu korrigieren. Ich habe in /var/lib/dpkg/info alle ausführbaren Scripte durchsucht nach dem Befehl "setcap" durchsucht und für die wenigen Dateien die das gebraucht haben die setcap Zeile kopiert und als root ausgeführt.

Die dpkg Scripte haben übrigens glaube ich alle einen Fallbackmechanismus. Zumindest waren glaube ich alle in einen If/Else Block eingerahmt, der erst schaute ob setcap da ist und dann ob die Capability gesetzt werden kann. Das geht wohl nicht bei allen Dateisystemen. Wenn eines von beiden nicht klappt setzen die Scripte das Flag für suid.
Soft: Bullseye AMD64, MATE Desktop. Repo's: Backports, kein Proposed, eigene Backports. Grafik: Radeon R7 360 MESA.
Hardware: Thinkstation S20, Intel X58, 16GB, Xeon W3530, BCM5755 NIC, EMU10K1 SND, SATA SSD+HDS und DVD+RW.

Antworten