Skip to content
This repository has been archived by the owner on May 1, 2019. It is now read-only.
/ server-config Public archive
forked from ffulm/server-config

The server/gateway confguration, scripts, examples etc.

Notifications You must be signed in to change notification settings

ffbsee/server-config

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Freifunk-Bodensee Server

ACHTUNG! Bitte sprich uns zuerst im IRC an, bevor Du einen Server aufsetzt! Wir müssen mit jedem neuen Serverbetreiber einige Dinge, wie z.B. DHCPD Ranges usw. besprechen!

Scripte und Konfigurationsdateien zum schnellen Einrichten eines Servers für Freifunk-Bodensee. Vorausgesetzt wird eine Debian 8 Installation (Jessie). WICHTIG ist, dass der Hostname des Servers richtig gesetzt ist. zum Beispiel vpn?.ffbsee.de, wobei ? durch eine Uahl zu ersetzen ist. Um einen Server einzurichten, reicht es, das Script 'setup_server.sh' als Benutzer 'root' auszuführen:

apt-get update; apt-get upgrade
apt-get install --assume-yes git vim tmux
echo "syntax on" > ~/.vimrc
git clone https://github.com/ffbsee/server-config.git
cd server-config
vim setup_server.sh

Nun sollten die Einstellungen in den ersten Zeilen des Scriptes überprüft werden und der private fastd Key eingetragen werden.

Als nächstes wird die Installation in einem tmux fenster gestartet:

tmux new-session ./setup_server.sh

In eine tmux session können auch mehrere User "attachen" (beitreten). So teilen sich die User eine Komandozeile und jeder sieht, was der andere macht. Mit tmux new-session startet man eine neue Session. Mit tmux a betritt man eine aktive Session. In einer tmux Session kann man mit dem drücken von Strg+B D die Session wieder verlassen. Und mit exit wird die Session beeendet.

Nach erfolgreichem Einrichten wird das Script "/opt/freifunk/update.sh" alle 5 Minuten von crond aufgerufen. Dadurch wird die Karte regelmäßig aktualisiert und nach einem Neustart notwendige Programme neu gestartet.

Server

Für die Serverfunktion werden folgende Programme installiert und automatisch konfiguriert:

Gateway

Wird die Variable "setup_gateway" im Setup-Script auf "true" gesetzt, wird der Server zusätzlich als Gateway eingerichtet. Das Script erwartet dann eine ZIP-Datei mit den Accountdaten von mullvad.net im gleichen Verzeichnis. Zum Testen eignet sich ein anonymer Testaccount für drei Stunden.

Für die Gatewayfunktion werden folgende Programme installiert und automatisch konfiguriert:

  • NAT64: tayga
  • DNS64: bind
  • IPv6 Router Advertisment: radvd
  • Auslands-VPN: OpenVPN

IPv4

Durch die Reaktivierung von IPv4 im Freifunk Netz werden weitere Dienste benötigt:

  • DHCP (isc-dhcp-server)

Alle Serverbetreiber müssen sich absprechen, was den Bereich der verteilten DHCP Adressen angeht, damit es zu keinen Adresskonflikten kommt. Dies ist in unserem Wiki zu Dokumentieren:

Wiki Möglicherweise sind alle DHCP Poole aufgebraucht

Innerhalb des Freifunknetzes gibt es die DNS Zone ".ffbsee". D.h. es können auch Namen wie "meinserver.ffbsee" aufgelöst werden. Masterserver dafür ist zur Zeit vpn5. Falls weitere Server hinzugefügt werden, müssen die Zonendateien auf dem Master (db.10.unklar, db.ffbsee, named.conf.local) manuell angepasst werden. Hierzu bitte auf der Mailingliste melden.

alfred

Des Weiteren sollte mindestens ein Server mit dem Schalter "-m" als alfred master betrieben werden. Zur Zeit ist dies bei uns vpn1. https://github.com/ffbsee/server-config/blob/master/freifunk/update.sh#L121

Netz

Freifunk Bodensee nutzt folgende Netze (pull request beim icvpn noch nicht durch):

  • ipv4: 10.11.160.0/20
  • ipv6: fdef:1701:b5ee::/48

Durchsatz und Statistiken

Es wird vnstat und munin auf den Gateways verwendet. Wenn dies nicht gewünscht wird, muss die Variable "setup_statistics" auf "false" gesetzt werden. Die Software für munin clients wird automatisch eingerichtet, der master server für munin ist z.Z. vpn5 und wird folgendermaßen konfiguriert:

munin master

apt-get install munin
cd /var/www
ln -s /var/cache/munin/www/munin

Dann unter /etc/munin.conf anpassen und alle clients eintragen:

#[localhost.localdomain]
#    address 127.0.0.1
#    use_node_name yes
[vpn1.ffbsee]
     address 10.11.160.1

Daemon neustarten

/etc/init.d/munin restart

ICVPN

Folgende Adressen wurden NOCH NICHT im [Transfernetz des ICVPN] (https://github.com/freifunk/icvpn-meta/blob/master/bodensee) für die Bodensee community reserviert:

vpn1

  • ipv4: 10.11.160.1
  • ipv6: fded:1701:b5ee:1

Doku zu ICVPN bei FF Bielefeld: (veraltet) https://wiki.freifunk-bielefeld.de/doku.php?id=ic-vpn

Tinc aus Debian jessie ist (angeblich) nicht stabil genug. Tinc 1.11 pre selbst bauen: https://gist.github.com/mweinelt/efff4fb7eba1ee41ef2d

ICVPN im Freifunk wiki: https://wiki.freifunk.net/IC-VPN

DNS im Freifunk wiki: https://wiki.freifunk.net/DNS

Die Konfig sollte automatisch per cron.hourly/daily aktualisiert werden:

#!/bin/sh

DATADIR=/var/lib/icvpn-meta

# pull new public keys of peering partners for tinc vpn daemon from https://github.com/freifunk/icvpn
cd /etc/tinc/icvpn
git pull -q

# pull new bgp configs of peering partners from https://github.com/freifunk/icvpn-meta
cd "$DATADIR"
git pull -q

# refresh bgp config v4/v6
sudo -u nobody /opt/icvpn-scripts/mkbgp -4 -f bird -d peers -s "$DATADIR" -x bodensee > /etc/bird/bird.d/icvpn.conf
sudo -u nobody /opt/icvpn-scripts/mkbgp -6 -f bird -d peers -s "$DATADIR" -x bodensee -t berlin:upstream > /etc/bird/bird6.d/icvpn.conf

# reload bird v4/v6
birdc configure > /dev/null
birdc6 configure > /dev/null

# refresh DNS config for freifunk zones
sudo -u nobody /opt/icvpn-scripts/mkdns -f bind -s "$DATADIR" -x bodensee > /etc/bind/named.conf.freifunk

# reload bind9 config
/etc/init.d/bind9 reload > /dev/null

About

The server/gateway confguration, scripts, examples etc.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 50.5%
  • Shell 42.7%
  • PHP 3.7%
  • JSONiq 2.4%
  • CSS 0.7%