Die Freifunk Weimar Firmware

January 12th, 2015 § 0 comments § permalink

Häufige Gäste der M18 kennen es vielleicht: Jeden Dienstag Abend sind die "Freifunker" im Maschinenraum. Was verbirgt sich hinter Freifunk und dem lokalen Ableger namens Weimarnetz? Und wie funktioniert das eigentlich...

Was ist Freifunk?

Eine schöne Definition  findet sich auf der Seite der Berliner Freifunker:

Die Vision von Freifunk ist die Verbreitung freier Netzwerke, die Demokratisierung der Kommunikationsmedien und die Förderung lokaler Sozialstrukturen. Durch die Vernetzung ganzer Stadtteile wollen wir der digitalen Spaltung entgegenwirken und freie unabhängige Netzwerkstrukturen aufbauen. Konkret hat sich Freifunk zum Ziel gesetzt, offene WLAN-Netze einzurichten und diese miteinander zu verbinden. Dies ermöglicht einen freien Datenverkehr "durch die Luft" in der ganze Stadt innerhalb des Freifunk-Netzes. Freifunk ist somit eine offene nicht-kommerzielle hierarchielose Initiative für freie Funknetzwerke.

...kurz&knapp: lokal unhabängige freie Netzwerke aufbauen, technischer und sozialer Natur. Anders formuliert: Internet selber bauen mit - aber nicht nur -  WLAN-Routern.

Hier, hier und hier kann Mensch weiterlesen...

Wie funktionierts?

Freifunker sagen:

Die Grundlage von Freifunk bildet ein sogenanntes Mesh-Netzwerk. Alle WLAN-Router im Freifunk-Netz kommunizieren direkt miteinander und bilden ein eigenes Funknetzwerk in der Stadt. Jeder Mensch im Freifunknetz kann mit Hilfe eines Routingprotokolls andere Teilnehmer_innen erreichen und so Daten austauschen. Manche Knoten sind desweiteren auch direkt mit dem Internet verbunden und so haben alle Menschen im Freifunk Netz auch direkten Zugriff auf das globale Netz.

...äh ja.. Mesh klingt gut... aber:

Wie läuft's nun technisch im Detail?

...kurz&knapp: WLAN-Router +  Linux + Mesh-Software + Freifunk-Software = Freifunk.

Es folgt ein kleiner unvollständiger, selektiver Crashcourse gefüllt mit Links zu weiteren Informationen, die nützlich sein können wenn man selbst an der Firmware entwickeln will oder mehr wissen will. Mitbringen muss man erstmal nichts außer Neugier, Zeit und Geduld... sowie ein klein wenig Frustrationstoleranz ;)

Linux

..ja auf vielen WLAN-Routern läuft Linux. Wie auch auf Android-Telefonen, Flugzeugen und Raumstationen. Das man auf den meisten Routern selbst Linux installieren kann ist der GPL, Linksys und einer Klage zu verdanken. Das war 2004. So lange gibt es auch schon das Weimarnetz. Aus dem veröffentlichten Quellcode des Linksys-Routers entwickelte sich eine Linux-Distribution für alle möglichen Arten von Routern namens OpenWRT und jede Freifunk Software, auch in Weimar, baut auf OpenWRT auf. Mittlerweile sind gängige Chipsätze und Routermodelle gut unterstützt und einige Hersteller liefern ihre Router auch gleich mit OpenWRT aus.

OpenWRT

Linux ist streng genommen nur der Kernel des Betriebssystems. Die Shell und weitere Software wird mit einer Distribution wie OpenWRT angepasst und verteilt. OpenWRT ist die Grundlage für die Firmware und als normaler Nutzer hat man damit nicht viel zu tun. Wenn man einfach nur einen Router aufstellen will, kann man sich fertig vorkonfigurierte Images bauen lassen. Dabei nutzt man Meshkit, dass auf dem OpenWRT Imagebuilder aufbaut.

OpenWRT ist natürlich anders als z.B. ein Ubuntu. Aber vieles ist auch ähnlich z.B gibt es auch eine Paketverwaltung bei OpenWRT und verdammt viele Pakete. OpenWRT ist für Embedded-Geräte optimiert, also Geräte mit meist auf irgendeiner Art beschränkten Ressourcen. So läuft OpenWRT mit ein paar Tricks schon mit 2MB Flash und 16MB RAM. Die fertigen Images für die Router im Weimarnetz sind inklusive Kernel+Systemtools sowie unserer Freifunk-Software auf dem Router-Flash nur etwa 3.5MByte groß. Dementsprechend muss man Kompromisse machen.

Nur passen die meisten Pakate nicht auf den geringen Flash-Speicher des Routers. Abhilfe schafft ein Router mit USB, da kann man das Dateisystem auf dem USB-Stick auslagern - Ein Router mit 4Mbyte Flash macht das ganze aber auch interessanter ;)

Alle Informationen, die man wissen muss finden sich im OpenWRT-Wiki.

Hardware

Preislich geht es mit tauglichen Routern so ab 15€ los und nach oben sind keine Grenzen gesetzt. Details über unterstützte Hardware gibt im OpenWRT-Wiki und auf der Weimarnetz-Website. Mit etwas Arbeit sollten aber alle von OpenWRT unterstützten Router mit mindestens 4MByte-Flash und 32Mbyte RAM laufen. Zu jedem Modell gibt es eine ausführliche Seite im OpenWRT-Wiki mit Details zum Stand der Unterstützung und Hinweise auf mögliche Probleme. Unterschiede gibt es bezüglich der WLAN-Features, wie auch in der Prozessorarchitektur (MIPS, ARM und PowerPC sind häufig anzutreffen) sowie natürlich bezüglich Flash-Speicher und RAM.

Generell gilt, dass TP-Link gut und günstig ist und Ubiquity besser aber etwas teurer ist.

WLAN

Die Router sollen ja auch Daten hin und her senden... Dafür wird WLAN genutzt. Also kann man sich auch mit WLAN-Standards beschäftigen und ist bestrebt ständig neue Möglichkeiten die Bandbreite und Reichweite sowie die generelle Effizenz des Netzes zu verbessern. Man kann z.B. Antennen selber bauen oder mit Tools wie Horst nach optimalen Standorten suchen. Wissen um die Theorie und Praxis von Antennen ist immer nützlich. Außerdem kommt mal aus dem Haus, wenn man Outdoor-Installation baut :)

Meshing

Meshing

..oder Vermaschtes Netz. Der Kern der ganzen Geschichte: Jetzt hat man ein paar Router die sich im vermaschten Adhoc-Modus sehen können und wie genau können die jetzt ein größeres und nutzbares Netzwerk bilden? Dafür braucht man ein Routingprotokoll! Da gibt es z.B. OLSR (Layer 3) oder B.A.T.M.A.N. (Layer 2) und noch ein paar mehr... So ein Routingprotokoll definiert wie verbundene Router auf der Netzwerk-Ebene miteinander sprechen können und welche Pfade die Pakete unter allen Möglichen Bedingungen nehmen können. Da wird viel Experimentiert und es gibt teilweise RFCs sowie viele wissenschaftliche Veröffentlichungen über die Protokolle und sogar einen Wettbewerb welches Protokoll besser ist... einfach mal bei die Links durchklicken...

Weimarnetz nutzt OLSR und so läuft auf allen Routern der olsrd Dienst der aus dem Routern das Weimarnetz macht. Hier ist eine Karte aller aktueller Knoten mit ihren Verbindungen zueinander.

Freifunk-Software

Wir haben jetzt einen passenden Router, für das Teil auch noch eine tolle Linux-Distribution und wir haben uns für ein Routingprotokoll, dass wir fürs vermaschen nutzen wollen entschieden... Und jetzt?

Irgendwie fehlt da noch ein System. Das Image muss konfiguriert werden und für neue Router angepasst werden, man möchte als Nutzer nicht immer mit telnet und seriellen Kabel die Bytes herumschieben... eine Weboberfläche wäre auch schön. Zudem ist einem schon beim Vorwort zum OLSR RFC schwindelig geworden und eigentlich will man das alles ja nur nutzen und experimentieren. Außerdem muss man die Knoten in der Community irgendwie benennen und für TCP/IP benötigt man eindeutige IP-Adressen damit es keine Konflikte gibt... und überhaupt wäre es cool, wenn alle Freifunknetze innerhalb von Deutschland miteinander reden könnten?

Alle diese Probleme versucht die Freifunk-Software zu lösen - und noch ein paar weitere: So werden auf dem Router auch noch zugänge für VPN-Server konfigiguriert um auch Knoten die nicht physikalisch verbunden sind zu vernetzen und der Störerhaftung zu entgehen... es gibt zudem ein Monitoring der laufenden Knoten in der Community und viele weitere Details die gelöst werden müssen...

kalua

Auf den Weimarnetz-Routern erledigt davon vieles kalua - eine Werkzeugsammlung in POSIX-Shell programmiert, die den Router aufsetzt und konfiguriert und nachfolgend darüber wacht, dass das Router und das Netz laufen, auch wenn mal was schief geht.

dazu später mehr...

 

Neugierig? Freifunk-Treffen ist immer Dienstag ab 20.00Uhr - Maschinenraum M18.

 

antisplash.sh

January 17th, 2014 § 2 comments § permalink

Wer sich wie ich, haeufiger mit diversen Weimarnetz Routern verbindet um sich ins Internet einzuwaehlen, dem ist dies sicherlich nur als zu gut bekannt.

Screen shot 2014-01-17 at 22.07.30Jedes mal darf man mit seinem Browser eine beliebeige Seite besuchen (im Zweifel fiese Terror-SSL-Certification-Validation-Warnungen ignorieren), nach unten scrollen, Haeckchen setzen, klicken und sich freuen.

Fuer Linux-Rechner ohne Browser bzw. ohne menschliche Interaktionen, wie kleinen RaspberryPi-Fileservern, haben wir bei einem Dienstaeglichen Freifunk Treffen diesen `curl` one-liner geschrieben, der das Problem loest.

curl --data "REDIRECTED=1&FORM_RULES=on&ORIGIN=http://$GATEWAY/" \
"http://$GATEWAY/cgi-bin/luci/freifunk/captive"

Die Tage bin ich auf die Idee gekommen zu suchen, wie sich sowas auch auf Graphical Desktop Linuxen mit Netzwerk Manager loesen laesst. Der oft eingesetzte `NetworkManager` kann bei jeder erfolgreichen WLAN-Verbindung automatisch Scripte im Ordner `/etc/NetworkManager/dispatcher.d/` ausfuehren. In diesem Ordner habe ich dann eine erweitere Version hinterlegt, sodass der Freischaltevorgang bei jedem Connect zu einem Weimarnetz Knoten geschieht.

Den Script und eine kurze README habe ich ins Redmine geladen. Viel Spass.

http://projects.maschinenraum.tk/projects/antisplash-sh/repository/revisions/master/entry/internet-starten.sh

Bundestrojaner / Scareware und der andere Dreck – Hilfeseite

July 27th, 2013 § 0 comments § permalink

Vor einiger Zeit, haben wir eine eher durch Zufall entstandene Löschanleitung für den "BKA-Trojaner" (wenn man ihn so nennen möchte) unter Windwos 7 veröffentlicht.

Nun hat Rene Hifinger mit uns Kontakt aufgenommen und auf eine Website hingewiesen, auf der er für viele der verschiedenen Versionen Löschanleitungen und Hilfe zur Problemstellung gibt.
Auch ist er im Zweifel per E-Mail für Hilfesuchende erreichbar.

Bundespolizei-Virus.de

Vielen Dank für den Hinweis! Und Respekt, dass sich wer die Mühe macht sich mit den eher "nervigen" Problemen auseinander zusetzen.

grep voodooo

November 26th, 2012 § 3 comments § permalink

Seit einigen Wochen nutzen wir u.a. fuer Swopspot den github-clone gitlab. Soweit - Sogut. Alles schoen. Doof nur, das der verwendete resque server abundan aussteigt und dann werden die Aenderungen der git-repositories nicht an gitlab weitergereicht. Also bekomm ich dann (nach dem die Notifications zwei Tage haengen) eMails mit der Bitte mal zu gucken... Das spiel habe ich dann jetzt drei mal gespielt und keine Lust mehr gehabt... Nachdem man einmal weis woran es liegt kann man das bequem die Maschine uebernehmen lassen...

Also dachte mir ich, k bauste fix nen shell script, was guckt ob sich irgendwo noch resque Prozesse finden, und wenn nicht, dann starte ihn halt wieder...

Dann sah die erste Version so aus:

 #!/bin/bash

FINDRESQUEPROCESS=$(echo `ps -ef | grep resque | grep -vc grep`)
# den grep Prozess wollen wir natuerlich nicht mitzaehlen ;)
# -v invertiert die Suche und -c zaehlt die Ergebnisse

if [ $FINDRESQUEPROCESS != "0" ]; then
  echo "resque is running."
  echo "nothing to do here."
  exit 0
else
  echo "resque is not running!"
  echo "starting resque for you..."
  sudo su - gitlab bash -c "cd gitlab && ./resque.sh && exit"
  exit 0
fi
exit 1

# ./check-resque.sh
4

4? Sollte dort nicht 1 stehen? Mhm...
Also lassen wir uns testweise mal ausgeben was gefunden wird.

# ./check-resque.sh
gitlab 11727 1 0 01:04 ? 00:00:05 resque-1.20.0: Waiting for post_receive,mailer,system_hook
root 23013 5903 0 13:51 pts/9 00:00:00 /bin/bash ./check-resque.sh
root 23014 23013 0 13:51 pts/9 00:00:00 /bin/bash ./check-resque.sh
root 23015 23014 0 13:51 pts/9 00:00:00 /bin/bash ./check-resque.sh

Gut, das erklaert die Sache, das Script enthaelt natuerlich auch resque im Namen und wird somit gefunden. Also muessen wir das Script selbst auch aus dem Ergebniss nehmen.

 #!/bin/bash

THISSCRIPT=`basename $0`
FINDRESQUEPROCESS=$(echo `ps -ef | grep resque | grep -v $THISSCRIPT | grep -vc grep`)

if [ $FINDRESQUEPROCESS != "0" ]; then
  echo "resque is running."
  echo "nothing to do here."
  exit 0
else
  echo "resque is not running!"
  echo "starting resque for you..."
  sudo su - gitlab bash -c "cd gitlab && ./resque.sh && exit"
  exit 0
fi
exit 1

Cron fuehrt das Script jetzt einfach alle 30 Minuten aus und Ruhe is' (hoffentlich).

“BKA Trojaner 2.0″ unter Windows 7 – per Hand und ohne zusätzliche Software entfernen

December 11th, 2011 § 9 comments § permalink

Leider erinnere ich mich nicht mehr an die genaue Version, aber vielleicht sollte ich ihn nochmal in der VM testen/installieren und eine genauere Anleitung zum Entfernen nachreichen. Ansonsten gibt es hier immer nochmal Infos falls man sich was diesbezügliches eingefangen hat.

Also die Version die gleich auf zwei Rechnern bei uns eintrudelte, schaffte es (oh welche Überraschung) sich an AntiVir vorbei zu mogeln. Auch die kostenpflichtige Version von Kaspersky musste erst mit der Nase drauf gestupst werden, bis sie registrierte, dass das Stückchen Malware nichts auf der Maschine zu suchen hat. Aber im Grunde kein Problem, der "Trojaner" bzw. die Malware lies sich relativ leicht entfernen.
Da ich im Netz keine Anleitung gefunden habe, die ihn so entfernt schreibe ich einfach zwei drei Zeilen dazu und vielleicht ist es mal irgendwem nützlich.

Als erstes ist es wohl doch sinnvoll im abgesicherten Modus zu starten. Allerdings hatte ich auf einen der Zwei Rechner auch Erfolg das Browserfenster mit mehrmaligen  "Alt+F4" zu beenden. Und konnte danach zumindest im Explorer ein bisschen auf Datei-Suche gehen. Im Abgesicherten Modus dürfte dies auf jeden Fall gehen. How ever.

1. Schritt
Erster Anhaltspunkt sollte sein:

C:\User\[Benutzername]\AppData\Local\Temp\

Hier sollte sich eine "komisch" benannte .exe-Datei finden lassen. Falls nicht, auf Nummer sicher gehen und unter Ordneroptionen "Versteckte und Systemdateien anzeigen" einstellen.
konkretes Beispiel, könnte dann so aussehen:

C:\User\HansWurst\AppData\Local\Temp\

Beispiel der exe:

0.89965784.exe

Den Namen der exe sollte man sich irgndwo notieren bevor man die Datei löscht sonst sucht man eventuell die Nadel im Nadelhaufen. Nachdem notieren die Datei einfach löschen und den Papierkorb leeren.

2. Schritt
Leider reicht das noch nicht aus, aber jetzt wissen wir ja, wonach wir suchen müssen.
jetzt unter Start bei Ausführen einfach "cmd" eingeben und in der sich öffnenden Konsole "regedit" eingeben. (Vielleicht geht auch gleich bei Ausführen/Suchen "regedit", ich weiß es nicht genau, da ich selbst kein Windows 7 benutze)

In der Registry geben wir dann in der Suche den Name unserer .exe-Datei ein. Hier im Beispiel "0.89965784.exe" oder nur "0.89965784". Die Suche dürfte dann ein passendes Ergebnis liefern, dieser Eintrag sollte dann aus der Registry entfernt werden.

3. Schritt
Prinzipiell, kann jetzt schon nichts mehr geschehen. Allerdings wird Windows beim starten wohl jetzt eine Fehlermeldung bringen, dass die auszuführende Datei nicht mehr vorhanden ist (in dem Falle die Datei des Trojaners). Um dies zu verhindern, müssen wir nun noch aus dem Startup die entsprechende .rundll-Datei entfernen. Diese finden wir unter:

C:\Users\[Benutzername]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

konkretes Beispiel könnte dann so aussehen:

c:\Users\HansWurst\AppData\Roaming\Microsoft\Start Menu\Programs\Startup

in dem Ordner Startup sollte sich dann eine .rundll finden lassen, die dem Namen unserer .exe-Datei entspricht. Diese sollte ebenfalls gelöscht werden.

Mit dem letzten Schritt sollte alles entfernt sein. Natürlich ist es sinnvoll nachdem noch einmal den Viren-/Malwarescanner zu aktualisieren und nochmal über die Platte zu jagen. Eine Neuinstallation des Betriebssystems sehe ich einfach nicht. Zumal der "Trojaner" meines Wissens nach auch keinen weiteren Schaden anrichtet außer beim Start das Browserfenster aufzurufen welches den User auffordert Geld zu überweisen. Sprich eigentlich ist es gar kein Trojaner sondern eher Scamware oder Scareware.

WICHTIG: Checkt noch ob euer Taskmanager funktioniert. Wenn dieser nicht auftaucht oder nicht startet dann ist doch noch ein letzter Schritt erforderlich:
1. Unter Start im Suchefeld wieder regedit eingeben.
2. Unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies System "öffnen"
3. Den Eintrag DisableTaskMgr suchen und öffnen und den Wert auf 0 setzten. Dann ok und prüfen ob der Taskmanager jetzt wie gewohnt erscheint.

Eventuell reiche ich eine genauere Anleitung nach, wenn ich Zeit und Ruhe dazu finde. Ansonsten sind wir für alle Hinweise und Verbesserungsvorschläge sowie Fehlerkorrekturen offen.

Where Am I?

You are currently browsing the howto category at maschinenraum.