joeko
Anmeldungsdatum: 21. September 2019
Beiträge: Zähle...
|
hallo, ich möchte auf pc2 ein script ausführen das das sudo Passwort verlangt. nun habe ich die sudoers so bearbeitet das das auch funktioniert. das script soll aber von pc1 per ssh (key verfahren) ausgeführt werden. mittels key kann ich mich auch mit pc2 ohne Passwort verbinden aber wenn ich das script starte muß ich auf pc1 trotzdem das sudo Passwort eingeben. kann mir jemand sagen wie ich das hinbekomme ?
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo joeko, Willkommen im Forum. Zuerst einmal wäre es interessant zu wissen, was du denn genau in der sudoers (hoffentlich benutzt du dazu visudo, siehe sudo/Konfiguration) eingestellt hast, um das passwortfreie Ausführen zu erlauben. Und welchen Befehl nutzt du zum ausführen des Scriptes? Mir ist zudem auch nur bekannt, dass man Binarys angeben muss, Scripte kann man also nicht ohne weiteres dort eintragen und mit sudo ausführen, oder irre mich mich? Meine Vermutung ist, dass du das Passwort bereits einmal eingegeben hattest und deshalb der zweite Versuch ohne Passwort funktionierte. PS: Um das Script mit erweiterten Berechtigungen zu triggern, kannst du auch Incron verwenden. Dann reicht es eine Datei zu erstellen, Incron führt das Script dann mit dem passenden Benutzer (zB. als Root) aus. Der Benutzer der per SSH eingeloggt ist, braucht nur die Berechtigung, die Datei zu erstellen. MfG, Daniel
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4390
Wohnort: Göttingen
|
Hinterlege das Skript doch einfach in der authorized_keys mit der command-Anweisung des root Benutzers. Dann kannst Du das Skript direkt per SSH aufrufen. Daüfr musst Du auf PC1 ein neues SSH-Schlüsselpaar erzeugen und den Pubkey mit dem entsprechenden Kommando in der ~root/.ssh/authorized_keys auf PC2 hinterlegen. Sosparst Du Dir die ganze sudo-Problematik.
|
joeko
(Themenstarter)
Anmeldungsdatum: 21. September 2019
Beiträge: 8
|
um die sudo passworteingabe zu unterbinden habe ich das script in die sudoers aufgenommen und dem benutzer eingetragen der es ohne pw ausführen darf. klappt auf pc2 problemlos. nur wenn ich das script eben per ssh von pc1 ausführen will eben nicht. nun habe ich root einen ssh key mit command angabe gegeben und sobald ich mich dort einlogge wird automatisch das script ausgeführt .....ganz wie gewünscht ☺ nur muß ich dazu root den zugriff über ssh zulassen was ich eigentlich nicht möchte...
evtl dazu einen account anlegen der nur das machen darf. nur wie erstelle ich einen benutzer der bis auf das eine script ohne pw nichts machen kann ?
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo joeko, Eigentlich sollte es bei sudo keinen Unterschied geben, ob du nun lokal angemeldet bist oder per SSH. Wenn du denselben Benutzer nutzt. nochmal meine Fragen, um dem Problem auf die Spur zu kommen: Was hast du genau gemacht, um das passwortfreie Ausführen zu erlauben? Welchen Befehl nutzt du zum ausführen des Scriptes?
Ich habe ja auch einen Absatz zu Incron geschrieben. Damit kannst du einen beliebigen Benutzer das Script starten lassen, ohne dass derjenige irgendwelche Berechtigungen braucht, außer eine Datei anzulegen. Die unterstrichenen Wörter sind übrigens Hyperlinks. Wenn du da drauf klickst, kannst du mehr darüber erfahren. MfG, Daniel
|
joeko
(Themenstarter)
Anmeldungsdatum: 21. September 2019
Beiträge: 8
|
in der sudoers habe ich auf einem anderen pc folgendes eingetagen johndoe ALL = NOPASSWD: /pfad/script/script.sh geht problemlos aber nicht von ssh zu ssh probiert. wenn ich auf pc2 nach einem Neustart das script aufrufe brauche ich kein pw eingeben das andere werde ich mir durchlesen bin nur noch nicht zum testen gekommen
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4390
Wohnort: Göttingen
|
Du solltest für root den SSH-Zugriff auf jeden Fall auf Login per SSH-Key beschränken. Falls Du das gemacht hast, ist die Variante per SSH-Key kein Sicherheitsproblem. Du könntest in der authorized_keys auch noch ein from="IP von PC1" einfügen, damit das Skript wirklich nur von PC1 ausgeführt werden darf...
|
joeko
(Themenstarter)
Anmeldungsdatum: 21. September 2019
Beiträge: 8
|
kizu schrieb: Hallo joeko, Eigentlich sollte es bei sudo keinen Unterschied geben, ob du nun lokal angemeldet bist oder per SSH. Wenn du denselben Benutzer nutzt
hmm, kann es sein das da das Problem liegt ?
direkt per ssh geht aber von ssh zu ssh nicht weil von außerhalb aufgerufen ?
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Hallo Doc_Symbiosis,
Falls Du das gemacht hast, ist die Variante per SSH-Key kein Sicherheitsproblem.
Das sehe ich anders. Wenn der PC1 kompromittiert wird, hat der Angreifer automatisch root-Zugriff auf PC2. Das kann man verhindern, indem man dem Benutzer auf dem PC2 nur eingeschränkte Berechtigungen gibt. Insbesondere wenn immer nur ein vordefiniertes Script angestoßen werden soll, halte ich den Root-Zugriff für "zu viel Berechtigung". MfG, Daniel
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Was meinst du mit "von ssh zu ssh"? Was genau machst du?
|
joeko
(Themenstarter)
Anmeldungsdatum: 21. September 2019
Beiträge: 8
|
Doc_Symbiosis schrieb: Du solltest für root den SSH-Zugriff auf jeden Fall auf Login per SSH-Key beschränken. Falls Du das gemacht hast, ist die Variante per SSH-Key kein Sicherheitsproblem. Du könntest in der authorized_keys auch noch ein from="IP von PC1" einfügen, damit das Skript wirklich nur von PC1 ausgeführt werden darf...
ich glaube fast das es darauf hinaus läuft. wird das from="ip von pc1" direkt an command="befehl" ran gehängt ?
also command="befehl" from="ip von pc1" key…… ?
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4390
Wohnort: Göttingen
|
Naja, aber wenn PC1 kompormmitiert wird, darf man dadurch genau nur das eine Skript auf PC2 ausführen. Wenn in dem Skript dann mit sudo rumhantiert wird, macht das für mich auch keinen Unterschied.
|
joeko
(Themenstarter)
Anmeldungsdatum: 21. September 2019
Beiträge: 8
|
kizu schrieb: Was meinst du mit "von ssh zu ssh"? Was genau machst du?
ich logge mich von meinen Laptop auf pc1 (odroid xu4) per ssh ein um von dort ein backup auf pc2 (odroid h2) per ssh zu starten. anschliessend soll pc1 pc2 dazu veranlassen einen filescan zu starten der leider per sudo aufgerufen werden muß. auf beiden geräten läuft nextcloudpi. das backup soll nachts selbständig ausgeführt werden. also wol zum starten, rsync als backup, filesscan für die Datenbank und wieder runter fahren. läuft auch schon alles nur eben der filescan ist noch nicht fertig.
|
kizu
Anmeldungsdatum: 31. Juli 2009
Beiträge: 669
Wohnort: Buchholz
|
Moin, Habe mich gerade mal schlau gemacht. Ich kannte die Optionen bisher gar nicht, die man in der authorized_keys angeben konnte. Ich habe jedoch das hier gefunden: https://www.ssh.com/ssh/authorized_keys/openssh
It is a common error when configuring SFTP file transfers to accidentally omit this option and permit shell access. CryptoAuditor can be used at a firewall to prevent misconfigurations from accidentally granting shell access and to restrict which files can be transferred by SFTP in which direction, and to subject any transferred files to data loss prevention and anti-virus checks.
Heißt das nicht, das der Benutzer trotzdem SFTP-Zugriff hat, auch wenn ihm das Ausführen von Kommandos verwehrt bleibt? Mut Root-SFTP kann man trotzdem so einiges kaputt machen, mal eben so ein paar System-Dateien austauschen wäre dann ja kein Problem 😉. MfG, Daniel
|
Doc_Symbiosis
Anmeldungsdatum: 11. Oktober 2006
Beiträge: 4390
Wohnort: Göttingen
|
Nee, die Aussage ist ja genau andersherum: Es passiert häufig, dass eigentlich nur sftp Zugriff für Root eingerichtet werden soll, aber durch fehlerhafte Konfiguration der ZUgriff für SSH allgemein freigeschaltet wird. Also, wenn in der authorized_keys von root nichts weiter eingetragen ist außer dem einen Skript kann da meines Erachtens echt nichts passieren, außer eben dass das eine Skript ausgeführt wird.
|