Cisco VPN-Client nur als root?

Calvin

Hacker
Mahlzeit,

ich habe mir heute den Cisco VPN-Client installiert, um an der FH ins WLan-Netz zu kommen. Beim Starten bekam ich die Meldung

Code:
privsep: unable to drop privileges: group set failed.
The application was unable to communicate with the VPN sub-system.

Mit google und der Boardsuche habe ich schon rausgefunden, dass man den Client als root starten muss (ob damit dann alles funktioniert, kann ich aber erst morgen sagen ;)). Eine alternative Lösung gibt es allerdings (fast) nicht zu finden. Hat jemand eine Idee? Oder kann mir jemand bitte erklären, wie man das folgende macht:

2.6. Probleme mit Privilegien unter Linux

Mit Suse Linux 9.3 beschreibt ein UNIBAS-Nutzer Probleme mit dem Cisco vpnclient:
Es ist nicht möglich als normaler User mit ~> vpnclient connect UniBasel den VPN-Tunnel aufzubauen. Es folgt die Fehlermeldung:
"Privilege Separation: unable to drop privileges. The application was unable to communicate with the VPN sub-system." (Als root lässt sich die Verbindung aufbauen.)
Der Nutzer konnte das Problem loesen indem er das Sticky-Bit auf das Binary (daemon) /opt/cisco-vpnclient/bin/cvpnd setzte, also:
---s--x--x 1 root bin 1943604 2005-06-08 15:12 cvpnd*

Quelle: http://urz.unibas.ch/index.cfm?F19548F7C09F28B63426143477E36FEE#sticky

So wirklich will ich mich nämlich nicht damit abfinden, dass nur als root geht.
 

nbkr

Guru
Das geht aber nur als root. Der VPN Client fummelt massiv an den Routingtabellen des Systems rum um alle Verbindungen über die VPN Verbindung laufen zu lassen. Das mit dem Sticky bit ist nur ein Trick. Damit wir das Program mit der Benutzerkennung des Besitzers der Datei gestartet. Da die Datei root gehört also mit root rechten.

Abgesehen davon ist Sticky Bit der falsche Ausdruck. Das Sticky bit verhindert das man was löschen kann. Das was dort zum Einsatz kommt ist eigentlich Setuid.

Ohne Setuid wird ein Programm immer mit den Rechten des Benutzers welcher den Befehl zum starten gegeben hat gestartet.
 

Calvin

Hacker
nbkr schrieb:
Das geht aber nur als root.

Vielen Dank für die ausführliche Erklärung. Dann wird mir wohl nichts anderes übrig bleiben, als jedesmal zwei Passwörter einzugeben, wenn ich mal kurz was nachschauen will :(

Gruß
Calvin, der sich jetzt erstmal über setuid informieren geht ;)
 

mada

Hacker
Zwei? Eigentlich sollte root reichen! Das Passwort für den vpn-Tunnel selbst kannst in das jeweilige Profil reinnehmen, dann wird es einmal ausgelesen und verschlüsselt abgelegt. Irgendwo hab ich allerdings mal gelesesn, dass hier Cisco geschlampt hat und das nicht rock-solid ist... Leider keine Quelle mehr parat.

GroupPwd=blabblubb
UserPassword=blablubb

daraus wird dann
enc_GroupPwd und enc_UserPassword
 

Calvin

Hacker
Ich glaube, ich muss noch ein paar Schritte zurück, um zu verstehen wie der CISCO-VPN-Client funktioniert :( Ich kriege nämlich keinerlei Verbindung an der FH *schnief*

Wenn ich an der FH vpnclient connect <fh-profil> eingebe, bekomme ich die Meldung
Code:
[...]
Initializing the VPN connection.
Secure VPN Connection terminated locally by the client
Reason: Failed to establish a VPN connection
There are no new notification messages at this time
Laut google bin ich nicht der einzige, der diese Meldung bekommt.

Zu Hause kriege ich die Meldung übrigens nicht, obwohl dort natürlich kein Accesspoint der FH ist. Die genaue Ausgabe habe ich aber leider nicht hier. Die kann ich erst heute abend posten.

Dann habe ich noch versucht, meinen Benutzernamen und Passwort in die Profildatei einzutragen, aber auch das hat nichts geändert.

Ich weiß überhaupt nicht, wo ich ansetzen soll, um eine Verbindung zu kriegen. Mit Kinternet kann ich nach drahtlosen Netzwerken suchen, und bekomme immerhin zwei angezeigt (ESSID <hidden>). IMHO läuft also die WLan-Karte?! :?:

Überforderte Grüße
Calvin
 

nbkr

Guru
Gib doch mal ein Übersicht über das Netzwerk an und für sich. Welche Karten hast Du im Rechner, wie sind die konfiguriert, wofür brauchst Du das VPN (Remote Access oder nur zwecks Verschlüsselung).
 

Calvin

Hacker
Inzwischen läuft es. Ich habe diverse Dinge gemacht, habe aber nicht verstanden, warum es mit dem jetzigen Vorgehen funktioniert bzw. ob man es kürzer machen könnte.

Zu den Vorraussetzungen: ich möchte den WLan-Zugang auf dem Gelände meiner Fachhochschule nutzen. Hierzu gibt es eine ausführliche Anleitung zur Installation des vpn-Clients. Die Konfiguration der WLan-Karte hat größtenteils YaST beim installieren von SuSE10 gemacht. Alles weitere ist in der Anleitung beschrieben. Das Kommando iwconfig eth1 essid <name> habe ich auch als root in die Konsole eingegeben. Ich habe das aber im Laufe meiner Versuche nochmals manuell in YaST eingetragen. Keine Ahnung, ob das notwendig war :?:

Eine Profiledatei für den vpn-Client wurde auch zum Download angeboten. Diese habe ich wie beschrieben an die entsprechende Stelle kopiert.

Nun habe ich es mit folgendem Verfahren zum Laufen gebracht:
- kinternet starten und mit dem Accespoint verbinden
- vpnclient connect <profil> eingeben und Username/Passwort eingeben.

Irgendwie habe ich das Gefühl, ich habe etwas doppelt gemacht. Aber anderst lief es bei mir nicht :(
 

mada

Hacker
Irgendwie habe ich das Gefühl, ich habe etwas doppelt gemacht.
Nö, sieht gut aus. Der iwconfig Befehl zum setzen der Essid hält nur temporär vor. Aber es reicht schon, z.B. mit kinternet die Gegend abzusuchen und Dich einzuwählen, dabei wird dann auch die Essid richtig gesetzt.

Noch ein Tip: wenn Du verschiedene Netzwerkkonfigurationen hast, dann schau Dir mal den Profilmanager an, damit kann man auch zusätzliche Skripten starten, evtl. kann man da dann auch schon den vpn-Verbindungsaufbau integrieren.
 

Calvin

Hacker
Beruhigend zu lesen *erleichtertdenschweißvonderstirnwisch* ;)

Das mit dem Skript klingt gut. Habe ich nach deinem Hinweis selbst entdeckt :) Aber so ganz erschließt sich mir noch nicht, wie das gehen soll. Die Internetverbindung stelle ich als normaler User her, der vpnclient muss aber als root gestartet werden. Irgendwo im Skript müsste ich also zu root werden?! :?:

Außerdem habe ich noch nicht rausgefunden, wie meine Zugangsdaten im vpnclient gespeichert werden. Lediglich mein Nutzername ist als Standardwert hinterlegt.

Ich müsste also im Skript irgendwie zwei Eingaben machen. Oder sehe ich das falsch? Wie kriege ich das mit den Eingaben hin, wenn ich das Skript nicht direkt in der Konsole starte?

Trotzdem bin ich aber mal froh, dass alles läuft (wenn auch der Startprozess Optimierungsbedürftig ist ;))

Danke an die zwei Helfer :)
 

mada

Hacker
Calvin schrieb:
Die Internetverbindung stelle ich als normaler User her, der vpnclient muss aber als root gestartet werden. Irgendwo im Skript müsste ich also zu root werden?! :?:
Eigentlich braucht der SCPM selbst auch root-Rechte. Man kann es allerdings so einrichten, dass es auch normalen Usern erlaubt ist, zwischen den Profilen und damit auch u.a. zwischen verschiedenen Netzwerkeinstellungen umzuschalten -- dazu gibt es ein kleines Trayapplet. Netzwerkeinstellungen ändern braucht aber normalerweise auch root, und aus der Tatsache dass man das nicht sein muss schließe ich mal, dass die einzelnen Aufrufe dann von SCPM schon mit root-Rechten ablaufen, ausgelöst aber eben durch einen normalen Nutzer. Wenn das vpn-script eingetragen wird, sollte das dann auch klappen, denke ich mal...

Außerdem habe ich noch nicht rausgefunden, wie meine Zugangsdaten im vpnclient gespeichert werden. Lediglich mein Nutzername ist als Standardwert hinterlegt.
Meinst Du die Essid? Die könntest Du z.B. im YaST eintragen, und diese Netzwerkeinstellungen dann eben im SCPM speichern... Der SCPM-Aufruf sollte dann eben mit dem AP kommunizieren, und dann einfach connecten mit
Code:
vpnclient connect $PROFIL

Ich müsste also im Skript irgendwie zwei Eingaben machen. Oder sehe ich das falsch? Wie kriege ich das mit den Eingaben hin, wenn ich das Skript nicht direkt in der Konsole starte?

Trotzdem bin ich aber mal froh, dass alles läuft (wenn auch der Startprozess Optimierungsbedürftig ist ;))

Danke an die zwei Helfer :)
Also ich denke nicht, vorausgesetzt, dass die WLAN-Assoziierung reibungslos war sollte nix weiter mehr nötig sein....

....*denk*....

Hmm obwohl wenn ich so drüber nachdenke: der Cisco VPN-Client WILL immer in einer Konsole laufen, da führt kein Weg dran vorbei... Vergiss den Vorschlag, das in den SCPM mit reinzunehmen. Bei mir disconnected der Client schon dann, wenn ich die Konsole in der er läuft auf eine andere Arbeitsfläche verschiebe.

Trotz allem: soooo katastrophal unkomfortabel ist der Startmechanismus auch nicht, und Du hast immer die Gewissheit zu wissen, ob alles geklappt hat.
 

Calvin

Hacker
mada schrieb:
Meinst Du die Essid? Die könntest Du z.B. im YaST eintragen, und diese Netzwerkeinstellungen dann eben im SCPM speichern...

Nein, ich meine den Username und das Passwort, mit dem ich mich im Netzwerk einwähle. Das habe ich in der Profildatei eingetragen. Ich glaube aber, dass ich den entscheidenden Punkt zum Speichern des Passwortes gefunden habe ;) Im Profil SaveUserPassword=1 Da stand vorher eine 0.

Und wenn ich mir deine Antwort bezüglich des Skrits so ansehe, dann werde ich deiner Empfehlung folgen und es so lassen.

Danke und gute Nacht
Calvin
 
Oben