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