Ws2009ba-i-5.datenbank
Aus Labor für Echtzeitsysteme
Version vom 09:33, 5. Nov. 2009 (bearbeiten) David (Diskussion | Beiträge) (→5.11.2009) ← Zum vorherigen Versionsunterschied |
Version vom 10:13, 5. Nov. 2009 (bearbeiten) (rückgängig) Stephan S. (Diskussion | Beiträge) Zum nächsten Versionsunterschied → |
||
Zeile 20: | Zeile 20: | ||
*testuser erstellen und ssh_chroot david | *testuser erstellen und ssh_chroot david | ||
+ | === Die Anleitung zu WinSCP wurde aktualisiert da ein kleiner Fehler mit WindowsXP aufgetreten ist. Nun soltle alles so funktionieren wie in der Anleitung beschrieben. -> [http://qbesmine.de/stuff/winscp_kurzanleitung.pdf WinSCP_Kurzanleitung] | ||
=== Offene Fragen an die Gladbacher Gruppe === | === Offene Fragen an die Gladbacher Gruppe === | ||
* Wird ein Messplan mit Messungsnummern erstellt? | * Wird ein Messplan mit Messungsnummern erstellt? |
Version vom 10:13, 5. Nov. 2009
Inhaltsverzeichnis |
Team log
TODO
- Script: nochmal drüber gucken. entschlacken ?
- Script: Anfaelligkeit gegen falsche Daten optimieren.
Import: Woher infos Gruppe, Datum, Uhrzeit, Ort, pc_id ?- Gruppe, Datum, Uhrzeit, Ort, pc_id -> messungs_id, ssh_login, timestamp
Server AccountsForeignkey Constraint für Koordinaten xdrive_idDB HostenAnleitung zum Connecten!? StephanERDStraßennamen einpflegen- Präsipunkte
- Idee: Pro Netbook ein Useraccount auf dem Server (Netbookname) -> ein Useraccount in der Datenbank
- Tabellen Inhalt Beispiele.
- ERD
- Winscp
- parsen von Netdetectlogfile in die Datenbank
- phppgadmin:
- testuser erstellen und ssh_chroot david
=== Die Anleitung zu WinSCP wurde aktualisiert da ein kleiner Fehler mit WindowsXP aufgetreten ist. Nun soltle alles so funktionieren wie in der Anleitung beschrieben. -> WinSCP_Kurzanleitung
Offene Fragen an die Gladbacher Gruppe
- Wird ein Messplan mit Messungsnummern erstellt?
Präsentation der Datenbank
- Datenbankserver
- Ubuntu Linux
- Postgresql
- Script zum Parsen der Ndetectlogfiles
- Namenskonvention
- <kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr>
- User Accounts
- Pro Netbook ein Useraccount auf dem Server (Netbookname)
- Ein Useraccount in der Datenbank
- ERD
- phppgadmin
- Serverzugang über WinSCP
WinSCP Kurzanleitung
Hier eine Kurzanleitung zu WinSCP -> WinSCP_Kurzanleitung
5.11.2009
- ssh chroot
//sshd_config anpassen Subsystem sftp internal-sftp
//fuer user in gruppe xdrive wird eine chroot umgebung gestartet // /home/sqXX muss root gehoeren ! Match group xdrive ChrootDirectory /home/%u AllowTcpForwarding no ForceCommand internal-sftp
- user erstellen
//fuer chroot rechte setzen chown root:root /home/sqXX
//schreibbares unterverzeichnis erstellen mkdir /home/sqXX/xdrive
//home verzeichnis auf xdrive setzen chown sqXX:sqXX /home/sqXX/xdrive //user gruppe xdrive hinzufuegen usermod -g xdrive
//homedir auf den erstellten unterodner setzen pfad ist relativ zum chroot // /home/sqXX/xdrive -> /xdrive usermod -d /xdrive
2.11.2009 Vorschlag Usermanagement
- Server User werden im Homeverzeichnis eingesperrt.
- Konfigurationsmöglichkeit in ssh.conf?
- DBUser bekommen sämtliche rechte entzogen
REVOKE ALL PRIVILEGES ON DATABASE xdrive_tmp FROM xdrive_test;
- DBUser bekommen nur leserechte auf bestimmte Tabellen (Views)
GRANT SELECT ON xdrive_t to xdrive_test;
Namenskonvention für Netdetectlogfiles
<kr/mg>_<Straßenname ohne Sonderzeichen>_<messungsnr> Gruppe (SSH User) -> 1 User pro Netbook mit Netbookname als loginname
30.10.2009
- Server mit Postgres und phppgadmin installiert und konfiguriert.
- jeder der einen Datenbank Account braucht bitte bei Stephan/David melden.
- erster Test mit unseren Script erfolgreich. Daten stehen in der xdrive_tmp Datenbank.
29.10.2009
Script von Stephan erweitert. Nun werden die Daten in die Sql Datenbank geschrieben. Link
Edit: Vorher muss allerdings das Zusatzmodul pygresql installiert werden!
sudo apt-get install python-pygresql
27.10.2009
Ich habe ein kleines Pythonscript zum parsen des Logfiles geschrieben -> Script Das Script ist noch keinesfalls vollständig!
- liest die Daten aus dem Logfile in eine Liste ein
- Das erstellen der SQL Statements muss noch angepasst werden
- Bisher nur Testweise Dummy- Statements
Wird gestartet mit:
python filter.py <logfile>.ndd
SQL Statements sind dann in der Datei script.sql im selben Ordner wie das Filterscript zu finden.
26.10.2009
- Design der Tabellen, erstellen der create Befehle
- netdetect .ndd Format
- Um die Daten auf den Server zu kopieren haben wir eine Lösung mit winscp überlegt.
- als Server openssh-server. pro Netbook ein Account.
- Dafür wird ein Datenbankserver benötigt (EZS Labor?)
Design der Datenbank
Tabellen:
xdrive_t:
CREATE TABLE xdrive_t ( id SERIAL Primary Key, messung_id int, bssid varchar(12), essid varchar(32), verschluesselung_id int, kanal int, speed int, typ_id int, first_seen int, last_seen int );
messung_t
CREATE TABLE messung_t( id SERIAL Primary Key, datum date, uhrzeit time, ort varchar(255), strasse varchar(255), pc_id int );
koordinaten_t
CREATE TABLE koordinaten_t ( id SERIAL Primary Key, xdrive_id int, latitude varchar(255), longitude varchar(255), signal_quality int );
verschluesselung_t
CREATE TABLE verschluesselung_t ( id SERIAL Primary Key, name varchar(10) ); INSERT INTO verschluesselung_t VALUES (0, 'OPEN'); INSERT INTO verschluesselung_t VALUES (1, 'WEP?'); INSERT INTO verschluesselung_t VALUES (2, 'WEP'); INSERT INTO verschluesselung_t VALUES (3, 'WPA'); INSERT INTO verschluesselung_t VALUES (4, 'WPA2'); INSERT INTO verschluesselung_t VALUES (5, 'WPA-WPA2');
typ_t
CREATE TABLE typ_t ( id SERIAL Primary Key, name varchar(10) ); INSERT INTO typ_t VALUES (0, 'BSS'); INSERT INTO typ_t VALUES (1, 'IBSS');
constraints
ALTER TABLE xdrive_t ADD CONSTRAINT messung_c FOREIGN KEY(messung_id) REFERENCES messung_t(id); ALTER TABLE xdrive_t ADD CONSTRAINT typ_c FOREIGN KEY (typ_id) REFERENCES typ_t(id); ALTER TABLE xdrive_t ADD CONSTRAINT versch_c FOREIGN KEY (verschluesselung_id) REFERENCES verschluesselung_t(id);
Aufsetzen der Datenbank
SQL Server: PostgreSQL
- sudo apt-get install postgresql
- sudo -u postgres createuser --superuser $USER
- createdb
- psql
PyGreSQL
- sudo apt-get install python-pygresql
- db = DB() braucht evt. login infos als Argument: http://www.pygresql.org/pg.html#connection-objects-pgobject
Skript zum Einpflegen von Daten
- TODO
Kür :
- mac <-> vendor zuordnung: http://standards.ieee.org/regauth/oui/oui.txt http://standards.ieee.org/regauth/oui/
- fertiges Script zum anlegen und fuellen der Tabelle: Bild:Oui.sql.gz
selbst erstellen:
#in bash: cd /tmp #downloaden wget http://standards.ieee.org/regauth/oui/oui.txt #Eintraege filtern cat oui.txt | grep 'base 16' > tmp.txt #insert erstellen ! falsch weil wiki irgendwas ersetzt :/ sed -e 's/'\/'\\/' -e 's/^/INSERT INTO oui VALUES \('\/g' -e 's/ (base 16)\t\t/'\, '\/g' -e 's/$/'\);/g' tmp.txt > insert.sql #in psql: #Tabelle erstellen CREATE TABLE oui ( mac varchar(6) primary key, name varchar(255)); #encoding setzen SET client_encoding to 'latin1'; #inserten... \i insert.sql #encoding zurueck setzen SET client_encoding to 'UTF8';