Planet Göttingen

December 01, 2016

exdc

Malen nach Zahlen

Ich hab ja rein maltechnisch null Talent. Ich schaffe grad mal so mit meiner Tochter ein Haus und Bäume mit Kreide auf unseren Bürgersteig zu malen. Seit kurzer Zeit versuche ich mich an diversen Brettspielminiaturen. Das schöne daran ist, dass man auch talentlos zufriedenstellende Ergebnisse erzielen kann. Zombicide zum starten kann ich nur empfehlen auch wenn die Miniaturen nicht besonders gut sind. Zombies sind sehr kritiklos wenn es ums Anmalen geht.

img_20161128_231021

Meine ersten beiden Versuche. Sieht auf jeden Fall besser als das olle grau aus.img_20161130_183054

by kero at December 01, 2016 05:41 PM

November 25, 2016

Freifunk Göttingen

Finde den Fehler!

Heute gibt es ein Bilderrätsel.

Die Aufgabe: Finde alle Fehler im Bild und schreib sie in den Kommentar. Die Lösung gibt es in ein paar Tagen. Die Gewinner bekommen kostenlosen Zutritt zum wöchentlichen Freifunktreffen.

Hacker (m/w) hackt auf dem Freifunk Netz herum
Hacker (m/w) hackt auf dem Freifunk Netz herum

Vergrössern

by kjo at November 25, 2016 10:56 PM

October 21, 2016

exdc

Kurztipp: Cryptpad

Cryptpad als sichere Alternative bzw. Ergänzung  zu etherpad.  Cryptpad verschlüsselt die Pads auf Clientseite und gibt damit dem Serveradmin keine Möglichkeit den Inhalt der Pads einzusehen. Benötigt node.js zum laufen, ansonsten ist die Installation relativ einfach.

and_so_it_begins

Sieht nett aus und ist auf jeden Fall einen Blick wert.

by kero at October 21, 2016 07:13 AM

October 13, 2016

Freifunk Göttingen

Hoch hinaus – auf den Kirchturm in Rosdorf

Freifunk-Router mögen es bekanntlich luftig und hohe Gebäude üben auf viele Freifunker eine starke Anziehungskraft aus. Daher haben wir uns sehr gefreut, als wir das Angebot bekamen, auf dem Turm der Johanniskirche in Rosdorf Freifunkrouter aufstellen zu dürfen.
Seit heute Mittag ist dort in der „Laterne“ eine Testinstallation in Betrieb. Damit wurden die beiden größeren Meshnetze in Rosdorf zu einem großen verbunden, das jetzt aktuell 37 Router verbindet. Da es noch Optimierungsbedarf und Ideen für den weiteren Ausbau gibt, wird es dabei aber sicherlich nicht bleiben. Und schon jetzt ist es das größte Meshnetz im ganzen Freifunk Göttingen.

Aufstieg durch eine... ...sehr enge Luke im-turm Trotz trübem Wetter eine gute Aussicht nano rosd-geo-20161013 Meshtopologie Die Router hängen hinter den Gittern unterhalb der Zwiebel

by corvus at October 13, 2016 03:46 PM

September 22, 2016

exdc

September 20, 2016

Olivers Blog

Machine Learning mit Smile

Wir beginnen mit einem leeren Java-Projekt. Für die Klassifikation werden wir eine Support Vector Machine (SVM) aus dem Smile framework benutzen.
Dafür laden wir zunächst die smile-core Komponenten herunter. Dies kann man ganz einfach über maven machen:

<dependencies>
    <dependency>
        <groupId>com.github.haifengl</groupId>
        <artifactId>smile-core</artifactId>
        <version>1.2.0</version>
    </dependency>
</dependencies>

Wenn man maven nicht mag, kann man sich die jars auch einzeln besorgen. Wir werden folgende jars benötigen:

Trainingsdaten

Als Trainingsdaten nehmen wir das wine-Datenset aus dem UCI Machine Learning Repository: Wine-Daten. Dieses Datenset enthält Informationen von Weinen, die alle in der gleichen Region in Italien gewachsen sind, jedoch von drei verschiedenen Rebsorten abstammen. Die Daten liegen im CSV-Format vor und enthalten als ersten Wert die Klasse (sozusagen die Rebsorte) des jeweiligen Beispiels. Die restlichen 13 Werte sind Werte aus einer chemischen Analyse der Weine. Unser Klassifikator soll nun anhand der Features vorhersagen, welche Rebsorte der jeweilige Wein hat.

Einlesen der Daten

Die Klassifikatoren in Smile haben alle ein ähnliches Eingabeformat. Wir benötigen die Klassen als Integer und die Features als double-Array. Da wir (normalerweise) vorher nicht wissen, wie viele Beispiele wir haben, bietet sich hier eine Liste an, die später in ein Array umgewandelt wird:

List<Integer> classes = new ArrayList<>();
List<double[]> features = new ArrayList<>();

Die features unserer Weine lassen sich dann mit etwas Java 8 Syntax recht einfach auslesen:

try (Stream<String> stream = Files.lines(Paths.get("/some/path/to/wine.data"))) {
    stream.forEach((s) -> {
        String[] vals = s.split(",");
        classes.add(Integer.parseInt(vals[0])-1);
        double[] instanceFeatures = new double[vals.length-1];
        for(int i=1; i<vals.length;i++) {
            instanceFeatures[i-1] = Double.parseDouble(vals[i]);
        }
        features.add(instanceFeatures);
    });
}

Nun noch schnell in das gewünschte Input-Format unseres Classifiers umwandeln:

double[][] featureArray = features.stream().toArray(double[][]::new);
int[] classArray = classes.stream().mapToInt(i->i).toArray();

Klassifikation

Die eigentliche Klassifikation geht dann wenn man die Features erst mal hat dank des frameworks recht leicht von der Hand. Da wir direkt eine Cross-Validation durchführen wollen, benötigen wir einen ClassifierTrainer, der die SVMs für die Cross-Validation trainiert:

ClassifierTrainer<double[]> trainer = new SVM.Trainer<>(new GaussianKernel(3), 10, 3, Multiclass.ONE_VS_ALL);

Da unsere Daten drei Klassen enthalten, müssen wir eine MultiClass SVM benutzen. Ich habe mich hier für die Variante one vs all entschieden, da diese schneller klassifiziert (weniger Durchgänge als bei one vs one).
Damit wir bei unserer Cross-Validation auch Ergebnisse sehen, müssen wir ein array aus ClassificationMeasure-Instanzen erstellen. Dieses wird dann an die Cross-Validation Methode als Parameter übergeben:

ClassificationMeasure[] measures = new ClassificationMeasure[]{new Accuracy(), new Precision(), new Recall(), new Fallout(), new FMeasure()};
double[] results = Validation.cv(10, trainer, featureArray, classArray, measures);
for(int i=0;i<results.length;i++) {
    System.out.println(measures[i].getClass().getSimpleName() + ": " + results[i]);
}

Und schon haben wir klassifiziert! Die Ergebnisse sind allerdings recht ernüchternd:

Accuracy: 0.398876404494382
Precision: 0.398876404494382
Recall: 1.0
Fallout: 1.0
FMeasure: 0.570281124497992

Normalisierung

Das liegt daran, dass wir vergessen haben zu normalisieren. SVMs (und auch einige andere Klassifikatoren), erwarten Werte im Intervall [0;1]. Wir normalisieren allerdings nicht hart in dieses Intervall, sondern wählen eine andere Variante der Normalisierung:
Wir ziehen von jedem Feature den Mittelwert ab und teilen dann durch die Standardabweichung. Das Ganze muss per Feature geschehen, über alle Instanzen hinweg. Hier der Code:

//berechnen der Mittelwerte
double[] means = new double[13];

for(double[] fInstance : features) {
    for(int i=0;i<fInstance.length;i++) {
        means[i] += fInstance[i];
    }
}
for(int i=0;i<means.length;i++) {
    means[i] = means[i] / features.size();
}

//berechnen der Varianzen
double[] variances = new double[13];
for(double[] fInstance : features) {
    for(int i=0;i<fInstance.length;i++) {
        variances[i] += Math.pow(fInstance[i]-means[i], 2);
    }
}
for(int i=0;i<variances.length;i++) {
    variances[i] = variances[i] / features.size();
}

//die eigentliche Normalisierung
double[][] featureArray = new double[features.size()][];
for(int i=0;i<features.size();i++) {
    double[] toNormalize = features.get(i);
    double[] normalized = new double[features.get(i).length];
    for(int k=0;k<features.get(i).length;k++) {
        normalized[k] = (toNormalize[k]-means[k])/Math.sqrt(variances[k]);
    }
    featureArray[i] = normalized;
}

Hier gibt es elegantere Möglichkeiten zur Berechnung, im Sinne der Verständlichkeit habe ich hier aber einfach die Schulformeln im Code umgesetzt.

Mit den normalisierten Werten sind die Ergebnisse nun um einiges erbaulicher:

Accuracy: 0.9887640449438202
Precision: 0.9859154929577465
Recall: 0.9859154929577465
Fallout: 0.009345794392523366
FMeasure: 0.9859154929577465

Kernel und Parameter

Damit eine SVM im realen Einsatz gute Ergebnisse liefert, müssen immer der Parameter C und die jeweiligen Parameter im Kernel optimiert werden. Das geschieht meist durch ausprobieren in 10er-Potenzen (also z.B. 0.001->0.01->0.1->1->10->100).
Der meist genutzte Kernel ist hier sicher der Gauß-Kernel, den wir auch oben benutzt haben. Ein linearer Kernel bietet jedoch den Vorteil, dass man leichter (bzw. überhaupt) visualisieren kann was gelernt wurde.

Die optimierte SVM trainieren und ausliefern

Wenn alle Parameter optimiert und wir mit den Ergebnissen zufrieden sind, wird es Zeit die SVM auf allen Trainingsdaten zu trainieren und auszuliefern. Dafür benutzen wir nun direkt die Klasse SVM:

SVM<double[]> svm = new SVM<>(new GaussianKernel(3), 10, 3, Multiclass.ONE_VS_ALL);

Als Parameter nehmen wir hier natürlich die vorher optimierten Werte. Trainiert wird die SVM dann folgendermaßen:

svm.learn(featureArray, classArray);

Dieses Objekt kann man dann serialisieren (z.B. mit xstream oder Gson), und später wieder einlesen.
Wenn man das SVM-Objekt dann erst mal hat, kann man mit ihm Vorhersagen für andere Datensätze treffen. Die Datensätze, für die die Klasse dann vorhergesagt werden soll, müssen vorher auf jeden Fall mit den gleichen Werten normalisiert werden, mit denen auch die Trainingsdaten normalisiert wurden:

double[] newExample = new double[]{12.77,2.39,2.28,19.5,86,1.39,.51,.48,.64,9.899999,.57,1.63,470};
for(int k=0;k<newExample.length;k++) {
    newExample[k] = (newExample[k]-means[k])/Math.sqrt(variances[k]);
}
svm.predict(newExample); //Ergebnis: 2

Die Werte für die Mittelwerte und die Varianzen sollten also gemeinsam mit dem SVM-Objekt serialisiert werden.

by Oliver Paetzel at September 20, 2016 09:21 AM

September 04, 2016

Freifunk Göttingen

Wie Freifunk genutzt wird

Neulich auf unserem Anrufbeantworter:

Ja, Hallo <gelöscht> ist mein Name. Ich wohne in <gelöscht> und habe mal eine Frage zu Freifunk und so weiter. Und zwar habe ich bis vor einiger Zeit immer hier in <gelöscht> Freifunk empfangen und seit ein paar Tagen ist absolut tote Hose. Gibt’s da irgendeinen Grund, oder war das nur ein Feldversuch, oder wie auch immer? Ich bin kein Computerexperte, ich hab das für mein Tablet halt genutzt.
Vielleicht kann mich ja mal jemand zurückrufen… Vielen Dank für die Mühe im Voraus. Dankeschön!

Solche Anrufe haben wir öfters. Leute freuen sich, dass sie einfach so ins Internet kommen, wissen aber gar nicht was Freifunk ist und wenn es dann wieder weg ist fängt man an zu recherchieren und landet evtl. auf unserer Webseite und findet dort unsere Telefonnummer.

Wir beantworten Telefonanrufe ziemlich ungerne, weil sie grossen Aufwand bedeuten. Aber wir antworten gerne per Mail oder heute auch mal im Blog.

Wahrscheinlich hat ein freundlicher Nachbar warum auch immer seinen Freifunkrouter wieder abgeschaltet. Vielleicht ist es ihm noch gar nicht aufgefallen. Wo der ausgefallene Router stand kann man oft auf der Freifunkkarte sehen. Aber nicht immer, tragen Nachbarn ihren Router auch auf der Karte ein. Freifunk ist ein Selber-Machen-Netz, jeder kann einen Router aufstellen und seinen Internetanschluss teilen, aber natürlich hören Leute auch wieder damit auf. z.B. weil sie wegziehen.

Da kann die Göttinger Freifunkinitiative wenig machen. Wir stellen nur die Infrastruktur bereit (nur mit ganz wenigen Ausnahmen stellen wir auch Access Points auf, z.B. in Flüchtlingsunterkünften), aber die hunderte von Zugangspunkten in der ganzen Stadt kommen von Anwohnern, die wir meistens überhaupt nicht persönlich kennen.

Die Hilfsbereitschaft, Gastfreundschaft und Nachbarschaftshilfe die die Göttinger hier zeigen finden wir absolut überwältigend. Niemand hätte am Anfang gedacht, dass dieses Freifunk Netz solche Ausmaße annehmen würde.

Im Göttinger Freifunknetz werden nach 1,5 Jahren Wachstum so ungeheure Datenmengen bewegt, dass wir vor allem damit beschäftigt sind, die glühenden Supernodes am laufen zu halten und das damit verbundene Datenvolumen zu finanzieren.

by kjo at September 04, 2016 07:04 PM

August 10, 2016

Olivers Blog

Postgresql json_agg (Web-App Serie)

Als ich eine der SQL-Queries für das e-learning Portal geschrieben habe, kam darin auch ein JOIN-Statement vor. Ich habe mich also innerlich auf das 'manuelle' zusammenfassen der Ergebnisse im Code mittels einer map[string]string vorbereitet, da ist mir durch Zufall die postgresql json_agg aggregate function begegnet (postgresql aggregate functions). Die query würde dann folgendermaßen aussehen:

SELECT units.*, json_agg(pages.page_id) AS pages_arr FROM units LEFT OUTER JOIN pages ON ... GROUP BY units.unit_id

Der pages_arr-Wert wird dann als JSON-Array zurückgeliefert, das einfach mit einem beliebigen JSON-Parser in der jeweiligen Programmiersprache in ein Array oder eine Liste verwandelt werden kann.
Sehr praktisch wie ich finde!

by Oliver Paetzel at August 10, 2016 05:18 PM

Neue Serie: Web-App mit go/REST/postgres/JWT/emberjs

Für ein Uni-Projekt habe ich die Aufgabe, eine E-Learning Applikation zu entwerfen. Diese soll zunächst als Web-App realisiert werden, die Möglichkeit native Apps für mobile Endgeräte nachzuentwickeln, soll allerdings auch vorhanden sein.

Für diese Anforderungen eignet sich ganz besonders die Kombination (REST)-api im backend und JavaScript MVC Framework für das frontend. Da ich normalerweise Web-Anwendungen mit Java/MySQL/JSF entwickle, wäre zumindest schon mal das frontend neu für mich gewesen. Um das Ganze noch interessanter zu machen, habe ich zusätzlich noch die Programmiersprache im Backend und die Datenbank geändert.

Als Programmiersprache für das backend werde ich go von Google benutzen und als Datenbank postgresql. Interessant an go ist vor allem die Art des deployens: Es wird eine komplett eigenständige binary mit Runtime und Garbage Collector erstellt. Beim jetzigen Projektstand ist diese lediglich 7,3MB groß (kompiliert mit go 1.7rc6). Es gibt noch viele weitere Dinge, die go anders macht als andere Programmiersprachen, doch für mich ist dies der interessanteste Unterschied zu Java, wo die "fat-WARs" schon mal 30-40 MB groß sein können mit allen Abhängigkeiten.

Für das frontend habe ich mich zunächst für emberjs entschieden. Da ich noch nicht mit der frontend-Entwicklung begonnen habe, kann ich hierzu noch nicht so viel schreiben, außer dass mir die Tutorials besser gefallen haben als die von Angular. Bei emberjs scheint mir alles etwas klarer und die Struktur der Applikation mehr vorgegeben zu sein.

Die Blog-Serie soll keine minutiöse Beschreibung der Entwicklung werden, sondern vielmehr interessante Entdeckungen und Entscheidungen festhalten.

by Oliver Paetzel at August 10, 2016 03:58 PM

July 01, 2016

Freifunk Göttingen

Grossausfall Kabel Deutschland

Gestern Abend fiel bei Kabel Deutschland das Netz aus und wir wissen jetzt wieviel Prozent der Göttinger Freifunker dort Kunde sind.

kabelausfall

by kjo at July 01, 2016 10:50 AM

June 23, 2016

Freifunk Göttingen

Neue Firmare

Göttingen. Während England über den Austritt aus der EU abstimmt, spielen sich die wirklich staatstragenden Ereignisse mal wieder im Göttinger Freifunknetz ab. Wir entlassen heute eine neue Firmware in die Freiheit.

Kurzfassung

Ab heute gibt es eine neue Firmware, sie wird im Laufe der nächsten zwei Wochen automatisch auf allen Routern installiert. Wir haben nun Support für den TP-Link 841v11. Und eine geile neue Router Statusseite, die man unter http://10.109.0.1 anschauen kann (wenn man im Freifunk ist).

Langfassung

Die neue stabile Firmware 0.8.2 löst ab heute die alte 0.7.3 ab, die wir im Januar 2016 ausgerollt haben. Die 0.8.2 ist ein unmodifiziertes Gluon 2016.1.5. Router die auf autoupdate stehen, also fast alle, installieren die Firmware innerhalb der nächsten zwei Wochen. Wann genau entscheidet jeder Router selber nach dem Zufallsprinzip. Damit verringern wir das Risiko, dass das ganze Netz evtl. mit einem Schlag kaputtgeht falls uns beim Betatesten doch irgendein schlimmer Bug nicht aufgefallen sein sollte.

 

Neue Hardware

Buffalo

WZR-HP-G300NH

D-Link

DIR-505 (A1)

TP-Link

CPE210/220/510/520 v1.1
TL-WA901N/ND v1
TL-WR710N v2
TL-WR801N/ND v1, v2
TL-WR841N/ND v11
TL-WR843N/ND v1
TL-WR940N v1, v2, v3
TL-WR941ND v6
TP-Link TL-MR13U v1
TP-Link TL-WA7510N

Ubiquiti

airGateway
airRouter
UniFi AP Outdoor+
Rocket M XW

Western Digital

My Net N600
My Net N750

Devices on Chips

Onion Omega
ALFA Hornet UB / AP121 / AP121U
8devices Carambola 2

Cisco

Meraki MR12/MR62/MR16/MR66

OpenMesh

MR600 (v1, v2)
MR900 (v1, v2)
OM2P (v1, v2)
OM2P-HS (v1, v2)
OM2P-LC
OM5P
OM5P-AN

x86-xen_domu

Eigentlich auch neu, hatten wir aber schon in die vorherige Firmware reingepatcht:

TL-WR841N/ND v10, TL-WR1043N/ND v3, Futro Support im x86-generic Image (PATA Treiber).

Ubiquity AirOS 5.6.x

Es ist nicht mehr nötig auf AirOs 5.5.x downzugraden, um Gluon installieren zu können. Das betrifft Airmax M XM/XW Geräte, also NanoStation, Bullet und Co.

x86-generic

Die 64bit version von x86-generic enthält jetzt auch den VirtIO Treiber.

Kernel Module

Bisher konnte man Kernelmodule aus den offiziellen OpenWRT Repos installieren. Ab dieser Firmware müssen die Kernelmodule aus dem Göttinger Repository kommen, da sie signiert sind. Der Pfad ist in opkg vorkonfiguriert.

Freifunkrouter Status Seite

Die Statusseite ist informativer und sehr sehr viel hübscher geworden.

802.11s mesh support

Prinizipiell unterstützt die Firmware 802.11s mesh, wir haben das aber nicht konfiguriert.

Multicast filter

Die Router filtern ab dieser Firmware multicast ICMP and ICMPv6 Echo Requests (ping) und Node Information Queries (RFC4620) raus. Früher war es möglich sämtliche 760 Nodes gleichzeitig anzupingen.

27.6.: Nachtrag zum Changelog der 0.8.2 Firmware

Auf der neuen Statusseite der Router ist die Kontaktinfo zu sehen. Und die Router funken HT20.

by kjo at June 23, 2016 11:20 AM

June 15, 2016

Freifunk Göttingen

Neue Firmware im Test

Unsere nächste Firmware, Gluon 2016.1.5, ist im Betatest und kann hier runtergeladen werden:

https://cccgoe.de/freifunk/beta/factory/

Unter anderem enthält diese Firmware Support für den TP-Link 841 v11. Für eine vollständige Featureliste gibt es die Doku auf http://gluon.readthedocs.io/en/v2016.1.5/

 

by kjo at June 15, 2016 10:48 AM

June 07, 2016

exdc

BicBucStriim 1.3.6 + OMV 2.2.4

BicBucStriim ist ein Webinterface für eure Calibre Bibliothek. Primär gedacht für NAS Systeme auf denen man nicht ein komplettes Calibre laufen haben will. Natürlich kann man Calibre auch auf einem NAS laufen haben…habe ich auch, aber BicBucStriim ist deutlich schlanker und Ressourcen schonender. Voraussetzung ist, dass Ihr Calibre zur Ebookverwaltung nutzt und die Daten auf eurem OMV-NAS ablegt.

Ladet euch unter http://projekte.textmulch.de/bicbucstriim/downloads/  die aktuellste Version runter (oder github).

Entpacken und nach /var/www/openmediavault/bbs verschieben. Der data Ordner sollte für alle beschreibbar sein. Für faule:

chown -R openmediavault:www-data /var/www/openmediavault/bbs

chmod -R 775 /var/www/openmediavault/bbs

Kann man auch etwas restriktiver machen, aber da das NAS eh im lokalen Netzwerk ist, machen wir es uns mal einfach.

apt-get install sqlite3 php5-sqlite php5-intl php5-gd

In die /etc/nginx/sites-enabled/openmediavault-webgui kommt zusätzlich folgendes:

location /bbs/ {
rewrite ^/(bbs/img/.*)$ /$1 break;
rewrite ^/(bbs/js/.*)$ /$1 break;
rewrite ^/(bbs/style/.*)$ /$1 break;
rewrite ^/bbs/$ /bbs/index.php last;
rewrite
^/bbs/(admin|authors|authorslist|login|logout|metadata|search|series|serieslist|tags|tagslist|titles|titleslist|opds)/.*$
/bbs/index.php last;
}

Dann noch ein

/etc/init.d/nginx reload

und fertig. Unter http://eueromv/bbs/installerchedck.php könnt Ihr nochmal schauen ob nichts mehr rot angezeigt wird

Eventuell wird beim nächsten OMV Update die Nginx Konfiguration neu geschrieben oder eventuell wird auch der Ordner bbs aus dem docroot von OMV gelöscht. Schöner wäre natürlich ein eigener Vhost, daß machen wir aber erst wenn es so weit ist ;-).

Anmerkungen:

Eine Alternative zu BicBucStriim ist COPS. Die Installation ist ähnlich.

Seit einer der letzten Calibre Versionen braucht man bei OMV libgl1-mesa-glx damit es headless läuft.

apt-get install libgl1-mesa-glx

 

 

by kero at June 07, 2016 10:39 AM

June 06, 2016

exdc

Kurztipp: Nginx Reverse Proxy für Apache 2.4

Apache 2.4 verfügt über das Modul mod_remoteip wodurch mod_rpaf abgelöst wird. Die Konfiguration ist realtiv einfach

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 123.123.123.123
RemoteIPInternalProxy 123.123.123.124

 

 

 

by kero at June 06, 2016 12:43 PM

June 01, 2016

exdc

Kurztipp: Spam Versand ermöglichen

Will man externen den Versand von Spam über den eigenen Server ermöglichen, kann man dafür eine nicht mehr gepflegte Gallery2 Installation bereitstellen.
Geholfen hat ein  Nagios Check für die  mailq und php maillog in der php.ini zu aktivieren. Schnell bemerkt, schnell behoben, trotzdem ärgerlich da in den ca. 30 Minuten doch einiges an Spam raus ging.
Daher mein Tipp: Software, die nicht mehr genutzt wird, löschen oder hinter htaccess packen.

by kero at June 01, 2016 11:43 AM

May 17, 2016

Freifunk Göttingen

Offener Brief zur Abschaffung der WLAN-Störerhaftung

Sehr geehrte netzpolitische Sprecher der Bundestagsfraktionen,
sehr geehrte Mitglieder des Bundestags,

wir, die Göttinger Freifunk-Initiative, haben die Bemühungen der Bundesregierung, das Telemediengesetz so zu novellieren, dass das Öffnen privater Netzzugänge nicht mehr durch die Störerhaftung bedroht wird, enthusiastisch aber kritisch begleitet.Unter anderem haben wir hierzu nacheinander Gespräche und Diskussionsrunden mit den Bundestagsabgeordneten Lars Klingbeil und Thomas Oppermann, Jürgen Trittin sowie Fritz Güntzler initiiert.

Wir haben uns sehr über die Nachricht gefreut, die Regierungsfraktionen hätten sich darauf geeinigt, die Störerhaftung für Betreiber von WLANs endlich endgültig abzuschaffen. Sollte dies tatsächlich gelingen, wäre dies ein – wenn auch lange überfälliger – großer Wurf für die Entwicklung der digitalen Zivilgesellschaft in Deutschland.

Noch liegt uns kein konkreter Gesetzentwurf vor, aber leider müssen wir befürchten, dass das Erreichen dieses Zieles durch eine unzureichende gesetzliche Umsetzung gefährdet ist.

Die fragmentarischen Informationen, die bislang an die Öffentlichkeit gelangt sind, lassen die Vermutung zu, dass die von den Regierungsfraktionen gefundene Einigung vorsieht, Betreiber privater offener WLANs explizit als Telekommunikationsdiensteanbieter im Sinne von §8 TMG festzuschreiben, ohne hierfür zusätzliche Bedingungen zu fordern, wie sie noch aus dem Regierungsentwurf von Juni 2015 hervorgingen.
Dies haben wir von Anfang an gefordert und begrüßen es dementsprechend sehr.
Allerdings – so vermuten wir – sollen in §8 TMG Unterlassungsansprüche gegen Telekommunikationsdiensteanbieter nicht explizit ausgeschlossen werden. Lassen Sie mich kurz ausholen, um zu erklären, wieso sich dies als sehr problematisch erweisen könnte.

Die Störerhaftung verhindert deshalb die Verbreitung offener WLANs, weil Betreiber befürchten müssen, für Rechtsverletzungen ihrer Nutzer abgemahnt zu werden und hierfür mit erheblichen Kosten und Mühen belastet zu werden.
Entscheidend hierbei ist die Rechtsunsicherheit – sie allein reicht schon aus, um eine Privatperson oder ein kleines Unternehmen davon abzuschrecken, ein offenes WLAN anzubieten. Selbst wenn tatsächlich ein offenes WLAN existiert und es zu einer Abmahnung kommt, besteht die Rechtsunsichherheit in der Regel weiter. Die Abmahnkanzleien sind nämlich gar nicht daran interessiert, dass ihre Abmahnungen gerichtlich überprüft werden, weil für sie das Risiko einer folgenschweren Niederlage schwerer wiegt als eine Person, die die geforderten Abmahngebühren nicht zahlt.
Wenn das Ziel ist, die Verbreitung offener WLANs zu fördern, ist es also zwingend notwendig, die Rechtsunsicherheit zu beseitigen

Die Rechtsunsicherheit bezieht sich im Wesentlichen auf zwei Fragen:

  1. Ist ein privater Netzbetreiber Telekommunikationsdiensteanbieter im Sinne von §8 TMG, gilt also für ihn das Providerprivileg?
    Die geplante Gesetzesänderung würde die jüngste Rechtsprechung, die diese Frage ohnehin tendenziell bejaht hat, festschreiben. Das würde dieses Teilproblem lösen. Da aber die Gerichte in jüngster Zeit sowieso zu dieser Meinung neigen, wäre die positive Wirkung allerdings auch beschränkt.
  2. Treffen den Access Provider Unterlassungsansprüche trotz des Providerprivilegs?
    Leider ist die Rechtslage hierzu äußerst unklar. Die Rechtsprechung hat teilweise den Haftungsausschluss des Providerprivilegs sehr eng ausgelegt und Unterlassungsansprüche zugelassen. Gemeint sind Ansprüche etwaiger Geschädigter gegen den Netzbetreiber, zu unterlassen, weiterhin „adäquat-kausal“ an einer Rechtsverletzung mitzuwirken, hier konkret dadurch, dass einem Rechtsverletzer (oder einem offenen Personenkreis) weiterhin Zugang zum Netzwerk verschafft wird.
    Dies ist eine reale und aktuelle Gefahr: ein Beispiel hierfür sind zwei BGH-Urteile vom November 2015 in den Fällen „goldesel.to“ und „3dl.am“, nach denen klassische Internetprovider unter Umständen ein Unterlassungsanspruch in der Form einer Pflicht zur Sperrung des Zugangs ihrer Kunden zu von Dritten angebotenen illegalen Inhalten treffen würde. Diese Firmen kommen eindeutig in den Genuss des Providerprivilegs. Der BGH hat hier also eine Ausnahme vom Providerprivileg geschaffen und damit das Abmahnrisiko erhöht.
    Es sprechen andererseits auch gewichtige Rechtsgründe gegen ähnliche Unterlassungsansprüche, darunter der Wille des deutschen Gesetzgebers, der §8 TMG ja gerade geschaffen hatte, um Provider vor solchen Rechtsrisiken zu schützen (und nach dessen Wortlaut Telekommunikationsdiensteanbieter „nicht verantwortlich“ sind, ohne Einschränkung), die europäische E-Commerce-Richtlinie von 2000, die durch das TMG im Deutschen Recht realisiert wird und ebenfalls eine solche Haftung von Access Providern ausschließt, und das nach dem Schlussantrag des europäischen Generalanwalts zu erwartende Urteil des EuGH zum Fall einer Abmahnung, die ein Betreiber eines offenen WLANs in seinem Geschäft nach einem illegalen Musikdownload erhalten hatte.

Wenn allerdings selbst der BGH zu den angesprochenen Urteilen kommen kann, kann nicht davon die Rede sein, dass durch die jüngste Einigung der Regierungsfraktionen die Rechtsunsicherheit und damit das Hemmnis für den Ausbau offener WLANs beseitigt würde.

Im Gegenteil: durch eine voreilige Gesetzesänderung könnte der günstige Zeitpunkt der schon bestehenden fortlaufenden Diskussion, die gerade durch das ausstehende EuGH-Urteil befeuert wird, ungenutzt verstreichen, ohne dass es zu der angestrebten Weichenstellung kommt. Damit würde sich die Erreichung des proklamierten Zieles einer Förderung offerer WLANs weiter um Jahre verzögern und die Deutsche digitale Zivilgesellschaft um weitere Jahre zurückfallen.

Für die Regierungskoalition besteht darin eine besondere realpolitische Gefahr: die letzte Woche kommunizierte Einigung wurde von den Medien und allen wesentlichen netzpolitischen Akteuren (außer der Urheberrechtslobby, die die Idee offener Netze stets bekämpft hat) bereits gefeiert. Da noch kein Gesetzentwurf vorliegt, muss man von Vorschusslorbeeren sprechen. Sollte die letztlich resultierende Gesetzesänderung nicht zum gewünschten Erfolg führen – und das dürfte sich schnell herauskristallisieren – wird die Koalition an ihren Ankündigungen gemessen werden und nicht positiv abschneiden.

Als Argument gegen den Ausschluss von Unterlassungsansprüchen wurde vorgebracht, dass im Schlussantrag des europäischen Generalanwalts gefordert wird, dass gerichtliche Anordnungen in gewissen Fällen möglich sein müssen.
Dies ist jedoch auch ohne materielle Unterlassungsansprüche möglich. Wie die Digitale Gesellschaft schreibt, ist dies auch in anderen Rechtsgebieten wie §1 des Gewaltschutzgesetzes realisiert.

Außerdem fordert der Generalanwalt, dass die Kosten der gerichtlichen oder außergerichtlichen Rechtsverfolgung nicht den Access Provider treffen dürfen. Dies ist ebenfalls in Deutsches Recht umzusetzen.

Lassen Sie mich zum Abschluss – nicht zuletzt als Argumentationshilfe – noch kurz politische Gründe anführen, die für einen expliziten Ausschluss von Unterlassungsansprüchen in der Neufassung des §8 TMG sprechen:

  • er entspricht dem Vorschlag, den der Bundesrat am 6.11.2015 vorlegte (Drucksache 440/1/15).
  • er entspricht dem Abschlussantrag des europäischen Generalanwalts Maciej Szpunar vor dem EuGH und damit vermutlich dessen kommendem Urteil
  • er entspricht auch dem Vorschlag des Vereins Digitale Gesellschaft aus dem Jahr 2012, der maßgeblich an der Entstehung der gesamten Diskussion um ein Ende der Störerhaftung beteiligt war. Dieser Vorschlag, den wir unterstützen, besteht in der Ergänzung von §8 TMG um:
    „(4) Der Ausschluss der Verantwortlichkeit (Absatz 1) umfasst auch Ansprüche auf Unterlassung.“
  • wie oben ausführlich ausgeführt, ist er dringend notwendig, um die Rechtsunsicherheiten für die Betreiber offener WLANs zu beseitigen und damit das von der Bundesregierung ausgegebene Ziel der Förderung solcher Netze umzusetzen

Außerdem bestehen unabhängig von der Problematik offener WLANs weitere wichtige Belange, die allgemein dafür sprechen, dass Access Provider von Unterlassungsansprüchen freigestellt werden sollten:

  • die Bundesrepublik ist durch Artikel 12 der Europäische E-Commerce-Richtlinie ohnehin seit 2000 (!) verpflichtet, dies in unmittelbar geltendes Deutsches Recht umzusetzen.
    Dies ist dem Wortlaut nach zwar bereits durch den existierenden §8 TMG realisiert, die Rechtsprechung zeigt hier aber, dass Nachbesserungsbedarf besteht, um das Ziel, dass Access Provider „nicht für die übermittelten Informationen verantwortlich“ sind, tatsächlich zu realisieren.
  • Es besteht die ernstzunehmende Gefahr, dass Access Provider, im Wesentlichen also eine kleine Gruppe von privaten Unternehmen, durch Abmahnungen dazu gebracht wird, den Zugang ihrer Kunden zu Inhalten zu sperren, die nur möglicherweise rechtsverletzend sind. In der Regel hätten sie kein Interesse, dagegen gerichtlich vorzugehen, sondern würden nach eigenem Profitinteresse handeln. Das würde für ihre Kunden, eine große Bevölkerungsmehrheit, auf eine privatisierte Zensur in vorauseilendem Gehorsam ohne rechtsstaatliche Verfahren hinauslaufen. Ein expliziter Ausschluss von Unterlassungsansprüchen würde dies verhindern.

Wir bitten Sie aus den genannten Gründen dringend, dass Sie den Gesetzentwurf zur Änderung des Telemediengesetzes vor der Beschlussfassung so ändern, dass Unterlassungsansprüche gegen Access Provider ausgeschlossen werden und Rechtsverfolgungskosten nicht von diesen zu tragen sind. Sollte dies schon in der von Ihnen angedachten Gesetzesnovelle enthalten sein, betrachten Sie diesen Brief bitte nur als Lob.
Mit freundlichen Grüßen

Freifunk Göttingen

 

Nachtrag

Halina Wawzyniak, netzpolitische Sprecherin der Linksfraktion im Bundestag, hat uns auf einen gemeinsamen Gesetzentwurf der Linken und Grünen vom 5.11.2014 hingewiesen.

Er nimmt den Hauptpunkt dieses Schreibens, nämlich den expliziten Ausschluss von Unterlassungsansprüchen gegen Access Provider, schon vorweg.

Wir freuen uns, dass die Linken und Grünen hier schon (knapp) länger unsere politischen Forderungen vertreten als es Freifunk Göttingen überhaupt gibt und hoffen, dass sie sich über unsere Unterstützung ebenfalls freuen.

by moeb at May 17, 2016 10:03 PM

May 12, 2016

Freifunk Göttingen

Das Ende der Störerhaftung?

Gestern erreichte uns die Meldung, die Regierungskoalition habe sich darauf geeinigt, die Störerhaftung für offene WLANs endlich zu beseitigen. Was heißt das, und was bedeutet das für Freifunk?

Die Störerhaftung

Störerhaftung bedeutet hier, dass der Inhaber eines Internetanschlusses abgemahnt werden kann, falls Andere, denen er Zugang zum Netz verschafft hat, beispielsweise Urheberrechtsverletzungen begehen. Dahinter steht die Vorstellung, dass Zugang zum Internet grundsätzlich statt einer Chance zur Kommunikation als Risiko einer Rechtsverletzung zu bewerten wäre. Diese Rechtsauffassung Deutscher Gerichte ist weltweit einzigartig und hat dafür gesorgt, dass es in Deutschland ein Haftungsrisiko ist, als Privatperson ohne Absicherung, wie sie Freifunk bietet, ein offenes WLAN zu betreiben.
Die Folge war traurig für die Entwicklung eines solidarischen digitalen Gemeinwesens: die Anzahl offener WLANs blieb weit hinter denen anderer Industrienationen zurück. Ende 2014 gab es beispielsweise in Südkorea 20 mal so viele offene WLANs pro Einwohner wie in Deutschland, in Grossbritannien 15 mal so viele.

Das Providerprivileg

Dabei ist im Telemediengesetz schon seit langem geregelt, dass Telekommunikationsdiensteanbieter nicht von der Störerhaftung betroffen sind. Das ist sinnvoll: wer Anderen einen Internetzugang zur Verfügung stellt, hat keine Kontrolle darüber, was diese damit tun – aus Datenschutzgründen darf er auch gar nicht kontrollieren. Ihn für die Handlungen des Nutzers verantwortlich zu machen wäre also höchst ungerecht.
Hauptsächlich für Internetprovider gedacht (deshalb heißt diese Regelung auch Providerprivileg), schützt der Wortlaut des Gesetzes eigentlich auch Privatpersonen, die Anderen Zugang zum Netz verschaffen und damit als Miniatur-Internetprovider agieren. Das haben die Deutschen Gerichte leider lange nicht zur Kenntnis genommen.

Der Regierungsentwurf von 2015

Gerade als sich in einigen Gerichtsentscheidungen abzeichnete, dass die Rechtsprechung dieses Argument in Zukunft endlich berücksichtigen würde, preschte die Bundesregierung im März 2015 mit einem desaströsen Gesetzentwurf vor, der angeblich das Ziel hatte, die Verbreitung offener WLANs in Deutschland zu fördern.
Er stellte zwar klar, dass Anbieter offener WLANs definitiv von der Störerhaftung ausgenommen sein sollten – aber nur wenn das Netz verschlüsselt ist und außerdem auf einer Vorschaltseite alle Nutzer erklären, nichts Böses zu tun. Beides hilft überhaupt nicht gegen das Problem des Missbrauchs, schränkt die Nutzer aber entscheidend ein. Zudem sollten ursprünglich private WLAN-Betreiber gegenüber kommerziellen dadurch schlechtergestellt werden, dass sie die Namen der Nutzer kennen sollten. Dies hätte private offene WLANs letztlich unmöglich gemacht, wurde aber nach drei Monaten zurückgezogen, weil es gegen EU-Recht verstoßen hätte.
Entsprechend vernichtend fiel die Kritik aus. Der Professor für Internetrecht Thomas Hoeren bezeichnete den Gesetzentwurf als “eine Unverschämtheit“.
Auch wir haben versucht, in Gesprächen mit Bundestagsabgeordneten, darunter Thomas Oppermann, Lars Klingbeil (beide SPD), Jürgen Trittin (Grüne) und Fritz Güntzler (CDU) unsere Argumente vorzubringen, um den Gesetzentwurf durch die Streichung dieser Einschränkungen so zu verbessern, dass das angestrebte Ziel, offene WLANs in Deutschland alltäglich zu machen, auch tatsächlich erreicht werden kann.
Leider konnte sich unsere Ansicht in der Regierungskoalition nur teilweise gegen die Befürchtung durchsetzen, man würde mit einer de-facto-Angleichung der Rechtslage an den Stand, wie er in allen anderen industrialisierten Staaten immer schon der Fall war, dem Verbrechen Tür und Tor öffnen. Die SPD schien deutlich aufgeschlossener als die CDU/CSU, aber nach über einem Jahr Stillstand konnte man den Eindruck gewinnen, hier wäre von der Regierungskoalition nichts mehr zu erwarten.

Das EuGH-Verfahren

Schließlich kam durch ein Gerichtsverfahren Bewegung in die Sache. Das Mitglied der Piratenpartei Tobias McFadden war abgemahnt worden, weil jemand über ein offenes WLAN in seinem Laden illegales Filesharing betrieben hatte. Er zog vor Gericht und argumentierte vor dem Landgericht München, dass unter anderem eine Störerhaftung in dieser Situation durch EU-Recht ausgeschlossen sei. Das Landgericht gab diesen Punkt daraufhin zur Entscheidung an den Europäischen Gerichtshof ab.
Im März gab der Generalanwalt am Europäischen Gerichtshof seinen Schlussantrag zu diesem Fall ab – die Störerhaftung sei unverhältnismäßig. Der EuGH ist zwar nicht an die Anträge des Generalanwalts gebunden, folgt dessen Argumentation aber in einer großen Mehrheit der Fälle.
Ein Urteil steht zwar noch aus, aber es schien, dass das EuGH der Störerhaftung ein Ende machen würde.
Wohl nicht zuletzt, um der Bundesregierung die Peinlichkeit zu ersparen, dass ihr Gesetzesvorhaben vom EuGH gekippt werden könnte, bevor es je in Kraft treten würde, ermahnte Bundeskanzlerin Angela Merkel in dieser Situation die Regierungsparteien, endlich zu einer Einigung zu kommen.
Unter diesem Druck dauerte es nur eine Woche – anscheinend war die Argumentation der Befürworter der Störerhaftung vom EuGH so unterminiert, dass sie ihren Widerstand nicht aufrechterhalten konnten.

Ein greifbares Ende?

Wie aus den Regierungsfraktionen zu hören war, gab es gestern die Einigung, dass das Providerprivileg für WLAN-Betreiber im Telemediengesetz explizit festgeschrieben werden soll.
Man hört, das Gesetzgebunsverfahren solle nur noch wenige Wochen in Anspruch nehmen.

Sollte dies tatsächlich so geschehen, freuen wir uns sehr über diese längst überfällige Entwicklung. Nach einigen Enttäuschungen über Anläufe von Teilen der Politik, das Abmahnunwesen zu bekämpfen, ist unser Enthusiasmus allerdings vorerst noch gedämpft. Letztlich wird es auf den Wortlaut des neuen Gesetzes ankommen, ob der Störerhaftung nicht doch noch ein Schlupfloch geboten wird.

Beispielweise könnten WLAN-Betreiber im Falle von Missbrauch Unterlassungsansprüche treffen, die wieder zu Abmahnungen führen könnten. Sollte dies nicht explizit im zu schaffenden Gesetz, ausgeschlossen werden, steht uns eine weitere langwierige politische Auseinandersetzung bevor. Es ist daher nur zu hoffen, dass dieser Punkt bereits Eingang in den zu erarbeitenden Gesetzentwurf findet oder gefunden hat.

Was bedeutet das für Freifunk?

Sollte die Störerhaftung für offene WLANs tatsächlich fallen, wäre das für Freifunk sehr positiv. Ist die Abmahngefahr gebannt, könnten wir den Betreibern von Freifunk-Knoten beispielsweise eine Option anbieten, Internetverkehr statt durch unsere VPNs (die hauptsächlich der legalen Umgehung der Störerhaftung dienen) direkt ins Internet zu leiten. Das hätte vier entscheidende Vorteile:

  1. sind die VPNs ein Flaschenhals von Freifunk, ohne sie dürfte sich die Geschwindigkeit der Verbindung also in vielen Fällen stark erhöhen
  2. bedeutet das Bereitstellen der VPNs für uns und unsere Freunde von Freifunk Rheinland Kosten und Arbeit für Server und Bandbreite, die sich deutlich reduzieren würde
  3. wären besonders leistungsfähige Freifunk-Zugänge, wie sie beispielsweise in Geflüchtetenunterkünften oder Freibädern benötigt werden, einfacher und billiger zu realisieren.
  4. Das Freifunk-Netz würde dezentraler, was der ursprünglichen Idee von Freifunk besser entspricht

Und nicht zuletzt können Privatpersonen in Zukunft ein WLAN auch ohne Freifunk öffnen, ohne Angst vor Abmahnungen zu haben. Dabei müssten sie zwar auf nette Features wie unser automatisches Mesh-Netz verzichten, aber es entfallen (die geringen) Kosten und Arbeit (vor allem der Informationsaufwand) der Einrichtung eines eigenen Freifunk-Knotens. Und mehr offene Netze sind ja etwas Tolles für alle!

by moeb at May 12, 2016 03:32 PM

April 28, 2016

Freifunk Göttingen

Unser neues Hauptquartier

Dieses Wochenende ziehen wir um! In die neuen Räume des Chaos Computer Clubs Göttingen in der Von-Bar-Strasse 2-4.

Das Gebäude ist vielen noch als ESG (Evangelische Studierende und Hochschulgemeinde) bekannt. Heute ziert das Dach des Hauses ein grosser MLP Schriftzug. Wir vermuten, das steht für My Little Pony.

Pangalaktisches Freifunk Hauptquarter
Pangalaktisches Freifunk Hauptquarter

Freifunk ist schon drin. Wir folgen in Kürze:

Noklab_2

by kjo at April 28, 2016 08:25 PM

April 18, 2016

exdc

Kurztipp: Die IP bei ausgehenden Mails entfernen

Um die Sender-IP bei ausgehen mails zu entfernen nutze ich folgendes unter Postfix:

In die /etc/postfix/master.cf

submission inet n - - - - smtpd

...

-o cleanup_service_name=subcleanup

subcleanup unix n - - - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_checks

Und in der /etc/postfix/submission_header_checks

/^Received: .*/ IGNORE
/^X-Originating-IP:/ IGNORE

 

Ich versende über den Submission Port 587.  DKIM, SPF & Co sind davon unbeeinflusst und tun weiter ihr Werk.

 

 

by kero at April 18, 2016 09:21 AM

April 14, 2016

Freifunk Göttingen

Wir sehen uns auf dem FUNK.TAG in Kassel

Der DARC Verlag gibt uns am Samstag, den 23. April die Gelegenheit Freifunk auf der neuen Messe “FUNK.TAG” in Kassel zu präsentieren.

Wir erwarten natürlich, dass ihr alle bei uns vorbeischaut und Euch mit uns über Dinge unterhaltet. Z.B. Freifunk, den drohenden Router Lockdown, unsere Enttäuschung über die Art wie Freifunk in Niedersachsen gefördert werden soll (okay… Kassel ist nicht direkt in Niedersachsen, aber fast). Vielleicht möchte ja auch jemand einen Router mit Freifunk Software bespielen.

Und neue T-Shirts haben wir auch gemacht. Nicht mit dem Liesel drauf, sondern dem anderen Göttinger Wahrzeichen, dem Kragenbären.

Bis dann.

 

by kjo at April 14, 2016 11:31 PM

April 05, 2016

exdc

Kurztipp: Kanboard – There is no suitable CSPRNG installed on your system

Kam bei mir nach dem Update auf 1.0.27 von Kanboard. Anscheinend kann Kanboard bei mir nicht auf /dev/urandom zugreifen. Geholfen hat /dev/urandom mit in die open_basedir Direktive für den Vhost mit aufzunehmen. Jedenfalls lief es danach wieder ;-).

by kero at April 05, 2016 10:37 AM

April 01, 2016

/me... prego!

MySQL – Show open connections and processes

Einmal an die eigene Notizwand gekritzelt:

  1. MySQL Verbindungen + weitere Verbindungsrelevante Infos anzeigen:
    root@localhost [(none)]> show status like '%onn%';
    +--------------------------+--------+
    | Variable_name            | Value  |
    +--------------------------+--------+
    | Aborted_connects         | 0      |
    | Connections              | 440921 |
    | Max_used_connections     | 67     |
    | Ssl_client_connects      | 0      |
    | Ssl_connect_renegotiates | 0      |
    | Ssl_finished_connects    | 0      |
    | Threads_connected        | 2      |
    +--------------------------+--------+
    7 rows in set (0.00 sec)
  2. MySQL Prozessliste anzeigen:
    root@localhost [(none)]> show processlist;
    +--------+-------+-----------+-------+---------+------+-------+------------------+
    | Id     | User  | Host      | db    | Command | Time | State | Info             |
    +--------+-------+-----------+-------+---------+------+-------+------------------+
    | 440912 | ttrss | localhost | ttrss | Sleep   |    0 |       | NULL             |
    | 440919 | root  | localhost | NULL  | Query   |    0 | NULL  | show processlist |
    +--------+-------+-----------+-------+---------+------+-------+------------------+
    2 rows in set (0.00 sec)
  3. Der status Parameter der mysqladmin Binary auf der Kommandozeile:
    root@host ~ $ mysqladmin status
    Uptime: 1621495  Threads: 2  Questions: 18982236  Slow queries: 6  Opens: 83474  Flush tables: 1  Open tables: 400  Queries per second avg: 11.706
    
  4. Und last but not least auch noch einmal die Prompt-Einstellung aus der /etc/mysql/my.cnf festgehalten:
    [mysql]
    prompt = \u@\h [\d]>\_

Die MySQL Befehle habe ich von dieser Webseite kopiert. Die Prompt Einstellungen weiß ich nicht mehr woher…

by prego at April 01, 2016 09:09 AM

March 31, 2016

/me... prego!

#WorldBackupDay

worldbackupdayDer 31. März ist WorldBackupDay. Hab ich dieses Jahr das erste mal von gehört, aber es direkt zum Anlass genommen endlich mal das zu machen was ich sowieso schon lange machen wollte:

  1. Speicher gekauft
  2. Backup auf neues Puppet-Modul umgestellt
  3. Alle verbliebenen Maschinen ins Backup eingepflegt

Guter Tag!

by prego at March 31, 2016 10:02 PM

GeekShow

Alles neu mit pelican

Und zur Überraschung nach langer Funkstille in diesem Blog mal wieder ein Wechsel der Blogsoftware. Bisher lief hier seit geraumer Zeit ein Wordpress. Allerdings ist es mir inzwischen zu lästig das ständig aktuell zu halten und auf die nächste Lücke zu warten, während ich gelegentlich den Kommentarspam lösche.

Und weil ich schon länger neugierig auf pelican war, habe ich nun umgestellt. Bei pelican handelt es sich um einen Generator für statische Seiten (i. d. R. mit ein wenig JavaScript). Also keine php-Seiten mehr, die erst aus der Datenbank zusammengesucht werden müssen. Und damit deutlich mehr Tempo und weniger Angriffsfläche. Und dass ich zum schreiben der Seiten jetzt nicht mehr den Wordpresseditor, sondern einen vi verwenden kann ist für mich ein großes Plus. Negativ fällt auf, dass die Kommentare damit erstmal weg sind, was andererseits aber auch den Kommentarspam drastisch reduziert :-).

Es gibt verschiedene Möglichkeiten Kommentare hier einzubauen und am liebsten wären mir Kommentare über Google Plus. Mal sehen.

by tdk at March 31, 2016 02:25 PM

March 30, 2016

Freifunk Göttingen

Petition: WLAN-Störerhaftung abschaffen!

Wir brauchen noch sehr viel mehr Unterzeichner, für die Abschaffung der Störerhaftung!

petition-stoererhaftungDies ist die letzte Stufe einer jahrelangen Kampagne und unendlicher Stunden Lobbyarbeit… jetzt heißt es noch mal deutlich zu machen, das nicht nur Verbände, sondern auch die $Menschen nicht länger warten wollen, endlich Rechtssicherheit für offene WLAN-Netze zu bekommen.

Bitte nutzt Eure Reichweite in Newslettern und sozialen Kanälen, um den Druck zu erhöhen und diese Petition erfolgreich zu machen. Damit wir endlich die WLAN-Störerhaftung abschaffen!

» Petition unterschreiben

by corvus at March 30, 2016 09:50 AM

March 27, 2016

/me... prego!

Let’s Encrypt und Puppet

lets-encrypt-logoIch habe früher fast alle meine Zertifikate von CAcert bezogen. Ich habe sie regelmäßig aktualisiert und für das deployen habe ich ein Puppet Modul, dass die Zertifikate verteilt.

Nach und nach bin ich auf Let’s Encrypt Zertifikate umgestiegen. Da ein hoher Grad an Automatisierung bei Let’s Encrypt immer wieder propagiert wird dachte ich mir, dass sollte auch mit Puppet dann kein zu großes Problem sein. Hier die Lösung, die bei mir nun in Betrieb ist:

Als erstes habe ich das Puppet Modul bzed/letsencrypt installiert. Das Modul benötigt eine PuppetDB. Über exported resources  transportiert es die CSRs auf den puppetmaster, macht dort die gesamte Abwicklung und transferiert dann die Ergebnisse wieder zurück auf den Node. Das funktioniert auch sehr gut.

Auf dem Puppetmaster habe ich die Klasse eingebunden und einige wenige Einstellungen gesetzt (hiera). Bei dem Hook handelt sich m übrigen um einen letsencrypt.sh Hook:

---
classes:
  - letsencrypt

letsencrypt::challengetype: 'http-01'
letsencrypt::hook_source: 'puppet:///modules/helper/%{::fqdn}/le_hook.sh'

Auf den Nodes habe ich die Klasse eingebunden und die Domains definiert für die ein Zertifikat bezogen werden soll:

---
classes:
- letsencrypt

letsencrypt::domains:
- 'foo.example.net'
- 'bar.example.net'
- 'baz.example.net'

PL_logo_vertical_RGB_lgIn meinem recht simplen Szenario ist es so, dass ich einen Gate-Server habe, hinter dem sich alle anderen Maschinen „verstecken“. Dort läuft ein Apache Server als Proxy, der Anfragen über HTTP nach hinten weiterreicht. Die Konfiguration von Apache erfolgt ebenfalls über Puppet. Eine Authentifizierung über DNS für ACME klappt bei mir leider nicht, weswegen ich HTTP nehmen muss. Das habe ich so gelöst, dass ich für die Apache vhosts einfach über ProxyPassMatch den .well-known/acme-challenge/ auf einen Apache Vhost auf dem Puppetmaster weiterreiche. Auf dem Gate-Server sieht das für einen Vhost wie folgt aus:

apache::vhost:
  'proxy-foo.example.net':
    servername: 'foo.example.net'
    serveradmin: 'webmaster@example.net'
    port: '80'
    docroot: '/var/www/empty'
    proxy_dest: 'http://10.20.30.1'
    proxy_pass_match:
      -
        path: '^/.well-known/acme-challenge/(.*)$'
        url: 'http://10.20.30.2/$1'
        params:
          retry: '0'
    headers:
      - 'unset X-Powered-By'
    proxy_preserve_host: true

Auf dem Puppetmaster wiederum läuft ein Vhost, der einfach alle Domains als ServerAlias eingetragen hat.

Nun kommt noch der Hook für letsencrypt.sh ins Spiel den ich oben bereits erwähnt habe. Das Skript schreibt die ACME-Challenge in eine Textdatei in den DocRoot und löscht sie nach dem Erfolg wieder:

#!/bin/bash
 
#
# http-01 hook
#
 
CHALLENGEDIR="/var/www/example.net/letsencrypt"
 
done="no"
if [[ "$1" = "deploy_challenge" ]]; then
    echo "${4}" &gt; "${CHALLENGEDIR}/${3}"
    chmod 644 "${CHALLENGEDIR}/${3}"
    done="yes"
fi
 
if [[ "$1" = "clean_challenge" ]]; then
    rm "${CHALLENGEDIR}/${3}"
    done="yes"
fi
 
if [[ "${1}" = "deploy_cert" ]]; then
    # do nothing for now
    done="yes"
fi
 
if [[ ! "${done}" = "yes" ]]; then
    echo Unkown hook "${1}"
    exit 1
fi
 
exit 0

Voila! Es braucht ein paar Durchläufe bis alles über die Puppetdb jeweils transportiert wurde, aber alles läuft vollautomatisch ab. Sehr cool!

by prego at March 27, 2016 04:30 PM

March 15, 2016

exdc

Centreon und PHP 5.4

Centreon ist erst ab Version 2.6.0 mit PHP 5.4 kompatibel. Centreon 2.4.5 und Debian 7.0 funktionieren nicht einfach so

https://documentation.centreon.com/docs/centreon/en/2.6.x/release_notes/centreon-2.6.0.html

2.6.6 ist die letzte Version die noch mit Nagios lief. Danach wird die Centreon eigene Engine genutzt.

https://download.centreon.com/

by kero at March 15, 2016 10:39 AM

March 14, 2016

exdc

Kurztipp: MySQL Benutzer Connections beschränken

Die Anzahl der Connections kann man einfach global über die my.cnf beschränken.

max_connections = 500

Man kann auch pro Benutzer diverse Limits setzen (Connections pro Stunde, Updates pro Stunde usw.).

Will man einfach generell für jeden Benutzer ein Connection Limit setzten tut es der Eintrag

max_user_connections = 400

in der my.cnf. Der sollte natürlich unter der Anzahl von max_connections liegen, damit eine falsch konfigurierte Anwendung nicht die gesamte Anzahl der Connections belegt. Nach der Änderung natürlich den Dienst neu starten. Zur Laufzeit geht es auch via mysql mit

mysql> set global max_connections = 500;

mysql> set global max_user_connections = 400;

Mit

mysql> show variables like "%connections";

+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| max_connections        | 500 |
| max_user_connections   | 400 |
+----------------------+-------+

kann man nochmal die Einstellung überprüfen. Die Werte sind natürlich nur Beispiele und sollten je nach System angepasst werden.

 

 

 

 

 

by kero at March 14, 2016 02:30 PM

February 28, 2016

/me... prego!

Test: Foscam C1 Lite IP Kamera

C1 Lite

Auspacken

Als erstes fällt bei der Kamera die Verpackung auf. Sie erinnert von der Größe und der Aufmachung her eher an ein Smartphone als an eine IP-Kamera und wirkt hochwertig.

In dem Karton enthalten sind neben der Kamera selbst ein USB Netzteil und USB Kabel zur Stromversorgung sowie Schrauben und Dübel zur Wandmontage. Das Kabel ist sehr lang was bei mir sehr positiv angekommen ist.
An Papier ist eine deutsche und eine englische Schnellanleitung, ein Aufkleber der auf die potentielle Videoüberwachung hinweist, Sicherheitsbestimmungen und eine Garantiekarte enthalten.

Technisches

Die C1 Lite gehört zu den Einsteigermodellen von Foscam. Sie hat eine Auflösung von 1280×720 (720p). In der Kamera ist  ein Mikrofon und ein Lautsprecher verbaut, der die 2-Wege Kommunikation ermöglicht. Ein MicroSD Kartenslot ermöglicht das Aufzeichnen und direkte Abspeichern von Videos auf der Kamera. In das Netzwerk eingebunden wird sie per WLAN.

In Betrieb nehmen

Um die Kamera in das WLAN einzubinden kommt das WPS Verfahren zum Einsatz. Dieses hat bei einer getesteten Fritz!Box 7490 und einem OpenWRT Router jeweils problemlos funktioniert. Über den Lautsprecher der Kamera werden Anweisungen und Statusinformationen dazu ausgegeben.

Die C1 Lite selbst unterstützt ebenfalls die Einrichtung per App. Das habe ich nicht getestet, da dafür ein Account bei Foscam angelegt werden muss. Prinzipiell scannt man aber einfach den QR-Code auf der Rückseite der Kamera. Man wird dann aufgefordert eine App zu installieren die einen dann anschließend durch alle weitere Schritte leitet.

Das Webinterface der Kamera ist über die vergebene IP und dann Port 88 zu erreichen. Dieses empfinde ich als eine schöne Sicherheitseinstellung von Werksseite aus. Daneben lauscht sie per HTTPS auf Port 443.
Für das Webinterface selbst benötigt man ein Browserplugin. Zu dessen Installation wird man bei dem ersten Aufruf der Seite aufgefordert. Es steht für alle gängigen Browser exklusiv Chrome ein Plugin bereit. Bei den Betriebssystemen wird Windows und Mac OS unterstützt. Linux Anwender können das Webinterface nicht nutzen. Diese Einschränkung ist keine von der Kamera selbst, sondern von der Firmware. Ich habe dieses bei meiner FI9831P ebenfalls.

Die Firmware ist die gleiche wie bei anderen HD Modellen von Foscam auch. Dadurch stehen viele Funktionen wie zum Beispiel Bewegungserkennung, Emailbenachrichtigung, FTP-Server für aufgezeichnete Videos und so weiter zur Verfügung.

Da ich für beide Kinder im Haushalt bereits Babycams habe (beide von Foscam), liegt das Einsatzszenario für die C1 in dem Ausleuchten des Kinderzimmers. Dafür ist das Modell super. Nachtausleuchtung wird in dem Fall nicht benötigt und der Betrachtungswinkel ist Spitze. Hier macht es sich bemerkbar, dass anscheinend ein Weitwinkel-Objektiv verbaut ist und ein Bild in 16:9 liefert. Die anderen beiden Kameras haben beide 4:3. Entsprechend wird auch kein Motor zur Steuerung der Kamera selbst benötigt. Das ganze Zimmer ist gut zu sehen:

screen

Die Kamera integriert sich nahtlos in das bei uns im Haus bereits verfügbare System mit den Babycams. Wir nutzen dafür die App tinyCam Monitor. Die C1 Lite wird davon problemlos erkannt und unterstützt.

Fazit

Die Kamera C1 Lite von Foscam ist ein vom Preis her günstiges Einsteigermodell. Die Bildqualität ist sehr gut. Die Firmware bietet viele Funktionen die auch von den teureren Kameras bekannt sind. Abstriche müssen Linux-Nutzer machen, die das Webinterface nicht nutzen können. Dieses Mako trifft aber auf alle aktuellen HD-Kameras von Foscam zu. Alles in allem eine gute Kamera für einen günstigen Preis und für Einsteiger definitiv zu Empfehlen.

 

Die C1 Lite wurde mir im Rahmen eines #product-experience# Programms von Foscam zur Verfügung gestellt.

by prego at February 28, 2016 01:40 PM

February 14, 2016

Freifunk Göttingen

2001 Nutzer

Am Freitag waren zum ersten Mal mehr als 2000 Nutzer gleichzeitig im Netz.

globalGraph
2001 gleichzeitige Benutzer
globalGraph_365d
In grün: Nutzerzahlen der letzten 12 Monate (Tagesdurchschnitte)

by kjo at February 14, 2016 10:11 PM

January 31, 2016

/me... prego!

Projekt: pregos files

Vor ein paar Jahren hab ich mal file delivery implementiert, dann aber nie weiter verfolgt. Jetzt habe ich das ganze noch einmal deutlich einfacher geskriptet.

pregos files

Die Features sind:

  • Dateiuploads laufen nach einer Zeitperiode ab
  • Downloadnamen werden automatisch generiert um nicht einfach geraten zu werden
  • Optional kann ein eigener, sprechender Downloadname angegeben werden
  • Optional können Downloads mit einem Passwort gesichert werden
  • Emailbenachrichtigung bei Download
  • Emailbenachrichtigung wenn eine Datei bald abläuft
  • Benutzerauthentifizierung für Dateiupload
  • Standard- und Admin Benutzerrollen
  • Adminbenutzer können andere Benutzer verwalten und sehen eine Liste aller verfügbarer Dateien

Den Quelltext gibt es auf Github.

by prego at January 31, 2016 08:21 PM

Clusterssh

Viele Admins stehen häufig vor der Aufgabe einen Befehl auf vielen Maschinen gleichzeitig auszuführen. Eine Möglichkeit das zu tun ist mit dem Tool clusterssh. Es lässt sich meist direkt aus den Paketquellen installieren:

sudo apt-get install clusterssh

Anschließend kann man sich mit dem folgenden Befehl auf mehreren Servern verbinden und dort gleichzeitig Befehle ausführen:

cssh server1 user@server2 server3

In der Datei ~/.clusterssh/config kann man sich verschiedene Cluster definieren. Dafür wird eine Zeile benötigt die sagt was Cluster sind, und dann jeweils eine weitere Zeile die die Cluster definiert. Beispiel:

clusters = physical webserver
physical = phys1 phys2 user@phys3
webserver = user1@web01 user2@web02 user3@web03, user1@web04 web05

Anschließend kann man sich einfach mit dem folgenden Befehl mit allen Webservern verbinden:

cssh webserver

Häufig auszuführende Kommandos kann man sich auch im Menü hinterlegen. Dafür zuständig ist die Datei ~/.csshrc_send_menu. Sie ist im XML-Format aufgebaut und kann zum Beispiel so aussehen:

<?xml version="1.0"?>
<send_menu>
  <menu title="htop">
    <command>htop%n</command>
  </menu>
  <menu title="autoremove">
    <command>sudo apt-get -y autoremove%n</command>
  </menu>
  <menu title="updates">
          <command>apt-get update &amp;&amp; apt-get dist-upgrade &amp;&amp; exit%n</command>
  </menu>
  <menu title="firewall restart">
          <command>sudo /root/skripte/firewall.sh%n</command>
  </menu>
</send_menu>

Damit das ganze funktioniert wird XML::Simple benötigt:

sudo apt-get install libxml-simple-perl

Oft benutze ich persönlich auf den Shortcut Alt+r zum Fenster neu anordnen. Ruft man auf allen Servern einen Befehl auf und schließt die Fenster auf denen der Befehl erfolgreich bearbeitet wurde, dann hat man irgendwann einen Fleckenteppich auf dem Bildschirm. Mit Alt+r wird der wieder neu angeordnet.

Update 01.02.2016: Danke @Aiko für den Kommentar, ich habe das oben in das Beispiel mit eingepflegt.

by prego at January 31, 2016 04:30 PM

January 20, 2016

Freifunk Göttingen

Neue Firmware mit Unterstützung für TP-Link 841 Version 10

TL-WPA4220KIT_us_V1_default_20150702731
TP-Link 841 Version 10

Wie wir im letzten Blogpost beschrieben haben, brauchen wir eine neue Firmware um die aktuellste Version des beliebten TP-Link 841 (Version 10) betreiben zu können. Und da hat sich was Neues ergeben. Die Freifunk Kollegen aus Celle haben schon vor Monaten Support für dieses Modell in die Gluon Version 2015.1.2 gepatcht.

Diese Firmware haben wir für Freifunk Göttingen übersetzt und zusätzlich Support für TP-Link 1043 Version 3 eingebaut. Sie liegt als Version 0.7.3 Beta auf dem Updateserver:

https://cccgoe.de/freifunk/beta/

Ihr seid alle dazu eingeladen, diese Firmware zu testen. Sollte sie den Test bestehen, rollen wir sie in zwei Wochen im ganzen Netz aus.

Das ist für unser Netz ein Sprung von Gluon 2014.4 auf 2015.1.2. Damit gewinnen wir nebenbei auch noch viele Bugfixes und Unterstützung für noch mehr Hardware. Auf den verlinkten Seiten sind alle Neuerungen verzeichnet:

 

 

by kjo at January 20, 2016 11:58 AM

January 14, 2016

Freifunk Göttingen

Hardwareengpass

Update: Siehe nächsten Blogeintrag

Die Hardwareliste ist zur Zeit (Januar 2016) unbrauchbar, weil man im Handel jetzt “WR-841 Version 10” und “WR1043ND Version 3” und den WDR4300 gar nicht bekommt. Ausgerechnet der WR-841 ist unser billiges Arbeitspferd für 15 Euro.

Ausweg: Wir werden ab Februar den WR1043ND Version 3 unterstützen. Und anstelle des WR-841 kann man den WR-842 oder WA-801 nehmen (kosten beide um die 30 Euro). Support für den WR-841 Version 10 wird es wieder geben, aber wir rechnen damit erst im April oder später.

Der Grund für diese Verzögerungen sind ungewöhnlich viele und ungwöhnlich aufwendige Softwareupdates unter der Haube. Hier kann man schon mal sehen, was sich in der nächsten Version alles ändert:

http://gluon.readthedocs.org/en/latest/releases/v2016.1.html#added-hardware-support

by kjo at January 14, 2016 11:27 AM

January 08, 2016

/me... prego!

Snippets: 07.01.2016

  • UIDs nochmal hervorgekramt: Reserviert ist per Definition nur UID=0 für root. Quasi überall ist UID=65534 der Nutzer nobody. Es hat sich etabliert, dass die UIDs 1-99 von Systembenutzern für Dienste ohne Login belegt ist. Verschiedene Distributionen starten mit lokalen Benutzeraccounts an verschiedenen Stellen, RedHat zum Beispiel bei UID=500, Debian erst bei UID=1000.
  • In Gnome 3 hatte ich das Problem, dass in „Dateien“ die Entf-Taste nicht ging um Dateien und Ordner in den Papierkorb zu verschieben. Ich musste immer markieren, rechtsklick mit der Maus und dann sagen „In den Papierkorb verschieben“. Lösung ist die .config/nautilus/accels zu öffnen und dort die folgende Zeile suchen:
    ; (gtk_accel_path "/DirViewActions/Trash" "Delete")

    einkommentieren und das <Primary> löschen so dass sie so aussieht:

    (gtk_accel_path "/DirViewActions/Trash" "Delete")
  • Ich suche oft noch mit aptitude search foo* | grep „^i“. Schneller ist allerdings dpkg -l foo* | grep ii und die Pipe + grep kann ich mir sparen mit dpkg –get-selections foo*

by prego at January 08, 2016 06:29 AM

January 06, 2016

/me... prego!

Snippets: 06.01.2016

  • Der Befehl update-alternatives –config editor den ich von Debian basierten Systemen gewohnt bin funktioniert auf SLES Systemen nicht. Hier muss manuell ein EDITOR=/usr/bin/vim oder VISUAL=/usr/bin/vim in die ~/.bashrc oder wenn es systemweit sein soll in die /etc/profile.local eingetragen werden.
  • Ubuntu Linux von 08.04 auf 10.04 auf 12.04 auf 14.04 … irgendwann ist der Bootloader defekt 8-)

by prego at January 06, 2016 03:15 PM

January 05, 2016

/me... prego!

Snippets: 05.01.2016

  • Wenn logrotate Emails schickt mit dem Inhalt
    /etc/cron.daily/logrotate: 
    gzip: stdin: file size changed while zipping

    dann ist die Vorgehensweise um das Problem zu lösen zuerst in dem Cronskript ein –verbose an den Logcheck Aufruf mit anzuhängen um die betreffende Datei zu identifizieren und anschließend in der dazugehörigen Konfigurationsdatei ein delaycompress mit einzufügen. (via)

  • Gestern bereits gelernt allerdings vergessen aufzuschreiben: Die App Castro für Android. Sie ließt Systeminformationen aus. Spannend fand ich, dass es in meinem Smartphone auch einen Druck-Sensor dessen Wert in hPa ausgegeben werden. Zum Vergleich für Göttingen habe auf der Tagesanzeige der Graphen von Goetemp in die Tabelle den Luftdruck einfach mal mit aufgenommen und finde es witzig meinen Handywert mit dem gemessenen Wert zu vergleichen.
  • In Apache 2.4 wird aus
    Order allow,deny
    Allow from 127.0.0.1 1.2.3.4

    ein

    Require local
    Require ip 1.2.3.4
  • In Apache 2.4 wird der Ordner /etc/apache2/conf.d/ nicht mehr genutzt, sondern es ist jetzt /etc/apache2/conf-enabled/

by prego at January 05, 2016 04:12 PM

January 04, 2016

/me... prego!

Snippets: 04.01.2016

  • Bei einer virtuellen Konsole einer Dell iDRAC Karte funktionieren unter Linux die Pfeiltasten nicht. Das liegt wohl an inkompatiblen Key-Events die da gesendet werden. Die Pfeiltasten auf dem Num-Block funktionieren allerdings. Took me 30 minutes…. (via)
  • Auf einer amerikanischen Tastatur befindet sich das Pipe-Symbol hinter SHIFT+#
  • e2fsck -a ist deprecated und es sollte der Parameter -p genommen werden.
  • Wenn man einen Webserver betreibt sollte man automatische Backupdateien mit einer ~ hinten von der Auslieferung ausschließen, also sowas wie den folgenden Absatz in die httpd.conf mit aufnehmen:
    <Files ~ "~">
    Order allow,deny
    Deny from all
    </Files>
  • Wenn man das Puppetmodul für Apache von puppetlabs einsetzt geht das mit folgender Config: in der Hiera YAML Datei für den Node:

    apache::custom_config:
      'files_tilde.conf':
        ensure: 'present'
        verify_config: true
        content:
          |
            <Files ~ "~">
              Order allow,deny
              Deny from all
            </Files>

    und in der site.pp für den Node noch folgendes hinzufügen:

    $myApacheCustomConfig = hiera('apache::custom_config', {})
    create_resources('apache::custom_config', $myApacheCustomConfig)

by prego at January 04, 2016 02:53 PM

December 30, 2015

Freifunk Göttingen

Geflüchtete in Herberhausen funken nun frei

Die neuen Herberhäuser Mitbürgerinnen und Mitbürger, die im ehemaligen Forstamt eine Bleibe gefunden haben, können seit heute den Freifunk nutzen. Auf Initiative von Unterstützerinnen aus Herberhausen hin, die sich bei der Göttinger Freifunk-Initiative meldeten, haben wir uns vor Ort die Möglichkeiten angesehen. Die beste Möglichkeit konnte nun umgesetzt werden. Dank der Bereitschaft der Kirchengemeinde etwas “Internet zu teilen”, konnten wir heute die Unterkunft mit gespendeten Routern mit Freifunk versorgen.

hope-herberhsn

by 5aar at December 30, 2015 09:01 PM

December 28, 2015

Freifunk Göttingen

Wo wart ihr denn alle?

Wir haben Euch vermisst. Willkommen zurück aus den Weihnachtsferien!

weihnachten-2015-globalGraph

by kjo at December 28, 2015 02:00 PM

December 25, 2015

/me... prego!

Wie aus Bildern Freunde werden

Seit über acht Jahren lade ich inzwischen für jeden Tag ein Bild bei DailyFratze hoch. Aus den Bildern der anderen dort sind über die Jahre Menschen geworden. Und mit der Zeit wurden aus Menschen Freunde. Freunde, die jeden Tag etwas von sich mit mir teilen. Freunde, die mir schreiben und mit denen ich nur selten Rede. Freunde, die mich auf eine ganz eigene Art- und Weise an ihrem Leben teilhaben lassen.

Zur Geburt unserer zweiten Tochter Merle haben wir ein Paket mit Geschenken bekommen. Viele von Euch haben sich zusammengetan um uns eine Freude zu machen.

DSC00905

Danke für diese Gesten. Danke für die Überraschung. Danke für die Freude die Ihr uns schenkt. Danke, dass es Euch gibt.

by prego at December 25, 2015 11:06 PM

December 24, 2015

/me... prego!

Aus dem Leben gegriffen: SSH Server absichern

Wenn es um das absichern von Systemen geht gibt es unterschiedliche Philosophien und Wege. Dazu kommen Aussagen oder Erlebnisse die im Laufe der Jahre zusammengekommen sind. Hier mal ein paar davon notiert:

  1. Ich persönlich bevorzuge eine Kombination aus AllowGroups oder AllowUsers in der sshd_config zusammen mit PermitRootLogin no und wenn möglich einem PasswordAuthentication no.
  2. Wenn man auf SSH und direkten Rootzugriff nicht verzichten möchte kann man den Nutzer mit der uid=0 einfach umbenennen zum Beispiel in von root in yolo1234. Habe ich bereits in der Wildnis gesehen.
  3. Eine ganz eigene Art- und Weise den SSH Zugriff eine Weile abzusichern hat mir ein Kollege erzählt. Einfach kein Passwort für den Root-Nutzer setzen. Das hätte ganze 9 Monate gedauert bis der erste Einbruch da war…
  4. Leaving a system so unpatched that most attackers assume it’s a honeypot and move on (via)

by prego at December 24, 2015 01:17 PM

Festgehalten: Meine Gnome Shell Extensions

Vor einiger Zeit bin ich auf die Gnome 3 Shell umgestiegen und habe dort einige Extensions installiert die ich auf meinem Laptop total praktisch finde.  Die wichtigsten hier zur persönlichen Dokumentation festgehalten:

by prego at December 24, 2015 01:03 PM

December 11, 2015

/me... prego!

Verbindung zu SMTP Server ohne telnet oder nc testen

Um die Verbindung zu einem SMTP Server zu testen um zum Beispiel einen Fehler durch eine Firewall auszuschließen nutze ich normalerweise telnet:

user@host ~ $ telnet mail.example.net 25
Trying 1.2.3.4...
Connected to mail.example.net.
Escape character is '^]'.
220 mail.example.net ESMTP Postfix

Wenn telnet nicht installiert ist geht das auch noch mit netcat:

user@host ~ $ nc mail.example.net 25
220 mail.example.net ESMTP Postfix

Heute hatte ich ein System auf dem beides nicht existierte. Da habe ich eine Methode mit python gefunden die sehr gut funktioniert hat:

user@host ~ $ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> conn=socket.create_connection(('mail.example.net',25))
>>> input=conn.makefile()
>>> print input.readline()
220 mail.example.net ESMTP Postfix

>>> conn.sendall('QUIT')
>>> conn.close()
>>> 

by prego at December 11, 2015 09:05 AM

December 03, 2015

/me... prego!

YourCar: Ein Carsharingmodell in Göttingen zur richtigen Zeit!

Heute möchte ich kurz etwas nicht technisches hier schreiben. Ich wohne seit über zehn Jahren in der kleinen Universitätsstadt Göttingen. Ursprünglich zum studieren hergekommen bin ich dann einfach zum Arbeiten da geblieben.

In einer kleinen Stadt braucht man als Student zum Fortbewegen nur seine Füße und bei Bedarf ein Fahrrad. Das Semesterticket war damals bereits so umfassend, dass ich in komplett Niedersachsen auch kostenlos Regionalverkehr mit der Bahn fahren konnte. Ein Auto brauchte ich nicht.

Die Rahmenbedingungen sind heute natürlich anders als vor zehn Jahren. Ich wohne nicht mehr im Studentenwohnheim, bin verheiratet und Vater von zwei Kindern. An unserem Mobilitätskonzept hat sich allerdings nicht viel geändert. Weiterhin machen wir viele Wege zu Fuß oder vorzugsweise mit dem Fahrrad. Als unsere erste Tochter geboren wurde haben wir uns einen Fahrradanhänger und einen Kinderwagen zugelegt. Außerdem haben meine Frau und ich beide eine Bahncard 50 und reisen längere Strecken gerne mit der Bahn. Auch die Nutzung der Busse der GöVB ist hin- und wieder dazugekommen.

Es wurde aber schon bemerkbar, dass gerade wenn man am Wochenende Freunde besuchen möchte und dann da mit Kinderwagen und einem Kind in der Bahn hin fährt, man ja zum Beispiel abklären muss, dass zum Beispiel genügend Kindersitze vorhanden sind. Wir haben dann immer mal wieder durchgerechnet aber sind letztendlich immer zu dem Entschluss gekommen, dass das Geld das wir im Jahr ohne Auto sparen mehr ist, als wir im Jahr für Mietwagen und Taxis ausgeben würden.

Als dann Kind zwei unterwegs war machte sich spätestens bei der Frage: „Wie kommen wir eigentlich dann wenn es los geht schnell ins Krankenhaus?“ wieder das Thema Auto breit.

yourcar-logo Mehr oder weniger zur gleichen Zeit gab es dann in Göttingen einen neuen Carsharing Anbieter: Das Startup YourCar. Das Konzept hinter dem Carsharing ist sehr simpel. Es gibt eine Autoflotte und ein definiertes Stadtgebiet in dem die Autos abgestellt werden können. Es sind genügend Autos vorhanden um eine gute Dichte auf dem Stadtgebiet zu erreichen. Auf einer Karte kann man sehen wo sich das nächste Auto befindet und nach der einmaligen Anmeldung kann man sich jederzeit eines schnappen und überall damit hinfahren. Eine Minute Autofahrt kostet 33 Cent, eine Minute Parken kostet 9 Cent. Abstellen kann man das Auto auf allen öffentlichen und nicht kostenpflichtigen Parkplätzen im definierten Stadtgebiet.

Neben ein paar Testfahrten zur Arbeit gab es dann auch zwei Fälle in denen es gut war direkt ein Auto zur Hand zu haben. Praktischerweise parkte auch jedes mal eines nur wenige Meter von unserem Haus weit weg, also genauso wie man sich es vorstellt.
yourcar1
Die erste Fahrt war auch gleich die ins Krankenhaus. Die Frau hat Wehen, eben gucken wo ein YourCar steht, am Haus vorfahren, parken, Frau einladen, ins Krankenhaus und da einfach auf einem öffentlichen Parkplatz abstellen und nicht weiter drum kümmern. Absolut super. Die ganze Aktion hat uns … 3,24€ gekostet. Kein Taxi wäre billiger gewesen und jeder Nachbar hätte uns mehr dafür gezahlt um ihn nicht zu der Zeit rauszuklingeln. Absolut Super!

Beim zweiten Fall war es so, dass ich frei hatte und Zuhause war und meine Frau sich mit anderen Frauen zum Frühstücken mit Kindern verabredet hatte. Irgendwann klingelte dann das Telefon: Die Große hat sich einen nicht mehr identifizierbaren Gegenstand, vermutlich ein Legoteil in die Nase gesteckt und das kommt nicht mehr raus. Sie hätte beim Kinderarzt angerufen, der meinte wir sollten zum HNO-Arzt und der Kinderarzt hätte uns da schon gleich angemeldet. Ich möge doch bitte vorbeikommen und sie alle abholen m dann zum HNO-Arzt zu fahren. Auch in diesem Fall hab ich mir ein YourCar geschnappt und bin einmal durch die Stadt gefahren. Dank Rotz-und-Wasser-heulens war dann als ich ankahm ein gelbes Lego Funkgerät in Sichtweite und mit einer Pinzette und einem beherzten Zugreifen konnte ich das Ding aus der Nase meiner Tochter herausbefördern. Die Fahrt Fahrt zum Arzt konnten wir uns dadurch sparen. Auch hier war das YourCar die perfekte Lösung für uns. Zwei Kindersitze aus dem Keller fix in ein Auto werfen und losfahren können ist einfach superpraktisch. Taxi, Nachbarn oder eigenes Auto wären deutlich aufwendiger und teurer und ein Wagen nach einem „konventionellen“ Mietwagen-Konzept anzumieten hätte deutlich zu lang gebraucht.

Ich schreibe diesen Blogeintrag weil ich mir wünsche, dass das CarSharing von YourCar hier in Göttingen über ein Startup hinauskommt. Es ist gerade für unsere Stadtmobilität die perfekte Ergänzung zu dem was wir schon haben und was wir nun dazu brauchten. Ich wünsche mir ganz viele Kunden bei YourCar und dass ein nachhaltiges tragfähiges Geschäftsmodell daraus wird sowie weitere mögliche Kooperationen oder Fusionen mit anderen Göttinger CarSharing Anbietern um auch relativ einfach größere Autos zu mieten für einen längeren Zeitraum.

by prego at December 03, 2015 10:54 AM

November 20, 2015

Freifunk Göttingen

Freifunk beim Göttinger Zivilcouragepreis gewürdigt

Gestern Abend verlieh die Stadt Göttingen den Zivilcouragepreis 2015 und lobte dabei auch unsere Hilfe in den Flüchtlingsunterkünften.

Wir freuen uns sehr, dass die Freifunk Initiative so gut bei der Jury ankam und bedanken uns herzlich. Besonders zivilcouragiert fühlen wir uns aber eigentlich nicht. Flüchtlingshilfe ist Nächstenliebe und Mut braucht man dafür auch nicht:

Freifunk ist ja gerade dafür da, dass man beim Teilen seines WLANs keine Angst haben muss.

Zivilcouragepreis
Rüdiger Reyhn hält die Laudatio während Krischan Jodies Productplacement betreibt.

Die Veranstaltung war auch eine gute Gelegenheit für uns noch mehr Kontakte zu knüpfen, und z.B. der Michaelisgemeinde zu helfen, beim Mittagstisch Freifunk anzubieten.

IMG_6932
Mit Freifunk kann man einen Blumentopf gewinnen

Bericht der Bürgerstiftung Göttingen

Bilder im Göttinger Tageblatt

by ffgoe at November 20, 2015 03:09 PM

November 12, 2015

Freifunk Göttingen

Spende der Geschwister-Scholl-Gesamtschule

Der Abiturjahrgang 2015/16 der Geschwister-Scholl-Gesamtschule hat uns 100€ für Flüchtlinge gespendet. Danke! Können wir sehr gut gebrauchen!

Christoph Oppermann übergibt 100€ an Frank Richardt (Foto: Mieglitz, GSG)
Christoph Oppermann übergibt 100€ an Frank Richardt (Foto: Mieglitz, GSG)

by kjo at November 12, 2015 10:59 AM

November 10, 2015

Freifunk Göttingen

Freifunk ist romantisch

Freifunk auf dem Dach

Junger Hacker bei Freifunkinstallation im Altweibersommer. Wir erreichen jetzt auch die Dächer der Stadt. (What could possibly go wrong?)

by kjo at November 10, 2015 09:16 PM

November 08, 2015

/me... prego!

Smarthome? Monitoring? Notifications mit altem Android Handy!

Heute morgen bin ich über die coolste App seit langem gestolpert. Es handelt sich um den Home24-MediaPlayer (Google Play oder direkter Download der APK).

Die App ist nicht etwa ein stupider Media Player wie der Name vermuten würde, sondern eine ziemlich geniale Möglichkeit um Benachrichtigungen zu verschicken. Die App – einmal gestartet – lauscht per HTTP auf Port 50000 und kann per GET Parameter angewiesen werden unterschiedlichste Dinge zu tun. Man kann das Handy vibrieren lassen, eine Nachricht in den Benachrichtigungen anzeigen lassen oder den Bildschirm anschalten.
Einzelne Kommandos können mit einer | getrennt verknüpft werden. Kommandos mit Parametern können per & verknüpft werden. Das angesprochene Beispiel ist:

curl "http://192.168.1.1:50000/statusbar=Hallo Welt|vibrate|screentimeout=3"

Deutlich cooler sind aber die weiteren Funktionen. So ist es zum Beispiel möglich eine auf dem Gerät vorliegende MP3 abzuspielen. Damit kann man mit simplen Mitteln einen Türgong realisieren. Beispiel:

curl "http://192.168.1.1:50000/track=gong.ogg"

Noch besser finde ich die Text-To-Speach Funktion:

curl "http://192.168.1.1:50000/tts=Alarm! Der Einbruchssensor beim Fenster im Schlafzimmer wurde ausgel&ouml;st!"

Aber man kann – eine SIM Karte im Gerät vorausgesetzt – auch SMS verschicken. Ganz einfach:

curl "http://192.168.1.1:50000/sms=017612345678&message=Es ist keiner Zuhause, das Schlafzimmerfenster ist offen und es gibt eine Unwetterwarnung vor starkem Gewitter."

Eine Übersicht der Möglichen Befehle gibt es auf der Webseite vom Home24-MediaPlayer.

Der Phantasie sind hier keine Grenzen gesetzt. Benachrichtigungen auf dem Smartphone wenn man Zuhause ist, SMS wenn man nicht Zuhause ist, Türgong über einen angeschlossenen Lautsprecher und so weiter. Und als Sysadmin ist das eine supersimple günstige einfache Möglichkeit auch Benachrichtigungen zu bekommen…. Genial!

by prego at November 08, 2015 08:24 PM

November 07, 2015

/me... prego!

Anwesenheitserkennung für Smarthome mit der Fritz!Box via TR-064

Wer sich mit dem Kontext SmartHome beschäftigt, der hat früher oder später immer die Frage: Wie erkenne ich möglichst automatisiert, ob jemand zuhause ist oder nicht? Am einfachsten geht das mit dem Smartphone. Das hat man in der Regel bei sich. Der am häufigsten anzutreffende Ansatz ist dieses in regelmäßigen Abständen anzupingen und auf der Basis den Anwesenheitsstatus zu definieren.

Da ich mein Smartphone aber nicht anpingen kann fällt die Lösung für mich flach. Ich habe aber eine Fritz!Box und mein Handy bezieht darüber per DHCP eine IP-Adresse. In der Fritz!Box ist auch sichtbar, ob das Gerät aktiv oder nicht aktiv ist.

Die Fritz!Box hat eine Schnittstelle für Anwendungen basierend auf TR-064. Der Zugriff darauf muss in dem Webinterface unter

  • Heimnetz ->
  • Heimnetzübersicht ->
  • Netzwerkeinstellungen ->
  • Zugriff für Anwendungen zulassen

freigeschaltet werden. Anschließend kann via SOAP mit der Fritz!Box kommuniziert und unter anderem auch der Status eines angeschlossenen Gerätes ermittelt werden. Dafür muss man nur die MAC-Adresse kennen.

Die Antwort der Fritz!Box sieht dann zum Beispiel so aus:

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <s:Body>
    <u:GetSpecificHostEntryResponse xmlns:u="urn:dslforum-org:service:Hosts:1">
      <NewIPAddress>11.22.33.44</NewIPAddress>
      <NewAddressSource>DHCP</NewAddressSource>
      <NewLeaseTimeRemaining>0</NewLeaseTimeRemaining>
      <NewInterfaceType>802.11</NewInterfaceType>
      <NewActive>1</NewActive>
      <NewHostName>mySmartphoneDevice</NewHostName>
    </u:GetSpecificHostEntryResponse>
  </s:Body>
</s:Envelope>

Für die Hausautomatisierung setze ich Homematic mit einer CCU2 ein. Dort habe ich eine Systemvariable definiert und über die XML API kann diese auch per GET aktualisiert werden. Dafür muss man nur die sogenannte ise_id der Variable kennen, die findet man unter der folgenden URL: http://ccu2/config/xmlapi/sysvarlist.cgi

Die Anfrage an die Fritz!Box und das anschließende setzen der Systemvariable in der CCU2 habe ich in PHP wie folgt gelöst:

<?php 
 
// Array of MAC addresses and coresponndig ise_id on ccu2
$check[] = array('mac' => 'AA:BB:CC:DD:EE:FF', 'ise_id' => '1234');
$check[] = array('mac' => '11:22:33:44:55:66', 'ise_id' => '4321');
 
 
for ($j = 0; $j < count($check); $j++) {
 
	$soapUrl = "http://fritz.box:49000/upnp/control/hosts";
 
	$xml_post_string = '<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" >
  <s:Body>
    <u:GetSpecificHostEntry xmlns:u="urn:dslforum-org:service:Hosts:1">
      <NewMACAddress>' . $check[$j]['mac'] . '</NewMACAddress>
    </u:GetSpecificHostEntry>
  </s:Body>
</s:Envelope>';
 
	$headers = array(
		"Content-type: text/xml;charset="utf-8"",
		"Accept: text/xml",
		"Cache-Control: no-cache",
		"Pragma: no-cache",
		"SoapAction:urn:dslforum-org:service:Hosts:1#GetSpecificHostEntry",
		"Content-length: ".strlen($xml_post_string),
        ); 
 
 
 
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $soapUrl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_TIMEOUT, 10);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string);
	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
	$response = curl_exec($ch); 
	curl_close($ch);
 
	$parser = simplexml_load_string($response);
	$parser->registerXPathNamespace("a", "urn:dslforum-org:service:Hosts:1");
 
	$NewActive_h = $parser->xpath('//NewActive/text()');
	$NewActive =  $NewActive_h[0]->__toString();
 
	if ($NewActive == 1) {
		$result = file_get_contents("http://ccu2/config/xmlapi/statechange.cgi?ise_id=" . $check[$j]['ise_id'] . "&new_value=true");
	}
	else {
		$result = file_get_contents("http://ccu2/config/xmlapi/statechange.cgi?ise_id=" . $check[$j]['ise_id'] . "&new_value=false");
	}
}
?>

Als Cronjob laufen lassen irgendwo, zum Beispiel auf einem Raspberry Pi, und schon hat man eine korrekte Systemvariable in der CCU2 auf dessen Basis man dann weitere Dinge machen kann.

by prego at November 07, 2015 03:41 PM

October 31, 2015

patzi.de

Geschützt: Mexiko Stadt zum zweiten

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib bitte dein Passwort unten ein:

by patzi at October 31, 2015 05:59 AM

October 29, 2015

Freifunk Göttingen

10 Monate, 512 Nodes

Das Mesh-Netz hat am Montag (19.10.) eine magische Größe erreicht: 512 Nodes.

Das ist in der Informatik eine runde Zahl, und irgendwie ist ein Freifunk-Mesh-Netz unter anderem ja auch etwas Nerdiges. Binär sieht 512 so aus: 1000000000. Also eindeutig eine sehr runde Zahl. 512 bedeutet auch, dass wir die Größe unseres Netzes jetzt zum neunten mal verdoppelt haben (Anmerkung unseres Hausmathematikers).

Diese Größe hat das Netz innerhalb von 10 Monaten erreicht, wir sind im Januar 2015 gestartet. Wenn man mal überlegt, wieviele Tage das waren, fällt auf, dass das mehr als ein neuer Router pro Tag ist. Freifunk wächst in Göttingen und auch um Göttingen herum rasant. Das Netz wächst so schnell, dass wir mit dem Ausbau der Infrastruktur fast nicht hinterherkommen.

Zur Zeit betreiben wir vier Supernodes in drei verschiedenen Rechenzentren, die das Rückgrat des Mesh-Netzwerks bilden (also da einspringen, wo Router sich nicht per Funk erreichen können) und die Datenverbindungen ins Internet tunneln.

Zusammen werden diese Supernodes im Oktober ca. 40 Terabytes (TiB) Daten transferiert haben – wir müssen uns daher auf Probleme mit den Anbietern der Rechenzentren einstellen und noch mehr Server mieten, damit wir den Traffic pro Server reduzieren.

Wir haben Anfang Oktober den Verein “Netze ohne Grenzen” gegründet, der das Projekt fördern soll; er wartet zur Zeit auf Eintragung.

Gleichzeitig helfen wir bei der Versorgung von Flüchtlingsunterkünften. Wir reden mit unseren Lokalpolitikern im Stadtrat, weil wir möchten, dass Freifunk gefördert werden soll, aber auch mit Landes- und Bundespolitikern. Dazu müssen wir uns auch landesweit mit anderen Communities vernetzen.

Paradoxerweise müssen wir aber auch mit Politikern reden, weil aktuell kürzliche und anstehende Gesetzänderungen unser geliebtes Projekt gefährden: Die Wiedereinführung der Vorratsdatenspeicherung, der Firmware Lockdown durch die EU. Es schmerzt auch, mit ansehen zu müssen, wie öffentliche Funkfrequenzen versteigert werden, mit denen Freifunk viel effizienter laufen könnte. Darüber hinaus verschlechtert die große Koalition mit dem aktuellen Gesetzesentwurf zur Störerhaftung die Rechtslage gegenüber der jetzigen Situation und die Netzneutralität wird durch einen Vorschlag der EU-Kommission akut bedroht, der es Providern ermöglichen möchte, das Internet zu einem Zwei-Klassen-Netz umgestalten zu können.
Mit all diesen Entscheidungen vergibt die Politik die Chance, die hinterherhinkende Entwicklung freier Netze in Deutschland schnell und ohne Kosten voranzubringen.

Um Göttingen herum bilden sich Communities, denen wir gerne Starthilfe geben, z. B. indem unsere Supernodes mitgenutzt werden können: Witzenhausen, Hann-Münden, Duderstadt und Bad-Gandersheim. Zur Zeit berichtet das Göttinger Tageblatt über die Pläne von Geschäftsbetreibern mit Hilfe von Freifunk, flächendeckend WLAN für die Besucher der Innenstadt anzubieten. Das Netz wächst also stetig weiter und wir freuen uns schon auf die 210.

by ffgoe at October 29, 2015 08:34 PM

October 28, 2015

patzi.de

Geschützt: La bodegia

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib bitte dein Passwort unten ein:

by patzi at October 28, 2015 05:59 AM

October 23, 2015

patzi.de

Geschützt: Hermosillio und Guaymas

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib bitte dein Passwort unten ein:

by patzi at October 23, 2015 04:57 AM

October 19, 2015

patzi.de

Geschützt: Mexiko Stadt und Teotihuacán

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib bitte dein Passwort unten ein:

by patzi at October 19, 2015 04:59 AM

October 18, 2015

patzi.de

Geschützt: Ankunft in Mexiko

Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib bitte dein Passwort unten ein:

by patzi at October 18, 2015 04:59 AM

October 16, 2015

Freifunk Göttingen

Error 404 – Bürger*innenrechte not found

Heute wurde im Bundestag die Wiedereinführung der Vorratsdatenspeicherung beschlossen. 404 Abgeordnete stimmten dafür. Die Gegenargumente sind altbekannt: Die Unschuldsvermutung wird aufgehoben und alle Menschen werden unter Generalverdacht gestellt, die gespeicherten Daten lassen sich missbrauchen, die Kontrolle der Zugriffe funktioniert offensichtlich nicht, der Schutz von Berufsgeheimnisträgern ist nicht gesichert.

Auch dass es ja “nur” um Verbindungsdaten ginge, beruhigt nicht, wie zahlreiche Beispiele zeigen. Außerdem berichtete die SZ gestern, dass es im Fall von SMS offenbar technisch unmöglich sei, die Inhalte von den Metadaten zu trennen – sie würden also einfach mitgespeichert.

Ein weiterer Kritikpunkt ist der neu eingeführte Straftatbestand der Datenhehlerei, der keinerlei inhaltliche Verbindung zum übrigen Gesetz hat, aber Whistleblower, Journalisten und Sachverständige bedroht.

Welche konkreten Auswirkungen das neue Gesetz auf die Freifunk-Initiativen haben wird, ist zumindest uns derzeit noch unklar. Die Vorratsdatenspeicherung ist und bleibt aber mit unseren Vorstellungen einer freien Gesellschaft und eines freien Netzes unvereinbar. Der Verein Digitalcourage e.V. bereitet derzeit eine Klage vor dem Bundesverfassungsgericht vor. Die Verfassungsbeschwerde kann durch eine Unterschrift oder Spende unterstützt werden.

Update: Mehrere Mobilfunk-Unternehmen widersprechen dem Bericht der SZ.

by corvus at October 16, 2015 06:11 PM

October 07, 2015

Freifunk Göttingen

1. Freifunk-Treffen Duderstadt

In immer mehr Städten gehört ein freies W-Lan zur „Grundausstattung“, steht für ein modernes Image, Aufenthaltsqualität und Willkommenskultur. Die Bürger aus Göttingen oder Hann. Münden haben sich bereits erfolgreich auf den Weg gemacht und mit Freifunk ein frei verfügbares, anonymes und kostenloses W-Lan aufgebaut. In Duderstadt gibt es derzeit nur punktuell freies W-Lan. Eine möglichst hohe Abdeckung mit freiem W-Lan braucht das Engagement vieler Bürger, Unternehmer und Institutionen, die einen Teil ihrer Internetbandbreite Bürgern und Gästen verfügbar machen.

Wir laden Sie und Euch deshalb zum 1. Freifunk-Treffen in Duderstadt ein:
Wann? Mittwoch, 14.10.2015, 19.00 Uhr
Wo? Intersport Mitschke, Marktstraße 73

Eingeladen sind zum einen Menschen, die sich informieren und mitdiskutieren wollen oder ihr Internet für Andere verfügbar machen wollen. Eingeladen sind aber auch Technikbegeisterte, die sich zukünftig für die Entwicklung der lokalen W-Lan Infrastruktur engagieren wollen.

Mit dabei sind unter anderem Vertreter der Freifunk-Initiative Göttingen und Händler aus Duderstadt, die aus erster Hand über ihre Motivation und ihre Erfahrungen mit Freifunk sprechen.

Anmeldungen bitte unter info@duderstadt2020.de oder 05527-8492390

Ihr/Euer Team von Duderstadt2020

by dud2020 at October 07, 2015 08:16 PM

September 14, 2015

exdc

Kurztipp: opendmarc und Probleme mit dem Mailversand via client

Im Zusammenhang mit spf, dkim, dmarc und opendmarc:

IgnoreAuthenticatedClients true

in der /etc/opendmarc.conf hat geholfen damit auch Thunderbird wieder mails verschicken durfte wenn man

RejectFailures true

eingetragen hat.

IgnoreAuthenticatedClients If set, causes mail from authenticated clients (i.e., those that used SMTP AUTH) to be ignored by the filter. The default is “false”.

Informationen zur opendmarc.conf findet man hier.

ok ein kleines Update.

IgnoreAuthenticatedClients true

funktioniert nicht so wie es soll. SMTP Auth wird trotzdem von dmarc ignoriert. Was ich getan habe ist nun den submission Port für Clients zu nutzen und dabei keinen DMARC check durchzuführen. Wäre auch unsinnig.

submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_milters=inet:localhost:12301

Hinter inet:localhost:12301 verbirgt sich DKIM

 

noch ein update:

damit opendmarc auch

IgnoreAuthenticatedClients true

berücksichtigt ist die 1.31er Version erforderlich, z.B. die aus Debian/stretch, bei jessie ist leider nur die 1.30er dabei.

https://packages.debian.org/stretch/amd64/opendmarc/download

https://packages.debian.org/stretch/amd64/libopendmarc2/download

Dadurch braucht man den Eintrag bei submission quasi nicht. Trotzdem ist der Weg über den submission sinnvoll, allein schon wegen der s2s und c2s Trennung.

Danke an Jan für den Hinweis mit der 1.31er Version.

by kero at September 14, 2015 02:13 PM

September 01, 2015

exdc

Kurztipp: Gnu Social XMPP Bot

Das wird wohl ähnliche Gründe wie das roundcube Problem aus dem letzten Kurztipp haben. Der XMPP Bot von gnu social kann sich nicht mehr an der ejabberd Instanz anmelden. Da wird sich PHP wohl auch an den selfsigned Zertifikat von ejabberd stören. Geholfen hat ein Verzicht auf Verschlüsselung ;-). Der XMPP Bot meldet sich also unverschlüsselt an den lokalen ejabberd an.

by kero at September 01, 2015 06:11 AM