Heute habe ich nach längerem wieder etwas Zeit gefunden um an unserem Lanparty Verwaltungs-System ANDReA – Automated Network Dhcp Registration Application weiter zu basteln bzw. ein paar Bugs zu beheben.
Dabei ist mir aufgefallen dass bei Ubuntu 8.04 Hardy die man-Seiten von iptables die Funktionen timestart/timestop zwar ausführlichst behandeln, aber sobald man diese versucht zu verwenden erhält man eine Fehlermeldung:
iptables v1.3.8: Couldn’t load match `time‘:/lib/iptables/libipt_time.so: cannot open shared object file: No such file or directory
Wie es scheint wurde das in der Version 8.04 Hardy nicht integriert – ab 8.10 Intrepid ist das dann mit an Bord. ANDReA muss sich also noch ein wenig gedulden. Gedacht wäre das ganze dann um Client-Freigaben der Firewall zeitlich begrenzen zu können, falls mir eine gute Idee kommt wie ich das einfach ohne die Funktionen lösen kann (oder mir jemand einen guten Tip gibt!), werd ich’s natürlich einbauen.
Die neue Version von ANDReA baut jetzt komplett auf Ubuntu 8.04 LTS auf – eine Testversion gab’s schon seit ca. einem 3/4 Jahr, allerdings konnte die finale Version 1.0.2 mangels Zeit erst jetzt fertiggestellt werden.
Dafür sind ein paar Bugs behoben:
– Beim Reboot gab’s ein Timeout beim Beenden vom DNS Server, firewall stoppt jetzt erst nach dem Beenden des DNS Servers.
– Firewall Freigaben für Clients wurden zwar aktiviert aber nicht mehr deaktiviert, kleiner Fehler im Script (geänderte Pfade).
– Bei der Installation von ANDReA wird das Kennwort für MySQL abgefragt, somit kann der root-User für die MySQL Datenbank ein Kennwort vergeben.
Als neues Feature wurde die Möglichkeit einem Client Rechner neben TCP auch UDP Ports frei zu geben eingebaut, das ganze kann wie gewohnt über „Firewall warten“ administriert werden.
Für alle die sich unter ANDReA nix vorstellen können, hier noch eine Beschreibung was ANDReA eigentlich macht:
Die Problemstellung:
Der Freizeit Computer Club Kufstein hat in den letzten Jahren einige Lanpartys veranstaltet. Dabei standen wir immer vor dem Problem einerseits clientseitig eine schnelle Anmeldung im Netzwerk zu ermöglichen, und andererseits serverseitig Informationen über User im Netzwerk verfügbar zu machen.
Mit DHCP war zwar eine schnelle clientseitige Anmeldung möglich, nur konnte man aufgrund der IP-Adresse keine Rückschlüsse auf den User ziehen.
Bei fixer IP-Adressenvergabe via DNS waren Rückschlüsse auf User möglich, allerdings erhöhte sich der Support- und Installationsaufwand clientseitig extrem. Es war auch nicht garantiert, dass sich jeder User mit der vorgegebenen IP-Adresse anmeldete, um so eine eindeutige Identifikation zu gewährleisten. Dazu kam noch die Problematik doppelter IP-Adressen im Netzwerk.
Die Lösung:
Aus dieser Problemstellung wurde die Idee für ANDReA geboren. ANDReA ist ein beinahe automatisches System, das mit Hilfe von DHCP, DNS und einer Web-Applikation eine automatische Registrierung aller User Im Netzwerk ermöglicht. Die Webapplikation erzeugt eine Übersicht über vergebene IP-Adressen, User und den Status der IP-Adressen (online,offline).
Die Realisierung:
Der ANDReA Server wird mit zwei Netzwerkkarten ausgestattet, eth0 dient für das interne Netzwerk und eth1 wird ganz normal für die Verbindung zum Provider verwendet.
Der DHCP Server verwendet eine Netzwerkkarte mit zwei unterschiedlich konfigurierten IP-Netzwerkadressen. ANDReA benutzt ein Boot-Netz und ein Real-Netz.
Das Boot-Netz dient zur Identifikation des Users. Sobald ein Client im Netzwerk seine IP-Adresse erhalten hat, kann er auf die Webseite unter der URL http://login.domainname/ zugreifen, und sich mit einer Usernummer und einem Code anmelden (diese werden beim Einlass ausgeteilt). Zu diesem Zeitpunkt hat der User KEINEN Zugriff auf das Real-Netz.
Nach erfolgreicher Registrierung schreibt ANDReA die Daten in eine Datenbank. Aus dieser werden die Config-Dateien für den DNS und DHCP Server erzeugt. Dem User wird nun eine IP-Adresse aus dem Real-Netz zugewiesen und er hat erst jetzt Zugriff auf alle im Real-Netz angebotenen Dienste (ftp-, www-, gameserver…). Ein anschließender Neustart des Clientrechners gewährleistet die erfolgreiche Anmeldung im Real-Netz.