freifunk:infrastruktur:server:vpn1

Dies ist eine alte Version des Dokuments!


vpn1.erfurt.freifunk.net

Dies ist ein VPN-Server.

  • DNS-Name noch nicht angepasst: Für IPv6 funktioniert SSH-Login also nicht über DNS-Namen!
  • Port 1234 für fastd und 10000 für fastd-Backbone zeigen bereits auf die VM
  • Port 10001 zeigt weiterhin auf die VM gluon-ffef, diese hat noch die Karte und darf im Backbone nicht aus dem VPN entfernt werden
  • vpn1.erfurt.freifunk.net
    • 144.76.76.98
    • 2a01:4f8:191:9461:13::1
  • SSH (Port 1035)
  • fastd (Port 1234)
  • Debian 8 (Jessie)
    • Installation-Optionen: SSH-Server, Standard-Systemutilities
  • mc
  • screen
  • vim
  • sudo

Pakete

  • bridge-utils

Konfiguration Routing

  • IPv6-Forwarding generell aktivieren
    • kann nicht Interface-bezogen aktiviert werden
  • IPv4-Forwarding wird von fastd Interface-bezogen aktiviert

/etc/sysctl.conf

net.ipv6.conf.all.forwarding = 1

Konfiguration Routingtabellen

  • gesonderte Routingtabelle für Freifunk-internen Datenverkehr

/etc/iproute2/rt_table

23 ffef

Konfiguration Bridge (Freifunk-Netz)

/etc/network/interfaces.d/brffef

# Bridge (Freifunk)
iface brffef inet static
  bridge_ports none
  address 10.99.1.1
  broadcast 10.99.1.255
  netmask 255.255.128.0
  post-up /sbin/ip route add 10.99.0.0/17 dev $IFACE table ffef
  post-up /sbin/ip rule add iif $IFACE table ffef priority 200
  post-up /sbin/ip rule add oif $IFACE table ffef priority 201
  post-up echo 1 > /proc/sys/net/ipv4/conf/$IFACE/forwarding
  pre-down echo 0 > /proc/sys/net/ipv4/conf/$IFACE/forwarding
  pre-down /sbin/ip route del 10.99.0.0/17 dev $IFACE table ffef
  pre-down /sbin/ip rule del oif $IFACE table ffef priority 201
  pre-down /sbin/ip rule del iif $IFACE table ffef priority 200
iface brffef inet6 static
  address fd0a:d928:b30d:94f7:1::1
  netmask 64

Repository

  • Jessie-Backports verwenden

/etc/apt/sources.list.d/backports.list

deb http://ftp.debian.org/debian jessie-backports main

Pakete

  • fastd
    • apt-get -t jessie-backports install fastd

Workaround für fehlerhafte Startskripte

  • cp /lib/systemd/system/fastd.service /etc/systemd/system/fastd@.service
  • systemctl daemon-reload

Quelle: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=823801

Backbone-Verbindung

  • mkdir -p /etc/fastd/backbone/peers
  • fastd --generate-key

fastd --generate-key

2016-05-23 18:40:15 +0000 --- Info: Reading 32 bytes from /dev/random...
Secret: XXX
Public: YYY

  • /etc/fastd/backbone/secret.conf mit Secret-Key befüllen

/etc/fastd/backbone/secret.conf

secret "XXX";

  • Public-Key auf anderen Backbone-VPN-Servern einrichten

/etc/fastd/backbone/peers/vpn1.erfurt.freifunk.net.conf

# VPN-Server vpn1.erfurt.freifunk.net
key "YYY";
remote "vpn1.erfurt.freifunk.net" port 10000;

  • Fastd-Konfiguration
    • IP-Adresse des VPN-Servers im Backbone setzen
    • Policy-Routing für ffef-Routingtabelle setzen
    • IPv4-Forwarding für fastd-Interface aktivieren
    • Keepalived starten/beenden (Floating IP für statische)

/etc/fastd/backbone/fastd.conf

log level info;
interface "mesh-vpn-bb";
mode tap;
method "null+salsa2012+umac";
method "null";
include "secret.conf";
bind any:10000;
mtu 1426;
include peers from "peers";

on up "
   ip link set up dev $INTERFACE
   ip address add 10.99.254.7/24 broadcast 10.99.254.255 dev $INTERFACE
   ip route add 10.99.254.0/24 dev $INTERFACE table ffef
   ip rule add iif mesh-vpn-bb table ffef priority 300
   ip rule add from 10.99.254.7 table ffef priority 301
   ip route add default via 10.99.254.1 table ffef
   echo 1 > /proc/sys/net/ipv4/conf/$INTERFACE/forwarding
   systemctl start keepalived
";

on down "
   systemctl stop keepalived
   echo 0 > /proc/sys/net/ipv4/conf/$INTERFACE/forwarding
   ip route del default via 10.99.254.1 table ffef
   ip rule del iif mesh-vpn-bb table ffef priority 300
   ip rule del from 10.99.254.7 table ffef priority 301
   ip route del 10.99.254.0/24 dev $INTERFACE table ffef
   ip address del 10.99.254.7/24 broadcast 10.99.254.255 dev $INTERFACE
   ip link set down dev $INTERFACE
";

  • Dateien aus /etc/fastd/backbone/peers/ von anderen VPN-Servern übernehmen
    • FIXME: Synchronisierbar gestalten oder aus zentralem Repository beziehen

Starten und zum Runlevel hinzufügen

  • systemctl start fastd@backbone
  • systemctl enable fastd@backbone
  • freifunk/infrastruktur/server/vpn1.1464031169.txt.gz
  • Zuletzt geändert: 23.05.2016 21:19
  • von mape2k