Dokumentation zum Projekt

Werbung
Dokumentation zum Projekt
Fernsteuerung der Rechner der Staatlichen Berufsschule Roth
SSL:
1. Erklärung:
SSL ist die Abkürzung für "Secure Socket Layer." Dies sagt Ihnen zunächst
wahrscheinlich noch nicht sehr viel. Das SSL-Protokoll sorgt dafür, daß beim Surfen
im Web die Kommunikation zwischen dem Rechner zuhause und den Servern im
Internet verschlüsselt erfolgt. Dies ist beim Einkaufen oder bei Bankgeschäften per
Internet nicht nur zu begrüßen sondern sollte vom Kunden auch deutlich eingefordert
werden!
2. SSL-Verbindung aufbauen:
Der Browser fordert dann vom angesprochenen WWW-Server ein Zertifikat und den
öffentlichen Schlüssel (Public Key) Ihrer Internet-Präsenz an. Schlüssel und Zertifikat
werden vom Browser auf ihre Glaubwürdigkeit überprüft, dann wird, je nach
Einstellungen, der Surfer gefragt, ob er diese sichere Verbindung aufbauen will - oder
dies geschieht gleich automatisch.
Der Browser prüft anhand der übermittelten Daten, ob er wirklich mit dem Server
verbunden ist, der in der URL angegeben wurde. Ist das der Fall, zeigt der Browser
dies durch das zugeklappte Bügelschloß an.
Für jede Datenübermittlung handeln WWW-Server und Browser immer wieder neue
Schlüssel zur sicheren Übertragung aus, so daß ein möglicher Angreifer immer nur
einen viel zu kurzen Augenblick die Möglichkeit hat, einen Angriffspunkt zu finden.
Selbst wenn er es einmal schaffen sollte, hätte er schon bei der nächsten Verbindung
keinen Vorteil mehr.
3. Zertifikate:
Zum SSL-Protokoll gehört das digitale Schüsselpaar aus dem öffentlichen und dem
privaten Schlüssel des Servers. Ihren öffentlichen Schlüssel darf jeder kennen und
verwenden, ihr privater Schlüssel bleibt auf ihrer Internetpräsenz und muß
geheimgehalten werden. Der öffentliche enthält eine digitale Signatur, die bekräftigt,
daß es sich um den Schlüssel des angegebenen Unternehmen und der darin enthaltenen
Domain handelt
4. Quellen:
 http://www.pca.dfn.de
 http://www.openssl.org
 http://www.vhs-gm.de
LDAP:
1. Was LDAP ist:
LDAP - Definition
LDAP ist die Abkürzung für das Lightweight Directory Access Protocol. Wie der
Name sagt, unterstützt dieses Protokoll einen Verzeichnisdienst (Directory).
LDAP wurde in den frühen 90ern an der University of Michigan implementiert. Es
gibt
verschiedene
kommerzielle
LDAP-Server.
Mit OpenLDAP gibt es aber auch eine auf der Arbeit von Michigan basierende Open
Source-Implementierung von LDAP. OpenLDAP wird standardmäßig bei Linux und
BSD-Betriebssystemen verwendet und kann mit den meisten UNIX-Systemen genutzt
werden. Wir werden OpenLDAP auch in unserem Workshop verwenden.
2. Active Directory
Die Active Directory ist die Benutzerverwaltung unter Windows. In ihr stehen alle
Benutzer die sich auf diesem, oder auch auf anderen Rechnern anmelden können. Im
Klartext heißt das, es kann sich nur derjenige Anmelden, der auch in der Active
Directory eingetragen ist.
3. LDAP ermöglicht einfach und schnell:
 Normalisierte Datenhaltung
 Zentrale Verwaltung der Informationen
 Konsistenz in der Schnittstelle zum User
 Konsistenz in den Richtlinien für das Netzwerkmanagement
 Konsistenz in den Security Policies
4. LDAP erreicht diese Ziele durch folgende Eigenschaften (Version 3):
 LDAP
bietet
ein
Universaldesign
für
Verzeichnisdienste.
LDAP basiert auf der Definition von sog. Schemas. Ein Schema ist ein
objektorientiertes Konzept, das auch Vererbung unterstützt. Daher lassen sich
aus Standardschemas, auf die man sich in der IETF geeinigt hat, nach eigenen
Anforderungen spezialisierte Schemas ableiten.
 LDAP
ist
ein
einfaches
Protokoll.
Ein wichtiger Aspekt bei LDAP als Nachfolger des komplizierten DAP war die
Entwicklung eines simplen Protokolls, das einfach zu implementieren und
leicht zu benutzen sein sollte. Das hat schon Früchte getragen: Die meisten
Programmiersprachen unterstützen LDAP, genauso wie die meisten
Betriebssysteme.


LDAP
erlaubt
verteilte
Architektur
Durch Replikation ist es möglich, Teile oder auch den ganzen LDAP-Server
auf physisch getrennten Rechnern mehrfach vorzuhalten. Über Referrals
können LDAP-Server auf andere LDAP-Server zugreifen. Verzeichnisse kann
man so in logischen Portionen auf verschiedenen LDAP-Servern verteilt
halten, wobei jede Portion von einer anderen Institution gewartet wird.
LDAP
ermöglicht
die
Integration
von
Sicherheitskonzepten
Hier bringt insbesondere die LDAP-Version 3 signifikante Verbesserungen.
Für einen sicheren Zugang (Access) unterstützt LDAP Transport Layer
Security (TLS), womit die gesamte Kommunikation zwischen Client und
Server
verschlüsselt
ablaufen
kann.
Für eine sichere Authentifizierung kann unter LDAP auf den Simple
Authentication and Security Layer (SASL) aufgesetzt werden. Für die
Autorisierung wird sich höchstwahrscheinlich das ACL-Konzept durchsetzen.
Unter ACL (Access Control List) versteht man eine Liste mit Zugangsrechten.
Anhand dieser Liste entscheidet das Betriebssystem, welchen Zugriff eine
Benutzer auf die einzelnen Ressourcen wie zum Beispiel ein Verzeichnis oder
eine
Datei
hat.





LDAP
ist
ein
offener
Standard
Weil LDAP als offener Standard von der IETF (Internet Engineering Task
Force) entwickelt wird, kann es von jedem Entwickler, jeder Firma und jedem
Administrator genutzt werden. Man kettet sich nicht an ein proprietäres
Protokoll oder einen Hersteller. Und auch hier zeigt sich ein typischer Vorteil
offener Standards: Die LDAP-Benutzer bestimmen mit, in welche Richtung
die Entwicklung vorangetrieben wird.
LDAP Server müssen Auskunft über ihre Funktionalität und Schemas geben
Die LDAP Spezifikation verlangt, dass LDAP-Clients von jedem LDAPServer verlangen können, die komplette Liste seiner Funktionen und Schemas
einzusehen. Das ermöglicht die Abstimmung der Funktionalität im Client auf
die Funktionen, die der Server bietet, und erlaubt bessere Interoperabilität über
unterschiedliche Implementationen oder LDAP-Versionen hinweg.
Extensions
Zusätzlich zu dem Repertoire an vordefinierten Standardoperationen (wie
"search" und "modify") erlaubt LDAP v3 außerdem so genannte "extended"
Operations. Eine "extended" Operation nimmt einen Request als Argument an
und gibt eine Response zurück. Der Request enthält einen Identifier, der den
Request und die von ihm übergebenen Argumente eindeutig identifiziert. Die
Response enthält die Ergebnisse aus der operation, die der Request gefordert
hat. Ein solches Request-Response-Paar in einer "extended" Operation nennt
man eine Extension. Beispiel: Es gibt eine Extension definieren um TLS zu
starten ("Start TLS"). Vom Client kommt diese "Forderung" an den Server und
veranlasst diesen, das TLS-Protokoll zu starten. Solche Extensions können
standardisiert sein - also von der LDAP-Gemeinde abgesegnet - oder proprietär
- also nur von einem speziellen Hersteller oder nur auf einem speziellen Server
eingesetzt.
Controls
Eine andere Möglichkeit, neue Funktionalität hinzuzufügen, ist das Verwenden
von Steuerbefehlen, so genanntenControls. LDAP v3 erlaubt es, das Verhalten
einer beliebigen Operation zu modifizieren - eben durch ein solche Control.
Mit einer Operation können beliebig viele Controls verschickt werden, und
ebenso können beliebig viele Controls mit den Ergebnissen zurückgegeben
werden. Man kann beispielsweise eine 'Sort Control' zusammen mit einer
'Search'-Operation versenden, die dem Server sagt, er soll die Suchergebnisse
nach dem Attribut 'name' sortieren. Wie Extensions können Controls
standardisiert
oder
proprietär
sein.
Internationalisierung
LDAP benutzt für die interne Repräsentation von Strings UTF-8, so dass alle
Sprachen benutzt werden können.
5. Quellen:
 http://www.openldap.org
 http://www.linux-magazin.de/Artikel/ausgabe/1998/09/LDAP/ldap.html
 http://www.rage.net/ldap
FPING
1. Erklärung
Mittels des Befehls FPING ist es unter Linux möglich, mehrere PC´s auf ihre
Anwesenheit zu überprüfen. Dies geschieht, indem alle Rechner im angegebenen IPAdressbereich angepingt werden. Das ist in einem Bash-Script verwirklicht worden.
Eventuell muss zuvor noch FPING installiert werden.
Unter Debian mit dem Befehl:
apt-get install FPING
2. Quelltext:
#! /bin/sh
./fping -a -g 192.168.0.0/24 -c 1 2> ./temp$$
cat ./temp$$ | grep "min" > ./ausgabe$$
rm ./temp$$
pin=`cat -E ./ausgabe$$`
rm ./ausgabe$$
echo $pin
IFS="$"
set $pin
until [[ "$1" == "" ]]
do
temp=$1
IFS=" "
set $temp
ip=`echo -e "$1"`
echo "<BR><a href='remote.php?IP=$ip'>$ip</a>"
IFS="$"
set $pin
until [[ "$1" == "$temp" ]]
do
shift
done
shift
done
VNC:
1. Betriebssystem / Plattform
 Windows 9x/NT/2000 (i386)
 Linux (x86, Kernel 2.x)
 DEC ALPHA OSFI 3.2,



MAC (PPC/68k - BETA Version !)
Windows CE (Mips, SH3)
Solaris (SPARC)
2. Installationsumfang
Begriffsdefinitionen:
 VNC-Server
Die Anwendung, die es ermöglicht auf den Rechner zuzugreifen. Diese
Anwendung läuft in der Regel auf Netzwerk-CLIENTS
 VNC-Viewer
Die Anwendung, die es einem Benutzer erlaubt, auf einen Rechner mit
laufendem VNC-Server zuzugreifen.
Es gibt jeweils eine Server- und eine Client-Version von VNC. Wobei es dabei
unerheblich ist welches Betriebssystem auf dem Server oder Client läuft.
Es müssen nicht beide Versionen (also Server und Viewer) auf einem Rechner
installiert werden. Im Normalfall wird auf den Netzwerk-Clients nur der VNC-Server
installiert. Der Supporter braucht im Normalfall nur den VNC-Viewer.
Die Installation für den Server benötigt lediglich 0,5 MB auf der Festplatte, der Client
kommt mit 172kB (!) aus.
Da der VNC-Viewer auch als JavaApplet innerhalb eines InternetBrowsers laufen
kann, muß ggf. das JDK installiert werden (mehrere MB !).
Desweiteren wird ein funktionierendes Netzwerk über TCP/IP vorausgesetzt. Für die
Namensauflösung muß entweder ein DNS-Server erreichbar sein, oder eine 'hosts'Datei auf dem VNC-Client-Rechner existieren.
3. VNC-Server
Der VNC-Server kann entweder als Daemon (Dienst) im Hintergrund laufen oder
explizit bei Bedarf (AppMode) gestartet werden.
Die Einrichtung des Servers lässt verschiedene Betriebsmodi zu. So kann z.B.
festgelegt werden, ob ein zugreifender Client (mit VNC-Viewer) auch Eingaben
vornehmen kann, oder nur zuschaut (z.B. bei Seminaren hilfreich).
Wie unter z.B. unter Linux/X11 üblich, kann ein Rechner mehrere Displays haben.
Dieses wird auch unter VNC berücksichtigt. Der Zugriff auf den Rechner kann z.B.
auf ein Display beschränkt werden, oder aber auch für alle Displays freigegeben
werden (z.B. mehrere gleichzeitige Benutzer an einem Rechner unter X11). Beim
Verbinden zu diesem Server muss deshalb auf dem Client auch eine Display-Nummer
angegeben werden. Ein VNC-Server unter Windows hat dagegen immer die DisplayNummer '0'.
Selbstverständlich kann der VNC-Server mit einem Paßwort gegen unbefugten Zugriff
gesichert werden. Der VNC-Server teilt allerdings nicht mit, wenn auf den Rechner
zugegriffen wird. Ebensowenig schert sich VNC um die Benutzerrechte des
Betriebssystems. Der VNC-Client kann mit den Rechten des gerade angemeldeten
Benutzers arbeiten, und sich z.B. unter Windows auch an- und abmelden. Deshalb
sollte der Admin es tunlichst vermeiden den VNC-Server auf seinem Rechner/Account
als Daemon laufen zu lassen (!).
4. VNC-Client
Der VNC-Client kann auf drei Arten realisiert werden.
 Zunächst einmal wäre da der Client für das jeweilige Betriebssystem, der
entweder aus dem Quellcode übersetzt wird, oder als lauffähige Binary
vorliegt.

Die zweite Variante ist der JAVA-Client, der aus einem Java-fähigen Browser
heraus aufgerufen werden kann (nicht JavaScript !).
 Auf Systemen, die Java direkt ausführen können (JRE), kann der Java-Client
auch ohne Browser gestartet werden.
Grundsätzlich ist anzumerken, dass der native VNC-Client wesentlich schneller ist, als
die Java-Lösung. Die Java-Lösung sollte also nur auf Rechnern eingesetzt werden, für
die kein nativer Client verfügbar ist (oder noch nicht stabil läuft).
Der Aufbau der Verbindung durch den nativen Client erfordert die Eingabe der IPNummer des VNC-Servers gefolgt von der Displaynummer (bei DNS-/HOSTSAuflösung funktioniert das natürlich auch über den Rechnernamen und die
Displaynummer).
Beispiel:
192.168.100.1:0
windose.mydomain.com:0
Die Display-Nummer wird durch einen Doppelpunkt von der IP-Adresse getrennt.
Der Verbindungsaufbau über einen Web-Browser erfolgt über die Eingabe der
Rechneradresse (http-Protokoll) und der Port- und Display-Nummer des Servers:
Beispiel:
http://192.168.100.1:5800/
http://windose.mydomain.com:5800/
(Port-Nummer (hier '5800') und Display-Nummer (hier '00') werden dabei
zusammengefasst - für Display 03 wäre Port 5803 korrekt.)
Für den Aufbau der Verbindung rein über Java muss z.B. auf einem Linux-System
folgendes eingegeben werden:
admin@support:~> java vncviewer HOST=192.168.100.1 PORT=5900
Daraufhin wird (unter X11) ein Fenster geöffnet.
Bei der JAVA-Lösung wird also bei den Port-Nummern unterschieden!
 Browser: Port 5800
 nur JAVA: Port 5900
Allen Versionen gleich ist die Paßwortabfrage, die direkt nach dem Aufbau der
Verbindung angezeigt wird (sofern ein Paßwort vergeben wurde).
Beim nativen VNC-Client (unter Windows 9x/NT/2000) ist ein Rechtsklick auf die
Titelleiste des Fensters sehr hilfreich, da dort einige zusätzliche Funktionen angeboten
werden. So sind dort z.B. folgende essentielle Befehle abrufbar:
Windows-Tip:
STRG-ALT-ENTF
(um
sich
an
NT
/
2000
anzumelden)
ConnectionOptions (dort kann z.B. eingestellt werden nur mit 8Bit-Farben zu arbeiten)
Für Linux wurden mittlerweile auch Clients entwickelt (z.B. kvnc), die aber (noch)
nicht zufriedenstellend laufen, so dass dort die Verwendung der Browser- oder der
JAVA-Variante zu empfehlen ist.
Durch den Einsatz von TCP/IP lassen sich natürlich auch Rechner über das Internet
oder einen Router Fernwarten.
5. Leistung / Bewertung
VNC erfordert viel Rechenleistung auf dem Client, besonders wenn mit der Browser
oder Java-Version gearbeitet wird. Desweiteren ist eine möglichst schnelle
Netzwerkanbindung (100Mbit) empfohlen, da VNC ohne Komprimierung arbeitet.
Die Geschwindigkeit ist das einzige wirkliche Manko von VNC. Grundsätzlich ist bei
10Mbit, DSL oder einer ISDN-Verbindung der VNC-Client auf 8Bit-Farben
umzustellen, damit die Geschwindigkeit im erträglichen Rahmen bleibt.
Da es sich aber um kostenlose Software handelt kann man über das
Geschwindigkeitsmanko aus zwei Gründen noch hinwegsehen:
 Eine (etwas) schnellere kommerzielle Software reißt ein ziemlich großes Loch
in die Kasse, vor allem wenn es um größere Netzwerke geht.
 VNC ist für alle gängigen OS verfügbar.
Im privaten Umfeld ist VNC erste Wahl!
6. Quelle
 http://www.uk.research.att.com/vnc/
 http://www.tightvnc.com
Herunterladen