SSL-VPN unter Lenny |
|
erstellt 09.2009
Nach dem die Firma 3SP Ltd. nun offiziell von Barracuda Networks übernommen wurde, ist die Technologie des
SSL-Explorer in ihr eigenes kommerzielles Produkt "Barracuda SSL VPN" integriert worden.
Die Weiterentwicklung von SSL-Explorer wurde von der Community mit den Namen Adito übernommen.
|
Download ADITO
|
ADITO
ADITO im Überblick:
|
|
Systemvoraussetzungen
ACHTUNG: nicht aus dem gleichen Netzt!)
Funktionsweise
Eine ADITO-Sitzung läuft vereinfacht dargestellt in folgenden Schritten ab:
Installation
Aus Sicherheitsgründen und der einfachheitshalber geh ich von einem frisch aufgesetzten Debian Lenny
"Standard System" (ohne Zusätze) aus. Siehe Grundinstallation.
Installieren wir erst mal uns den mc.
$ apt-get install mc
Da das benötigte Java aus dem non-free Softwarebereich stammt, müssen wir die sources.list anpassen.
$ mcedit /etc/apt/sources.list
Am Ende der Datei die Zeilen
deb http://ftp.de.debian.org/debian/ etch main non-free contrib
einfügen.
Da wir alles nur noch aus dem Internet installieren wollen, löschen wir noch die Zeile deb cdrom.... aus der sources.list.
Nun updaten wir unser System und installieren alle benötigten Pakete.
$ aptitude update
$ aptitude upgrade
$ aptitude install build-essential
$ aptitude install java-package
$ aptitude install ant
$ aptitude install sun-java5-jre
$ aptitude install sun-java5-jdk
Wenn alles geklappt hat sollte der Befehl java -version folgendes ausgeben.
$ java -version
java version "1.5.0_17"
Java(TM) 2 Runtime Eviroment, Standard Edition (build 1.5.0_14-b03)
Java HotSpot(TM) Client VM (build 1.5.0_14-b03, mixed mode, sharing)
Sollte diese Ausgabe nicht passen, so ist vermutlich neben Suns Java noch eine weitere JVM installiert
(z.B. GIJ, Sablevm, Kaffe oder Jamvm). Soll in Zukunft Suns Java als Standard verwendet werden, kann dies mit
$ update-alternatives --config java
Es gibt 3 Alternativen, die »java« bereitstellen
Auswahl Alternative
--------------------------------------------------
1 /usr/bin/gij-wrapper-4.1
*+ 2 /usr/lib/jvm/java-gcj/jre/bin/java
3 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
Drücken Sie die Eingabetaste, um die Vorgabe[*} beizubehalten,
oder geben Sie die Auswahlnummer ein: 3
für die JVM und mit
$ update-alternatives --config javac
Download der aktuellen Version von sourceforge.net
Mein link auf die adito-0.9.1-src.tar.gz war
http://downloads.sourceforge.net/project/openvpn-als/adito/adito-0.9.1/adito-0.9.1-src.tar.gz
und somit lautet die Befehlszeile:
$ cd /opt/
$ wget http://downloads.sourceforge.net/project/openvpn-als/adito/adito-0.9.1/adito-0.9.1-src.tar.gz
Jetzt enpacken wir das ganze
$ tar -zxvf adito-0.9.1-src.tar.gz
und gehen in den erstellten Ordner
$ cd adito-0.9.1
Jetzt kann die Installation erfolgen mit
$ ant install
Wenn die Bildschirminformationen alle durchgelaufen sind erschein am Schluss folgendes
[java] Starting installation wizard..............Point your browser to http://scovery.scovery:28080.
Windows Installation
Auf den zweiten Rechner in das Browserfenter die Adresse mit dem Port eingeben:
http://10.1.0.2:28080
und den Anweisungen des Installation Wizard befolgen.
Mann kann jeder Zeit die Installation abbrechen durch einen klick auf Cancel.
Meine Auswahl:
Step 1 - Configure Certificate
· Create New Certificate
Step 1 - Set Keystore Passphrase
· Passphrase: | geheim,geheim
Step 1 - Create New Certificate
· Host name: | localhost
· Organisational unit: | ich
· Company: | privat
· City: | muehldorf a. inn
· State: | test
Step 2 - Configure User Database
· Built-in
Step 3 - Configure Super User
· Username: admin
· Email: admin@lug.de
· Password: admin
Step 4 - Configure Web Server
· [alles auf Standard belassen!]
Step 5 - Configure Proxies
· [alles auf Standard belassen!]
Die Zusammenstellung bestätigt
Exit Install anklicken.
Linux
Nach Abschluss der Installation ist der Service heruntergefahren, wir müssen noch folgenden Befehl ausführen:
Exited Installer.
You may now restart the service
Service (Dienst)
Mit ant install-service werden die Startskripte unter /etc/init.d sowie die Links in den Runleveln erzeugt.
$ ant install-service
Sollte ADITO nicht immer laufen sondern nur bei bedarf aktiviert werden, kann dieses mit
$ ant console
gestartet werden.
Die deinstallation des Service erfolgt mit
$ ant uninstall-service
.
Starten wir nun den Dienst mit
$ /etc/init.d/adito start
oder
$ cd /opt/adito-0.9.1
$ /opt/adito-0.9.1/ant console
Nach der Änderung und nach jedem Neustart des Systems muss ADITO ein Restart bekommen.
$ /etc/init.d/adito restart
Aus diesem Grund starte ich ADITO mit $ ant console
ohne Autostart, nur wenn ich ihn benötige.
Dieser Fehler ist aus dem Grundsystem SSL-Explorer übernommen worden.
Installation des Agenten erfolgt mit:
$ cd /opt/adito-0.9.1/adito
$ ant install-agent
$ /etc/init.d/adito restart
Windows Installation
Auf den zweiten Rechner in das Browserfenter die Adresse mit dem entsprechenden Port eingeben:
https://10.1.0.2
Der Browser wird das Certifikat nicht akzeptieren, da wir es selber erstellt haben.
Dieses kann Bestätigt werden, und nach dem einloggen erscheint der Startbildschirm des ADITO.
Ein Test mit:
$ keytool -genkey -alias agent -keystore agent-keystore.p12 -keypass geheim -storetype PKCS12 -dname "cn=ssl-vpn.test.de"
-storepass geheim -validity 730
war noch nicht erfolgreich.
Ein Test mit:
$ keytool -genkey -alias agent -keystore agent-keystore.p12 -keypass geheim -storetype PKCS12 -dname "cn=ssl-vpn.test.de"
-storepass geheim -validity 730
war noch nicht erfolgreich.
ADITO Einrichtung
Ein Ersatz der Bedienungsanleitung von ADITO/SSL-Explorer kann ich nicht bieten!
Aber den Ersteinstieg möchte ich erleichtern!
!!! ACHTUNG !!!
Sollten Sie sich nach einem Neustart vom Linux-Server nicht mehr am ADITO anmelden können,
könnte es an der falschen charset der jcifs.encoding in der system.propertis
liegen.
Tragen Sie den charset Wert aus der
/etc/java-1.5.0-sun/flavormap.properties
STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0
in die
/opt/adito-0.9.1/adito/conf/system.properties
jcifs.encoding=UTF-8
ein.
Eine Anleitung in englisch für den aktuellen SSL-Explorer finden Sie als
HTML
und als
PDF.
Eine ADITO Beschreibung ist mir nicht bekannt!
Jeder Link hat eine Kurzbeschreibung die erscheint wenn man darüber verweilt.
Managementkonsole
Configuration
System Configuration |
Server |
Resources |
Windows Integration |
Security Options |
Messaging |
Extension Store |
SSL Certificates |
Attribute Definitions |
Access Control
Zugriffskontrolle
Accounts |
Groups |
Policies |
Access Rights |
Authentication Schemes |
IP Restrictions |
Resources
Web Forwards |
Network Places |
Applications |
SSL-Tunneling |
Profiles |
System
Status |
Message Queue |
Shutdown |
Toggle options view |
ADITO Agent |
Home |
User Console |
Management Console |
Help |
Logoff |
Erste Schritte
Admin ändern
Das Konto Admin ist sehr schützenswert, da es naturgemäß alle Einstellungen vornehmen kann.
In der Management Console klicken wir auf Access Control / Accounts.
Nun werden uns alle User angezeigt die im System angelegt worden sind.
Im Moment beschränkt sich die Liste auf den Admin den wir mit einem klick auf
bearbeiten können.
Im Reiter Details kreuzen wir Reset password an und Im Reiter Security Questions sollten wir
für jede Frage die nach dem Login erscheint einen überlegten Text eintragen.
Sind alle Angaben vollständig kann das ganze gespeichert werden.
Jetzt erscheint die Abfrage des neuen Passwortes.
Hierzu überlegen sie sich bitte ein Internetfestes Passwort welches keine Namen oder Begriffe beinhaltet
sowie min. zwei Zahlen und min. 2 Sonderzeichen!
Damit die zusätzlichen Fragen bei der Anmeldung auch erscheinen schalten wir diese unter
Access Control / Authentication Schemes unter der Zeile Default klicken wir auf das Bild_edit (
).
Im Reiter Modules verschieben wir Personal Questions (Secondary) in den Bereich
Selected modules (rechts).
So jetzt nerven wir alle Anwender mit der zusätzlichen Frage, solange wir nicht uns mit dem
ausgefeilten Rechtesystem auseinander gesetzt haben.
Weitere Anwender anlegen
Um weitere Anwender anzulegen gehen wir in Access Control / Accounts und klicken auf Create Account
(rechts oben unter Actions)
Tragen wir im ersten Reiter Details den Usernamen ein, dieser ist auch der Anmeldename.
Die Felder Fullname und Email ausfüllen und das Enable anhaken.
Im Reiter Profiles muss nichts geändert werden, sollte aber auf default gestellt werden um den Anwender nicht zu verwirren.
Im Reiter Security Questions tragen wir keine Werte ein, die soll der Anwender sich selbständig aussuchen.
Nach dem Speichern (Save) erscheint die Passworteingabe, hier tragen wir ein Standardpasswort ein,
welches wir den Anwender mitteilen. Damit der Anwender auch sein Passwort ändern muss hacken wir
Force user to change password at next logon an.
Weitere Anwender können Sie nach dem gleichem Schema anlegen, für die Verwaltung steht
zur Verfügung.
Erstellen wir eine neue Anwendung (Putty)
Am einfachsten ist es wenn wir eine Anwendung für den Linux - Rechner installieren, dazu eignet sich Putty
hervorragend.
Gehen wir auf Extension Store unter Management Console / Configuration / Extension Manager
und Reiter Remote Access.
Um Putty zu installieren klicken wir in der Zeile auf
,
Putty SSH wird installiert und erscheint jetzt im Reiter Installed.
Die Anwendung kann jetzt unter Resources / Applications erstellt werden. Hierzu klicken wir auf
Create Application Shortcut (oben rechts unter
)
Im erstem Schritt markieren wir die entsprechende Applikation Putty SSH und klicken Next.
Im zweitem Schritt vergeben einen sprechenden Namen wie Putty (LUG) und unter Description:
geben wir eine Erläuterung ein wie Zugang über Putty auf dem Server LUG.
Das Feld Add to favorites markieren wir und klicken auf Next.
Im dritten Schritt geben wir im Reiter Connection die IP-Adresse des Linux-Rechners an, sowie den
Benutzernamen an.
Die Inhalte der Reiter SSH, Kex, Auth, X11, Tunnels bleiben unverändert.
Im viertem Schritt ordnen wir die noch einzige Policy den verwendeten Bereich zu (rechts).
Im vorletzten Schritt bestätigen wir die gemachten Angaben.
Im letzten Schritt beenden wir den Wizard und die Applikation steht bereit.
Trockenschwimmer
Testen wir das frisch erstellte Programm Putty ohne Internetverbindung aber mit SSL und einen entsprechenden
Anwender usw... .
Melden wir uns ab (oben rechts ->] ) und melden uns wieder als normaler Benutzer an.
|
Alle Vertrauensfragen bestätigen!
|
Alle diese Meldungen werden auch bei Ihren Benutzern auftauchen, solange man kein SSl-Root-Zertifikat das
vertrauenswürdig ist, in den ADITO importiert hat. Natürlich wird eine SSL-VPN verschlüsselte
Verbindung aufgebaut! Eine SSL-Zertifikat gibt es ab ca. 20 Euro pro Jahr.
Entweder Anwender schulen und eine eigene Hotline aufbauen, oder in die Portokasse greifen.
Clientbetriebssystem
Leider besteht eine Abhängigkeit bei dem verwendeten Betriebssystem des Client, wenn Programme direkt auf dem
Client ausgeführt werden, dieses ist bei Putty und RDP Terminalserver der Fall. Sollten die Anwender
unterschiedliche Betriebssysteme verwenden, sollte in der Namensgebung dieses vermerkt sein.
Die Anwendung müssen auf dem Client vorhanden sein, wenn sie keine Java Programme sind!
Gruppenbildung / Berechtigungen
Gehen wir davon aus, das Sie eine Gruppe Anwender haben die nur per RDP auf einen Server dürfen und eine Gruppe
Admins die eine Menge dürfen. Jeweils ein Account pro Gruppe ist angelegt.
Gruppe:
Gehen wir auf Access Control / Groups und legen die Gruppe G_User an
(Create Group rechts oben).
Tippen Sie im Feld Account den Anfangsbuchstaben Ihres Users ein und der User erscheint und kann mit der
Maus ausgewählt werden. Mit einem Klick auf Add verschieben Sie den User nach rechts und fügen somit diesen
User der Gruppe hinzu. Speichern mit Save
Policies:
Gehen wir auf Access Control / Policies und legen die Policy P_User an an (Create Policy
rechts oben). Im Wizard gehen wir jetzt einen Punkt nach dem anderen durch, als ertses Bezeichnen P_User an
vergeben eine Beschreibung "Policy normaler Anwender". Im zweiten Punkt ordnen wir eine Gruppe zu. Gib im
Feld Group ein "G" ein und alle Gruppen erscheinen zur Auswahl. Mit "Add" schieben wir die Ausgewählte Gruppe
In das Feld "Selected Groups". Mit "Next" kommen wir in "Summary" bestätigen mit "Finish".
Access Rights:
Gehen wir auf Access Control / Access Rights und legen die Rechte PR_User an
(Create Personal Right rechts oben).
Diese Rechte werden nur zur Anmeldung benötigt, Administrative Rechte benötigt kein Anwender.
Füllen Sie entsprechenden Felder im Reiter Details aus und gehen anschließend in den Reiter
Access Rights. Hier können Sie alle Berechtigung nach rechts schieben außer Language Change was
noch nicht unterstützt wird (leider). Im Reiter Policies sollte nur P_User stehen.
Sollte ein Anwender z.B. sein Passwort nicht ändern dürfen können Sie diese Berechtigung (Reiter Access Rights)
nach links schieben (Password Change).
Damit diese Berechtigung auch greifen muss die Policies von Global Permissions leer sein!
Resources:
Welche Anwendungen der Anwender sieht und anwenden kann, steuern Sie in den Resourcen unter den
Reiter Policies. Schieben Sie nur die Gruppe nach rechts die auch diese Anwendung starten dürfen.
Und jetzt geht's ans testen!
RDP-Client's
Welchen RDP-Client nehmen wir jetzt den?
Der Remote Desktop Protocol (RDP) ist in Java geschrieben und funktioniert auch unter Linux. Im Fullscreen-Modus
ist kein Unterschied mehr zum lokalen arbeiten. Lokale Ressourcen können nicht verwendet werden (was auch nicht mein
Ziel ist). Im direkten Vergleich mit dem MS-Client ist er ein bisschen träger.
Der Microsoft RDP Client benötigt ein aktuelles Windows als Betriebssystem auf dem RDP installiert ist.
Die Einstellungen sind weitreichender, es können auch lokale Ressourcen eingebunden werden. das Caching macht sich
schon bemerkbar. Der Fullscreen- Modus hat noch den typischen RDP- Balken oben, was ja auch seine Vorteile hat.
Da ADITO nur den Javaclient anbietet, muss der der Microsoftclient nachinstalliert werden, dieses soll aus einem
installierten SSL-Explorer möglich sein, oder man verwendet die Anleitung von
3sp.com.
Der Nachteil ist das die Datei mstsc.exe und mstscax.dll immer vom Server geladen werden muss.
Citrix Java Client
Da meine Extension von Citrix nur für den SSL-Explorer klappt und ich keine Testmöglichkeit habe,
muss der geneigte Anwender in der Doku umschauen.
SSL-Tunnel
In die Tunnel-Verwaltung gelangen Sie über die "Management Console" , "Resources", "SSL Tunnels".
Über "Create Tunnel" wird der erste Tunnel angelegt.
Im ersten Fenster wird eine aussagekräftiger Name vergeben und eine Beschreibung des Tunnels.
Im zweiten Fenster geben Sie die Quelle und das Ziel des Tunnels an.
Die Quelle ist am sinnvollsten die localhost 127.0.0.1 und Ports 80.
Ein Autostart der Verbindung kann gesetzt werden.
Der Tunnel ist einsatzbereit.
Router
Nach dem der Trockenschwimmertest erfolgreich verlaufen ist, können wir eine Verbindung aus dem Internet aufbauen.
Hierzu muss die Firewall des Routers so angepasst werden, das alle Anfragen aus dem Internet auf den
Port 443 (SSL) auf unserem ADITO auf den Port 443 weitergeleitet werden.
|
Für den ersten Verbindungstest aus dem Internet benötigen Sie noch Ihre Internet-Adresse entweder aus Ihrem
Router oder von dieser Seite:
Die aktuelle IP-Adresse ist: 18.226.17.3
Von einem anderen Internetanschluss geben Sie https://ip-adresse ein und die ADITO-Anmeldung erscheint.
Natürlich haben Sie morgen eine andere IP und müssen somit den Vorgang erneut durchführen.
Abhilfe schaffen DynDNS.org und deren Kollegen, bei denen eine Alias-Adresse zur Verfügung steht.
Extensionen im Vergleich.
SSL-Explorer Installierte SSL-Explorer Agent SSL-Explorer Active Directory SSL-Explorer UNIX SSL-Explorer Tunnels SSL-Explorer Applications SSL-Explorer Network Places SSL-Explorer Web Forwards SSL-Explorer Automatic Updates Remote Access Citrix Published Applications Elusiva Java RDP JTA - Telnet/SSH for Java Linux RDesktop Microsoft RDP Client NX Client PuTTY PuTTY SSH PuTTY Telnet Radmin remote control Remote Desktop Protocol (RDP) TN5250 AS/400 Terminal Emulator TightVNC (Java) UltraVNC UltraVNC Proxy WinSCP Access Control SSL-Explorer Client Certificates SSL-Explorer Enhanced Active Directory SSL-Explorer IP Authentication SSL-Explorer Key Authentication SSL-Explorer LDAP SSL-Explorer NIS SSL-Explorer OTP/SMS SSL-Explorer PIN Authentication SSL-Explorer RADIUS Authentication Resources SSL-Explorer Converse SSL-Explorer Drive Mapping SSL-Explorer Network Extensions SSL-Explorer Outlook RPC/HTTP Proxy SSL-Explorer SFTP Network Places SSL-Explorer Secure Node SSL-Explorer Virtual Hosts User Interface SSL-Explorer Brandless Logon SSL-Explorer Mail Check SSL-Explorer Time SSL-Explorer Virtual Keyboard | ADITO Installierte Adito Agent Adito Active Directory Adito UNIX Adito Tunnels Adito Applications Adito Network Places Adito Web Forwards Installierbar ist: ProperJavaRDP PuTTY SSH PuTTY Telnet TN5250 AS/400 Terminal Emulator TightVNC (Java) UltraVNC UltraVNCproxy WinSCP |