Extra Nutzer für SSH
-
- Beiträge: 639
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Re: Extra Nutzer für SSH
Ihc stell mir da gerade die Frage, wie das Entwickler machen bei denen ein Prozess unter einem eigenen Nutzer läuft. Hab da z. B. Transmission (bzw. seinen Daemon) in Erinnerung. Das hatte ich auf dem Pi mit einem Webinterface eingerichtet und der Daemon läuft als Benutzer debian-transmission (oder so ähnlich). Wenn der Benutzer vieles darf ist das irgendwie sinnlos. Demnach müsste der auch irgendwie beschränkt ( ) sein, würde ich vermuten.
Re: Extra Nutzer für SSH
Die Haupteinschränkung ist dabei dann (denke ich) einfach nur, dass ein Daemon gerade nicht als root-Benutzer laufen muss – solange der Daemon dessen Zugriffsmöglichkeiten nicht braucht. Ansonsten hat ein System-User wie debian-transmission dieselben Rechte und Zugriff auf /usr/bin etc. wie jeder „normale“ menschliche Benutzer. Im Einzelnen kanns da sicher noch mehr Einschränkungen durch Gruppenzugehörigkeit etc. geben, aber der Hauptpunkt ist das Nicht-als-root-Laufen.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: Extra Nutzer für SSH
connectbot ist nur ein ssh client, weiss nicht ob man den per tasker bedienen kann, termux kann bissl mehr:Richard hat geschrieben:09.01.2019 08:08:27Was sind das für Apps? Welche die einfach eine SSH-Verbindung herstellen? Das suche ich nicht. Es soll automatisiert per Tasker ein Befehl per SSH geschickt werden. Da müssen Logindaten oder Schlüsselpaar schon drin stehen.
Da gibts auch ein Plugin dafür mit dem man ein eigenes Skript per tasker triggern kann (welches ssh aufrufen könnte), also evtl was für dich: https://f-droid.org/de/packages/com.termux.tasker/https://termux.com/ hat geschrieben:Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed automatically - additional packages are available using the APT package manager.
Unix is user-friendly; it's just picky about who its friends are.
-
- Beiträge: 2049
- Registriert: 18.03.2012 21:13:42
- Lizenz eigener Beiträge: GNU Free Documentation License
Re: Extra Nutzer für SSH
Wenn es ein daemon ist, dann wird dieser einmalig auf dem Server durch einen Nutzer der sich per ssh anmelden darf gestartet. Der Nutzer unter welchen der Daemon laeuft, darf sich nicht per ssh anmelden und damit brauch man sich auch nicht weiter darum kuemmern was der darf.Richard hat geschrieben:09.01.2019 17:09:27Ihc stell mir da gerade die Frage, wie das Entwickler machen bei denen ein Prozess unter einem eigenen Nutzer läuft.
Wenn es wie in deinem Fall um ein Anstossen von einem Skript auf dem Server geht, dann benutzt man Schluessel. Ob/Warum das dein Programm (nicht) kann, weis ich nicht. catdog2 hat dir allerdings eine Moeglichkeit genannt mit der es eventuell gehen koennte. Eine weitere Moeglichkeit waere die LoginShell in /etc/passwd auf dein Skript zu setzen [1]. Wie sicher das allerdings ist, kann ich dir nicht sagen.
In erster Linie darf er nicht root werden und dann ist kuemmert man sich auch in zweiter Linie darum dass den keiner uebernehmen kann. Du verzichtest doch auch nicht auf ein ordentliches Tuerschloss nur weil du dein Hab und Gut mit einem ultra tollen Kleber festgeklebt hast.Richard hat geschrieben:09.01.2019 17:09:27Wenn der Benutzer vieles darf ist das irgendwie sinnlos. Demnach müsste der auch irgendwie beschränkt ( ) sein, würde ich vermuten.
[1] https://stackoverflow.com/a/12993743
Hilf mit unser Wiki zu verbessern!
Re: Extra Nutzer für SSH
Hat der Benutzer "debian-transmission" den Daemon auch starten können bzw. dürfen? ... oder musste dieser durch root gestartet werden und wechselte nach dem Starten, auf den Benutzer "debian-transmission", für die Dauer der Laufzeit?Richard hat geschrieben:09.01.2019 17:09:27IHab da z. B. Transmission (bzw. seinen Daemon) in Erinnerung. Das hatte ich auf dem Pi mit einem Webinterface eingerichtet und der Daemon läuft als Benutzer debian-transmission (oder so ähnlich).
-
- Beiträge: 639
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Re: Extra Nutzer für SSH
Ich starte den Daemon zumindest nicht durch root. Daher denke ich er darf das. Das ist mir auch nur aufgefallen als es darum ging den Autostart dafür einzurichten. Sonst hätte ich das gar nicht bemerkt.mat6937 hat geschrieben:09.01.2019 18:56:28Hat der Benutzer "debian-transmission" den Daemon auch starten können bzw. dürfen? ... oder musste dieser durch root gestartet werden und wechselte nach dem Starten, auf den Benutzer "debian-transmission", für die Dauer der Laufzeit?
-
- Beiträge: 123
- Registriert: 23.10.2018 18:06:09
Re: Extra Nutzer für SSH
Das ist der Unterschied... denn ein solcher Prozess wurde durch einen angemeldeten User gestartet oder zum Starten veranlasst. Wenn ich das richtig verstanden habe, soll bei diesem aktuellen Problem ein via SSH auf einem Server angemeldeter User ein bestimmtes Programm starten dürfen, aber er darf nicht die Rechte eines angemeldeten Users haben. Tja, das ist ein imho ein Widerspruch an sich... das eine ohne das andere geht m.M.n. nicht.Richard hat geschrieben:09.01.2019 17:09:27Ihc stell mir da gerade die Frage, wie das Entwickler machen bei denen ein Prozess unter einem eigenen Nutzer läuft.
Ich würde deshalb vielleicht einen völlig anderen Weg verfolgen, und zwar das Script starten zu lassen, ohne dass sich überhaupt ein/der User dafür anmelden muss und ohne dass es dafür neue Sicherheitslücken durch vielleicht unzureichend geprüfte Autorisierung gibt. Und zwar, in dem der Start des Scripts via sowieso etablierter Netzwerk-Protokolle getriggert wird und es dadurch startet. Dazu fallen mir zwei funktionierende Lösungen ein.
Die erste ist hierfür den telegram-daemon laufen zu lassen, der mit übertragener Nachricht und seinem Eventhandler auf die Nachricht reagiert. Damit kann man von jedem Android, IPhone, Tablet, wasauchimmer, einfach eine Nachricht senden. Der Server interpretiert Absender und Nachricht und reagiert entsprechend darauf.
Ein zweite Möglichkeit wäre auf dem Server netcat im LocalNet lauschen zu lassen und dem Server eine Nachricht via TCP zu senden. Darüber könnte dann auch der Start des Scripts getriggert werden. Um das auch via Internet zu ermöglichen, würde ich dazu einen OpenVPN-Tunnel öffnen, um die notwendige Autorisierungssicherheit zu gewährleisten. Dazu brauchts dann nur ein Minitool auf dem Android-Gerät, welches via TCP-Socket die passende Nachricht senden kann.
Re: Extra Nutzer für SSH
Wenn man sich mal die Dateiberechtigungen einer normalen Linuxinstallation ansieht, stellt man fest, daß jeder Nutzer auf fast alle Dateien Leseberechtigungen hat und fast alle Executables ausführen darf, nur root darf auch überall schreiben. So kann ein normaler Benutzer z.B. auch fdisk ausführen, Verändereungen an den Partitionen darf er jedoch nocht vornehmen, weil er auf das Disk-Device (z.B. /dev/sda) keine Schreibberechtigung hat.
Daraus ergibt sich, daß auch ein Extranutzer so gut wie alles lesen und ausführen darf. Die Einschränkung auf nur ganz bestimmte Dateien ist so erstmal nicht vorgesehen und bedeutet wesentlich Umbauten an einer Standardinstallation.
Der Grund, einzelne Daemons nicht als root zu starten liegt also hauptsächlich darin, nicht alle Dateien für den Daemon schreibbar zu präsentieren, sonst könnte er z.B. auch einfach das root-Paßwort in /etc/shadow überschreiben, um sich im zweiten Schritt root-Rechte zu erschleichen, sollte er böses im Schilde führen.
-
- Beiträge: 639
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Re: Extra Nutzer für SSH
Einen telegram-cli-daemon hab ich auf einem anderen Pi schon laufen. Da sende ich aber ausschließlich manuelle Sachen wie DL-Links ohne vorher eine SSH-Verbindung aufbauen zu müssen. Das wäre eine Möglichkeit an die ich bisher nicht gedacht hab. Muss mal gucken ob Tasker automatisierte Nachrichten versenden kann.
netcat kenn ich nicht, müsste ich mir mal ansehen. Hauptfrage ist hier immer ob das automatisiert über Android angestoßen werden kann.
Die weiter oben genannte SSH-App guck ich mir auch mal an.
netcat kenn ich nicht, müsste ich mir mal ansehen. Hauptfrage ist hier immer ob das automatisiert über Android angestoßen werden kann.
Die weiter oben genannte SSH-App guck ich mir auch mal an.
-
- Beiträge: 123
- Registriert: 23.10.2018 18:06:09
Re: Extra Nutzer für SSH
Du kannst das relativ einfach auf Deinem PC testen, um erst mal einen Eindruck zu bekommen, was es überhaupt macht. Um dann bei "Tauglichkeit" das Thema zu vertiefen und vielleicht richtig auszuarbeiten. Öffne zwei Terminalfenster.Richard hat geschrieben:10.01.2019 09:03:00netcat kenn ich nicht, müsste ich mir mal ansehen. Hauptfrage ist hier immer ob das automatisiert über Android angestoßen werden kann.
Im ersten startest Du:
Code: Alles auswählen
nc -l -p 55555
Code: Alles auswählen
echo "Hallo Welt" > /dev/tcp/localhost/55555
Code: Alles auswählen
echo -n "hallo" | nc -w1 localhost 55555
Im Internet gibt es viele Mini-TCP-Clients in C, die total simpel eine Nachricht via TCP-Paket übers Netz senden können, kleine Sourcen, die man eigentlich auch auf dem Android kompilieren können sollte. Allerding halte ich es bei dieser Lösung für wichtig, wenn das auch übers Internet erfolgen soll, keine direkte Port-Weiterleitung im DSL-Router einzurichten, sondern das besser über einen VPN-Tunnel abzusichern. Innerhalb des LANs ist das jedoch nicht notwendig. Allerdings muss ich zugeben, das ist ein anspruchsvolles Ziel, welches doch einiges an Sachkenntnis erfordert. Der telegram-Weg ist definitiv leichter zu gehen.
Re: Extra Nutzer für SSH
Hier das Beispiel mit socat (auf dem PI):Richard hat geschrieben:10.01.2019 09:03:00Hauptfrage ist hier immer ob das automatisiert über Android angestoßen werden kann.
Code: Alles auswählen
socat -v -u -T 1 TCP4-LISTEN:<lauschender-Port>,reuseaddr,fork,tcpwrap,range=<source-IP-Adresse>/32 EXEC:</Pfad/zum/Script>
Code: Alles auswählen
nc -v -n -z -w 1 -T <tos> -p <source-Port-Client> <IP-Adresse-PI> <lauschender-Port-socat>
Wenn man nicht direkt über das Internet "scannen" will, kann man auch hier z. B. VPN oder stunnel4 oder gleichwertig benutzen. Wenn man die source-IP-Adresse nicht kennt (z. B. wenn es direkt über das Internet geht), soll man tcpwrap bzw. range weglassen. Zusätzliche Absicherung des socat ist mit iptables bzw. sysctl möglich.
-
- Beiträge: 123
- Registriert: 23.10.2018 18:06:09
Re: Extra Nutzer für SSH
Danke... habs sofort gebunkert und ordentlich verpackt eingelagert...
-
- Beiträge: 639
- Registriert: 11.10.2012 14:18:37
- Lizenz eigener Beiträge: GNU General Public License
Re: Extra Nutzer für SSH
Ich hab mir mal termux angesehen, sehr interessant, auch wenn es auf meinem Zweit-Handy (das hierfür genutzt werden soll) Probleme macht. Da kommt eine Fehlermeldung wenn ich den Zugrif auf die SD-Karte einrichten will. Ich kann auch nichts nach ~ (Home-Verzeichnis der App, nicht des Smartphones) kopieren, aber ich kann dort neue (leere) Dateien anlegen und den Text manuell reinkopieren. Damit geht der SSH-Zugriff mit Schlüsseldatei. Unterschied zu anderen Terminallösungen für Android scheint zu sein, dass Termux eine Art "eigenes" Homeverzeichnis nutzt und auch dort die Schlüsseldateien hinterlegt. Andere Apps (inkl. Code ausführen direkt in Tasker) wollen scheinbar die Dateien irgendwo in das Android-Dateisystem hinterlegen, was auf Fehler läuft.
Das Tasker-Plugin ist unter F-Droid sogar kostenlos, anders als im Playstore und anders als das Tasker-Plugin für JuiceSSH - die App die ich normal für SSH nutze.
Das Tasker-Plugin ist unter F-Droid sogar kostenlos, anders als im Playstore und anders als das Tasker-Plugin für JuiceSSH - die App die ich normal für SSH nutze.