It is currently 19.10.2017 06:59


All times are UTC




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Authentication Plugin für OpenVPN mit SQLite backend
PostPosted: 04.03.2007 10:40 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Hallo

Einleitung
Da immer mehr Leute eine zusätzliche Authentifikation mittels Username/Password bei ihren OpenVPN Setups anstreben, dachte ich mir, ich schreibe ein kleines OpenVPN Plugin dafür. Dieses sollte sowohl auf Windows als auch auf Linux laufen.
Es verwendet eine SQLite Datenbank um die Logininformationen zu speichern. Warum SQLite ? Es ist klein, portabel und die Daten liegen in einer einzigen Datei. Das heißt so Dinge wie Datensicherungen sind kein Problem. Zusätzlich muss kein extra Prozess am Server laufen.

Gleich noch ein Hinweis: OpenVPN bietet Username/Passwort-Verifikation nur als zusätzliche Sicherung an! Man sollte immer auch Zertifikate nutzen.


Download
Achtung, diese Software ist bei weitem noch nicht ausgetestet. Daher nur für experimentierfreudige Leute geeignet und weniger für den Großeinsatz. Wer sie dennoch testen möchte, findet hier weitere Informationen und Downloads:
Project home page (englisch)

Die aktuelle Version ist 1.0.0.
Die aktuelle ungetestete Version ist 1.1.0. (Hinweis: Aufrufsyntax für ovpnauth hat sich geändert)

Bei Gefallen an dem Plugin kann ich auch eine deutsche Anleitung für das Wiki schreiben.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Last edited by note on 02.07.2008 23:46, edited 1 time in total.

Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 12.06.2007 11:02 
Spitzen Authentifikationstool/Libary! Funktioniert prima, danke.

Gruß,
Florian


Top
  
Reply with quote  
 Post subject:
PostPosted: 23.08.2007 20:41 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Hallo note,

bevor ich es auf dem Server loslasse, kannst Du kurz umschreiben, wie dann die User
in der DB gespeichert werden können? Ich muß die ja irgendwie dort hinein bekommen.
Danke

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 24.08.2007 07:31 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Hallo

Der Hauptgedanke bei dem Plugin war, es für Privatanwender zu schreiben die erweiterte Sicherheit durch User/Pass-Handshake haben möchten. Daher rate ich vom Einsatz im Business-Bereich grundsätzlich ab, auch wenn theoretisch bei den paar Zeilen Code nicht viel passen kann.

Soviel zum Disclaimer, jetzt die Antwort auf deine Frage. :)
Die Datenbank ist wie schon oben steht SQLite. Du kannst sie daher mit dem Standardtool für SQLite bearbeiten und SQL Anweisungen absetzen um so User hinzuzufügen, zu löschen usw.
Ich habe aber aus dem Entwickungsgrund, auch ein kleines Programm geschrieben, das die Userdatenbank von der Kommandozeile bearbeiten kann.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 24.08.2007 16:34 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Gibt es das Programm für die Kommandozeile auch für Windows?
In der Install.txt steht was von ovpnauth, allerdings ist das nicht Bestandteil des "Precompiled package for Windows". Ich habe auch mal SQLite heruntergeladen, aber damit kann ich nicht wirklich was anfangen. Tut mir Leid.

Letztlich funktioniert die Authentifizierung auch mit der Batch Lösung aus dem WIKI. Allerdings muß ich dann User und Passwort in einer Textdatei speichern. In der Datenbank sind die Daten besser aufgehoben.

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 25.08.2007 09:38 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Hallo

Danke für den Hinweis, habe die ovpnauth.exe dem Archiv hinzugefügt. Hier ist der Link: http://www.trooth.cc/projects/authsqlit ... -1.0.0.zip

Du siehst mit ovpnauth --help die möglichen Operationen. Einen Fehler habe ich bereits bemerkt: du musst immer bei den Operationen die DB als letzten Parameter angeben (ist also nicht optional wie --help vermuten lässt).
z.B.
ovpnauth --add user1 pass1 db-file.db
ovpnauth --show db-file.db
ovpnauth --newpass user1 passneu db-file.db

ovpnauth.exe muss im selben Verzeichnis wie die sqlite3.dll sein. Optimalerweise auch wie das DB File.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 25.08.2007 18:03 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Hallo note,

Danke für die Aktualisierung. Habe auch schon User in die db eingtragen.
Leider sieht man die Einträge in der db wenn man sich diese mit einem Lister oder Editor anschaut. Ich dachte die Einträge sind dann doch etwas kryptischer.

Habe gerade mal die db auf dem Server aktiviert, aber leider ist eine Anmeldung nicht möglich!
Das Plugin wurde geladen:
Sat Aug 25 19:58:02 2007 us=691000 PLUGIN_INIT: POST authsqlite.dll '[authsqlite.dll] [database-file.db]' intercepted=PLUGIN_AUTH_USER_PASS_VERIFY

Außerdem ist mir aufgefallen, daß sich User in der db nicht löschen lasssen.
Es kommt zwar ein "1 entries deleted", aber wenn ich mir die db danach anschaue, sind die User immer noch drin.

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 25.08.2007 18:52 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Nachtrag, muß am lokalen Client liegen. Ein anderer Client von "außen" kann sich verbinden.
Beim lokalen Client erhalte ich folgenden Fehler:
Sat Aug 25 20:45:45 2007 us=212348 ERROR: could not read Auth username from stdin
Achja, Server ist die 2.1rc4, beide Clients sind noch 2.09.

Muß ich mich mal auf die Suche machen.

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 25.08.2007 19:23 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Fehler gefunden!!!!!!!!!! Schwere Geburt, aber da muss man erst einmal drauf kommen.
Bei dem lokalen Client kam immer die Abfrage nach Username und Passwort.
Danach kam noch eine 2. Abfrage wo nur das Passwort abgefragt wurde.
Dieses kam beim 2. Client nie!
Nach vielen Versuchen und Abbrüchen habe ich das ganze 3 x gemacht.
Dann wurde entsprechend auch das Log mit der Fehlermeldung erzeugt:

Sat Aug 25 21:07:09 2007 us=423463 Error parsing PKCS#12 file ....\Client1.p12: error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure: error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure
Sat Aug 25 21:07:09 2007 us=423492 Error: private key password verification failed
Sat Aug 25 21:07:09 2007 us=423501 Exiting

Da viel mir der Schleier von den Augen! Das 2. Passwort ist für den privat key!
Das ist mir beim Testen mit der Batch-Abfrage nie aufgefallen, da ich dort das selbe PW nutzte.
Ich wunderte mich zwar, warum er es noch einmal haben wollte, habe dem aber keine
Bedeutung geschenkt.

Ist das jetzt Anfängerpech, oder muß man das wissen?
Na ja, jedenfalls stelle ich das der Allgemeinheit zur Verfügung. :)

PS. Kann man den privat key löschen oder braucht man dann gleich ein neues Zertifikat?
Gruß
mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 26.08.2007 07:28 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Hallo

Den Fehler mit dem Userlöschen kann ich nicht nachvollziehen. Habe folgende Schritte ausgeführt um es zu testen:
Code:
> ovpnauth --show database-file.db
Username | Password | Enabled |
-------------------------------
Found 0 entries in database.

> ovpnauth --add user1 pass1 database-file.db
1 entries inserted.

> ovpnauth --add user1 pass1 database-file.db
SQL error: column username is not unique
0 entries inserted.

> ovpnauth --add user2 pass1 database-file.db
1 entries inserted.

> ovpnauth --add user3 pass1 database-file.db
1 entries inserted.

> ovpnauth --delete user1 database-file.db
1 entries deleted.

> ovpnauth --show database-file.db
Username | Password | Enabled |
-------------------------------
user2 | pass1 | 1 |
user3 | pass1 | 1 |
Found 2 entries in database.


Zu dem Thema Sicherheit: Ja das ist noch nicht implementiert. Geplant wären verschlüsselte Passwörter in die DB abzulegen (z.B. mit MD5 oder SHA1), keine Ahnung ob das SQLite anbietet oder man es selbst einprogrammieren muss.

Man kann das Password vom privaten Schlüssel entfernen. Ich kenn den Befehl aber nicht auswendig. Es geht aber, soweit ich mich erinnern kann, im "openssl rsa" Kontext.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 26.08.2007 08:45 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
Das ist korrekt, mit --show werden die User nicht mehr angezeigt.
Allerdings wenn ich mir die db wiederum mit einem Lister betrachte,
sind die Einträge der gelöschten User nebst Passwörter noch in der DB enthalten.

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 26.08.2007 09:17 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Das ist bei Datenbanken und Dateisystemen meistens so. :) Bei FAT werden Dateien auch nicht wirklich gelöscht sondern nur als gelöscht markiert. Wenn neue Daten kommen, werden die alten überschrieben.

Wenn du aus Sicherheitsgründen die SQLite Datenbank optimieren möchtest, musst du nach dem Löschen den SQL-Befehl VACUUM ausführen.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 26.08.2007 09:44 
AES 128 bit
AES 128 bit

Joined: 23.08.2007 17:03
Posts: 65
Location: Thießen, Germany SA
OK, habs kapiert.
Aber das mit dem Vakuum, wäre das nicht ein Parameter für die ovpnauth.exe wert? :)
Mit anderen Worten, kannst Du die Funktion noch in die Exe mit hineinpacken?

mf


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 17.11.2007 14:56 
DES
DES

Joined: 17.11.2007 14:49
Posts: 8
Hallo,

es klappt... vielen Dank.

Wie kann ich es vermeiden, dass eine Benutzername sich gleichzeitig mehrmals einloggt.

Server: Debian Sarge
Client: WinXP Pro SP2

Vielen Dank im Voraus..


Top
Offline Profile  
Reply with quote  
 Post subject:
PostPosted: 18.11.2007 19:38 
openvpn.eu Admin
openvpn.eu Admin
User avatar

Joined: 23.01.2006 08:05
Posts: 3321
Location: near Vienna
Hallo

Das ist bei der Authentifikation nicht vorgesehen. Wenn du verhindern willst dass sich mehrere Leute gleichzeitig einloggen können, musst du jedem ein eigenes Zertifikat ausstellen.

_________________
regards,
note
Please take a look at our rules. Besucht mal unsere Wiki !


Top
Offline Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Moderator: Moderators Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Theme created StylerBB.net