DS9/Setup: Unterschied zwischen den Versionen
(→OpenVPN: Uplink-Konfiguration) |
(Routing und Firwall) |
||
Zeile 101: | Zeile 101: | ||
; Setze Kompression voraus | ; Setze Kompression voraus | ||
comp-lzo | 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 <tt>tunse</tt> 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 |
Version vom 7. Januar 2013, 19:56 Uhr
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.
- Rescue System booten
- Festplatte partitionieren
- Das Arch-Linux-ISO auf eine Partition kopieren
- GRUB installieren und für das Booten des ISO konfigurieren
- Von der Festplatte neu starten
- Installation vornehmen
- 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