Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
exit-vpn [05.12.2015 21:51] – angelegt havelock | exit-vpn [22.01.2017 15:14] (aktuell) – [Exit-VPN] havelock | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Exit-VPN ====== | ====== Exit-VPN ====== | ||
+ | Normalerweise wird das VPN mit [[OpenVPN]] gemacht, also erstmal das installieren: | ||
- | Normalerweise wird das VPN mit OpenVPN gemacht, also erstmal das installieren: | + | < |
aptitude install openvpn | aptitude install openvpn | ||
+ | </ | ||
- | ===== Mullvad ===== | + | **Wichtiger Hinweis:** |
+ | Immer sicherstellen, | ||
+ | eingestellt ist. Damit wird insbesondere keine Default-Route über das Exit-VPN | ||
+ | gesetzt. Vergißt man die Einstellung und startet die VPN-Verbindung, | ||
+ | man sich vom Server aus. Dann hilft meistens nur noch Booten in den Rettungsmodus. | ||
+ | IPv6-Unterstützung: | ||
+ | * Mullvad: ja | ||
+ | * Earthvpn: nein, aber für Ende 2016 angekündigt | ||
+ | * ovpn.to: ja | ||
- | Mullvad kostet 5€ je Monat. Am besten einen Briefumschlag nehmen, die Mullvad-ID auf eine A4-Seite drucken, einen Geldschein hineinlegen. Frankieren mit 80ct und nach Schweden senden. Schön anonym :-) | + | ===== OpenVPN allgemein ===== |
- | Die Dateien für Mullvad werden direkt | + | * Der zu verwendende Exit wird in '' |
- | ca.crt, crl.pem, mullvad.crt, mullvad.key, sowie mullvad.conf | + | * Der dort eingetragene Name kennzeichnet die Konfigurationsdatei unter '' |
+ | * Jedes ExitVPN wird in einem eigenen Unterverzeichnis verwaltet, unter ''/ | ||
+ | * Das Land und der Server für das ExitVPN sind von Bedeutung, können jedoch nicht automatisch ermittelt werden. Die passende Stelle für die Erfassung dieser Daten ist die Konfigurtionsdatei für den jeweiligen OpenVPN-Tunnel. | ||
+ | * In der ersten Zeile der Konfigurationsdatei wird das verwendete Land eingetragen. Das ist dann für Scripte auswertbar, z.B. für Alfred. In der zweiten Zeile wird der Name des Servers angegeben.< | ||
+ | ## ExitCountry = NL | ||
+ | ## ExitServer = NL4 | ||
+ | [...] | ||
+ | </ | ||
+ | * Wenn alle Gateways die aktuell in Verwendung befindlichen Verbindungen kennen, können Sie sig ggf. aus einem Pool eine freie, noch nicht verwendete Verbindung suchen aund auf diese umschalten. | ||
- | mullvad.conf | + | ++++ Up- und Down Scripte | |
+ | <file bash / | ||
+ | #!/bin/bash | ||
- | client | + | # Freifunk Community Pinneberg |
- | dev-type tun | + | # Automatisierung Exit-VPN |
- | dev mullvad | + | |
- | proto udp | + | |
- | remote nl.mullvad.net | + | |
- | resolv-retry infinite | + | |
- | nobind | + | |
- | persist-key | + | |
- | persist-tun | + | |
- | comp-lzo | + | |
- | verb 3 | + | |
- | remote-cert-tls server | + | |
- | ping-restart 60 | + | |
- | script-security 2 | + | |
- | route-noexec | + | |
- | up / | + | |
- | ping 10 | + | |
- | ca / | + | |
- | cert / | + | |
- | key / | + | |
- | mullvad-up | + | ip route replace 0.0.0.0/1 via $4 table freifunk |
+ | ip route replace 128.0.0.0/1 via $4 table freifunk | ||
- | | + | # Prüfe, ob Parameter angegeben sind. $1 ist der Provider. |
- | ip route replace 0.0.0.0/1 via $4 table 42 | + | # Falls nicht, versuche den Provider aus der Konfiguration zu ermitteln |
- | | + | if [ $# -eq 0 ]; then |
- | | + | VPNCONF=$(grep -e " |
+ | | ||
+ | else | ||
+ | | ||
+ | fi | ||
- | ===== EarthVPN ===== | + | # Masquerading Regel überprüfen und ggf. korrigieren |
+ | FWRULE=$(iptables --line-numbers -t nat -vnL | grep MASQUERADE | head -n 1 | awk '{$1=$1}; | ||
+ | NATIF=$(echo " | ||
+ | RULENO=$(echo " | ||
+ | if [ " | ||
+ | logger -t exitvpn[$$] " | ||
+ | iptables -t nat -D POSTROUTING $RULENO | ||
+ | iptables -t nat -A POSTROUTING -o $PROVIDER -j MASQUERADE | ||
+ | fi | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | <file bash / | ||
+ | #!/bin/bash | ||
+ | |||
+ | # Prüfe, ob Parameter angegeben sind. $1 ist der Provider. | ||
+ | # Falls nicht, versuche den Provider aus der Konfiguration zu ermitteln | ||
+ | if [ $# -eq 0 ]; then | ||
+ | VPNCONF=$(grep -e " | ||
+ | PROVIDER=$(sed -e ' | ||
+ | else | ||
+ | PROVIDER=$1 | ||
+ | fi | ||
+ | |||
+ | # Masquerading Regel entfernen | ||
+ | FWRULE=$(iptables --line-numbers -t nat -vnL | grep MASQUERADE | head -n 1 | awk ' | ||
+ | NATIF=$(echo " | ||
+ | RULENO=$(echo " | ||
+ | |||
+ | if [ " | ||
+ | logger -t exitvpn[$$] " | ||
+ | iptables -t nat -D POSTROUTING $RULENO | ||
+ | fi | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ===== Mullvad ===== | ||
+ | |||
+ | Mullvad kostet 5€ je Monat. Am besten einen Briefumschlag nehmen, die Mullvad-ID auf eine A4-Seite drucken, einen Geldschein hineinlegen. Frankieren mit 90ct und nach Schweden senden. Schön anonym :-) | ||
+ | |||
+ | Die Dateien für Mullvad werden in das Verzeichnis ''/ | ||
+ | '' | ||
+ | |||
+ | Im Normalfall genutzt von '' | ||
+ | |||
+ | ++++ Beispielkonfiguration Mullvad | | ||
+ | <file conf mullvad.conf> | ||
+ | ## ExitCountry = NL | ||
+ | client | ||
+ | dev-type tun | ||
+ | dev mullvad | ||
+ | proto udp | ||
+ | remote nl.mullvad.net | ||
+ | resolv-retry infinite | ||
+ | nobind | ||
+ | persist-key | ||
+ | persist-tun | ||
+ | comp-lzo | ||
+ | verb 3 | ||
+ | remote-cert-tls server | ||
+ | ping-restart 60 | ||
+ | script-security 2 | ||
+ | route-noexec | ||
+ | up / | ||
+ | down / | ||
+ | ping 10 | ||
+ | ca / | ||
+ | cert / | ||
+ | key / | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ===== EarthVPN ===== | ||
Die Administration des EarthVPN-Zugangs wird von Henry durchgeführt. | Die Administration des EarthVPN-Zugangs wird von Henry durchgeführt. | ||
Zeile 51: | Zeile 132: | ||
http:// | http:// | ||
- | Dieser VPN-Zugang wird momentanvon gate01 | + | Earthvpn Certificate Authority (CA): |
+ | wget http:// | ||
+ | |||
+ | Im Normalfall | ||
+ | |||
+ | ++++ Beispielkonfiguration Earthvpn | | ||
+ | <file conf earthvpn.conf>## | ||
+ | client | ||
+ | dev-type tun | ||
+ | dev earthvpn | ||
+ | proto udp | ||
+ | remote zur-ch.earthvpn.com 1194 | ||
+ | resolv-retry infinite | ||
+ | nobind | ||
+ | persist-key | ||
+ | persist-tun | ||
+ | ca / | ||
+ | auth-user-pass / | ||
+ | # auth-nocache | ||
+ | remote-cert-tls server | ||
+ | # reneg-sec 0 | ||
+ | reneg-sec 7200 | ||
+ | verb 3 | ||
+ | auth SHA1 | ||
+ | cipher AES-128-CBC | ||
+ | ping 10 | ||
+ | ping-restart 60 | ||
+ | auth-retry nointeract | ||
+ | route-noexec | ||
+ | script-security 2 | ||
+ | up / | ||
+ | down / | ||
+ | mute-replay-warnings | ||
+ | </ | ||
+ | ++++ | ||
===== oVPN.to ===== | ===== oVPN.to ===== | ||
- | genutzt von ... | + | Dieser Zugang wurde 2015 für ein Jahr gesponsert, 2016 ebenfalls. |
+ | |||
+ | Im Normalfall | ||
+ | |||
+ | ++++ Beispielkonfiguration ovpn.to | | ||
+ | <file conf se1.ovpn.to.conf> | ||
+ | ## ExitCountry = SE | ||
+ | # oVPN.to Server (se1.ovpn.to) Configuration built 2016-09-13 09:09:41 | ||
+ | # | ||
+ | #### Allowed for Edit - oVPN-Client55314 Settings | ||
+ | verb 3 | ||
+ | |||
+ | #### Server Settings (dont change anything down here!) | ||
+ | dev-type tun | ||
+ | dev ovpn.to | ||
+ | explicit-exit-notify 1 | ||
+ | remote 193.105.134.118 443 | ||
+ | proto udp | ||
+ | client | ||
+ | nobind | ||
+ | mute-replay-warnings | ||
+ | persist-tun | ||
+ | persist-remote-ip | ||
+ | resolv-retry infinite | ||
+ | comp-lzo no | ||
+ | auth SHA512 | ||
+ | remote-cert-tls server | ||
+ | ns-cert-type server | ||
+ | topology subnet | ||
+ | cipher AES-256-CBC | ||
+ | fragment 1340 | ||
+ | mssfix | ||
+ | tls-version-min 1.2 | ||
+ | #STRONG TLSv1.2 | ||
+ | tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 | ||
+ | #### Linux Part | ||
+ | ca "/ | ||
+ | cert "/ | ||
+ | key "/ | ||
+ | tls-auth "/ | ||
+ | #--INFO-- openvpn with user+group setting is unable to delete your routes on openvpn-stop! | ||
+ | #user openvpn | ||
+ | #group openvpn | ||
+ | #--INFO-- Use update-resolv-conf to FIX DNSLEAK! See https:// | ||
+ | route-noexec | ||
+ | script-security 2 | ||
+ | up / | ||
+ | down / | ||
+ | #up / | ||
+ | #down / | ||
+ | #### Linux Special / Experimental Options | ||
+ | #fast-io | ||
+ | #nice -10 | ||
+ | #mtu-disc yes | ||
+ | # oVPN-Config se1.ovpn.to END | ||
+ | </ | ||
+ | ++++ | ||