Konzeption und Programmierung eines Internet

Werbung
NeXt Generation Net
Höhere Technische Bundes-Lehr- und Versuchsanstalt
Wirtschaftsingenieurwesen – Betriebsinformatik
Konzeption und Programmierung
eines InternetZugangangskontrollsystems in
Kooperation mit dem Schüler- und
Lehrlingsheim Innsbruck
Projektteam
Lukas Winkler
Philipp Zangerle
Projektbetreuer
Dr. Reinhard Stix
Dipl. Ing. Christoph Schönherr
In Zusammenarbeit mit
Schüler und Lehrlingsheim Innsbruck
Kontaktperson: Mag. Anton Feurstein
25.Mai 2009
NeXt Generation Net
Eidesstattliche Erklärung
Ich erkläre an Eides statt, dass ich die vorliegende Diplomarbeit selbständig und ohne
fremde Hilfe verfasst, andere als die angegebenen Quellen und Hilfsmittel nicht benutzt und
die den benutzten Quellen wörtlich und inhaltlich entnommenen Stellen als solche
erkenntlich gemacht habe.
Innsbruck, am 25. Mai 2009
_________________________
Lukas WINKLER
_________________________
Philipp ZANGERLE
Diplomarbeit Winkler, Zangerle 2008/09
i
NeXt Generation Net
Kurzbeschreibung
Die Schnelllebigkeit der Computernetzwerk-Anforderungen macht die Neuentwicklung des
derzeitigen Internet-Zugangskontrollsystems im „Schüler- und Lehrlingsheim“ notwendig.
Die bisherigen Erfahrungen zeigen sowohl Zufriedenheit mit einigen Funktionen, als auch
Unzufriedenheit mit zu großem Administrationsaufwand. Zusätzlich kommen noch stark
gestiegene Sicherheitsanforderungen dazu. Administration direkt an der Server-Konsole wird
zugunsten einer Web-basierten Applikation weggelassen.
Das Internet-Zugangskontrollsystem führt jedoch ausdrücklich keine Content-Filterung oder
E-Mail Checks durch.
In der SQL-fähigen Account-Datenbank (MySQL) werden gezwungenermaßen auch
personenbezogene Angaben abgelegt:









Vor- und Zuname
Name des Erziehungsberechtigten
Wohnadresse
Klasse
Schulstufe
Benutzername
Passwort (chiffriert)
Limitierungen
Netzwerkverkehrs-Kennzahlen
Die Speicherung personenbezogener Daten ist datenschutzrechtlich relevant, z.B. mit
Anforderung einer DVR-Nummer und Absicherung gegen unbefugte Zugriffe.
Natürlich wird der gesamte NXGN-LAN-Traffic einer zeitgemäßen Chiffrierung unterzogen
(SSL/TLS) und die Passwörter SHA-512 hash einwegverschlüsselt abgelegt.
Diplomarbeit Winkler, Zangerle 2008/09
ii
NeXt Generation Net
English abstract
As all the inhabitants of the "Schüler- und Lehrlingsheim" frequently use internet-access on
their personal notebooks or computers, a homebrew access and traffic control software
system has been applied for several years now.
Traffic requirements, mechanism variety, but also system abuses are growing rapidly. Simple
to use "download-and-play" programs for network corruption evolve every day. The current
control system gets more and more outdated and needs upgrade or replacement. Positive
experiences have been observed with access limiting agents but not without a huge
administration effort. User management and access control configuration call for
simplification. Web-based user-interfaces are stand-of-the-art. Security and Encryption are a
"must-have". The limitation scheme should be of more granularities in some aspects.
Redesigning the system and doing all those tasks, some nice additional "knobs and buttons"
can easily be added, as for example, an export of personal information to the business
accounting system.
The new implementation is designed to be built around a SQL-compatible database
management system. The database itself contains the data fields









sur- and firstname
home address
username
password
limits
traffic characteristics
school class
age
education level
The solution is made up of 5 major components:





database
web based admin tools
iptables-filter rules (Linux)
server-resident rule configuration agent (Java)
log on client (Java)
The rule-, filter- and limiting functionality is in responsibility of Lukas Winkler, whereas
database and web interfaces are Philipp Zangerle's realm.
Major improvements against the old system are the encrypted communication between the
client and the server and additionally the redesigned web application, which allows much
easier configuration and administration.
Diplomarbeit Winkler, Zangerle 2008/09
iii
NeXt Generation Net
There could also be some further improvements, which could be easily added, like an
installation CD/DVD which runs an installer after the boot of a Linux live distribution which
automatically installs all necessary packages from a Linux distribution that are needed to run
NXGN. Furthermore there could be an installer who tries to detect some of the information
that is needed to run the server and a guided installation assistant which helps end-users,
who are lacking expert knowledge, to setup NXGN for their personal use.
We tried really hard to match all the requirements made by the host administration and
currently we are not aware of any shortcomings nor have we encountered any bugs which
harm the security or disturb administration.
Diplomarbeit Winkler, Zangerle 2008/09
iv
NeXt Generation Net
Inhaltsverzeichnis
Kurzbeschreibung ................................................................................................................... 2
English abstract ...................................................................................................................... 3
Kapitel 1 ...................................................................................................................................... 1
1
Projektmanagement........................................................................................................... 1
1.1
Aufgabenstellung ......................................................................................................... 2
1.1.1
Begriffsabgrenzung .............................................................................................. 2
1.1.2
Administrationsoberfläche ................................................................................... 5
1.1.3
Userseiten .......................................................................................................... 11
1.1.4
Abgeschwächter Admin ..................................................................................... 11
1.1.5
Konsolenbefehle ................................................................................................. 11
1.1.6
Login Client ......................................................................................................... 13
1.1.7
Server.................................................................................................................. 14
1.2
Offizieller Antrag ....................................................................................................... 15
1.3
Problemanalyse ......................................................................................................... 21
1.3.1
Risikoanalyse und –Bewertung mit Hilfe des Projektstrukturplans ................... 21
1.3.2
Nutzwertanalyse................................................................................................. 22
1.4
QS Planung (QA) ........................................................................................................ 24
1.4.1
Testpläne ............................................................................................................ 24
1.4.2
Meilensteintestprotokolle .................................................................................. 24
1.4.3
Abschluss der Detailplanung: Datenbank .......................................................... 24
1.4.4
Abschluss der Betaversion: Webinterface ......................................................... 25
1.4.5
Abnahme-Testprotokoll ..................................................................................... 26
1.5
Grobdesign................................................................................................................. 30
1.5.1
Aufbau ................................................................................................................ 30
1.5.2
Anmeldevorgang ................................................................................................ 31
1.5.3
Access Point Ansteuerung .................................................................................. 31
1.5.4
Webinterface ...................................................................................................... 33
1.6
Aufwandschätzung .................................................................................................... 34
1.6.1
Material, Werkzeuge, Infrastruktur ................................................................... 34
1.6.2
Functionpoint-Analyse ....................................................................................... 35
1.6.3
Kommunikationsplan ......................................................................................... 36
Diplomarbeit Winkler, Zangerle 2008/09
v
1.6.4
NeXt Generation Net
Funktionenmatrix ............................................................................................... 37
1.6.5
Verantwortungsmatrix ....................................................................................... 37
1.7
Zeitplan ...................................................................................................................... 38
1.7.1
Mögliche Arbeitszeit........................................................................................... 38
1.7.2
Meilensteinliste .................................................................................................. 38
1.7.3
Projektzeitplanung ............................................................................................. 39
1.8
Kostenkalkulation ...................................................................................................... 40
Kapitel 2 .................................................................................................................................... 41
2
Routing Software .............................................................................................................. 41
2.1
Übersicht.................................................................................................................... 42
2.2
Begriffserklärung ....................................................................................................... 42
2.3
Aufbau des Routingteils ............................................................................................. 43
2.3.1
Server.................................................................................................................. 44
2.3.2
Client................................................................................................................... 47
2.3.3
Module/Adapter................................................................................................. 50
2.3.4
Logging ............................................................................................................... 55
2.4
Ausarbeitung/Vorbereitung Usability Analyse .......................................................... 56
2.4.1
Übersicht ............................................................................................................ 56
2.5
Projektmanagement .................................................................................................. 57
2.6
Verwendete Software ................................................................................................ 57
Kapitel 3 .................................................................................................................................... 58
3
Das Webinterface und die MySQL Datenbank ................................................................. 58
3.1
Allgemein ................................................................................................................... 59
3.2
Nutzwertanalyse über die Administrationsinterface ................................................ 59
3.3
Die fachmännische Gestaltung von Benutzeroberflächen ........................................ 60
3.3.1
Aufgabenangemessenheit .................................................................................. 60
3.3.2
Selbstbeschreibungsfähigkeit............................................................................. 60
3.3.3
Steuerbarkeit ...................................................................................................... 60
3.3.4
Erwartungskonformität ...................................................................................... 60
3.3.5
Fehlertoleranz .................................................................................................... 61
3.3.6
Individualisierbarkeit .......................................................................................... 61
3.3.7
Lernförderlichkeit ............................................................................................... 61
Diplomarbeit Winkler, Zangerle 2008/09
vi
3.4
NeXt Generation Net
Die Software .............................................................................................................. 62
3.4.1
Apache ................................................................................................................ 62
3.4.2
Structured Query Language (SQL) ...................................................................... 62
3.4.3
PHP ..................................................................................................................... 64
3.5
Projektmanagement .................................................................................................. 65
3.5.1
3.6
Detailplanung (Webinterface) ................................................................................... 67
3.6.1
Die Startseite ...................................................................................................... 67
3.6.2
Die Userseite ...................................................................................................... 68
3.6.3
Die Administrationsseite .................................................................................... 69
3.6.4
Ablauf Benutzergruppenerstellung .................................................................... 73
3.6.5
Ablauf Benutzer Erstellung ................................................................................. 75
3.6.6
Abgeschwächter Administrator ......................................................................... 82
3.6.7
Die Datenbank .................................................................................................... 84
3.7
Auszüge aus dem Quellcode...................................................................................... 95
3.7.1
4
Verwendete Software ........................................................................................ 65
Mac erstellen ...................................................................................................... 95
Anhang.............................................................................................................................. 97
4.1
Probepräsentation ..................................................................................................... 97
4.2
Arbeitsprotokoll ......................................................................................................... 97
4.3
Abbildungsverzeichnis ............................................................................................... 99
4.4
Literatur- & Quellenverzeichnis............................................................................... 100
Diplomarbeit Winkler, Zangerle 2008/09
vii
NeXt Generation Net
Kapitel
1
1 Projektmanagement
Winkler Lukas und Zangerle Philipp
Diplomarbeit Winkler, Zangerle 2008/09
Seite 1
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
1.1 Aufgabenstellung
Das alte System (Argos) soll neu entwickelt werden, sodass die alten Funktionalitäten
erhalten bleiben und zusätzlich zahlreiche Modifikationswünsche integriert werden.
1.1.1 Begriffsabgrenzung
[Von Philipp Zangerle & Lukas Winkler]
1.1.1.1 ARGOS
„Das Netzwerkverwaltungsysstem ARGOS beschäftigt sich mit der Entwicklung eines
umfassenden Softwaresystems, welches die Internetverbindung im Schülerheim
Anichstrasse steuert und reglementiert. Das System besteht aus einem auf Linux
basierenden Server (in JAVA geschrieben), einem Client (aufrufbar über ein JAVA Applet) und
einer Administrations- bzw. Userseite (basierend auf PHP und JavaScript), über die man das
komplette System steuern kann. Ebenfalls enthalten ist die Automatisierung der
Konfiguration mehrerer Netzwerkkomponenten, wie DHCP und MAC - Adressfilter in
mehreren Access Points, welche die Kommunikation mittels Laptop bzw. PDA's unterstützen.
Ziel dieses Projekts ist eine zentrale Internetplattform, über welche alle Elemente des
Systems geregelt werden.“1
1.1.1.2 Server
„Ein Computer in einem Netzwerk, der anderen Computer Dienste offeriert.“ 2
1.1.1.3 Benutzer
Bezeichnet den Benutzernamen, der zusammen mit dem entsprechenden Passwort das
Einloggen in das System ermöglicht.
1.1.1.4 Gruppen
Jeder Benutzer ist einer Benutzergruppe zugeordnet, mit bestimmten Berechtigungszeiten
und Downloadbeschränkungen.
1.1.1.5 Datenbank
„Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die
wesentliche Aufgabe eines DBS ist es, große Datenmengen effizient, widerspruchsfrei und
dauerhaft zu speichern und benötigte Teilmengen in unterschiedlichen, bedarfsgerechten
Darstellungsformen für Benutzer und Anwendungsprogramme bereitzustellen.“3
1.1.1.6 Online
1
http://www.htl-innovativ.at/index.php?lang=ger&modul=detail&id=367 - am 25.05.09
2
http://de.wiktionary.org/wiki/Server - am 25.05.09
3
http://de.wikipedia.org/wiki/Datenbank - am 25.05.09
NeXt Generation Net
Sobald sich ein Benutzer, mithilfe des Clients, am System anmeldet, ist dieser Online.
1.1.1.7 Aktiv
Benutzer können Aktiviert und Deaktiviert werden. Ein Benutzer muss Aktiv sein, damit
dieser die vollen Rechte hat.
1.1.1.8
Onlinezeit / Berechtigungszeit
Die Berechtigungszeit ist die Zeit, zu der die User einen Zugriff, mithilfe des Clients, auf das
Internet haben.
1.1.1.9 Erziehergruppe / Abgeschwächter Admin
Die „Erziehergruppe“ hat zusätzlich zu den User-Rechten, Administrationsrechte.
1.1.1.10 User-Rechte
Das User-Recht ist das schwächste Recht und kann nichts Administratives ausführen.
1.1.1.11 AP
„Ein Wireless Access Point (WAP, deutsch „Funkzugangsknoten“) ist ein elektronisches
Gerät, das als Schnittstelle für kabellose Kommunikationsgeräte fungiert. Endgeräte stellen
per Wireless Adapter (Funkadapter) eine Funkverbindung zum Wireless Access Point her, der
wiederum über ein Kabel mit einem fest installierten Kommunikationsnetz verbunden sein
kann. Für gewöhnlich verbinden Wireless Access Points Notebooks und andere mobile
Endgeräte mit eingebautem Wireless Adapter über ein Wireless Local Area Network (WLAN,
Funknetz) mit einem Local Area Network (LAN) oder einem anderen kabelgebundenen
Datennetz (Telefonnetz, Kabelfernsehnetz ...).“4
1.1.1.12 Configuration
Configuration bezeichnet einen Konsolenbefehl des Argos Servers, der die Konfiguration
diverser Optionen ermöglicht.
1.1.1.13 Costs
Costs bezeichnet einen Konsolenbefehl des Argos Servers, der den Netzwerkverkehr seit
dem Start des Servers ausgibt.
1.1.1.14 DHCP
“Dynamic Host Configuration Protocol. TCP/IP-Protokoll, das einem Computer dynamisch
eine IP-Adresse zuweist.“5
1.1.1.15 IPTables
4
http://de.wikipedia.org/wiki/Access_Point - am 01.05.2009
5
http://www.tripod.lycos.de/support/glossary/D/ - am 25.05.09
Diplomarbeit Winkler, Zangerle 2008/09
Seite 3
NeXt Generation Net
„Netfilter ist eine freie Software innerhalb des Linux-Kernels, die es erlaubt, Netzwerkpakete
abzufangen und zu manipulieren. Es bildet damit das Herzstück einer Firewall auf Basis von
Linux. Xtables stellt die Tabellenstruktur zur Regelmanipulation bereit; mithilfe von weiteren
Modulen sind verschiedene Tests und Manipulationen möglich. Weitere Komponenten im
Rahmen von Netfilter sind Connection Tracking und Network Address Translation.“6
1.1.1.16 LOG
Ein Log ist eine Aufzeichnung einer Aktivität eines Programmes, welche typischerweise in
einer eigenen Datei mitgeschrieben wird.
1.1.1.17 MySQL
“Der MySQL Server ist ein Relationales Datenbankverwaltungssystem. Es ist als OpenSource-Software für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für
viele dynamische Webauftritte.“7
1.1.1.18 System
Unter einem System versteht man das Zusammenspiel mehrerer Komponenten, in unserem
Fall der Datenbank, der Weboberfläche und des Servers der die Verbindungen der Clients
entgegennimmt.
6
http://de.wikipedia.org/wiki/Netfilter/iptables - am 25.05.09
7
http://de.wikipedia.org/wiki/MySQL - am 25.05.09
Diplomarbeit Winkler, Zangerle 2008/09
Seite 4
NeXt Generation Net
1.1.2 Administrationsoberfläche
[Von Philipp Zangerle (incl. Unterpunkte)]
Die wichtigste Voraussetzung für die Administration war, dass sämtliche Änderungen über
die webbasierte Administrationsoberfläche durchführbar sind. Aus diesem Grund muss die
Administrationsoberfläche komplett neu aufgebaut werden.
1.1.2.1 Startseite
Im aktuellen System (Argos) werden auf der Administrationsstartseite folgende Punkte
angezeigt:





Seit wann ist der Server eingeschaltet?
Wie viele Benutzer sind in der Datenbank gespeichert?
Wie viele Benutzer sind gerade online?
Wie viele Benutzergruppen sind momentan aktiv?
Eine Auflistung dieser Benutzergruppen.
Abbildung 1: Startseite
Modifikationswünsche:


Auflistung der Top10-Downloader des Tages/Woche/Monats
Verknüpfung der Top10-Downloader mit einer Statistikseite, wo sich weitere
Statistiken vom Benutzer befinden
Diplomarbeit Winkler, Zangerle 2008/09
Seite 5
NeXt Generation Net
1.1.2.2 Benutzergruppen erstellen
Abbildung 2: Benutzergruppe erstellen
Modifikationswünsche:
Keine
1.1.2.3 Benutzergruppe bearbeiten
Einstellungsmöglichkeiten nach Auswahl der Benutzergruppe bei der Schnellauswahl:



Gruppennamen ändern
Zugangszeiten setzen
Zeit- und Downloadlimits setzen
In der rechten Spalte sind alle Benutzer dieser Gruppe aufgelistet.
Abbildung 3: Benutzergruppe bearbeiten
Modifikationswünsche:
Mehrere Rechte bzw. Limits mit einer Checkbox auswählbar machen, damit diese schneller
auf einmal gelöscht werden können.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 6
NeXt Generation Net
1.1.2.4 Benutzer erstellen
Benutzer und Personen (1:Benutzer zu n:Personen) werden im alten Argos-System nicht
getrennt betrachtet.
Abbildung 4: Benutzer erstellen
Modifikationswünsche:
Vorläufiger Entwurf von „Benutzer erstellen“:
Abbildung 5: Benutzer erstellen (NXGN)
Personen erstellen:


Die Personendaten sollen automatisch über eine generierte CSV-Datei in die
Datenbank hinzugefügt oder
manuell angelegt werden können.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 7
NeXt Generation Net
1.1.2.5 Benutzer bearbeiten
Abbildung 6: Benutzer bearbeiten
Modifikationswünsche:
Forderungen:


Auflistung aller Benutzer
Auflistung aller benutzerspezifischen Daten eines Benutzers incl. zugewiesenen
Netzwerkkarten nach Auswahl des Benutzers
1.1.2.6 MAC-Adressen erstellen und bearbeiten
Darunter versteht man das Hinzufügen der Netzwerkkarte und Zuweisung der statischen IPAdresse für das DHCP.
Abbildung 7: Netzwerkkarte erstellen und bearbeiten
Bei MAC-Adressen bearbeiten, wird zusätzlich das Feld „Schnellauswahl“ dargestellt, der
Rest ist identisch zu „MAC-Adressen erstellen“.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 8
NeXt Generation Net
Modifikationswünsche:


Überprüfung, ob die MAC noch nicht vergeben ist (Unique)
Automatisches Bereitstellen von noch nicht verwendeten IP-Adressen
1.1.2.7 MAC-Adressen Übersicht und MAC-Adressen Verleihen
Abbildung 8: Netzwerkkarten Übersicht und Verleihen
MAC Adressen verleihen

Hier können die eingetragenen Netzwerkkarten den Benutzern zugeordnet werden.
Einem Benutzer können mehrere Netzwerkkarten zugeordnet werden.
MAC-Adressen Übersicht

Auflistung aller eingetragenen Netzwerkkarten
Modifikationswünsche:
Verschmelzung dieser zwei Seiten
Diplomarbeit Winkler, Zangerle 2008/09
Seite 9
NeXt Generation Net
1.1.2.8 Passwort ändern
Abbildung 9: Passwort ändern
Modifikationswünsche:
Keine
1.1.2.9 Systemkonfiguration
Abbildung 10: Systemkonfiguration
Die persönlichen Benutzerdaten (Anschrift, Erziehungsberechtigte, etc.) werden über eine
CSV-Datei in die Datenbank geladen.
Eine Änderung bei den Access Points und Änderungen beim DHCP (z.B. durch Hinzufügen
von Netzwerkarten) werden nicht sofort vom System erkannt. Für eine vollständige
Änderung, müssen die Access Points oder das DHCP aktualisiert werden (siehe Bild oben).
Diplomarbeit Winkler, Zangerle 2008/09
Seite 10
NeXt Generation Net
Modifikationswünsche:
Der Auftraggeber wünscht eine automatische Rücksicherung der Datenbank, was wir aber
sehr riskant finden.
1.1.3 Userseiten
[Von Philipp Zangerle]
Statistiken und Einstellungen:






Maximales Downloadvolumen
Verbrauchtes Downloadvolumen
Maximale Onlinezeit
Verbrauchte Onlinezeit
Berechtigungszeiten für den Internetzugang
Passwort kann geändert werden
Modifikationswünsche:
Keine
1.1.4 Abgeschwächter Admin
[Von Philipp Zangerle]
Im aktuellen System gibt es nur Administratoren und User. Der abgeschwächte
Administrator soll diese Gruppen im neuen System ergänzen. Diese „Erziehergruppe“ hat
zusätzlich zu den User-Rechten folgende Funktionen:



User-Onlinestatus anzeigen
Top 10 Downloader des Tages einsehen
Den verbrauchten Download der Benutzer zurücksetzen
1.1.5 Konsolenbefehle
[Von Philipp Zangerle (incl. Unterpunkte)]
Zusätzlich zu den Funktionen der Weboberfläche von Argos, konnten noch weitere in der
Konsole durchgeführt werden.








AP
Configuration
Costs
DHCP
IPTables
LOG
MySQL
System
Diplomarbeit Winkler, Zangerle 2008/09
Seite 11
NeXt Generation Net
Modifikationswünsche:
Sämtliche notwendigen Funktionen, die in der Konsole ausgeführt werden können,
sollen in die Weboberfläche integriert werden.
1.1.5.1 ARGOS_Server>MySQL>dir
addNIC
countUser
createGroup
createUser
deleteGroup
deleteNIC
deleteUser
editGroup
editUser
kickUser
listAP
listGroup
listMAC
listNIC
listOnlineUser
listUser
loadExtFile
mysqlTest
reloadUser
Eintragen einer Netzwerkkarte
Zählt geladene Benutzer
Erstellt eine neue Benutzer-Gruppe
Erstellt einen Benutzer
Löscht eine Benutzer-Gruppe
Löscht eine Netzwerkkarte
Löscht einen Benutzer
Editieren von Benutzergruppen
Editieren von Benutzerdaten
Setzt den entsprechenden User offline
Listet alle Access-Points auf
Listet alle Benutzergruppen auf
Listet alle MAC-Adressen eines Benutzers auf
Listet alle Netzwerkkarten auf
Listet die geladene Benutzer auf
Listet alle Benutzer auf
Lädt Schülerinfos aus externer Datenquelle
Methode zum Testen der Datenbank -Funktionen
Aktualisiert einen Benutzer durch die DB
1.1.5.2 ARGOS_Server>IPTables>dir
accept
delLimit
drop
info
limit
renew
Fügt eine neue freigeschaltene IP hinzu
Hebt eine Bandbreitenlimitierung auf
Löscht eine freigeschaltene IP
Auflisten von IPTables Einträgen
Limitiert die Bandbreite einer speziellen IP-Adresse
Schreibt die ganze IP-Tables Konfiguration neu
1.1.5.3 ARGOS_Server>AP>dir
addAPerstellen
deleteAP
editAP
freeAll
listAP
listAPDriver
Erstellen eines APs + Grundkonfiguration
Löscht einen Access Point aus dem System
Konfigurieren eines einzelnen APs
Deaktiviert alle MAC-Adressen-Filter
Listet alle Access Points auf
Listet alle vorhandenen Access Point Treiber auf
1.1.5.4 ARGOS_Server>Configuration>dir
reloadConfig
Lädt die externe Konfiguration (mainconfig) neu
Diplomarbeit Winkler, Zangerle 2008/09
Seite 12
NeXt Generation Net
1.1.5.5 ARGOS_Server>Costs>dir
Traffic
Netzwerkverkehrstatistik seit dem Start des Servers
1.1.6 Login Client
[Von Lukas Winkler]
Das Argos System verfügte über zwei unabhängig voneinander entwickelte Login Clients. Der
erste war ein Java Applet, dass im Zuge der Argos Diplomarbeit entwickelt wurde. Der zweite
Client wurde von Daniel Luttinger während der letzten Jahre in seiner Tätigkeit als
Heimerzieher entwickelt und stellt eine schnellere, ressourcenschonendere Möglichkeit dar,
das Argos System nutzen zu können.
1.1.6.1 Applet Client




plattformunabhängig
einstellbare Warnung kurz vor
Limitüberschreitung
Benachrichtigung bei Limitüberschreitung
Passwortänderung möglich
Abbildung 11: Argos Client
1.1.6.2 C++ Client



kompakt
ressourcensparend
Benachrichtigung bei Limitüberschreitung
1.1.6.3 Neuer Client
Der neue Client soll die Vorteile der beiden alten Clients in sich
vereinen und dadurch folgende Punkte erfüllen:
Abbildung 12: C++
Client





Plattformunabhängigkeit
Kompakt, ressourcenschonend -> Kein Browser notwendig (kein Applet)
Anzeige des verbrauchten Kontingents
Login transparent darstellen
Statusanzeige (für eventuelle Client Fehlermeldungen, Meldungen des Server ans den
Client,…)
Zusätzlich zu diesen Anforderungen soll der Datenaustausch über eine verschlüsselte SSLVerbindung ausgeführt werden, um das Abhören der Passwort Übertragung zu erschweren.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 13
NeXt Generation Net
1.1.7 Server
[Von Lukas Winkler]
Der Argos Server verwendet IP-Tables und einen TCP Proxy Server, um die Daten aus dem
Heimnetz in das Internet zu routen. Dies hat den Nachteil, dass es nicht möglich ist UDP –
Verbindungen aus dem Heim ins Internet aufzubauen, welche insbesondere für VoIP
(Teamspeak,…) benötigt werden. Ein weiterer Nachteil besteht darin, dass Bandbreiten für
die einzelnen User bzw. Gruppen nur statisch vergeben werden können.
Modifikationswünsche:



Verbindungen Server-Client über SSL-Verbindung
Dynamische Vergabe von Bandbreite (kann Kriterium)
UDP-Verbindungen routen
Diplomarbeit Winkler, Zangerle 2008/09
Seite 14
NeXt Generation Net
1.2 Offizieller Antrag
Diplomarbeit Winkler, Zangerle 2008/09
Seite 15
NeXt Generation Net
Diplomarbeit Winkler, Zangerle 2008/09
Seite 16
NeXt Generation Net
Diplomarbeit Winkler, Zangerle 2008/09
Seite 17
NeXt Generation Net
Diplomarbeit Winkler, Zangerle 2008/09
Seite 18
NeXt Generation Net
Diplomarbeit Winkler, Zangerle 2008/09
Seite 19
NeXt Generation Net
Diplomarbeit Winkler, Zangerle 2008/09
Seite 20
NeXt Generation Net
1.3 Problemanalyse
[Von Philipp Zangerle]
Im Netzwerkverwaltungssystem Argos ist es momentan möglich, den Traffic abzufangen und
zu analysieren. Das bedeutet, dass die Passwörter, die in Webformulare etc. eingegeben
werden, nur analysiert bzw. ausgewertet werden müssen, um diese im Klartext, also
unverschlüsselt, zu erhalten.
1.3.1 Risikoanalyse und –Bewertung mit Hilfe des Projektstrukturplans
Programmierung
des Webinterface
Programmierung
des Clients
Hardwareproblem
PHP kann
nicht
rechtzeitig
erlernt
werden
MySQL
Fähigkeiten
sind nicht
ausreichend
JAVA
Kenntnisse
reichen nicht
aus
Server wird
nicht
rechtzeitig
geliefert
tech. term. finz. EintrittsKosten
Risiko
wahrschein- der Aus- (1.000€)
lichkeit
wirkung
x
x
0,3
80
24 Demotivation
x
x
0,2
70
14 Demotivation
x
x
0,1
90
9 Demotivation
x
x
0,1
120
12 Demotivation
Diplomarbeit Winkler, Zangerle 2008/09
Seite 21
NeXt Generation Net
1.3.2 Nutzwertanalyse
[Von Lukas Winkler]
Administrationsaufwand
15%
Benutzerfreundlichkeit
Intuitives Clientapplet
30%
10%
Aktuelles Design
5%
Sichere Datenabfrage
15%
Sichere Weboberfläche
15%
Sicherheit
Optimales System
40%
100%
Datenaustausch zwischen
Login-Server und
Weboberfläche
5%
Sichere
Schlüsselgenerierung
5%
Stabilität
Ausfallsicherheit
20%
20%
Logindauer
5%
Geschwindigkeit
10%
Schnelles Reagieren auf
Einstellungsänderungen
5%
Diplomarbeit Winkler, Zangerle 2008/09
Seite 22
NeXt Generation Net
Gewichtung
in %
15
10
5
30
Argos
Wert
hoch
ja
ja
NXGN
Rang GxR Wert
2
30 niedrig
1
10 ja
1
5
ja
2
45
Rang
1
1
1
1
GxR
15
10
5
30
15
15
nein
nein
2
2
30
30
ja
ja
1
1
15
15
Sicherer Datenaustausch
zwischen Server und
Oberfläche
5
ja
1
5
ja
1
5
Sichere
Schlüsselgenerierung
Gesamt
Ausfallsicherheit
Verhalten bei Fehler
Gesamt
Logindauer
5
40
15
5
20
5
ja
1
2
nein
2
schlecht
2
2
sehr schnell 1
5
70
30
10
40
5
ja
1
1
ja
1
gut
1
1
schnell 2
5
40
15
5
20
10
Reaktionsdauer auf
Einstellungsänderungen
Gesamt
5
10
langsam
10
15
schnell 1
1
5
15
Benutzerfreundlichkeit
Sicherheit
Stabilität
Geschwindigkeit
Gewichtung
in %
30
40
20
10
Argos
Rang
2
2
2
1
BenutzerAdministrationsaufwand
freundlichkeit Intuitiver Clientapplet
Aktuelles Design
Gesamt
Sichere
Sicherheit
Datenübertragung
Sichere Weboberfläche
Stabilität
Geschwindigkeit
2
1
NXGN
GxR Rang
45 1
70 1
40 1
15 1
GxR
30
40
20
15
Summe
190
100
Rang
2
1
Diplomarbeit Winkler, Zangerle 2008/09
Seite 23
NeXt Generation Net
1.4 QS Planung (QA)
[Von Philipp Zangerle]
Die Qualitätssicherung setzt sich aus Planung und Prüfung (Test) zusammen. Wofür die
Qualitätssicherung benötigt wird, zeigt folgende Geschichte:
Drei Unternehmen bieten Ihnen an, ein Haus zu bauen. Ein „AuslandsBilligPfuschUnternehmen“ bietet den Hausbau nur um die Hälfte des Preises, im Vergleich zu den
inländischen Unternehmen, an. Um sich nun abzusichern, dass das „AuslandsBilligPfuschUnternehmen“ den Hausbau nicht mit minderwertigen Materialien und schlechten
Mitarbeitern realisiert, wird ein Begutachter, ein sogenannter Auditor, eingestellt. Dieser
begutachtet in einem regelmäßigen Zeitabschnitt die Baustelle und kontrolliert die
Testprotokolle auf Übereinstimmung.
1.4.1 Testpläne
[Von Philipp Zangerle]
Die Testpläne wurden nicht in der Diplomschrift aufgelistet, weil diese ident (bis auf das
ausgefüllte OK-Feld) zu den Meilensteintestprotokollen sind. Die Testpläne befinden sich
jedoch im digitalen Format auf der CD.
1.4.2 Meilensteintestprotokolle
[Von Philipp Zangerle]
Nach jedem Meilenstein wurde ein Testplan durchgeführt.
1.4.3 Abschluss der Detailplanung: Datenbank
[Von Philipp Zangerle]
Erfolgreich durchgeführt am 07.01.2009
Situation
Bedienungs-Handgriff
SystemReaktion
OK Fehler
Datenbankverbindung
herstellen
Im Browser die Adresse:
„192.168.1.12/phpmyadmin“ eingeben
und verbinden
Aus dem Drop-Down Menü im
phpmyadmin die Datenbank „NXGN“
auswählen
Erfolgreich
verbunden
Ok
Erfolgreiche
Anzeige der
erstellen
Tabellen
Ok
[1]Erfolgreich
angelegt
Ok
Datenbank auswählen
Tabellen füllen und abfrage (Insert Into [1], Select [2])
Ap-Tabelle
INSERT INTO `ap` ( `ID` , `AP_Bez` ,
`Treiber_ID` , `AP_IP` , `AP_Port` ,
`AP_User` , `AP_Pass` )VALUES ('1',
Diplomarbeit Winkler, Zangerle 2008/09
Seite 24
NeXt Generation Net
'Ap9', '9', '192.168.0.99', '1000', 'root',
'chiffrierte hash');
SELECT *FROM `ap`;
extdb_person-Tabelle
flags-Tabelle
INSERT INTO `extdb_person` ( `Kuerzel` ,
`Name1` , `Stat` , `Name2` , `Str` ,
`Nation` , `Plz` , `Ort` , `Klasse` ,
`Zimmer` , `Schulstufe` , `ID` ) VALUES
('ZANPH', 'Philipp Zangerle', 'K', 'Inge
und Bruno Zangerle', 'Steinig 184a', 'A',
'6574', 'Pettneu am Arlberg', '5bHW',
'323', '13', NULL );
SELECT * FROM `extdb_person`;
INSERT INTO `flags` ( `ID` ,
`description` , `value` ) VALUES
('18', 'Flagtabelle testen', '99999');
SELECT * FROM `flags`;
[2]Erfolgreiche
Anzeige der
Eingabe
[1]Erfolgreich
angelegt
[2]Erfolgreiche
Anzeige der
Eingabe
[1]Erfolgreich
angelegt
[2]Erfolgreiche
Anzeige der
Eingabe
Ok
Ok
Da das Füllen der weiteren Tabellen immer gleich ablief und ein kompletter Auszug des
Testberichtes nicht sinnvoll ist, wird hier nur ein Teil aufgelistet.
Unterschrift:
1.4.4 Abschluss der Betaversion: Webinterface
[Von Philipp Zangerle]
Das „Abschluss der Betaversion: Webinterface“-Testprotokoll ist identisch mit dem
Abnahmetestplan und wurde deswegen aus Papierspargründen nicht angeführt. Dieser
befindet sich jedoch auf der CD.
Erfolgreich durchgeführt am 07.01.2009
Unterschrift:
Diplomarbeit Winkler, Zangerle 2008/09
Seite 25
NeXt Generation Net
1.4.5 Abnahme-Testprotokoll
1.4.5.1 Testprotokoll Weboberfläche
[von Philipp Zangerle]
Situation
Anmelden
Bedienungs-Handgriff
"https://192.168.1.12" in einem Browser (IE 7 oder
höher oder Firefox 3 oder höher) eingeben. Nach dem
Laden, den Administratorbenutzernamen "Admin" und
das Passwort "hallo" einfüllen und mit Enter
bestätigen.
Benutzergruppe
erstellen
"Benutzergruppe
Unter dem Reiter "Benutzergruppe" auf „Erstellen“
wurde erfolgreich
klicken und dort den Gruppennamen "Testgruppe" mit hinzugefügt!"
der Bandbreite "80" eingeben.
erscheint
Benutzergruppe
bearbeiten
Unter dem Reiter "Benutzergruppe" auf „Bearbeiten“
klicken und die gerade erstellte Benutzergruppe bei
der Schnellauswahl auswählen.
Folgende Einträge eingeben und anschließend auf
„Recht hinzufügen“ klicken.
Recht
hinzufügen
Unter der Limits-Auflistung befindet sich dessen
Eingabemaske (siehe Bild). Dort folgende Daten
eingeben:
Zeitlimit (in Std.): 5.2 Tag
Zeitlimit (in Std.): 20 Woche
Zeitlimit (in Std.): 90.3 Monat
Downloadlimit (in MByte): 100 Tag
Downloadlimit (in MByte): 800 Woche
Downloadlimit (in MByte): 2000 Monat
Limit
hinzufügen
Nach der Auswahl aller Limits, auf „Limits
ändern/löschen“ klicken, um alle Zeitlimits zu
löschen.
Limit löschen
Diplomarbeit Winkler, Zangerle 2008/09
System-Reaktion
OK Fehler
Automatische
Weiterleitung auf die
Administrationsoberfläche
OK
OK
Die Seite wird neu
aufgebaut und der
Benutzergruppenname
sowie die Bandbreite
werden eingetragen.
OK
Die Seite wird neu
aufgebaut und das
hinzugefügte Recht
wird in der Liste über
der Eingabe angezeigt. OK
Die Limits werden
getrennt nach Zeitlimit
und Downloadlimit in
der Liste über der
Eingabe dargestellt.
OK
Die Seite wird neu
aufgebaut und es wird
anstatt der Limits „Es
sind keine Einträge
vorhanden!“
angezeigt.
OK
Seite 26
NeXt Generation Net
Recht löschen
Benutzer
erstellen
Benutzer
bearbeiten
Gruppe
ändern
Funktioniert fast gleich wie „Limits löschen“, nur muss diesmal auf
„Rechte (de)aktivieren/löschen“ geklickt werden.
Unter dem Reiter „Benutzer“ auf „Erstellen“ klicken und dort
folgende Benutzer eingeben:
Benutzername – Gruppe – MAC-Personendaten – Kommentar –
Proxy – Aktiv - Passwort
Test_1 – Testgruppe – später.. – später..
Philippzangerle – Testgruppe –später.. – später.. - - aktiviert –
aktiviert – „hallo“
Lukaswinkler – Testgruppe – später .. – später.. - - deaktiviert –
deaktiviert – „test“
Christoph Schönherr – Testgruppe – später.. – später.. - - deaktiviert
– aktiviert – „öha“
Im Reiter „Benutzer“ befindet sich „Bearbeiten“. Diesem Hyperlink
folgen und „Christoph Schönherr“ bei der Schnellauswahl
auswählen.
Bei der Dropdown Auswahl neben Gruppe, die Gruppe „Admin“
auswählen und auf „Benutzer ändern“ klicken.
Statische
Bandbreite Die statische Bandbreite vom Benutzer „Christoph Schönherr“ auf
ändern
„80“ ändern und mit „Benutzer ändern“ bestätigen.
Benutzer
aktivieren
Aktivieren des Benutzers „Christoph Schönherr“ durch Abhaken der
Checkbox neben“ Aktiv“ und durch anschließendes Klicken auf
„Benutzer ändern“.
Passwort
ändern
Das Passwort auf „test“ ändern und durch anschließendes Klicken
auf „Benutzer ändern“ bestätigen.
Diplomarbeit Winkler, Zangerle 2008/09
Die Seite wird
neu aufgebaut
und es wird
anstatt der
Rechte „Es sind
keine Einträge
vorhanden!“
angezeigt.
OK
Es erscheint bei
jedem Benutzer
„Benutzer
wurde
erfolgreich
hinzugefügt!“
Die vorher
erstellen
Benutzerdaten
werden in die
Felder geladen.
„Benutzer
wurde
erfolgreich
geändert.
Bitte den
Benutzer neu
auswählen.„
erscheint
„Benutzer
wurde
erfolgreich
geändert.
Bitte den
Benutzer neu
auswählen.„
erscheint
„Benutzer
wurde
erfolgreich
geändert.
Bitte den
Benutzer neu
auswählen.„
erscheint
„Benutzer
wurde
erfolgreich
Seite 27
OK
OK
OK
OK
OK
OK
NeXt Generation Net
geändert.
Bitte den
Benutzer neu
auswählen.„
erscheint
Unter dem Reiter "MAC" auf „Erstellen“ klicken und folgende Daten
eingeben:
„MAC wurde
erfolgreich
hinzugefügt
Neue MAC
erstellen„
erscheint
MAC erstellen
OK
Unter dem Reiter „MAC“ befindet sich „Bearbeiten“. Dort die
IP, wie auf dem Bild abgebildet, ändern.
MAC
bearbeiten
MAC dem
Benutzer
zuordnen
Die erstellte MAC soll nun dem Benutzer „Christoph Schönherr“
zugeordnet werden. Dafür auf den Punkt „Verleihen“ im Reiter
„MAC“ klicken und die Netzwerkkarte „TestMac2“ bzw. Person
„Christoph Schönherr“ aus der Liste auswählen. Nach der Auswahl
von der Netzwerkkarte und Person, auf „Netzwerkadapter
vergeben“ klicken.
Datenbank
sichern
….
Unter dem Reiter „System“ den Punkt „Systemkonfiguration“
auswählen. Danach auf den Button „Start“ neben „Datenbank
sichern“ klicken.
…..
Diplomarbeit Winkler, Zangerle 2008/09
Es erscheint:
„MAC wurde
erfolgreich
geändert“ und
die Seite wird 1
Sekunde
danach neu
aufgebaut.
Es erscheint,
„Netzwerkkarte
wird
zugeordnet“
und die Seite
wird nach einer
Sekunde neu
aufgebaut.
Ein Pop-upFenster
erscheint und
man wird
aufgefordert,
ob die Datei
geöffnet oder
gespeichert
werden soll
(unter dem
Betriebssystem
Microsoft
Vista).
…
Seite 28
OK
OK
OK
OK
NeXt Generation Net
Das vollständige Testprotokoll befindet sich auf der CD, da es aus Gründen der Umwelt nicht
sinnvoll ist, den kompletten Testplan incl. Testprotokoll auszudrucken.
1.4.5.2 Testprotokoll Client
[von Lukas Winkler]
Situation
Bedienungs-Handgriff
System-Reaktion
OK Fehler
Öffnen des Clients
jar Archiv ausführen (Windows:
Doppelklick)
Öffnen und Anzeigen des
Clients
OK
Anmelden mit
falschem
Usernamen
Nicht existierenden Usernamen und
beliebiges Passwort auf beliebiger
Workstation eingeben. Login Button
betätigen.
Existierenden Usernamen und
beliebiges Passwort auf beliebiger
Workstation eingeben. Login Button
betätigen.
Existierenden Usernamen und
dazugehöriges Passwort auf falscher
Workstation eingeben. Login Button
betätigen.
Status Meldung springt
auf: "Unknown User"
OK
Status Meldung springt
auf: "Wrong User"
OK
Status Meldung springt
auf: "User not allowed on
this Workstation"
OK
Anmelden mit
falschem Passwort
Anmelden auf
falscher
Workstation
Anmelden mit
richtigen Daten
Abmelden
Verbindungsaufbau während
Server offline
Existierenden Usernamen und
Status Meldung springt
dazugehöriges Passwort auf richtiger auf: "Logged in"
Workstation eingeben. Login Button
betätigen.
Logout Button betätigen.
Status Meldung springt
auf: "Logout"
OK
Beliebige Daten einfüllen. Login
Button betätigen.
OK
Status Meldung springt
auf: "Server
unreachable..."
OK
Erfolgreich durchgeführt am 12.05.2009
_____________________________
Christoph Schönherr
Diplomarbeit Winkler, Zangerle 2008/09
_____________________________
Reinhard Stix
Seite 29
NeXt Generation Net
1.5 Grobdesign
1.5.1 Aufbau
[von Lukas Winkler]
Abbildung 13: Aufbau des Systems im Heim
Diplomarbeit Winkler, Zangerle 2008/09
Seite 30
NeXt Generation Net
1.5.2 Anmeldevorgang
[von Lukas Winkler]
Der gesamte Anmeldevorgang wird über eine SSL-Verbindung abgewickelt. Der
Datenaustausch wird im folgenden Workflow erklärt:
Abbildung 14: Anmeldevorgang
1.5.3 Access Point Ansteuerung
[von Lukas Winkler]
Um die unterschiedlichen Access Points anzusteuern (neustarten, Access Control Lists
schreiben,...) wird ein von uns entwickeltes Treibersystem (siehe Kapitel 2) eingesetzt.
Dieses verwendet die MySQL Datenbank, um die einzelnen Befehle, die der Server benötigt,
in die passende Form umzuwandelnAP beinhaltet alle Access Points und stellt die Daten, die zum Verbindungsaufbau gebraucht
werden. Da die Routermenüs unterschiedlich aufgebaut sind, aber auch mehrere Router
desselben Typs verwendet werden können, macht es Sinn, diese in einer eigenen Tabelle
abzulegen.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 31
NeXt Generation Net
Da auch Parameter benötigt werden, werden wir diese, wie man sie schon aus Shell Scripts
kennt, umsetzen.
Die folgende Grafik soll den Aufbau und den Zusammenhang zwischen den beiden Tabellen
für die Access Point Ansteuerung noch einmal verdeutlichen.
Abbildung 15: Access Point Ansteuerung
Sollten z.B. Änderungen an den Access Control Lists von Nöten sein, dann wird über die
Daten in der Tabelle AP eine Verbindung zu allen betroffenen Access Points aufgebaut. Der
zu verwendende Treiber wird zusätzlich zu den anderen Daten in der AP Tabelle abgelegt.
Über diese ID können dann die Strings, die die eigentlichen Steuerbefehle für die Access
Points beinhalten, ausgelesen und anschließend abgearbeitet werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 32
NeXt Generation Net
1.5.4 Webinterface
[Von Philipp Zangerle]
Abbildung 16: Grobdesign (Webinterface)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 33
NeXt Generation Net
Layout des Webinterfaces:
Abbildung 17: Layout des Webinterfaces
Die Verschlüsselung sämtlicher Verbindungen erfolgt über eine gesicherte HTTPS
Verbindung (SSL). Zusätzlich werden die Passwörter SHA-512 Hash verschlüsselt abgelegt.
1.6 Aufwandschätzung
[Von Philipp Zangerle]
1.6.1 Material, Werkzeuge, Infrastruktur









Server:
o Betriebssystem: Debian
o Festplattenspeicher: mind. 500 MB frei
o Arbeitsspeicher: mind. 512 MB
Raum für den Server
Büro
Heizung
Wasser
Strom
Speichermedien
Papier, Stifte
Zugtickets
Diplomarbeit Winkler, Zangerle 2008/09
Seite 34
NeXt Generation Net
1.6.2 Functionpoint-Analyse8
[Von Philipp Zangerle]
Funktionstyp
einfach
Eingabedaten mittel
komplex
einfach
Ausgaben
mittel
komplex
einfach
Datenbestände mittel
komplex
einfach
Referenzdaten mittel
komplex
einfach
Abfragen
mittel
komplex
Anzahl Gewicht Summen
0
3
0
1
4
4
2
6
12
1
4
4
1
5
5
2
7
14
0
7
0
1
10
10
2
15
30
0
5
0
1
7
7
0
10
0
1
3
3
2
4
8
1
6
6
E1:
103
Die Einflussfaktoren ändern den Function-Point Wert um ± 30%.
1.
2.
3.
4.1.
4.2.
4.3.
4.4.
5.
6.
7.
Einflußfaktoren
Verflechtung mit anderen DV-Systemen
Dezentrale Verwaltung der Daten
Spez. Anforderungen an Antwortzeitverh.
Komplexität d. Rechenoperationen
Komplexität d. Kontrollverfahren
Komplexität d. Ausnahmeregelungen
Komplexität d. Logik
Wiederverwertbarkeit
Konvertierung von Datenbeständen
Anforderung an Benutzerbedienung
Bewertete Function-Points:
Bereich Summen
0-5
1
0-5
0
0-5
2
0-10
4
0-5
2
0-10
1
0-5
2
0-5
3
0-5
3
0-5
3
E2:
21
E3:
Aufwand in Personenmonaten:
93,73
5
5 Personenmonate/2 = 2.5 Monate Aufwand pro Person
8
EDV-Projekteentwicklung – Projektmanagement, Projektpräsentation, Software-Engineering – Stand 2006
Diplomarbeit Winkler, Zangerle 2008/09
Seite 35
NeXt Generation Net
1.6.3 Kommunikationsplan
[Von Philipp Zangerle]
Meetings:
Die Meetings zwischen dem Auftraggeber (Anton Feurstein) werden bei Bedarf
angesetzt. Treffen zwischen den Projektteammitgliedern findet regelmäßig
(jede Woche) statt.
Handy:
wichtige Handynummern:
Christoph Schönherr
Reinhard Stix
Anton Feurstein
Lukas Winkler
Philipp Zangerle
0699/10724470
0650/7300846
0650/8832008
0676/6272551
0664/1652271
Instant Messenger: Während den Ferien und Wochenenden werden Nachrichten über
Chatprogramme, wie MSN, ausgetauscht.
E-Mail:
Der Austausch der Diplomschrift zwischen
Diplomarbeitsbetreuer und Projektmitglieder
erfolgt größtenteils per E-Mail.
wichtige E-Mail Adressen:
Christoph Schönherr
Reinhard Stix
Anton Feurstein
Lukas Winkler
Philipp Zangerle
Webblog:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Im Webblog werden immer die aktuellen Änderungen niedergeschrieben.
Durch Anlegen eines neuen Topic werden auch alle involvierten Personen auf
den aktuellen Stand gehalten (automatischer E-Mail Versand).
Blog-Adresse:
nxgn-server.blogspot.com
Diplomarbeit Winkler, Zangerle 2008/09
Seite 36
NeXt Generation Net
1.6.4 Funktionenmatrix
Aufgaben
[Von Philipp Zangerle]
Gesamtplanung
Serverprogrammierung
Cliententwicklung
Webinterface
Datenbank
Dokumentation
Betatests
Stellen
Lukas Winkler
x
x
x
x
x
Philipp Zangerle
x
x
x
x
x
1.6.5 Verantwortungsmatrix
Aufgaben
[Von Philipp Zangerle]
Teilprojekt "Gesamtplanung"
Entwicklung des Grundkonzepts
Aufteilung der Arbeit
Protokollierung der Stunden
Festlegung der Termine
Diplomarbeit Winkler, Zangerle 2008/09
Stellen
Lukas
Winkler
V
V
M
M
Philipp Zangerle
M
M
V
V
Seite 37
NeXt Generation Net
1.7 Zeitplan
1.7.1 Mögliche Arbeitszeit
[Von Philipp Zangerle]
Projektbeginn:
Projektende:
01.06.2008
31.05.2009
Projektdauer:
12 Monate
tägliche mögliche Arbeitsstunden während der Schulzeit:
tägliche mögliche Arbeitsstunden in den Ferien:
1 Stunde
4 Stunden
Tage Schule im Schuljahr 2008/09
Arbeitstage in den Ferien/Feiertagen und autonomen Tagen (berechnet mit 5 Tagewoche):
mögliche Gesamtarbeitszeit (pro Person):
193 Tage
71 Tage
477 Stunden
1.7.2 Meilensteinliste
[Von Philipp Zangerle]
Meilenstein
1
2
3
4
5
7
8
9
Ereignis
Abschluss der Projektplanung
Abschluss der Betaversion: Datenbank
Abschluss der Betaversion: Webinterface
Inbetriebnahme des Servers im Heim
Abschluss der Betaversion: Server
Inbetriebnahme des Systems auf dem
Server
Abschluss der Testphase
Übergabe des fertigen Systems
Diplomarbeit Winkler, Zangerle 2008/09
Soll-Termin
Ist-Termin
01.09.2008
02.11.2008
01.12.2008
07.01.2009
08.12.2008
07.01.2009
07.01.2009
28.01.2009
22.01.2009
28.01.2009
04.02.2009
16.02.2009
04.03.2009
01.05.2009
12.05.2009
29.05.2009
Seite 38
NeXt Generation Net
1.7.3 Projektzeitplanung
[Von Lukas Winkler]
Legende:
Zangerle
Winkler
Diplomarbeit Winkler, Zangerle 2008/09
Seite 39
NeXt Generation Net
1.8 Kostenkalkulation
[Von Philipp Zangerle]
Arbeitszeit:
Stundensatz
Projektmitarbeiter Lukas Winkler (Autor: Lukas
Winkler):
Informieren, Einarbeiten
Detailplanung
Programmierung, Implementierung
Testphase und Verbesserung
Dokumentation
Zwischensumme
Projektmitarbeiter Philipp Zangerle (Autor: Philipp
Zangerle):
Informieren, Einarbeiten
Detailplanung
Programmierung, Implementierung
Testphase und Verbesserung
Dokumentation
Zwischensumme
Gesamtkosten der Arbeitszeit
€ 70,00
20
20
100
60
30
230
Stunden
Stunden
Stunden
Stunden
Stunden
Stunden
€ 1.400,00
€ 1.400,00
€ 7.000,00
€ 4.200,00
€ 2.100,00
€ 16.100,00
25
35
80
35
55
230
Stunden
Stunden
Stunden
Stunden
Stunden
Stunden
€ 1.750,00
€ 2.450,00
€ 5.600,00
€ 2.450,00
€ 3.850,00
€ 16.100,00
€ 32.200,00
Materialkosten:
Arbeitsplatz*
Programme**
Server***
Datenträger (USB)
Essen und Getränke bei Meetings
Telefonkosten
Fahrtkosten (Auto, Zug)
Papier/Druckfarbe und Stifte
Internetkosten
Gesamtkosten der Betriebsmittel
€ 0,00
€ 0,00
€ 0,00
€ 10,00
€ 30,00
€ 20,00
€ 40,00
€ 20,00
€ 20,00
€ 140,00
Gesamtkosten (exkl. Mwst.):
+20% MwSt
€ 32.340,00
€ 6.468,00
Gesamtkosten (inkl. Mwst.):
€ 38.808,00
* Es entstanden keine Arbeitsplatzkosten, da die Programmierung zu Hause oder in der Schule
erfolgte.
** Sämtliche Programme waren Schülerversionen, die kostenlos verwendet wurden.
*** Der Server wurde uns vom Schüler- und Lehrlingsheim bereitgestellt
Diplomarbeit Winkler, Zangerle 2008/09
Seite 40
NeXt Generation Net
Kapitel
2
2 Routing Software
Winkler Lukas
Diplomarbeit Winkler, Zangerle 2008/09
Seite 41
NeXt Generation Net
2.1 Übersicht
Dieser Teil der Diplomschrift befasst sich mit der Programmierung des Servers, des Clients
der zur Herstellung einer Verbindung zum Server benötigt wird, sowie mit dem eigentlichen
Routing (Weiterleiten des Netzwerkverkehrs ins Internet und zurück), Traffic Shaping
(Regulierung der Down- und Uploadgeschwindigkeit) und der Access Point Ansteuerung.
2.2 Begriffserklärung

AP(=Access Point)
„Ein Wireless Access Point (WAP, deutsch „Funkzugangsknoten“) ist ein
elektronisches Gerät, das als Schnittstelle für kabellose Kommunikationsgeräte
fungiert. Endgeräte stellen per Wireless Adapter (Funkadapter) eine Funkverbindung
zum Wireless Access Point her, der wiederum über ein Kabel mit einem fest
installierten Kommunikationsnetz verbunden sein kann. Für gewöhnlich verbinden
Wireless Access Points Notebooks und andere mobile Endgeräte mit eingebautem
Wireless Adapter über ein Wireless Local Area Network (WLAN, Funknetz) mit einem
Local Area Network (LAN) oder einem anderen kabelgebundenen Datennetz
(Telefonnetz, Kabelfernsehnetz ...).“9
Da im Altbau kein LAN zur Verfügung steht, erfolgt die Anbindung der Geräte in
diesen Zimmern per WLAN.

IP-Tables
„Netfilter ist eine freie Software innerhalb des Linux-Kernels, die es erlaubt,
Netzwerkpakete abzufangen und zu manipulieren. Es bildet damit das Herzstück
einer Firewall auf Basis von Linux. Xtables stellt die Tabellenstruktur zur
Regelmanipulation bereit; mithilfe von weiteren Modulen sind verschiedene Tests
und Manipulationen möglich. Weitere Komponenten im Rahmen von Netfilter sind
Connection Tracking und Network Address Translation.“10
Der nXgn-Server verwendet IP-Tables als Firewall und als Routingsoftware.

Traffic Shaping
„Mit Traffic-Shaping kann der Netzwerkverkehr in verschiedene Bereiche eingeteilt
werden. Diese Einteilungen sind beispielsweise Applikationen und Protokolle,
Übertragungsrichtungen zwischen Client und Host, Zeit und Art der Verbindung.“11
Über diese Einteilung können den einzelnen Verbindungen diverse Eigenschaften
zugeteilt werden. Ein Beispiel hierfür wäre, dass Zuweisen einer Übertragungsrate zu
einer Verbindung zwischen Router und Internet, wie es auch in der Diplomarbeit von
Nöten ist und deswegen auch eingesetzt wird.
9
Quelle: http://de.wikipedia.org/wiki/Access_Point
01.05.2009
11:48
10
Quelle: http://de.wikipedia.org/wiki/Netfilter/iptables
25.04.2009
13:53
11
Quelle: http://de.wikipedia.org/wiki/Traffic-Shaping
25.04.2009
13:30
Diplomarbeit Winkler, Zangerle 2008/09
Seite 42
NeXt Generation Net

Sockets
Eine elementare Schnittstelle zur Programmierung von Netzwerkanwendungen
bieten die so genannten Sockets. Als API stellen die Sockets Funktionen zum Aufbau
von Verbindungen sowie zur Kommunikation zwischen Applikationen bereit. 12
2.3 Aufbau des Routingteils
Wie schon im Grobdesign beschrieben verbinden sich die Enduser über einen Client mit dem
Server, um sich einzuloggen. Diese Verbindung ist aus Sicherheitsgründen verschlüsselt. Der
Server nimmt diese Verbindung entgegen und steuert anschließend Module(Routing, Traffic
Shaping, ...) , die sich je nach Betriebssystem/Vorlieben des Administrators unterscheiden
können, an. Diese Programme verrichten dann die eigentliche „Arbeit“, z.B. die IP-Tables
Ansteuerung für das Routing Modul.
12
Quelle:
http://www.tecchannel.de/webtechnik/entwicklung/402427/netzwerkprogrammierung_mit_sockets/
28.04.2009
15:41
Diplomarbeit Winkler, Zangerle 2008/09
Seite 43
NeXt Generation Net
Abbildung 18: Aufbau des Routingteils
Die dunkelblauen Teile wurden nicht modifiziert und werden nur vom Server angesteuert.
Sie sind austauschbar, da sie vom Betriebssystem abhängig sind, um die
Plattformunabhängigkeit zu bewahren.
2.3.1 Server
Der Server stellt das Herzstück des Routingteils dar. Er verwaltet eingehende Verbindungen,
steuert Module an und kommuniziert über die MySQL Datenbank mit dem Webinterface.
2.3.1.1 Nutzwertanalyse Programmiersprachen Server
Zur Auswahl der geeignetsten Programmiersprache wurde eine Nutzwertanalyse zwischen
den beiden Programmiersprachen Java und C++ durchgeführt.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 44
NeXt Generation Net
Java
Gewicht
C++
R GxR R GxR
Erfahrung
20 1
20 2
40
Lesbarkeit
10 2
20 1
10
Performance
15 2
30 1
15
Entwicklungsumgebungen
15 1
15 2
30
Libraries
20 1
20 2
40
Sicherheit
10 1
10 2
20
Plattformunabhängigkeit
10 1
10 2
20
125
175
1
2
Aufgrund des Ergebnisses wurde Java zur Programmierung des Servers verwendet, da es in
den für den nXgn-Server erforderlichen Bereichen signifikante Vorteile für die
Programmierung erbringt.
2.3.1.2 Kommunikation mit dem Client
Die Kommunikation mit dem Client erfolgt über eine SSL-Verbindung. Um diese zu erstellen
verwendet der nXgn-Server die SSL Server Factory aus dem javax.net.ssl.* Package. Dieses
erweitert den Datenaustausch über Sockets mit der geforderten SSL Verschlüsselung.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 45
NeXt Generation Net
Abbildung 19: Aufbau Kommunikation
Damit nicht ein Client die ganze Kommunikation blockiert, wird, sobald eine Verbindung
aufgebaut wird, ein Thread erstellt, der die Kommunikation dieser Verbindung überwacht.
Zusätzlich wird dieser Thread noch in einen Container gesteckt, um die Funktionalität zu
erhalten, Nachrichten an alle derzeit verbundenen Clients zu verschicken. Dies ist vor allem
in der Betaphase hilfreich, da User z.B.: über Serverneustarts oder etwaige Downtimes
informiert werden können.
2.3.1.3 Kommunikation mit der Datenbank
Um mit der MySQL Datenbank kommunizieren zu können, wird ein sogenannter Connector
von Sun benötigt. Dieser beinhaltet Funktionen zur Ansteuerung der Datenbank und ist in
allen gängigen Programmiersprachen verfügbar. Die Java Version dieses Connectors
konvertiert JDBC(Java Database Connectivity) Aufrufe in das von MySQL benötigte
Netzwerkprotokoll.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 46
NeXt Generation Net
Abbildung 20: Aufbau JDBC
2.3.1.4
Überwachung der User
Die letzte wichtige Aufgabe des Servers ist die stetige Überwachung aller zurzeit
eingeloggten User. Dies umfasst die Überwachung des Netzwerkverkehrs, der vom Client an
den Server gesendet wird, die ständige Beobachtung des Daten- und Zeitkontingents sowie
der Tageszei,t um das Ablaufen einer Zeitberechtigung des Users zu erfassen. All dies wird in
einem eigenen Thread, der für jeden eingeloggten User gestartet wird, überwacht.
while((me == t) && checkvolumen(sessiondownload) && checktime(usedtime) && checkclock()){
try{
sessiondownload += lt.getRouting().getDownloadedVolumeInKiloByte(user);
usedtime = (System.currentTimeMillis()-timer)/(1000);
for(int i = 0;i<tmpvec.size();i++){
lt.getlogging().log("Reshape " + tmpvec.get(i) + "for user:" + user + " with " +
lt.getdbwg().getdown(this) + "/" + lt.getdbwg().getup(this));
lt.getshaper().reshapeip(tmpvec.get(i), lt.getdbwg().getdown(this),
lt.getdbwg().getup(this));
}
sql.writerealbw(user, lt.getdbwg().getdown(this));
Thread.sleep(1000);
//Idle Time
}catch(InterruptedException ie){
ie.printStackTrace();
}
}
2.3.2 Client
Der Client dient dem Enduser dazu, sich am Server anzumelden. Über Rückmeldungen des
Servers wird der Enduser darüber informiert, ob



sein Download/Zeit Guthaben aufgebraucht ist.
seine Zeitberechtigung ausgelaufen ist.
er versucht, sich mit einem falschen Passwort anzumelden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 47
NeXt Generation Net


ihm die Berechtigung, sich zu dieser Tageszeit einzuloggen, fehlt.
ihm der Loginvorgang aufgrund der Workstation, auf der er sich befindet, verweigert
wird.
Zusätzlich erhält er noch Informationen über sein verbrauchtes Download Guthaben und
sein Zeitkontingent.
2.3.2.1 Nutzwertanalyse Programmiersprachen Client
Java
Gewicht
C++
Au3
R GxR R GxR R GxR
Erfahrung
20 2
40 3
60 1
20
Lesbarkeit
10 2
20 1
10 3
30
Performance
15 3
45 1
15 2
30
Entwicklungsumgebungen
15 1
15 2
30 3
45
freie Oberflächendesigner
25 2
50 3
75 1
25
Wiederverwendbarkeit von verwendetem Servercode
30 1
30 2
60 2
60
Libraries
20 1
20 2
40 3
60
Sicherheit
10 1
10 2
20 3
30
Plattformunabhängigkeit
10 1
10 2
20 3
30
240
330
330
1
2
3
Um die Anwendung des Clients für Enduser zu vereinfachen und aufgrund des Ergebnisses
der Nutzwertanalyse entschieden wir uns für ein ausführbares Java JAR-Archiv. Dieses kann
nach Installation des Java Runtime Environment(JRE) durch einen einfachen Doppelklick
gestartet werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 48
NeXt Generation Net
2.3.2.2 Design und Funktionsumfang
Das Oberflächendesign lehnt sich am Argos Client Applet und an einem in C++ gehaltenem
Client von Daniel Luttinger an. Ziel war es das Beste aus dem Design und dem
Funktionsumfang der beiden Clients herauszuholen.
Abbildung 21: Client vergleich
Diplomarbeit Winkler, Zangerle 2008/09
Seite 49
NeXt Generation Net
2.3.2.3 Kommunikation mit dem Server
Um doppelten Code zu vermeiden, läuft die ganze Kommunikation wie am Server wieder
über die sendpackage Klasse(siehe 2.2.1) ab. Dies erspart sehr viel Zeit bei der
Programmierung und vermeidet durch Weglassen von doppeltem Code Fehler.
2.3.3 Module/Adapter
Um die Steuerbefehle des Servers umzusetzen, sind Adapter zu den Endprogrammen von
Nöten. Zusätzlich zu diesen Adaptern wurden auch diverse Module z.B. zur AP Ansteuerung
benötigt.
2.3.3.1 Consolehandler.java
Der Console Handler wird unteranderem von der iptables Klasse benötigt. Er besitzt die
Fähigkeit, ein zum Betriebssystem passendes Shell Programm auszuführen und dessen
Output sowie möglicher Fehlerausgaben zurückzugeben.
Abbildung 22: consolehandler Aufruf
2.3.3.2 Routing
Da ein großer Vorteil der Java Programmiersprache die Plattformunabhängigkeit ist, wollten
wir Code, der ein bestimmtes Betriebssystem bzw. eine bestimmte Umgebung erfordert,
vermeiden.
Abbildung 23: Aufbau Routing
Diplomarbeit Winkler, Zangerle 2008/09
Seite 50
NeXt Generation Net
Der Routingchooser (routingchooser.java) hat die Aufgabe, je nach
Betriebssystem/Umgebung, ein Routingmittel zur Verfügung zu stellen. Von uns wurde, da
mehr den Rahmen der Diplomarbeit sprengen würde, nur die Möglichkeit des Routings via
IP-Tables implementiert.
Abbildung 24 Aufruf des Routingchoosers in der nxgn_server Klasse
2.3.3.2.1 IP-Tables
2.3.3.2.1.1 Verwendung
IP-Tables stellt, wie schon weiter oben erklärt, die Verbindung zwischen nXgn Server und
dem Routing des Linux Kernels dar. Durch Manipulation dieser Tabellen können einzelne IP’s
weiter geroutet werden, während andere verworfen werden. Kombiniert mit iproute2, das
dazu verwendet werden kann, diesen Routen ein Bandbreitenlimit aufzuerlegen, erhält man
ein vollwertiges Routingsystem, dass zusätzlich noch dazu in der Lage ist, Verbindungen auf
Grund ihrer Herkunft und ihres Ziels zu kategorisieren. Dies ist insbesondere dann nützlich,
wen man IP-Tables als Firewall verwenden möchte.
2.3.3.2.1.2 Firewall
Der Aufbau einer Firewall über IP-Tables gestaltet sich sehr einfach. Der Server führt bei der
Initialisierung des Routingmodules die notwendigen Befehle aus.
public void setdefaultroutes() {
new consolehandler().run("modprobe ip_tables"); //Ladet das IP-Tables Modul in den Kernel
new consolehandler().run("modprobe ipt_MASQUERADE");
new consolehandler().run("modprobe iptable_nat");
new consolehandler().run("echo '1' > /proc/sys/net/ipv4/ip_forward"); //Aktiviert Forwarding
iptable("-F");
//Löscht alle Routen
iptable("-t nat -F");
//Löscht alle Routen in der nat table
iptable("-t mangle -F");
//Löscht alle Routen in der mangle table
iptable("-P INPUT DROP");
//Setzt die Policy für eingehende Pakete auf DROP
iptable("-P OUTPUT ACCEPT");
//Setzt die Policy für ausgehende Pakete auf ACCEPT
iptable("-P FORWARD DROP");
//Setzt die Policy für Pakete, die geroutet werden auf DROP
iptable("-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT");
/*Lässt alle eingehenden Verbindungen die zu einer anderen Verbindung gehören zu*/
iptable("-A INPUT --protocol tcp --dport 22 -i "+ icard +" -j ACCEPT");
//ssh
iptable("-A INPUT --protocol tcp --dport 80 -i "+ icard +" -j ACCEPT");
//http
iptable("-A INPUT --protocol tcp --dport " + serverport + " -i "+ icard +" -j ACCEPT"); //nxgn
iptable("-A INPUT --protocol tcp --dport 443 -i "+ icard +" -j ACCEPT");
//ssl
iptable("-A INPUT --protocol tcp --dport 3306 -i "+ icard +" -j ACCEPT");
//MySQL
iptable("-A INPUT --protocol icmp --icmp-type 8 -i "+ icard +" -j ACCEPT");
//ping
iptable("-A INPUT -s 127.0.0.1 -j ACCEPT");
//lokale Verbindungen akzeptieren
iptable("-t nat -A POSTROUTING -o " + ocard + " -j MASQUERADE");
//NAT
iptable("-t nat -A PREROUTING -i " + icard + " -p tcp --dport 80 -j REDIRECT --to-ports 80");
// wenn nich eingeloggt dann forwarden auf loginseite!
}
Die Abarbeitung dieser Befehlskette erstellt eine Firewall, die die Parameter der
Konfigurationsdatei beachtet.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 51
NeXt Generation Net
2.3.3.2.1.3 Routing der User
Da logischerweise nur eingeloggte User weiter geroutet werden sollen, wurde die Policy der
FORWARD table auf drop13 gesetzt(siehe oben). Nun muss nur mehr überprüft, werden ob
der User, der durch Eingabe seines Usernamens und seines Passwortes den Loginvorgang
und damit auch das Routing ausgelöst hat, einen alternativen Proxy verwendet und schon
kann die entsprechende Route in den IP-Tables gesetzt werden.
public void routeip(String user, String ip, String proxy,stasi st) {
System.out.println(proxy);
if(proxy == null){
iptable("-N " + user);
iptable("-A " + user + " -j ACCEPT");
iptable("-A FORWARD -i " + icard + " -s " + ip + " -j " + user);
iptable("-A FORWARD -d " + ip + " -j " + user);
}else{
iptable("-t nat -A POSTROUTING -s " + ip + " -p tcp -j DNAT --to-destination " +
proxy);
}
return;
}
Schon steht dem Surf-Vergnügen des Users nichts mehr im Wege.
2.3.3.3 Traffic Shaping(iproute2)
Da ohne Regulierung des Traffics ein einzelner Benutzer die ganze zur Verfügung stehende
Bandbreite für sich beanspruchen könnte (z.B.: Streaming von Videos,…), muss diese
reguliert werden. Dies geschieht durch Einsatz von iproute2, welches eine Kollektion von
Tools zur Kontrolle von TCP/ UDP-Verbindungen und der Überwachung und Kontrolle von
Bandbreite beinhaltet.
2.3.3.3.1 Dynamische Bandbreitenregulierung
Da vor allem am Vormittag und in der Nacht nur sehr wenige User online sind, wird oftmals
nicht die ganze zur Verfügung stehende Bandbreite ausgenutzt. Um dem entgegen zu
wirken, wird die Bandbreite vom nXgn-Server dynamisch aufgeteilt. Das heißt, jedem User
wird über seine Benutzergruppe eine Bandbreite zugeteilt. Diese Bandbreite wird mit denen
der eingeloggten User verglichen und so abgeändert, dass immer 100% der zur Verfügung
stehenden Leistung ausgenutzt wird.
𝑡𝑎𝑡𝑠ä𝑐ℎ𝑙𝑖𝑐ℎ𝑒 𝐵𝑎𝑛𝑑𝑏𝑟𝑒𝑖𝑡𝑒 =
𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑒 𝐵𝑎𝑛𝑑𝑏𝑟𝑒𝑖𝑡𝑒
∗ 𝑠𝑡𝑎𝑡𝑖𝑠𝑐ℎ𝑒 𝐵𝑎𝑛𝑑𝑏𝑟𝑒𝑖𝑡𝑒
𝑏𝑒𝑙𝑒𝑔𝑡𝑒 𝐵𝑎𝑛𝑑𝑏𝑟𝑒𝑖𝑡𝑒
Da bei diesem Algorithmus auch „VIP‘s“ unter Umständen auf Teile ihrer Bandbreite
verzichten müssten, wird zusätzlich noch abgefragt, ob der Benutzer über ein sogenanntes
„fixedminimal“ Flag verfügt. Falls ja, wird ihm - vorausgesetzt der Wert „tatsächliche
Bandbreite“ liegt unter seiner statischen Bandbreite - seine statische Bandbreite zugeteilt.
Andernfalls erhält er wie ein normaler User die „tatsächliche Bandbreite“.
13
Drop: verwerfen der Pakete ohne Rückmeldung an den Sender(d.h. Sender erhält wahrscheinlich Timeout)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 52
NeXt Generation Net
Zur besseren Administration und Übersicht wird diese „tatsächliche Bandbreite“ für jeden
eingeloggten User in der Datenbank abgespeichert.
2.3.3.3.2 Shaping
Das Shaping selbst wird über den Konsolenbefehl tc umgesetzt. Stark vereinfacht: Mit tc
werden Klassen mit der richtigen Bandbreite angelegt und über Filter werden diese Klassen
mit dem dazugehörigen User verbunden.
public void shapeip(String ip,int down,int up){
tc("class add dev " + cr.getincominginterface() + " parent 1: classid 1:" +
(Integer.valueOf(ip.split("\\.")[3])+1000) + " htb rate " + down + "kbps");
tc("class add dev " + cr.getincominginterface() + " parent 1: classid 1:" +
(Integer.valueOf(ip.split("\\.")[3])+2000) + " htb rate " + up + "kbps");
tc("filter add dev " + cr.getincominginterface() + " protocol ip parent 1:0 prio 1 u32 match ip
dst " + ip +"/32 flowid 1:" + (Integer.valueOf(ip.split("\\.")[3])+1000));
tc("filter add dev " + cr.getincominginterface() + " protocol ip parent 1:0 prio 1 u32 match ip
src " + ip +"/32 flowid 1:" + (Integer.valueOf(ip.split("\\.")[3])+2000));
}
Zusätzlich wird die Funktion reshapeip, die nahezu identisch mit der Funktion shapeip ist,
nach jeder Überprüfung der Berechtigung eines Users ausgeführt um die dynamische
Bandbreite neu zu berechnen und somit auch auf neu eingeloggte User reagieren zu können.
2.3.3.4 DHCP
DHCP ist eine englische Abkürzung
und steht für Dynamic Host
Configuration Protocol. DHCP
ermöglicht die dynamische
Einbindung neuer Netzwerkgeräte
in ein bestehendes Netzwerk ohne
das betroffene Gerät (Computer,
Drucker,…) manuell konfigurieren
zu müssen.
Um die Benutzung für die Enduser
so komfortabel wie nur irgendwie
möglich zu gestalten, wurde die
Ansteuerung eines DHCP-Servers in
die Programmierung inkludiert.
Abbildung 25: Ablauf DHCP
Dies geschieht durch das
Quelle:
dhcpwriter Interface, das wie auch
http://blogs.microsoft.co.il/blogs/netanelb/WindowsLiveWriter/Everythi
die anderen Punkte auf
ngyouneedtoknowaboutDHCPasaSyste_10CE4/DHCP_DORA.jpg
11.05.09
19:08
Unabhängigkeit der Endmodule
setzt. So setzt der nXgn-Server
standardmäßig auf den in der Linuxwelt sehr stark verbreiteten dhcp3 Server, dennoch
könnte man auch seinen eigenen DHCP Server schreiben und ihn über das Interface an den
nXgn-Server anbinden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 53
NeXt Generation Net
Das dhcp3 Modul wird bei jeder Änderung der IP- und Mac Adressen aufgerufen und
schreibt die ganze Konfigurationsdatei des Servers über Daten, die aus der MySQL
Datenbank ausgelesen werden, neu. Anschließend wird der dhcp3 Server neugestartet,
sodass Änderungen sofort wirksam werden.
2.3.3.5 AP
Da die Heimleitung darauf verzichtet eine Verschlüsselung ihres WLAN Netzes einzurichten,
aber gleichzeitig verhindern möchte, dass Fremde das Heimnetz benutzen, wird seit Jahren
eine MAC Access Control List benutzt. Diese ist jedoch kein zuverlässiger Schutz vor
Eindringlingen, da MAC Adressen im Klartext mit jedem Netzwerkpaket mitverschickt
werden und somit einfach auszulesen sind. Ein Eindringling muss seine eigene MAC Adresse
mit der aus dem Netzwerktraffic ausgelesen ersetzen und schon hat er Zugriff auf das
gewünschte Netz.
Nichtsdestrotrotz wurde vom nXgn Server verlangt, dass die ACL’s aller Router im Heim von
ihm bearbeitet werden können. Da sich darunter auch mehrmals der selbe Routertyp
befinden kann und diese auch leicht austauschbar sein sollen, wurde ein Treibersystem
entwickelt, welches aufgrund der in der Datenbank hinterlegten Daten auf den Router
zugreifen und dessen ACL’s manipulieren kann.
2.3.3.5.1 Treiber
Unter einem Treiber versteht man jenen Programmteil, der Befehle einer Schnittstelle
entgegennimmt und sie in für die passende Hardware verständliche Befehle umwandelt.
2.3.3.5.1.1 Aufbau
Im Fall der AP-Ansteuerung ruft der nXgn-Server alle AP’s aus der Datenbank ab und steuert
jeden mit dem passenden Treiber an. Somit können, im Falle eines AP-Austausches, über
einfache Editierung des in der MySQL Datenbank hinterlegten Strings Änderungen
eingepflegt werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 54
NeXt Generation Net
Abbildung 26: Aufbau AP
Durch Hinterlegung derselben Treiber_ID im der AP Tabelle ist es auch möglich, zwei oder
mehr Access Points desselben Typs mit demselben Treiber anzusteuern.
2.3.3.5.1.2 Funktionsweise
1. Aufbau einer Verbindung zum Access Point über die in der AP Tabelle
abgespeicherten Daten.
2. Anmeldung am AP
3. Treiber ID des AP aus der Datenbank abfragen
4. Benötigtes Kommando wird aus der passenden Treiber Tabelle abgefragt
5. Befehlsstring wird an „;“ geteilt und eventuelle Platzhalter werden durch die
entsprechenden Variablen ersetzt.
6. Der erste Teil des Strings wird an den AP gesendet, nachdem die Antwort
entgegengenommen und geloggt wurde, wird der nächste Teil gesendet, bis der
ganze String abgearbeitet wurde.
2.3.4 Logging
Da auch im Nachhinein die Aktionen des Servers verfolgbar sein sollen, werden sämtliche
Aktionen, Verbindungsaufbauten und Login-Vorgänge mitgeschrieben.
2009/03/10 17:23:23
2009/03/10 17:23:23
2009/03/10 17:23:23
2009/03/10 17:23:23
Log:Old Log-Files deleted
Log:Server starting up, HDD Logging activated
Log:Reading Server Configuration
Log:Initializing Routing + Firewalling
Diplomarbeit Winkler, Zangerle 2008/09
Seite 55
NeXt Generation Net
2009/03/10 17:23:23
2009/03/10 17:23:23
2009/03/10 17:23:23
2009/03/10 17:23:23
2009/03/10 17:23:24
2009/03/10 17:23:24
2009/03/10 17:23:24
Log:Linux detected, starting iptables...
Log:Initializing SQL-Server
Log:Initializing SQL-Connection
Log:Trying to connect as root on 127.0.0.1
Log:Initializing Server
Log:Fireing up ConnectionHandler
Log:Server is now accepting Connections
2.4 Ausarbeitung/Vorbereitung Usability Analyse
2.4.1 Übersicht
Usability Analysen zeigen Fehler, Schwachstellen und Stärken im Design von Oberflächen
auf. Um die Benutzerfreundlichkeit des Clients zu testen, werden folgende Punkte
vorbereitet:



Fragebogen
Usability –Test mit der „Think Aloud“-Methode
Bildschirm- und Audioaufzeichnungen während den Usability Tests
2.4.1.1 Fragebogen
Da es sehr aufwendig und kostspielig ist, Einzelinterviews mit jedem einzelnen Beta-Tester
durchzuführen, wird ein Fragebogen ausgearbeitet, welcher anschließend ausgewertet wird
um ein Bild davon zu bekommen, wie zufrieden die Tester mit dem neuen System sind.
1. Alter?
a. 0-10
b. 10-15
c. 15-20
d. 20-30
e. 30-50
f. 50+
2. Erfahrung im Umgang mit Computern (in Schulnoten)?
3. Wie findest du das aktuelle System (in Schulnoten)?
4. Verwendest du das aktuelle System? Wenn ja, wie oft in der Woche?
5. Design des alten Java Clients (in Schulnoten)?
6. Funktionsumfang des alten Java Clients (in Schulnoten)?
7. Design des alten c++ Clients (in Schulnoten)?
8. Funktionsumfang des alten c++ Clients (in Schulnoten)?
9. Wirst du nXgn verwenden? Wenn ja, wie oft in der Woche?
10. Design des neuen Clients (in Schulnoten)?
11. Funktionsumfang des neuen Clients (in Schulnoten)?
2.4.1.2 Usability-Test mit der “Think Aloud”-Methode
Die „Think Aloud“-Methode stellt einen einfachen Usability-Test dar, der keine
Laborumgebung benötigt, einfach durchzuführen ist und dennoch brauchbare Ergebnisse
erzielt.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 56
NeXt Generation Net
Die Vorgehensweise besteht darin, Testpersonen Aufgabenstellungen mit Hilfe des Clients
lösen zu lassen. Dabei sprechen sie ihre Gedanken und Handlungen laut aus und können so
Schwachstellen aufdecken, die wir aufgrund unserer Vertrautheit mit dem System nicht
finden konnten.
Die Handlungen und Äußerungen der Testpersonen werden mit protokolliert.
2.4.1.2.1 Aufgabenstellung







Starten des Clients
Einloggen mit falschem Usernamen
Einloggen mit falschem Passwort
Einloggen auf falscher Workstation
Einloggen mit richtigen Daten auf richtiger Workstation
5min beliebige Seiten im Internet aufrufen
Abmelden
2.4.1.3 Bildschirm- und Audioaufzeichnungen während den Usability Tests
Um zu späteren Zeitpunkten wieder auf die Ergebnisse der Usability-Tests zurückgreifen zu
können, werden sämtliche Bildschirmaktivitäten und Bemerkungen der Testpersonen
aufgezeichnet.
2.5 Projektmanagement
Siehe Kapitel 1 und Nutzwertanalysen siehe oben.
2.6 Verwendete Software











Microsoft Office 2007
Diplomschrift
Open Office 3.0
Diplomschrift
Eclipse SDK 3.2
Entwicklungsumgebung
Debian Etch
Serverbetriebssystem
Iproute2
Iptables
Scite
Syntaxhighlighting Diplomschrift
VmWare
Simulation
Filezilla
FTP-Client
Meebo
Web Instant Messanger
Mozilla Firefox
Browser
Diplomarbeit Winkler, Zangerle 2008/09
Seite 57
NeXt Generation Net
Kapitel
3
3 Das Webinterface und die MySQL Datenbank
Zangerle Philipp
Diplomarbeit Winkler, Zangerle 2008/09
Seite 58
NeXt Generation Net
3.1 Allgemein
Dadurch, dass die komplette Administration und die Statistiken über einen Browser
konfiguriert und eingesehen werden können, erreichen wir den großen Vorteil der
Plattformunabhängigkeit. Das ist in diesem Heim besonders wichtig, da besonders viele
Heimbewohner Linux und Mac OS-X als Zweit- bzw. sogar als Haupt-Betriebssystem nützen.
Die Datenbank bildet die Schnittstelle zwischen Routing Software und Webinterface.
Routing Software
MySQL
Webinterface
(Lukas Winkler)
Datenbank
(Philipp Zangerle)
3.2 Nutzwertanalyse über die Administrationsinterface
Geschwindigkeit
Aufwand
Programm
Komplexität
Webinterface
G
[%]
15
Usability
5
Seitennavigation
10
Übersicht
Schnelles Arbeiten 10
40
20
Dateneingabe
10
Statistikübersicht
30
Wert
leicht
schnell
sehr gut
sehr schnell
sehr leicht
leicht
einsehbar
Konsole
R
1
1
1
1
1
1
1
GxR
15
5
10
40
70
20
10
aufwendig
schlechte
Übersicht
1 30
20
schnell
2 40
10
schnell
2 20
Seitenaufbau
Seitenwechsel
30
R
2
3
1
3
3
3
3
GxR
30
15
10
120
175
60
30
Wert
mittelmäßig
mittelmäßig
gut
mittelmäßig
R
3
2
2
2
2
umständlich 2
mittelmäßige 2
Übersicht
3 90
sehr
schnell
sehr
schnell
2 60
Webinterface
Programm
Komplexität
Aufwand
Geschwindigkeit
Summe
Wert
schwierig
langsam
schlecht
langsam
Java Applet
GxR
45
10
20
80
155
40
20
2 60
1 20
mittel
3 120
1 10
mittel
3 60
1 30
Konsole
3 180
Java Applet
G
[%]
Rang
GxR Rang
GxR Rang
GxR
40
30
30
1
1
2
70
30
60
160
175 2
90 2
30 3
295
155
60
180
395
2
3
Rang
1
3
3
1
Legenden:
G – Gewichtung, R – Rang
Diplomarbeit Winkler, Zangerle 2008/09
Seite 59
NeXt Generation Net
3.3 Die fachmännische Gestaltung von Benutzeroberflächen
Prinzipien für Benutzeroberflächen lt. DIN:
festgehalten in der Norm DIN EN ISO 9241 Teil 110

Aufgabenangemessenheit

Selbstbeschreibungsfähigkeit

Steuerbarkeit

Erwartungskonformität

Fehlertoleranz

Individualisierbarkeit

Lernförderlichkeit
3.3.1 Aufgabenangemessenheit
DIN: „Ein interaktives System ist aufgabenangemessen, wenn es den Benutzer unterstützt,
seine Arbeitsaufgabe zu erledigen, d. h., wenn Funktionalität und Dialog auf den
charakteristischen Eigenschaften der Arbeitsaufgabe basieren, anstatt auf der zur
Aufgabenerledigung eingesetzten Technologie.
Beispiel: Vorgabe von Standardwerten bei Eingabefeldern, die von der Arbeitsaufgabe her
sinnvoll sind.“
3.3.2 Selbstbeschreibungsfähigkeit
DIN: „Ein Dialog ist in dem Maße selbstbeschreibungsfähig, in dem für den Benutzer zu jeder
Zeit offensichtlich ist, in welchem Dialog, an welcher Stelle im Dialog er sich befindet, welche
Handlungen unternommen werden können und wie diese ausgeführt werden können.
Beispiel: Anzeige von Zustandsänderungen des Systems: Wird eine Eingabe erwartet oder
ein Kommando ausgeführt?“
3.3.3 Steuerbarkeit
DIN: „Ein Dialog ist steuerbar, wenn der Benutzer in der Lage ist, den Dialogablauf zu starten
sowie seine Richtung und Geschwindigkeit zu beeinflussen, bis das Ziel erreicht ist.
Beispiel: Verschiedene Nutzungsarten (je nach Erfahrungstand des Benutzers): Aufruf von
Operationen über Transaktionscodes, Menüführung oder direkte Manipulation per Maus.“
3.3.4 Erwartungskonformität
DIN: „Ein Dialog ist erwartungskonform, wenn er den aus dem Nutzungskontext heraus
vorhersehbaren Benutzerbelangen sowie allgemein anerkannten Konventionen entspricht.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 60
NeXt Generation Net
ANMERKUNG 1 Allgemein anerkannten Konventionen zu entsprechen, ist lediglich ein
Aspekt von Erwartungskonformität.
ANMERKUNG 2 Konsistenz erhöht grundsätzlich die Vorhersehbarkeit eines Dialoges.
ANMERKUNG 3 Benutzerbelange können z. B. Kenntnisse aus dem Arbeitsgebiet, der
Ausbildung und der Erfahrung sein.
Beispiel: Gleiche Verwendung von Funktionscodes und -tasten in allen Masken und Menüs“
3.3.5 Fehlertoleranz
DIN: „Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergebnis trotz erkennbar
fehlerhafter Eingaben entweder mit keinem oder mit minimalem Korrekturaufwand seitens
des Benutzers erreicht werden kann.
Beispiel: Kein undefinierter Systemzustand oder Systemzusammenbruch nach fehlerhaften
Eingaben“
3.3.6 Individualisierbarkeit
DIN: „Ein Dialog ist individualisierbar, wenn Benutzer die Mensch-System-Interaktion und die
Darstellung von Informationen ändern können, um diese an ihre individuellen Fähigkeiten
und Bedürfnisse anzupassen.
Beispiel: Abschaltbare bzw. erweiterbare Kommandos und Menüs (definierbare Iconleisten)“
3.3.7 Lernförderlichkeit
DIN: „Ein Dialog ist lernförderlich, wenn er den Benutzer beim Erlernen der Nutzung des
interaktiven Systems unterstützt und anleitet.“
Diplomarbeit Winkler, Zangerle 2008/09
Seite 61
NeXt Generation Net
3.4 Die Software
3.4.1 Apache
„Der Apache HTTP Server ist ein
Produkt der Apache Software
Foundation und der meistbenutzte
Webserver im Internet.
Abbildung 27: Apache Logo
Neben Unix und Linux unterstützt Apache auch Win32, NetWare sowie eine Vielzahl
weiterer Betriebssysteme. In Version 2.0 wurde die Stabilität und Geschwindigkeit des
Servers – vor allem auch auf Nicht-Unix-Systemen – erheblich verbessert: Die Bibliothek
Apache Portable Runtime (APR) stellt eine Verallgemeinerung wichtiger Systemaufrufe zur
Verfügung, sodass die individuellen Stärken des jeweiligen Betriebssystems ausgenutzt
werden können. Hinzu kommen verschiedene Multiprocessing-Module (MPM), die je nach
Plattform unterschiedliche Lösungen für die gleichzeitige Bedienung mehrerer ClientAnfragen anbieten: Beispielsweise setzt das MPM prefork für klassische Unix-Systeme auf
Forking von Prozessen, während mpm_winnt für die unter Windows empfehlenswerteren
Threads optimiert ist.
Der Apache-Webserver ist modular aufgebaut: Durch entsprechende Module kann er
beispielsweise die Kommunikation zwischen Browser und Webserver verschlüsseln
(mod_ssl), als Proxyserver eingesetzt werden (mod_proxy) oder komplexe Manipulationen
von HTTP-Kopfdaten (mod headers) und URLs (mod_rewrite) durchführen.
Der Apache bietet die Möglichkeit, mittels serverseitiger Skriptsprachen Webseiten
dynamisch zu erstellen. Häufig verwendete Skriptsprachen sind PHP, Perl oder Ruby. Diese
sind kein Bestandteil des Webservers, sondern müssen ebenfalls entweder als Module
eingebunden werden oder über das CGI angesprochen werden. Über das bei der ApacheInstallation enthaltene mod_include kann Server Side Includes (SSI) ausgeführt werden.
Damit ist es möglich, einfache dynamische Webseiten zu erstellen und den
Verwaltungsaufwand von statischen Webseiten zu minimieren.
Der Apache HTTP Server ist, wie alle Programme der Apache Software Foundation, freie
Software. Derzeit werden noch die stabilen Versionen 1.3.x, 2.0.x und 2.2.x unterstützt und
somit beispielsweise mit Sicherheitsupdates versorgt. Die Apache-Entwickler empfehlen
aber, die Version 2.2.x einzusetzen, da sie diese Version für die beste erhältliche halten.“14
3.4.2 Structured Query Language (SQL)
SQL ist eine Datenbanksprache die verwendet wird um Daten zu definieren, abzufragen und
zu manipulieren. Diese Daten sind in einer relationalen Datenbank niedergeschrieben.
Relationale Datenbank bedeutet das alle Daten zusammenhängen wie in einer Tabelle.
14
http://de.wikipedia.org/wiki/Apache_HTTP_Server - am 11.02.2009
Diplomarbeit Winkler, Zangerle 2008/09
Seite 62
NeXt Generation Net
„Eine relationale Datenbank dient zur elektronischen Datenverwaltung in
Computersystemen und beruht auf dem relationalen Datenbankmodell. Dieses wurde 1970
von Edgar F. Codd erstmals vorgeschlagen und ist bis heute, trotz einiger Kritikpunkte, ein
etablierter Standard für Datenbanken.
Das zugehörige Datenbankmanagementsystem wird als relationales
Datenbankmanagementsystem oder RDBMS (Relational Database Management Systems)
bezeichnet. Zum Abfragen und Manipulieren der Daten wird überwiegend die
Datenbanksprache SQL (Structured Query Language) eingesetzt, die ebenfalls von Codd
entwickelt wurde.
Grundlage des Konzeptes relationaler Datenbanken ist die Relation, ein im mathematischen
Sinn wohldefinierter Begriff. Sie stellt eine mathematische Beschreibung einer Tabelle dar;
siehe Datenbankrelation. Operationen auf diesen Relationen werden durch die Relationale
Algebra bestimmt. Die relationale Algebra ist somit die theoretische Grundlage von SQL.
Trotz der mathematischen, abstrakten Definition des Datenbankmodells sind relationale
Datenbanken vergleichsweise einfach und flexibel zu handhaben. Dies hatte großen Einfluss
auf den Erfolg dieser Datenbanktechnik.“15
Beispiel einer relationalen Datenbank:
ID
1
2
3
4
PLZ
6020
6787
6423
6452
Stadt
Innsbruck
Garmisch
Pinswang
Pettneu
Telefonnummer
055481234
055484321
055484234
055487839
Straßennummer
Anichstraße
Holzweg 3
Oberpinswang
Steinig
Türnummer
312
431
532
184a
3.4.2.1 Normalformen
„Unter Normalisierung eines relationalen Datenbankschemas versteht man die schrittweise
Zerlegung von Relationen (in der Datenbank: Tabellen), mittels Normalisierungsalgorithmen
(siehe z. B. Synthesealgorithmus (3NF), Zerlegungsalgorithmus (BCNF)), in mehrere
Relationen auf der Grundlage funktionaler Abhängigkeiten. Eine Normalisierung ist
notwendig, um Redundanzen der Daten zu vermeiden, die bei der Änderung von Daten zu
Inkonsistenzen führen können und einen erhöhten Speicherplatz benötigen.“16
3.4.2.1.1 Erste Normalform
Alle Attribute atomarer Werte müssen enthalten sein. Atomare Werte bedeutet, das
Kleinste nicht mehr teilbare. Ein Name besteht aus einem Vornamen und einen Nachnamen.
Diese zwei Werte müssen strikt getrennt sein.
15
http://de.wikipedia.org/wiki/Relationale_Datenbank am 12.02.2009
16
http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) am 21.05.2009
Diplomarbeit Winkler, Zangerle 2008/09
Seite 63
NeXt Generation Net
3.4.2.1.2 Zweite Normalform
„Eine Relation ist in der zweiten Normalform, wenn die erste Normalform vorliegt und jedes
Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional abhängig ist.
Anders gesagt: Jedes nicht-primäre Attribut (nicht Teil eines Schlüssels) ist jeweils vom
ganzen Schlüssel abhängig, nicht von nur einem Teil eines Schlüssels.“17
Beispiel:
Kundennummer
(prim.)
1
2
3
Auftragsdatum
(prim.)
1.5.2002
2.5.2002
1.7.2002
Artikelnummer
(prim.)
18
19
18
Artikelname Menge
Monitor
HDD
Monitor
1
2
5
3.4.2.1.3 Dritte Normalform
Relationen sind in der dritten Normalform, wenn sie sich in der ersten und zweiten
Normalform befinden und zusätzlich keine funktionalen Abhängigkeiten zwischen Attributen
erlaubt, die nicht als Schlüssel definiert sind (alle ohne Primär-Schlüssel).
Beispiel:
Kundennummer
(prim.)
1
2
3
Auftragsdatum
(prim.)
1.5.2002
2.5.2002
1.7.2002
Artikelnummer
(prim.)
18
19
18
Artikelname Menge
Monitor
HDD
Monitor
1
2
5
Hier muss eine zweite Tabelle angelegt werden, da die obere relationale Datenbank nicht
der dritten Normalform entspricht.
Artikel
Artikelnummer Artikelname
15
Monitor
3.4.3 PHP
„PHP (rekursives Backronym für „PHP: Hypertext Preprocessor“, ursprünglich „Personal
Home Page Tools“) ist eine Skriptsprache mit einer an C angelehnten Syntax, die
hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen
verwendet wird. PHP ist Open-Source-Software.
PHP zeichnet sich besonders durch die leichte Erlernbarkeit, die breite
Datenbankunterstützung und Internet-Protokolleinbindung sowie die Verfügbarkeit
zahlreicher, zusätzlicher Funktionsbibliotheken aus. Es existieren beispielsweise
17
http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)#Zweite_Normalform_.282NF.29 – am 12.02.2009
Diplomarbeit Winkler, Zangerle 2008/09
Seite 64
NeXt Generation Net
Programmbibliotheken, um Bilder und Grafiken zur Einbindung in Webseiten dynamisch zu
generieren.“18
3.5 Projektmanagement
Die Aufgabenstellung (1.1), Problemanalyse (1.3.3), Testprotokolle (1.3.2.4), Grobdesign
(1.3.5.), Aufwandschätzung (1.3.6), Zeitplan (1.3.7) und Kostenkalkulation (1.3.8) befindet
sich im Kapitel 1.
3.5.1 Verwendete Software
3.5.1.1 Programme









18
Adobe Dreamweaver CS3
Programmieroberfläche
Adobe Photoshop CS3
Weboberflächengestaltung
Paint (Windows XP und Windows Vista)
Diplomschrift
Xampp mit
Webserver Apache
Datenbank MySQL
Skriptsprache PHP
Scite
Syntaxhighlighting Diplomschrift
Editor (Windows XP und Windows Vista)
Diplomschrift
Microsoft Word 2007
Diplomschrift
Mozilla Firefox 3.0
Testplattform
Windows Live Messenger
Kommunikationssoftware
http://de.wikipedia.org/wiki/Php - am 12.02.2009
Diplomarbeit Winkler, Zangerle 2008/09
Seite 65
NeXt Generation Net
Darstellung
Code
Generierung
Arbeitsablauf
Programm
Komplexität
3.5.1.2 Nutzwertanalyse zur Wahl der Programmieroberfläche
Usability
Seitennavigation
Projektorganisation
Möglichkeit Vorlagen zu
erzeugen
mit Text
mit Tabellen
mit Layern
CSS
W3C konform
Überschaubar
"Sauberer Code"
Wechsel zwischen Code
und Entwurfsansicht
Syntax Higligthing
Programm Komplexität
Arbeitsablauf
Code Generierung
Darstellung
G
[%]
5
4
4
7
20
5
6
4
15
30
15
5
10
30
Dreamweaver
Front Page
Wert
Mittel
Sehr gut
Sehr gut
Ja
Gut
Gut
Sehr gut
Sehr gut
Sehr gut
Sehr gut
Sehr gut
einfacher Editor
R
3
1
1
1
GxR
15
4
4
20
Wert
Gut
Gut
gut
Ja
R
2
2
2
1
GxR
10
8
8
20
1
2
2
1
1
1
1
1
1
1
43
10
12
4
15
41
15
5
30
50
2
Sehr gut 1
Sehr gut 1
Schlecht 2
Mittel
2
2
Mittel
2
Mittel
2
Mittel
2
3
46
5
6
8
30
49
30
10
60
100
Wert
Sehr einfach
Schlecht
Schlecht
Nein
Sehr gut
Schlecht
Schlecht
Schlecht
Sehr gut
Schlecht
Sehr gut
R
1
3
3
2
GxR
15
12
12
40
3
1
3
2
3
3
1
3
1
2
79
10
36
8
45
99
15
15
30
60
12
Ja
1 12
Ja
1 12
Nein
2 24
13
25
Ja
1 13
1 25
Ja
1 13
1 25
Nein
2 26
2 50
G
[%]
30
40
20
10
Dreamweaver
Front Page
Rang
1
1
1
1
Rang
2
2
3
1
GxR
43
41
50
25
einfacher Editor
GxR
46
49
100
25
Rang
3
3
2
2
GxR
79
99
60
50
Summe
159
220
288
Rang
1
2
3
Legenden:
G - Gewichtung
R - Rang
Dreamweaver - Adobe Dreamweaver CS3
Front Page - Microsoft Front Page 2003
Einfacher Editor - Editor von Windows XP und Vista
Bemerkungen:
Diplomarbeit Winkler, Zangerle 2008/09
Seite 66
NeXt Generation Net
3.6 Detailplanung (Webinterface)
3.6.1 Die Startseite
Auf die Website wird jeder Benutzer automatisch weitergeleitet, der noch nicht mit der
Client Software eine Verbindung zum Server hergestellt und sich eingeloggt hat. Hier können
folgende Aktionen durchgeführt werden:
1) Die Zugangssoftware kann heruntergeladen werden.
2) Durch Benutzername und Passworteingabe wird automatisch überprüft, ob es sich
um einen einfachen Benutzer, Administrator oder einen abgeschwächten
Administrator handelt. Je nach Zugriffsrecht wird der User auf eine andere Seite
weitergeleitet. Was sich auf den folgenden Seiten befindet, wird unter den Punkten
„Userseite“, „Administrationsseiten“ und „abgeschwächter Administrator“ genauer
erläutert.
3) Sobald ein User, einen vom Administrator freigegebene Registrierungsschlüssel
besitzt, kann er sich unter dem Punkt „Neuer Benutzer anlegen“, einen neuen
Benutzer erstellen.
Abbildung 28: Startseite
Diplomarbeit Winkler, Zangerle 2008/09
Seite 67
NeXt Generation Net
3.6.2 Die Userseite
Die Userseiten sind für folgende Punkte konzipiert:




Download-Statistik
Zeitverbrauchs Statistik
Auflistung der zeitlichen Berechtigungen
Änderung des Benutzerpasswortes
3.6.2.1 Statistik
Auf der Startseite bzw. Statistikseite wird der aktuelle Download und Zeitverbrauch
numerisch und grafisch dargestellt. Weiteres werden noch die zeitlichen Begrenzungen
dargestellt.
Abbildung 29: Statistik (User)
3.6.2.2 Passwort ändern
Zusätzlich zur Passwortänderungsfunktion ist ersichtlich, in welcher Gruppe sich der
Benutzer befindet.
Abbildung 30: Passwort ändern (User)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 68
NeXt Generation Net
3.6.3 Die Administrationsseite
3.6.3.1 System
Systembezogende Aufgaben werden hier aufgelistet.
3.6.3.1.1 Systemstatus
Die Systemstatusseite ist die Startseite des Administrationsbereiches.
Statistiken:




Die Zeit seit dem letzten Systemstart
Die Anzahl der registrierten Benutzer
Die Top 10 Downloader des Tages mit dem jeweils verbrauchtem Volumen
Die registrierten Benutzergruppen
1
Abbildung 31: Systemstatus
Features
1) Durch Anklicken auf den Text „Onlinestatus“, gelangt man auf den Onlinestatus der
Benutzer, die gerade angemeldet sind.
2) Mit einem einfachen Klick auf den Benutzer, bei den „10 Top Downloader“, gelangt
man auf die Statistikseite des Benutzers.
2
Abbildung 32: Systemstatus (Top 10 Downloader)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 69
NeXt Generation Net
3.6.3.1.2 Systemkonfiguration
Einstellungen:




Änderung des Passwortes
Die zugeordnete Gruppe ist ersichtlich
Sicherung der Datenbank
Änderung der Konfigurationsdatei
Abbildung 33: Systemkonfiguration
3.6.3.1.3 Access Points
Hier können die Access Points erstellt und bearbeitet werden. Weiters werden diese
aufgelistet.
Bemerkung: Jeder Access Point besitzt eine Treiber ID, diese Treiber ID verweist auf einen
Eintrag in der Tabelle „treiber“. Dieser Treiber muss vorher über „phpmyadmin“ manuell
angelegt werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 70
NeXt Generation Net
2
1
Abbildung 34: Accesspoints
Features
1) Jede Spalte kann alphabetisch, auf- oder abwärts, sortiert werden.
2) Durch einen einfachen Klick, können alle eingetragenen Access Points schnell
gelöscht werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 71
NeXt Generation Net
3.6.3.1.4 Registrierung
Damit ein neuer Heimbewohner, sich selber einen Benutzer anlegen kann, benötigt er einen
Registrierungsschlüssel mit Kennwort. Mit diesen kann er sich über einen Link auf der
Startseite durch ein Formular anmelden und registrieren (Beschleunigung des
Anmeldeverfahrens).
Abbildung 35: Registrierung
3.6.3.2 Statistiken
3.6.3.2.1 User-Onlinestatus
Hier sind sämtliche notwendigen Daten ersichtlich, um Benutzer schnell analysieren zu
können. Wie bei fast allen Seiten, auf denen eine Liste von Elementen angezeigt wird, kann
auch hier die Sortierung auf- (ASC) oder absteigend (DESC) erfolgen.
Abbildung 36: User-Onlinestatus
Diplomarbeit Winkler, Zangerle 2008/09
Seite 72
NeXt Generation Net
3.6.3.2.2 Benutzer Statistik
1
1
2
Abbildung 37: Benutzerstatistik
Features
1) Verlinkung, um die Benutzerdaten zu bearbeiten
2) Durch einen Doppelklick, erhält man die Statistik vom angeklickten Benutzer.
3.6.4 Ablauf Benutzergruppenerstellung
Bevor ein Benutzer erstellt werden kann, ist mindestens eine Benutzergruppe erforderlich.
3.6.4.1 Benutzergruppen erstellen
Die Zuweisung der Downloadbeschränkungen und Zeitlimits erfolgt bei „Benutzergruppen
bearbeiten“.
Abbildung 38: Benutzergruppen erstellen
Diplomarbeit Winkler, Zangerle 2008/09
Seite 73
NeXt Generation Net
3.6.4.2 Benutzergruppen bearbeiten
Nachdem die Benutzergruppe erfolgreich angelegt wurde, muss sie nur noch bei der
Schnellauswahl ausgewählt werden. Nach der Auswahl kann der Gruppenname und die
Bandbreite verändert werden. Weiters besteht hier die Möglichkeit, zeitliche
Beschränkungen und Downloadbeschränkungen hinzuzufügen. Diese Rechte und Limits
müssen aktiv (standartgemäß sind sie aktiv) geschalten werden bevor sie wirksam sind.
Auf der rechten Seite befindet sich noch eine Auflistung von Benutzer, die dieser Gruppe
zugeordnet sind.
Abbildung 39: Benutzergruppen bearbeiten
Diplomarbeit Winkler, Zangerle 2008/09
Seite 74
NeXt Generation Net
3.6.5 Ablauf Benutzer Erstellung
3.6.5.1 Benutzer erstellen
Bei „Benutzer erstellen“, gibt es zwei Möglichkeiten eine Netzwerkkarte zuzuordnen.
Existiert noch keine, muss man bei „freie MAC“, „Später zuordnen“ auswählen. Im anderen
Fall, kann die hinzugefügte Netzwerkkarte, hier direkt ausgewählt werden. Weitere
Netzwerkkarten können unter „MAC Verleihen“ dem Benutzer zugeordnet werden.
Standardgemäß wird das Passwort „hallo“ vorgeschlagen.
Abbildung 40: Benutzer erstellen
3.6.5.1.1 Benutzer bearbeiten
Nun kann der erstellte Benutzer unter „Benutzer bearbeiten“ verändert werden. Funktionen:








die Personalien (wird beim Punkt „Person erstellen“ genauer erläutert)
die statische Bandbreite
die statische Bandbreite aktivieren und somit die dynamische Bandbreite der Gruppe
überlagern
den Benutzer (de-)aktivieren
den Proxy (de-)aktivieren
den Benutzer kicken, insofern er online ist
ein neues Passwort setzen
eine oder mehrere MAC-Adressen hinzufügen
Diplomarbeit Winkler, Zangerle 2008/09
Seite 75
NeXt Generation Net
2
1
Abbildung 41: Benutzer bearbeiten
Features
1) Wenn bei der Benutzerauflistung, auf den Namen z.B. „Philipp Zangerle“ geklickt
wird, können dort die Personalien geändert werden.
2) Klickt man nun doppelt auf diese Zeile, wird automatisch dieser Benutzer bei
„Benutzer bearbeiten“ geladen und kann somit bearbeitet werden.
4
3
Abbildung 42: Benutzer bearbeiten (Netzwerkkarte editieren)
3) Mit einem Doppelklick auf die jeweilige MAC kann diese bearbeitet werden.
4) Ein einfacher Klick auf das Löschen-Symbol, löscht die Netzwerkkarte aus der
Datenbank.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 76
NeXt Generation Net
3.6.5.1.2 Person erstellen
Die Personendaten können entweder über eine CSV-Datei, mit Semikolonen als
Trennzeichen zur Datenbank hinzugefügt, oder manuell angelegt werden.
Um eine bessere Übersicht zu erhalten, werden die schon vergebenen Personen-Kürzel auf
der rechten Seite aufgelistet.
Der Benutzer kann sofort oder bei „Personen bearbeiten“ bzw. „Personen verlinken“
zugeordnet werden.
Abbildung 43: Person(en) erstellen
3.6.5.1.3 Person bearbeiten
Es gibt zwei Möglichkeiten, eine Person auszuwählen:


über die Schnellauswahl oder
über ein einfaches Klicken auf das jeweilige Kürzel bei der Auflistung
Abbildung 44: Personen bearbeiten
Diplomarbeit Winkler, Zangerle 2008/09
Seite 77
NeXt Generation Net
3.6.5.1.4 Personen verlinken
Neben einer Auflistung aller Personen und Benutzer, ist ersichtlich welche Personen noch
keinem Benutzer zugeordnet worden sind.
Im Formularfeld können dann die Personen den Benutzern zugeordnet werden. Ein Person
kann mit mehrere Benutzer verknüpft werden.
2
1
Abbildung 45: Personen verlinken
Features
1) Die Spalten können alphabetisch auf- oder absteigend sortiert werden.
2) Alle Verbindungen können hier ausgewählt werden.
3.6.5.2 Netzwerkkarten Verwaltung
Bevor das System aktiv werden kann, muss eine Netzwerkkarte eingetragen und diese dem
Benutzer zugeordnet werden. Ist noch keine Netzwerkkarte dem Benutzer zugeordnet, kann
sich dieser auch nicht über den Client anmelden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 78
NeXt Generation Net
3.6.5.2.1 Mac erstellen
Unter dem Hauptpunkt „MAC“ befindet sich „Erstellen“. Dort müssen folgende Daten
eingegeben werden:





die Bezeichnung der Netzwerkkarte,
der Hostname, im besten Fall der Computername,
die MAC der Netzwerkkarte
ob sich der Benutzer im WLAN der LAN befindet
und die IP-Adresse
Abbildung 46: MAC Erstellen
Features
1) Die MAC-Adresse wird auf Gültigkeit überprüft
2) Die IP-Adresse wird automatisch vorgeschlagen
3.6.5.2.2 Mac bearbeiten
Über die Schnellauswahl können die jeweiligen Netzwerkkarten ausgewählt werden. Die
restlichen Funktionen verhalten sich gleich wie bei „MAC-Erstellen“.
Abbildung 47: MAC Bearbeiten
Diplomarbeit Winkler, Zangerle 2008/09
Seite 79
NeXt Generation Net
3.6.5.2.3 Mac verleihen
Hier werden alle Netzwerkkarten, mit dem verknüpften Benutzer, aufgelistet.
„MAC Verleihen“ funktioniert nach dem gleichen System wie „Personen Verlinken“ oder
„Accesspoint zuweisen“. Ist die Netzwerkkarte schon vergeben, wird der alte Benutzer
überschrieben.
Abbildung 48: MAC Verleihen
3.6.5.3 Sonstiges
3.6.5.3.1 Accesspoint zuweisen
Diese Funktion wurde beinahe 1:1 von “MAC Verlinken” übernommen. Lediglich werden
neben den ursprünglichen Daten (Vergeben an Benutzer, Bezeichnung, MAC Adresse, IP und
WLAN) noch der wirkliche Name des Benutzers, die Zimmernummer und der zugewiesene
Accesspoint aufgelistet. Weiters wurde die Ausgabe, auf sich im WLAN befindende Benutzer,
beschränkt.
Die Zimmernummer wird verwendet, da es nicht möglich bzw. nicht sinnvoll ist, jeden
Benutzer in jeden Accesspoint einzuschreiben, sondern nur diejenigen, die sich in diesem
Stock befinden. Hätte man zum Beispiel einen Accesspoint mit den Namen „Stock 3“, dann
könnten alle Benutzer mit der Zimmernummer 3XX, diesem Accesspoint zugewiesen
werden.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 80
NeXt Generation Net
Dieses Feature setzt natürlich voraus, dass der Benutzer einer Person zugeordnet wurde.
Abbildung 49: Accesspoint zuweisen
3.6.5.3.2 Benutzer suchen
In jedem neuen Schuljahr ändern sich die Gruppen der jeweiligen Benutzer. Diese Funktion
ermöglicht das Verschieben von mehreren Benutzern von einer Gruppe, in eine andere. Es
muss lediglich die Gruppe „in Gruppe: <gruppe>“ und die Benutzer, die vorher ausgewählt
wurden, abgehakt werden.
Abbildung 50: Benutzer suchen
Diplomarbeit Winkler, Zangerle 2008/09
Seite 81
NeXt Generation Net
3.6.6 Abgeschwächter Administrator
Damit künftig auch Erzieher die Downloadüberschreitungen von Heimbewohnern
zurücksetzen können, aber dennoch nicht über mehr Rechte verfügen, ist es nötig, eine
dritte Berechtigungsstufe einzuführen. Folgende Funktionen können hier ausgeführt
werden:




Systemstatus einsehen
User-Onlinestatus überwachen
Statistiken der jeweiligen Benutzer einsehen und die Möglichkeit diese
zurückzusetzen
das eigene Passwort ändern
3.6.6.1 Systemstatus
Die Statusseite verhaltet sich gleich wie die eines normalen Administrators (siehe Punkt
3.8.3.1 Systemstatus).
Abbildung 51: Systemstatus (abgeschwächter Admin)
3.6.6.2 User-Onlinestatus
Siehe Punkt 8.3.2.1 User-Onlinestatus
Diplomarbeit Winkler, Zangerle 2008/09
Seite 82
NeXt Generation Net
3.6.6.3 Benutzerstatistik
Einstellungen:




Zeitlimit auf 0 setzten für Tag, Woche und Monat
Transferlimit auf 0 setzten für Tag, Woche und Monat
Benutzerrechte ansehen
Benutzer durch einen einfachen Klick auf den Benutzername, in der rechten
Auflistung, auswählen
Abbildung 52: Benutzerstatistik (abgeschwächter Admin)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 83
NeXt Generation Net
3.6.7 Die Datenbank
Aufgrund der Nutzerwertanalyse im allgemeinen Teil, haben wir uns entschieden eine
MySQL Datenbank zu verwenden.
In diesem Abschnitt wird der Aufbau der Tabellen bzw. Datenbank genauer geschildert. Die
Datenbank (NXGN) besteht aus 18 Tabellen. Fast alle Tabellen sind durch die Tabelle
„person“ miteinander verknüpft. Jede einzelne Tabelle hat eine einzigartige ID. Dadurch
lassen sich die Datensätze miteinander verknüpfen.
Nun folgt eine Komplettübersicht über die Datenbankstruktur. Diese Komplettübersicht wird
dann abschnittsweise genauer erläutert.
Abbildung 53: Datenbank Übersicht (Teil 1)
Diplomarbeit Winkler, Zangerle 2008/09
Seite 84
NeXt Generation Net
Abbildung 54: Datenbank Übersicht (Teil 2)
3.6.7.1 Personen bezogene Tabellen
Abbildung 55: Personenbezogene Tabellen
3.6.7.1.1 Tabelle „person“
Tabelle zur Speicherung von Benutzerdaten. Von dieser Tabelle aus sind fast alle anderen
Tabellen miteinander verlinkt.
Felder
Beschreibung
P_ID
Die eindeutige Identifikationsnummer eines jeden Benutzers
G_ID
Jeder Benutzer kann einer Gruppe zugeordnet werden. Mit dieser
Gruppen ID legt man diese fest.
Proxy
Zwangsproxy: 1 bedeutet ja und 0 nein.
Benutzername
Der Benutzername des Benutzers muss „unique“, also einzigartig, sein.
Passwort
Hier wird das gehashte Passwort des Benutzers gespeichert (SHA-512).
Aktiv
Der Benutzer kann ein- und ausgeschalten werden. Ist der Wert auf 1 dann
ist der Benutzer aktiv, bei 0 inaktiv.
Online
Zeigt an, ob der Benutzer online ist.
LimitWirklich
Zeigt an, wie schnell er gerade downloadet.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 85
NeXt Generation Net
Kommentar
Hier kann ein Kommentar hinterlassen werden wie z.B. „Benutzer hat
letztes Monat die Downloadgrenze erreicht“.
extdb_personID Jeder Benutzer bekommt eine ID zu der Tabelle exdtb_person.
3.6.7.1.2 Tabelle „extdb_person“
Diese Tabelle ist für verwaltungstechnischen Informationen bzw. damit die Benutzer mit
ihren willkürlich gewählten Namen leichter verwaltet werden können. Sie wird über eine
externe Datei im .csv Format upgeloadet. Diese gibt Aufschluss über die sich im Heim
befindenden Schüler und Betreuungspersonen.
Felder
Beschreibung
Kuerzel
Das Kürzel ist genauso eine eindeutige ID und darf auch nur einmal
vorkommen.
Name1
Das ist der Name der Person.
Stat
Das ist der Status der Person. Ob er „K“unde ist oder „A“uftraggeber.
Name2
Das ist der Name des Erziehungsberechtigten.
Str
Die Wohnstraße der Person.
Nation
Die Staatsangehörigkeit der Person. Als Standartwert (wenn keiner
vorliegt) wird automatisch „A“ verwendet, für Österreich.
Plz
Die Postleitzahl der Person.
Ort
Der Wohnort der Person.
Klasse
Die Klassename in voller Länger. Z.B.: HW5b
Zimmer
Das Zimmer im Heim der Person.
Schulstufe
Die Schulstufe in Zahlen ausgedrückt, ohne Beziehung auf die Art der
Schule.
ID
Die eindeutige ID einer jeden Person.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 86
NeXt Generation Net
3.6.7.2 Gruppen und deren Rechte
Abbildung 56: Gruppen und deren Rechte
3.6.7.2.1 Tabelle „gruppe“
Jedem Benutzer wird eine Gruppe zugeteilt.
Felder
Beschreibung
ID
Die eindeutige ID einer Gruppe.
Name
Die Gruppenbezeichnung.
Bandbreite
Die Downloadgeschwindigkeit in %.
3.6.7.2.2 Tabelle „gruppelimits“
Da n-Gruppen m-Limits verwenden, wird eine zusätzliche Tabelle benötigt, um die n:m
Beziehung zu realisieren.
Felder
Beschreibung
ID
Die eindeutige ID eines jeden Gruppelimits.
GID
ID der entsprechenden Gruppe.
LID
ID des entsprechenden Limits.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 87
NeXt Generation Net
3.6.7.2.3 Tabelle „limits“
In dieser Tabelle werden alle Limits gespeichert. Durch die „gruppelimits“-Tabelle können
die Limits den Gruppen zugeordnet werden. Jede Gruppe hat eigene Limits.
Felder
Beschreibung
ID
Die eindeutige ID eines jeden Limits.
Menge
Um welche Menge es sich handelt (Zeitmenge oder Downloadmenge).
Zeitraum
In welchem Zeitraum die Berechtigungen gelten.
Aktiv
Jedes Limit kann aktiviert und deaktiviert werden. 0 bedeutet deaktiviert
und 1 aktiviert.
Art
Um welche Art des Limits es sich handelt. Bei 1 um eine zeitliche
Beschränkung und bei 0 um eine Downloadbeschränkung.
3.6.7.2.4 Tabelle „grupperechtelimits“
Da n-Gruppen m-Rechte haben, wird eine zusätzliche Tabelle benötigt, um die n:m
Beziehung umsetzen zu können.
Felder
Beschreibung
ID
Die eindeutige ID eines jeden Grupperechtelimits.
GID
ID der entsprechenden Gruppe.
RID
ID des entsprechenden Rechtes.
3.6.7.2.5 Tabelle „rechte“
In dieser Tabelle werden alle Rechte gespeichert. Durch die „grupperechtelimits“-Tabelle
können die Limits zu den Gruppen zugeordnet werden. Jede Gruppe hat eigene Rechte.
Felder
Beschreibung
ID
Die eindeutige ID eines jeden Rechts.
Von
Beschreibt von welchem Zeitpunkt der Benutzer das Recht hat sich
einzuloggen, im Format TAGUHRZEIT. Z.B. bei „10500“ bedeutet die 1
Montag und 0500 steht für 5 Uhr in der Früh.
Bis
Beschreibt bis zu welchem Zeitpunkt der Benutzer das Recht hat sich
einzuloggen. Das Format entspricht dem vom „Von“.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 88
NeXt Generation Net
Art
Die Art des Rechts.
Aktiv
Jedes Recht kann aktiviert und deaktiviert werden. 0 bedeutet
deaktiviert und 1 aktiviert.
3.6.7.3 Netzwerkkarten und deren Zuordnung
Abbildung 57: Netzwerkkarten und deren Zuordnung
3.6.7.3.1 Tabelle „nic“
Hier werden alle Netzwerkkarten im System gespeichert.
Felder
Beschreibung
ID
Die eindeutige ID einer jeden Netzwerkkarte.
mac
Die MAC der Netzwerkkarte im Format XX-XX-XX-XX-XX-XX.
ip
Die IP der Netzwerkkarte.
bezeichnung
Die Bezeichnung der Netzwerkkarte ist „unique“.
art
Handelt es sich um eine Netzwerkkarte mit Zugang über WLAN oder direkt
über LAN? Bei 1 handelt es sich um WLAN und bei 0 um LAN.
hostname
Die Bezeichnung für den Computernamen der Netzwerkkarte.
APID
ID des entsprechenden Access Points wenn sich die Art um 1 (WLAN)
handelt. Falls bei der Art eine 0 drinnen steht, das entspricht einen Zugriff
direkt über LAN, dann bleibt der Wert 0 (Standartwert) hier stehen.
3.6.7.3.2 Tabelle „nicbesitzer“
Diplomarbeit Winkler, Zangerle 2008/09
Seite 89
NeXt Generation Net
Hier werden die Netzwerkkarten den Benutzern zugeordnet. Diese Tabelle ist gleich wie bei
den Rechten und Limits dazu da, um eine n:m Beziehung realisieren zu können.
Felder
Beschreibung
ID
Eine eindeutige ID einer Gruppe.
NICID
ID der entsprechenden Netzwerkkarte (nic).
PID
ID des entsprechenden Benutzers.
3.6.7.3.3 Tabelle „ap“
Felder
Beschreibung
ID
Eine eindeutige ID einer Gruppe.
AP_Bez
Die Bezeichnung des Access Points.
Treiber_ID
ID des entsprechenden Treibers in der treiber-Tabelle.
AP_IP
Die IP-Adresse des Access Points.
AP_Port
Der Port des Access Points.
AP_User
Der User mit dem man sich auf dem Access Point einloggen kann.
AP_Pass
Das Passwort des Users mit dem man sich auf dem Access Point einloggen
kann.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 90
NeXt Generation Net
3.6.7.3.4 Tabelle „treiber“
Felder
Beschreibung
Treiber_ID
Eine eindeutige ID eines Treibers.
Treiber_Bez
Die Bezeichnung des Treibers.
mac_hinzu
MAC hinzufügen
mac_loesch
MAC löschen
reboot
Treiber neustarten
tmp2
Platzhalter
tmp3
Platzhalter
tmp4
Platzhalter
tmp5
Platzhalter
tmp6
Platzhalter
3.6.7.4 Systembezogene Tabellen
Abbildung 58: Systembezogene Tabellen
Diplomarbeit Winkler, Zangerle 2008/09
Seite 91
NeXt Generation Net
3.6.7.4.1 Tabelle „flags“
Damit nicht die ganze Datenbank bzw. alle Tabellen laufend auf Veränderungen überprüft
werden müssen, haben wir eine Flag-Tabelle eingeführt. Genaueres wird bei der Tabelle
„system“ erläutert, da die Flag-Tabelle nur statische Werte enthält.
Felder
Beschreibung
ID
Eine eindeutige ID eines jeden Flags.
descripton
Beschreibt die Art bzw. die Tabelle des Flags.
value
Hier steht der Inhalt.
Mit diesen statischen Werten ist die Tabelle „flags“ beladen:
ID
Description
value
9
nic
256
1
serverNeustart
1
10 nicbesitzer
512
2
Ap
2
11 person
1024
3
extdb_person
4
12 personenverbrauch 2048
4
Gruppe
8
13 rechte
4096
5
Gruppelimits
16
14 registrierung
8192
6
grupperechtelimits 32
15 verbrauch
16384
7
internetsession
64
16 logDateien
32768
8
limits
128
17 logLoeschen
65536
3.6.7.4.2 Tabelle „personenverbrauch“
Hier werden die Verbräuche den Benutzern zugeordnet. Diese Tabelle ist, gleich wie bei den
Rechten und Limits, dazu da, um eine n:m Beziehung realisieren zu können.
Felder
Beschreibung
ID
Eine eindeutige ID eines jeden Personenverbrauchs.
PID
ID der entsprechenden Person.
VID
ID des entsprechenden Verbrauchs.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 92
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
3.6.7.4.3 Tabelle „verbrauch“
Die verbrauchte Zeit und das verbrauchte Downloadvolumen, werden hier abgespeichert.
Felder
Beschreibung
ID
Eine eindeutige ID eines jeden Verbrauchs.
Vvolumen
Hier wird das verbrauchte Volumen gespeichert
Vdauer
Hier wird die verbrauchte Zeit gespeichert.
Hier wir der Tag, die Woche oder das Monat abgespeichert.
Tag
1… Tag, 2… Woche und 3… Monat.
3.6.7.4.4 Tabelle „internetsession“
Hier werden gleich, wie bei der Verbrauch-Tabelle, die verbrauchte Zeit bzw.
Downloadvolumen, jedoch zusätzlich mit einem festen Zeitpunkt, abgespeichert.
Felder
Beschreibung
ID
Eine eindeutige ID einer jeden Internet-Session.
PID
ID der entsprechenden Person.
Von
Hier wird gespeichert zu welchem Zeitpunkt sich ein Benutzer sich
eingeloggt hat.
Dauer
Hier wird die Dauer der Internetsession gespeichert.
Volumen
Hier wird das gedownloadete Volumen der Internetsession gespeichert.
3.6.7.4.5 Tabelle „system“
Damit nicht alle Tabellen regelmäßig auf eine Wert-Veränderung überprüft werden müssen,
haben wir eine Tabelle eingeführt, in der aufgelistet wird, wann sich welche Tabelle
verändert hat. Dadurch muss man nur mehr einzelne Tabellen aktualisieren, je nachdem
welcher Flag gesetzt worden ist.
Felder
Beschreibung
ID
Eine eindeutige ID eines jeden Systems.
Time
Uhrzeit an dem der Flag gesetzt wurde.
Flag
ID des entsprechenden Flags.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 93
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
3.6.7.4.6 Tabelle „systemstart“
Speicherung des Serverstartzeitpunktes.
Felder
Beschreibung
ID
Eine eindeutige ID des Systemstarts.
Start
Hier wird der Serverstart niedergeschrieben.
3.6.7.4.7 Tabelle „registrierung“
Diese Tabelle wird dazu benötigt, damit sich User selber einen eigenen Benutzer anlegen
können.
Felder
Beschreibung
ID
Eine eindeutige ID einer jeden Registrierung.
Gruppe
ID der entsprechenden Gruppe.
Kennwort
Hier wird das Kennwort abgespeichert, das notwendig ist um einen
Benutzer anzulegen.
Zustand
Jede Registrierung kann „verbraucht“ sein. 1 bedeutet nicht verbraucht
und somit aktiv/verwendbar und 0 verbraucht/inaktiv.
Diplomarbeit Winkler, Zangerle 2008/09
Seite 94
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
3.7 Auszüge aus dem Quellcode
3.7.1 Mac erstellen
Um eine Netzwerkkarte einzutragen (kurz MAC), ist es notwendig, einige Beschränkungen
durchzuführen. Wie zum Beispiel, das Einschränken der IP-Adressen.
Abbildung 59: MAC Erstellen
Die IPs werden in zwei Kategorien geteilt; Jene aus dem WLAN-Bereich und jene aus dem
Ethernet. Deswegen ändert sich die IP-Auswahl je nachdem, ob die WLAN Checkbox markiert
ist oder nicht. Dies regelt das folgende Skript:
<input name="wlan" type="checkbox" class="eingabe" id="wlan" onchange="
if(this.value=checked) {
ip2.style.display='inline';
ip.style.display='none';
} else {
ip2.style.display='none';
ip.style.display='inline';
}
"
<?php
if (($_POST[wlan] == "true") or ($_POST[wlan] == "on")) {
echo 'checked="checked"';
}
?>
/>
Nun muss noch festgestellt werden, welche IPs angezeigt werden. Hier startet man von der
Zahl 20 bis 199. Jede Zahl, wird mit der IP aus der Datenbank überprüft. Stimmt eine Zahl,
Diplomarbeit Winkler, Zangerle 2008/09
Seite 95
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
mit der IP, welche aus der Datenbank ausgelesen wurde, überein, wird die If-Bedingung
erfüllt und die Zahl übersprungen.
<!-- Wenn WLan nicht gedrückt --> diese Auswahl -->
<select style="display:inline" name="ip" size="1" class="eingabe" id="ip"
maxlength="3">
<?php
$start = 20;
$ende = 199;
$i = 0;
while (($ipa = mysql_fetch_array($queryip)) || ($i < 256)) {
$ip = explode(".", $ipa[ip]);
//Den String zerlegen
while ($i < 256) {
if ($i == $ip[3]) {
//Die letzte Stelle der IP-Adresse vergleichen
break;
}
elseif(($i >= $start) && ($i <= $ende)) {
echo "<option>$i</option>";
}
$i++;
}
$i++;
}
?>
</select>
Diplomarbeit Winkler, Zangerle 2008/09
Seite 96
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
4 Anhang
4.1 Probepräsentation
[Von Philipp Zangerle]
Am 16. Dezember führten wir eine Probepräsentation durch.
Abbildung 60: Probepräsentation
4.2 Arbeitsprotokoll
[Von Philipp Zangerle]
Nr.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Arbeitsvorgang
Anlegen der Datenbank
Erstellung der Usersteite
Erstellung der Usersteite
Erstellung der Statikseite (Userseite)
Erstellung der Navigation (Userseite
Datenbank Änderungen, Erstellung der Passwort-Änderungs-Seite
Beginn der Erstellung der Adminseite
Erstellung der Netzwerkkartenseite (Admin)
Erstellung von MAC anlegen, MAC anzeigen und löschen (Admin)
Erstellung von Mac verleihen (Admin)
Beginn der Erstellung von der Benutzergruppenverwaltung
(Admin)
Benutzergruppenverwaltung (Admin)
Fertigstellung von der Benutzergruppenverwaltung (Admin)
Benutzer erstellen, bearbeiten (Admin)
Erstellung von der Access-Point-Seite (Admin)
Besprechung bei XH
Diplomarbeitsantragbesprechung bei XH
Besprechung bei Anton, Fehler ausgebessert bei den Adminseiten
Besprechung bei Anton, Fehler ausgebessert bei den Adminseiten
Diplomarbeit Winkler, Zangerle 2008/09
Datum
16.06.2008
18.06.2008
19.06.2008
24.06.2008
25.06.2008
26.06.2008
22.08.2008
26.08.2008
27.08.2008
28.08.2008
29.08.2008
Anzahl
2,0
3,0
3,0
3,0
4,0
4,0
10,0
3,0
6,0
5,0
8,0
30.08.2008
31.08.2008
10.09.2008
14.10.2008
18.10.2008
21.10.2008
22.10.2008
23.10.2008
7,0
6,0
6,0
2,0
4,0
1,0
4,0
3,0
Seite 97
Kapitel 3: Webinterface & Datenbank
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
MAC Adressenseite, MAC -und Bezeichnung Filter eingebaut & IP
Vorschlagsystem eingeführt
Userseite ausgebessert, Verbrauchtabelle eingefügt, Onlineseite
geupdatet
LogisSeite, Registrierungsseite, Datenbanktabelle registrieren
Registrierungsseite, Benutzerbearbeiten (löschen)
Projektplanung, Präsentationsvorbereitung
Besprechung mit Anton (Access-Points mit Wlan-IPs verbinden)
Flag-Tabelle erstellt
Flags hinzugefügt
Flags komplett neu angelegt
Erstellung der Personenseite (Admin)
Besprechung mit XH
Erstellung der "Accesspoint zuweisen"-Seite (Admin)
Server aufsetzten
Besprechung mit Anton, CSV Upload-Skript (externe Datenbank)
Personen verlinken, Personen bearbeiten, MAC bearbeiten neu
erstellen
Diplomschrift
Diplomschrift
Diplomschrift
Diplomschrift
Besprechung mit Anton, Erstellung des abgeschwächten
Administrators
Recherchieren über Datenbank-Sicherung
Erstellen des Datenbanksicherungsskripts auf der Adminseite
Diplomschrift
Diplomschrift
Kleine Änderungen bei der Adminseite
Diplomschrift
Diplomschrift
Diplomschrift
Diplomschrift
Diplomschrift
Diplomschrift
Besprechung mit Feurstein Anton
Diplomschrift
Besprechung mit XH
Diplomschrift
Diplomschrift
Diplomschrift
Besprechung mit Feurstein Anton
Besprechung mit XH
Diplomschrift
Diplomschrift
Diplomschrift
Besprechung mit XH
Diplomschrift
Diplomschrift
Diplomschrift
Diplomschrift
NeXt Generation Net
25.10.2008
5,0
02.11.2008
9,0
03.12.2008
06.12.2008
15.12.2008
18.12.2008
27.12.2008
28.12.2008
30.12.2008
31.12.2008
02.01.2009
07.01.2009
27.01.2009
03.02.2009
04.02.2009
7,0
10,0
3,0
1,0
0,5
2,0
6,5
6,5
4,0
4,5
3,0
4,0
6,0
07.02.2009
09.02.2009
11.02.2009
12.02.2009
18.02.2009
3,0
4,0
1,5
4,0
6,0
25.02.2009
28.02.2009
05.03.2009
13.03.2009
04.04.2009
05.04.2009
06.04.2009
08.04.2009
09.04.2009
12.04.2009
15.04.2009
19.04.2009
23.04.2009
28.04.2009
29.04.2009
01.05.2009
03.05.2009
07.05.2009
09.05.2009
11.05.2009
14.05.2009
15.05.2009
18.05.2009
21.05.2009
22.05.2009
25.05.2009
26.05.2009
3,0
3,0
2,0
2,0
4,0
3,0
3,0
4,0
3,0
4,0
3,0
2,0
3,0
3,0
2,0
4,0
3,0
2,0
3,0
5,0
2,0
2,0
0,5
3,0
4,0
5,0
1,0
Stundenanzahl: 253,0
Diplomarbeit Winkler, Zangerle 2008/09
Seite 98
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
4.3 Abbildungsverzeichnis
Abbildung 1: Startseite ............................................................................................................... 5
Abbildung 2: Benutzergruppe erstellen ..................................................................................... 6
Abbildung 3: Benutzergruppe bearbeiten ................................................................................. 6
Abbildung 4: Benutzer erstellen ................................................................................................. 7
Abbildung 5: Benutzer erstellen (NXGN).................................................................................... 7
Abbildung 6: Benutzer bearbeiten ............................................................................................. 8
Abbildung 7: Netzwerkkarte erstellen und bearbeiten ............................................................. 8
Abbildung 8: Netzwerkkarten Übersicht und Verleihen ............................................................ 9
Abbildung 9: Passwort ändern ................................................................................................. 10
Abbildung 10: Systemkonfiguration ......................................................................................... 10
Abbildung 11: Argos Client ....................................................................................................... 13
Abbildung 12: C++ Client .......................................................................................................... 13
Abbildung 13: Aufbau des Systems im Heim ........................................................................... 30
Abbildung 14: Anmeldevorgang ............................................................................................... 31
Abbildung 15: Access Point Ansteuerung ................................................................................ 32
Abbildung 16: Grobdesign (Webinterface) .............................................................................. 33
Abbildung 17: Layout des Webinterfaces ................................................................................ 34
Abbildung 18: Aufbau des Routingteils .................................................................................... 44
Abbildung 19: Aufbau Kommunikation .................................................................................... 46
Abbildung 20: Aufbau JDBC ...................................................................................................... 47
Abbildung 21: Client vergleich ................................................................................................. 49
Abbildung 5: consolehandler Aufruf ........................................................................................ 50
Abbildung 23: Aufbau Routing ................................................................................................. 50
Abbildung 7 Aufruf des Routingchoosers in der nxgn_server Klasse ...................................... 51
Abbildung 25: Ablauf DHCP ...................................................................................................... 53
Abbildung 26: Aufbau AP ......................................................................................................... 55
Abbildung 27: Apache Logo ...................................................................................................... 62
Abbildung 28: Startseite ........................................................................................................... 67
Abbildung 29: Statistik (User) ................................................................................................... 68
Abbildung 30: Passwort ändern (User) .................................................................................... 68
Abbildung 31: Systemstatus ..................................................................................................... 69
Abbildung 32: Systemstatus (Top 10 Downloader).................................................................. 69
Abbildung 33: Systemkonfiguration ......................................................................................... 70
Abbildung 34: Accesspoints ..................................................................................................... 71
Abbildung 35: Registrierung ..................................................................................................... 72
Abbildung 36: User-Onlinestatus ............................................................................................. 72
Abbildung 37: Benutzerstatistik ............................................................................................... 73
Abbildung 38: Benutzergruppen erstellen ............................................................................... 73
Abbildung 39: Benutzergruppen bearbeiten ........................................................................... 74
Abbildung 40: Benutzer erstellen ............................................................................................. 75
Abbildung 41: Benutzer bearbeiten ......................................................................................... 76
Diplomarbeit Winkler, Zangerle 2008/09
Seite 99
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
Abbildung 42: Benutzer bearbeiten (Netzwerkkarte editieren) .............................................. 76
Abbildung 43: Person(en) erstellen.......................................................................................... 77
Abbildung 44: Personen bearbeiten ........................................................................................ 77
Abbildung 45: Personen verlinken ........................................................................................... 78
Abbildung 46: MAC Erstellen.................................................................................................... 79
Abbildung 47: MAC Bearbeiten ................................................................................................ 79
Abbildung 48: MAC Verleihen .................................................................................................. 80
Abbildung 49: Accesspoint zuweisen ....................................................................................... 81
Abbildung 50: Benutzer suchen ............................................................................................... 81
Abbildung 51: Systemstatus (abgeschwächter Admin) ........................................................... 82
Abbildung 52: Benutzerstatistik (abgeschwächter Admin) ...................................................... 83
Abbildung 53: Datenbank Übersicht (Teil 1) ............................................................................ 84
Abbildung 54: Datenbank Übersicht (Teil 2) ............................................................................ 85
Abbildung 55: Personenbezogene Tabellen ............................................................................. 85
Abbildung 56: Gruppen und deren Rechte .............................................................................. 87
Abbildung 57: Netzwerkkarten und deren Zuordnung ............................................................ 89
Abbildung 58: Systembezogene Tabellen ................................................................................ 91
Abbildung 59: MAC Erstellen.................................................................................................... 95
Abbildung 60: Probepräsentation ............................................................................................ 97
4.4 Literatur- & Quellenverzeichnis
1. DIN Normen
http://www.ergoonline.de/site.aspx?url=html/software/grundlagen_der_software_ergon/grundsaetz
e_der_dialoggestalt.htm
2. SelfPHP
http://www.selfphp.de/
3. SELFHTML
http://de.selfhtml.org/
4. Apache Friends
http://cms.apachefriends.org/f/index.php
5. Coding Forum
http://www.codingforums.com
6. Webdeveloper.com
http://www.webdeveloper.com
7. Traum Projekt
http://www.traum-projekt.com
Diplomarbeit Winkler, Zangerle 2008/09
Seite 100
Kapitel 3: Webinterface & Datenbank
NeXt Generation Net
8. JS-Welt
http://forum.jswelt.de
9. Webmaster World.com
http://www.webmasterworld.com
10. MySQL
http://www.mysql.com/
11. PHP
http://at2.php.net/
12. JAVA
http://java.sun.com
http://www.dpunkt.de/java/
www.torsten-horn.de/techdocs/java-sql.htm
13. Wikipedia
http://de.wikipedia.org
14. Google
http://www.google.com
Diplomarbeit Winkler, Zangerle 2008/09
Seite 101
Herunterladen