Der IN-Berlin bietet auch VPN-Verbindungen an. VPNs haben z. B. Vorteile, wenn man

  • sich in einem unsicheren WLAN befindet und der Verbindung nicht traut,
  • einen sehr günstigen DSL-Anschluss hat, aber gerne im IN-Berlin-Netz rauskommen möchte,
  • eine statische IP-Adresse im Internet benötigt,
  • ungefiltertes Internet haben möchte,
  • ein IPv6-Netz haben möchte und der Provider das (noch) nicht anbietet.

VPN-Teilnehmer können mehrere IP-Adressen bekommen. Standardmäßig vergeben wir eine IPv4-Adresse und ein IPv6-Netz (bis zu einem /48). Ein IPv4-Netz ist nur bei begründetem Bedarf möglich. Der Hostname sitename.in-vpn.de zeigt auf die primäre IP-Adresse.

OpenVPN

Wir bieten als VPN-Option derzeit nur OpenVPN an. Sobald OpenVPN freigeschaltet ist, kann man sich die Konfiguration im Service-Interface herunterladen.

Wer OpenVPN mit dem Networkmanager, z. B. unter Gnome/xfce4 usw., einrichten möchte, kann dies in der Kommandozeile (Shell) tun - siehe weiter unten.

In der Shell geht das mit der heruntergeladenen Konfigurationsdatei so:

nmcli connection import type openvpn file in-berlin-vpn.conf

Dies führe man als der Benutzer aus, der die Verbindung benutzen möchte. Danach kann man diese wie gewohnt über die grafische Oberfläche oder eine andere Network-Manager-Schnittstelle (nmtuinmcli) benutzen oder auch anpassen. Bei Nutzung der grafischen Tools ist zu beachten, dass evtl. noch das Paket network-manager-openvpn-gnome installiert werden muss, da sonst der VPN-Reiter beim Bearbeiten der Verbindung fehlt.

Wichtig: Man muss noch (vor Verbindungsstart) den Benutzernamen - meist sitename@in-vpn.de - und das Passwort in der grafischen Oberfläche bei der ersten Verbindungsaufnahme eingeben.

Linux/BSD

Zur Einrichtung muss OpenVPN auf dem eigenen Rechner installiert sein. Wie man das genau installiert, hängt von der verwendeten Distribution ab. Bei Debian kann man das Paket mit apt-get install openvpn installieren.

Falls man seine Dateien nicht in /etc/openvpn ablegt, muss man noch in der über das Service-Interface heruntergeladenen Datei in-berlin-vpn.conf den Pfad zur Passwortdatei anpassen.

Um z. B. bei Debian das OpenVPN automatisch zu starten, wenn das Interface eth1 hochkommt, muss man noch die Zeile openvpn in-berlin-vpn zu dem entsprechenden Interface in seiner /etc/network/interfaces hinzufügen.

Eine komplette /etc/network/interfaces sieht z. B. so aus:

\# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

allow-hotplug eth1
auto eth1
iface eth1 inet dhcp
        openvpn in-berlin-vpn

MacOSX

Für MacOSX empfehlen wir das Programm Tunnelblick, in das man die Konfigurationsoptionen aus der Konfiguration von Linux eintragen muss.

Android

Für Android gibt es die App OpenVPN, die auch ohne root läuft. Diese installiert man sich aus dem Play-Store (sie ist auch von F-droid verfügbar) und außerdem lädt man sich die Dateien startssl-chain.crt und in-berlin.tls-auth von dem Konfigurationspaket, das einem zugeschickt wurde, aufs Handy.

Nun startet man die App OpenVPN für Android. Im Profile-Reiter erstellt man ein neues Profil (links unten), als Namen benutzt man z. B. “IN-VPN”. Als erstes ist man in den Grundeinstellungen. Dort wählt man folgende Einstellungen:

  • Server: openvpn-1.in-berlin.de
  • Server Port: 1194
  • LZO-Komprimierung: Haken
  • UDP: Haken
  • Typ: Benutzername/Passwort
  • CA Zertifikat: Hier wählt man sich die vorher heruntergeladene Datei in-berlin-ca-chain.pem aus.
  • Benutzername: der von uns mitgeteilte Benutzername
  • Passwort: das von uns mitgeteilte Passwort (hier muss man leider alle 31 Zeichen eingeben)

In den anderen Einstellungsoptionen:

  • IP und DNS
    • Pull Settings: An
    • Alles andere aus
  • Routing:
    • Ignoriere gepushte Routen: Aus
    • Alles andere nach Vorlieben, im Zweifelsfall nicht anfassen, bei IPv4 und IPv6 Defaultrouten benutzen.
  • Authentifizierung/Verschlüsselung:
    • TLS-Serverzertifikat erwarten: An
    • Zertifikat Namen überprüfen: An
    • Serverzertifikat Subject: rdn: openvpn.in-berlin.de (wichtig: Das muss man editieren! Sonst steht hier openvpn-1 (mit einer eins))
    • Benutze TLS-Authentifizierung: An
    • TLS Auth Datei: die heruntergeladene Datei in-berlin-tls-auth.pem
    • TLS Richtung: unspezifiziert
  • Erweitert:
    • Kein Häkchen, außer unten:
    • Eigene Konfigurationsoptionen: Aktiviert
    • Eigene Optionen: remote-cert-ku 00a8 (nur diese eine Zeile, genau so)

Nachdem man das gespeichert hat, reicht ein Klick auf die Verbindung IN-VPN und das VPN sollte sich aufbauen.

ddwrt

ddwrt ist eine beliebte freie Firmware für Router. Zwar bietet diese einen OpenVPN-Client an, dieser ist aber aus diversen Gründen nicht trivial mit dem von IN-Berlin bereitgestellten Zugang einzurichten. Hier ist ein Screenshot, wie es funktioniert:  Screenshot DDWRT-Oberfläche

Die zu ändernden Felder sind rot markiert. Insbesondere ist zu beachten, dass der TLS-Schlüssel nicht in dem dafür vorgesehenen Feld eingetragen wird, sondern inline in dem Feld für extra Konfigurationszeilen.

pfSense

Hier eine vom Teilnehmer übermittelte Anleitung für pfSense: doku_in-vpn_via_pfsense.pdf

OPNsense

Bei der Nutzung von OPNsense als OpenVPN Client kann der pfSense Anleitung soweit grundlegend gefolgt werden (Stand 07/2021, OPNsense 21.1.8_1, OpenVPN 2.5.3). Wichtig ist dabei, dass wie in der pfSense Anleitung der TLS-Auth-Key unter “Advanced” als Konfigurationsoption eingetragen wird und nicht mit der GUI-Option “TLS-Authentication” konfiguriert wird. Dazu muss im Format wie auf Seite 3 der pfSense Anleitung, der TLS-Auth-Key als Datei ins Dateisytem der OPNsense hochgeladen werden, zum Beispiel /conf, und auf diese Datei mit dem TLS-Auth-Konfigurationsparameter verwiesen werden. Die GUI-Option muss explizit deaktiviert sein.

Hintergrund ist, dass beim IN-Berlin aktuell keine Key-Direction mitgegeben werden darf, diese aber von der OPNsense automatisch auf 1 gesetzt wird. Das ist auch in der Konfigdatei der OPNsense unter: /var/etc/openvpn/, sichtbar. Da steht dann sowas wie tls-auth FILE KEY-DIRECTION, wenn das einfach ueber die GUI konfiguriert wird. Bei 1 schickt die OPNsense Daten zum OpenVPN-Server und dieser beantwortet keine der Pakete. Auf Serverseite ist dann ein TLS Error: incoming packet authentication failed from... zu sehen. Bei 0 kehrt sich das Problem um und diese Fehler sind auf OPNsense-Seite zu sehen. Nur wenn keine Nummer gesetzt ist, funktioniert der Verbindungsaufbau und das lässt sich üeber das setzen im Advanced-Reiter erreichen.

Portfilter

Wir sperren derzeit standardmäßig keine Ports oder begrenzen künstlich die Geschwindigkeit (Netzneutralität). Falls wir Portsperren einrichten, geschieht dies lediglich aus Sicherheitsgründen und man kann sich dann auch explizit wieder freischalten lassen.