Portal für Kursverwaltung und Studienplanung

Werbung
POKUS
Portal für Kurs und Studienplanung
Ein Projekt von
Rene Rippert & Stefan Liske
unter der Leitung von
Prof. Dr. Andreas Schwill
Gliederung

Motivation/Ziele

Vorarbeit
Rechnersystem
Implementierung




Fazit
Zukunftsaussichten
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
2
Motivation
viele unterschiedliche (elektronische)
Einschreibesysteme
 Einschreibung in die Veranstaltungen an
verschieden Orten zu unterschiedlichen
Zeiten
 Belastung der Lehrstühle und der
Sekretariate

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
3
Ziele von POKUS
Vereinheitlichung der Einschreibung an
einem Ort für alle Veranstaltungen
 Entlastung der Lehrstühle und der
Sekretariate
 Übersichtlichkeit und
Informationsaustausch über ein System

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
4
Kommunikative Vorarbeit
Informationsbeschaffung durch
Befragungen bei Studenten
 Verständnis der Einschreibestrukturen
durch Nachfragen bei Fr. Vogel, Hr. Haße,
Fr. Ziethlow, Fr. Pamperin, Fr. Mix
 Vergleich von anderen
Einschreibesystemen

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
5
Rechnersystem (1)
Systeminformationen
 PHP 3 mit PHPLib
 Datenbank MySQL
 Betriebssystem Linux
 Web-Server Apache

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
6
Rechnersystem (2)
Systeminformationen
 Intel
Pentium III 700 MHz
 16 GB Festplattenkapazität
 256 MB Hauptspeicher
 100 MBit Anbindung an die Haiti-Domain
 System: SuSE Linux 8.1
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
7
Rechnersystem (3)
Programmierung in PHP 3 mit PHPLib
 Probleme
bei mehreren Linux Distributionen
den Apache mit PHP 3 und PHPLib zu
installieren
 Umstieg
auf SuSE 8.1 Minimalinstallation
und PHP 4 mit eingebautem
Sessionmanagment
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
8
Rechnersystem (4)

Installation aller zur Konfiguration nötiger
Elemente über RPM




Apache 1.3.26 mit OpenSSL und PHP 4
MySQL 3.23.52
Webmin 1.070 zur besseren Konfiguration von
MySQL
OpenSSH 3.4p1
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
9
Rechnersystem (5)
Konfiguration des Apache Web-Servers

Einrichten eines Web Zertifikats

openssl genrsa -out server.key 1024


openssl req -new -key server.key -out server.csr


Hiermit wird ein Requestfile für einen CA erstellt
openssl x509 -req -days 182 -in server.csr -signkey server.key -out server.crt


Mit diesem Aufruf wird ein Schlüssel erzeugt
Nun wurden wir zum CA und erzeugten ein Zertifikat (unbeglaubigt) und lassen es
für 182 Tage gültig (1 Semester)
Nun mussten das Keyfile (server.key) und das Zertifikat (server.crt) in die
jeweiligen Verzeichnisse gespielt werden
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
10
Rechnersystem (6)
Konfiguration des Apache Web-Servers

Einrichten der Virtual Host
<VirtualHost pokus.haiti.cs.uni-potsdam.de:443>
SSLEngine on
SSLCipherSuite …:+High:+Medium:+SSLv2:…
SSLCertificateFile /etc/httpd/ssl.crt/server.crt
SSLCertificateKeyFile …/ssl.key/server.key
<Directory “/srv/wwwsecure“>
Options –Indexes
order deny,allow
deny from all
allow from 141.89
</Directory>
</VirtualHost>
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
11
Rechnersystem (7)
Konfiguration des Apache Web-Servers



Starten des Apache Webservers über apachectl
startssl
Nach der Abfrage der im Certificate genutzten Phrase
wir der Web-Server gestartet und öffnet lauschend die
Ports http:80 und https:443
Der Zugriff auf sensible Bereiche wurde durch
.ht******-Dateien geschützt
AuthType Basic
AuthName „Nur Authorisierte User erlaubt."
AuthUserFile /srv/…/password.file
Require user rippert stefan
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
12
Rechnersystem (8)
Konfiguration von OpenSSL

Öffnen der Datei /etc/ssh/sshd_config


Ändern des Eintrages PermitRootLogin auf no somit
kann sich der Root nicht in das System per ssh einloggen
Öffnen der Datei /etc/hosts.allow

Nun wurde folgendes in dieser Datei verändert



sshd : 141.89.59.159 : allow
sshd : ALL : deny
Öffnen der Datei /etc/hosts.deny

Potsdam, den 24. April 2003
sshd : ALL : deny
Stefan Liske, Rene Rippert
13
Rechnersystem (9)
Konfiguration von MySQL

Nutzung von Webmin





Löschung der durch die Standartinstallation erzeugten MySQL
User
Root User hat nur Lokal zugriff auf die DB
Einrichten eines neuen Users ohne Globale Privilegien
Einrichten einer neuen Datenbank und Vergabe der Rechte
für diese Datenbank an den eben eingerichteten User
Jeglicher Zugriff auf die Datenbank nur über den Lokalhost
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
14
Rechnersystem (10)
Sessionmanagement von PHP

Nutzung von Serverseitigen Cookies



Problem: jeder Nutzer, der eine neue Instanz des WebBrowsers öffnet erhält vom System einen neuen
Sessioncookie im /tmp Verzeichnis
Alte Cookies werden nur nach Neustart des Apache WebServers gelöscht
Lösung: Perlscript zum löschen der Sessioncookies

Aufrufen dieses Skriptes alle 30 Minuten durch einen Cronjob
 1 * * * * /usr/bin/perl –w \
/srv/killsession/sessionkiller.pl
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
15
Administrative Sicherheit
SSL:
 Vertraulichkeit von Nachrichten
 Integrität von Nachrichten
MySQL:
 Zugriff auf die Datenbank nur lokal möglicht
 Genau ein User für die Pokus DB ohne globale
Privilegien
SSH:
 Zugriff nur über eine bestimmte
 kein direkter Rootzugriff
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
IP möglich
16
Implementierung
SW-Techniken
 Möglichkeiten/Features
 Software-Sicherheit („security“)
 Software-Sicherheit („safety“)

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
17
SW-Techniken
PHP 4.2 (und höher), MySQL, Apache
 Perl 5.6.xxx, Adobe Distiller
(lokal für Listen)

Session-Management
 SQL
 eMail-Modul für PHP

Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
18
Möglichkeiten/Features

Eintragung in Vorlesungsverzeichnissicht




Änderung, Austragung für Veranstaltungen
Stundenplan
Informationen per e-Mail




Terminauswahl
An alle bzw. an Auswahl
Babylon-Account-Verlängerung (Fr. Mix)
Einschreibe-, Kurslisten (CVS, PDF) (Sekretariate)
Beschränkung der Termine
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
19
Software-Sicherheit („security“)

SSL nutzend


Benutzerregistrierung



Zuordnung der Benutzer nach Login
(HTTP ist verbindungslos)
Eigene zusätzliche „MSI“


Identifikation und Authentifizierung
Session-Management


Vertraulichkeit, Integrität
Unterscheidung der Browser-Instanzen
Benutzerrollen via „.htaccess“ (Student, Admin)

Rechtezuteilung auf primitivem Niveau
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
20
Software-Sicherheit („safety“)

Kontrolle der Formulareingaben
 Korrektur
 Plausibilitätstest,

Selektionsfelder
 Vorgabe

Filter via regulärer Ausdrücke
für Immatrikulationssemester u.ä.
Zwischenabfrage für Aktionsausführung
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
21
FAZIT

Hilfe/Informationen von vielen Seiten
Akzeptanz bei Lehrstühlen und Studenten
 Umsetzung vieler Vorschläge
 Erfolgreiche Durchführung ;-)


Kooperation mit Fr. Mix (Babylon-Account)
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
22
Aussichten





Es fehlen noch die Dokumentationen
(mit Abnahme des Projekts)
Verbesserungen der Administration
Änderung der allgemeinen Oberfläche
DB-Logik überarbeiten
(min. eine Verbesserung notwendig)
Eintragung von Kursen via Interface
(Hr. Severin)
Potsdam, den 24. April 2003
Stefan Liske, Rene Rippert
23
ENDE
Herunterladen