DS9/Setup

Aus Freifunk Rheinland e.V.
Zur Navigation springen Zur Suche springen

Installation DS9: Gedächtnisprotokoll von nomaster.

Basissystem

Hetzner stellt keine vServer mit vorinstalliertem Arch Linux zur Verfügung. Die Installation klappte jedoch über einen Umweg.

  1. Rescue System booten
  2. Festplatte partitionieren
  3. Das Arch-Linux-ISO auf eine Partition kopieren
  4. GRUB installieren und für das Booten des ISO konfigurieren
  5. Von der Festplatte neu starten
  6. Installation vornehmen
  7. GRUB neu konfigurieren, um das Zielsystem zu starten

OpenVPN

Das Paket openvpn installieren, Zertifikate einrichten und zwei Konfigurationen anlegen: eine für Verbindungen durch Queens und eine für den Uplink zu einem Anonymisierungsdienst.

Die Zertifikate habe ich per easy-rsa erzeugt.

Im folgenden die Inhalte der Datei /etc/openvpn/ds9.conf

 # Authentifiziere per PAM  
 plugin /usr/lib/openvpn/openvpn-auth-pam.so system-auth
 username-as-common-name
 
 # Erzeuge Tunnel-Interface
 dev tunff
 
 # Finde Zertifikate und Schlüssel
 ca /etc/openvpn/ds9.ca 
 cert /etc/openvpn/ds9.crt
 client-cert-not-required
 dh /etc/openvpn/dh1024.pem
 key /etc/openvpn/ds9.key
 duplicate-cn
 tls-server
 
 # Setze Kompression per LZO voraus
 comp-lzo
 
 # Erhalte Verbindung aufrecht
 keepalive 10 120
 
 # Behalte Schlüssel im Speicher
 persist-key
 
 # Halte Tunnel-Interface offen
 persist-tun
 
 # Passe Paketgrößen automatisch an
 mssfix
 
 # Verteile IP-Adressen aus unserem Subnetz
 server 172.22.133.0 255.255.255.0
 
 # Teile den Clients mit, ihren Traffic über uns zu routen
 push "redirect-gateway def1"

Für den Uplink über eine weitere VPN-Verbindung habe ich folgende Konfiguration in /etc/openvpn/vpntunnel.conf</rr> verwendet:

 ; Gehe in den Client-Modus
 client
 
 ; Erzeuge Tunnel-Interface
 dev tunse
 
 ; Hole keine Routen vom Server
 route-nopull
 
 ; Verwende UDP-Protokoll
 proto udp
 
 ; Setze Vorgaben des Providers
 float
 nobind
 
 ; Finde Zertifikate
 ca /etc/openvpn/vpntunnel.crt 
 ns-cert-type server
 cipher BF-CBC
 
 ; Verbinde zu einem zufällig gewählten Server
 remote-random
 remote anna.vpntunnel.se 10010
 remote anna.vpntunnel.se 10020
 remote anna.vpntunnel.se 1194
 
 ; Versuche unendlich lang dich zu verbinden
 resolv-retry infinite
 
 ; Lies Benutzernamen und Passwort aus Datei
 auth-user-pass /etc/openvpn/vpntunnel.txt
 
 ; Behalte Schlüssel im Speicher
 persist-key
 
 ; Halte Tunnel-Interface offen
 persist-tun
 
 ; Setze Kompression voraus
 comp-lzo

Routing

Der Server soll allen Traffic, der durch das Queen-Interface (tunff) eingeht und unser Freifunk-Subnetz verlassen soll, durch den Uplink-Tunnel (tunse) routen.

Dazu habe ich eine Regel zum Routen über eine eigene Tabelle konfiguriert:

 ip rule add from 172.22.0.0/16 table freifunk

… und in dieser Tabelle eine Default-Route über tunse eingetragen:

 ip route replace default dev tunse table freifunk

Anschließend habe ich das Routing und NAT aktiviert:

 /proc/sys/net/ipv4/ip_forward
 iptables -t nat -A POSTROUTING -o tunse -j MASQUERADE

… und per Firewall-Konfiguration gesichert:

 iptables -P FORWARD DROP
 iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
 iptables -A FORWARD -o tunse -j ACCEPT