Alex/ff/logbuch

Aus Wiki CCC Göttingen
Zur Navigation springen Zur Suche springen

Logbuch 20141130

root@vm04:~# cat /etc/debian_version 
7.7

stolen from freifunk-muenster.de

deb http://repo.universe-factory.net/debian/ sid main
deb http://download.opensuse.org/repositories/home:/fusselkater:/ffms/Debian_7.0/ /
deb http://http.debian.net/debian wheezy-backports main
gpg --keyserver pgpkeys.mit.edu --recv-key 16EF3F64CB201D9C
gpg -a --export 16EF3F64CB201D9C | apt-key add -
wget http://download.opensuse.org/repositories/home:fusselkater:ffms/Debian_7.0/Release.key
apt-key add - < Release.key
aptitude update
aptitude install sudo bridge-utils batctl=2013.4.0-1 openvpn haveged fastd radvd isc-dhcp-server bind9 git alfred alfred-json batman-adv-dkms nagios-nrpe-server ntp


IP Forwarding aktivieren

/etc/sysctl.d/forwarding.conf <highlightSyntax language="txt">

  1. IPv4 Forwarding

net.ipv4.ip_forward=1

  1. IPv6 Forwarding

net.ipv6.conf.all.forwarding = 1 </highlightSyntax>


Als erstes brauchen wir eine Netzwerkbrücke, als Schnittstelle zwischen dem Mesh-Netz und dem MULLVAD-VPN.

Dazu füge in die Konfigurationsdatei /etc/network/interfaces folgendes hinzu: /etc/network/interfaces <highlightSyntax language="txt">

  1. Netwerkbruecke fuer Freifunk
  2. - Hier laeuft der Traffic von den einzelnen Routern und dem externen VPN
  3. - zusammen
  4. - Unter der hier konfigurierten IP ist der Server selber im Freifunk Netz
  5. - erreichbar
  6. - bridge_ports none sorgt dafuer, dass die Bruecke auch ohne Interface
  7. - erstellt wird

auto br0

iface br0 inet static

       address 10.109.0.1    # die 1 für mein Gateway
       netmask 255.255.0.0
       bridge_ports none  

iface br0 inet6 static

       address fde6:36fc:c985::1 # die 1 für mein Gateway
       netmask 48

</highlightSyntax>


Als nächstes muss das bat0-Interface konfiguriert werden. Dazu bearbeitest du wieder die /etc/network/interfaces <highlightSyntax language="txt">

  1. Batman Interface
  2. - Erstellt das virtuelle Inteface fuer das Batman-Modul und bindet dieses an die Netzwerkbruecke
  3. - Die unten angelegte Routing-Tabelle wird spaeter fuer das Routing innerhalb von Freifunk (Router/VPN) verwendet

allow-hotplug bat0

iface bat0 inet6 manual

       pre-up modprobe batman-adv
       post-up ip link set dev bat0 up
       post-up brctl addif br0 bat0
       post-up batctl it 10000
       post-up ip rule add from all fwmark 0x1 table 42
       post-up start-stop-daemon -b --start --exec /usr/sbin/alfred -- -i br0 -b bat0 -m;
       post-up start-stop-daemon -b --start --exec /usr/sbin/batadv-vis -- -i bat0 -s;

</highlightSyntax>

IPtables-Regeln

/etc/iptables.up.rules <highlightSyntax language="txt">

  • filter # in wie weit ist das notwendig?
INPUT ACCEPT [0:0]
FORWARD ACCEPT [0:0]
OUTPUT ACCEPT [0:0]

COMMIT

  1. Regeln zum markieren eingehender Pakete
  • mangle
PREROUTING ACCEPT [0:0]
INPUT ACCEPT [0:0]
FORWARD ACCEPT [0:0]
OUTPUT ACCEPT [0:0]
POSTROUTING ACCEPT [0:0]

-A PREROUTING -i br0 -j MARK --set-xmark 0x1/0xffffffff -A OUTPUT -o eth0 -p udp --dport 53 -j MARK --set-xmark 0x1/0xffffffff -A OUTPUT -o eth0 -p tcp --dport 53 -j MARK --set-xmark 0x1/0xffffffff COMMIT </highlightSyntax>

/etc/iptables.up.rules <highlightSyntax language="txt">

  1. Route an VPN per nat.
  • nat
PREROUTING ACCEPT [0:0]
INPUT ACCEPT [0:0]
OUTPUT ACCEPT [0:0]
POSTROUTING ACCEPT [0:0]

-A POSTROUTING -o tun0 -j MASQUERADE COMMIT </highlightSyntax>


Als letztes musst du dafür sorgen, dass die IPtables-Regeln auch geladen werden. dazu erzeuge die Datei

/etc/network/if-pre-up.d/iptables <highlightSyntax language="bash">

  1. !/bin/sh

/sbin/iptables-restore < /etc/iptables.up.rules </highlightSyntax>

chmod +x /etc/network/if-pre-up.d/iptables
iptables-restore < /etc/iptables.up.rules