pfSense und OpenVPN für Android Smartphones

Wer ein mit Android betriebenes Smartphone besitzt, geht damit normalerweise auch in das Internet. Wer eine pfSense-Firewall besitzt kann sich ein funktionstüchtiges OpenVPN innerhalb von 5 Minuten aufsetzen. Nun ist die Kommunikation des Smartphones auch an öffentlich genutzten Hotspots und per 3G/LTE geschützt. Und vor allem auch Werbegefiltert.

Für mich ist es in der heutigen Zeit mehr als wichtig jede Art von Schutz in der Kommunikation in Anspruch zu nehmen, welcher meine Daten schützen kann. Auch ist es für mich wichtig, so wenig Datenlast wie möglich von meinem Smartphone, Tablet oder Laptop unterwegs laden zu lassen. Werbung blende ich kategorisch aus. Nicht, dass ich dem Webseitenbetreiber seine Einnahmen nicht gönne, aber es wurden schon zu viele Hintertüren durch Werbung geöffnet, auf welcher der Webseitenbetreiber leider keinen Einfluss hatte.

Aus diesem Grund sehe ich ein OpenVPN in mein Heimnetzwerk von einem nicht mir bekannten Netzwerk als sehr wichtig an. Der Flaschenhals ist leider in dem Moment nur mein Netzbetreiber, welcher mir nicht einen so schönen Upstream ermöglicht wie ich Ihn haben möchte.

Wichtig zu Wissen

Das Internet über VPN ist nur so schnell wie auch der Upstream der Internetleitung, welchen die pfSense schützt.

Zugriff auf das Heimnetzwerk ist möglich, somit können auch das netzwerkeigene NAS, der Drucker, etc genutzt werden

DeskproEN CompaqOpenVPN arbeitet schon mit relative kleiner Hardware. Bei mir leistet ein sehr alter CompaqDeskpro mit einem Pentium3/800MHz und 768MB RAM seine Arbeit als Firewall inkl Squid als Proxy und squidGuard als Filter.
Die Auslastung ist wirklich minimal und steigt nur bei dem Update der Filterlisten und deren Bibliothekengenerierung.
Dies kann man auch schön in diesem Artikel Warum ich pfSense so mag sehen.

Vorraussetzungen

  • pfSense als Firewall installiert mit Squid, squidGuard ( Im Blog als Anleitung vorhanden)
  • Ein eingereichteter DynDNS-Account bei z.B. noip.com in der pfSense
  • Installation der openVPN-App für Android
  • Einmal die Anleitung komplett durchlesen und Notizen über eigene Einstellungen nicht vergessen.
  • Mitdenken und jeden Schritt wohl überlegt setzen. Schnell ist etwas verkonfiguriert.

Logo pfSense

Vorab

Eingerichtet werden muss eine Certification Authority, ein Serverzertifikat, ein Benutzer und natürlich unser OpenVPN-Zertifikat. Hinzu kommt noch eine Installation eines Exporthilfsprogrammes, welches eine simple Datei für die Konfiguration des Smartphones generiert. Dieses funktioniert auch unter iOS und somit auch auf dem iPhone, welches aber hier nicht weiter beachtet wird.

[UPDATE] Also nochmal schnell wegen Nachfrage mit einem iPhone und dem neuen iOS inkl der App OpenVPN Connect getestet und die *ovpn-Datei direkt aus dem Mailprogramm der Anwendung übergeben, geht. Was sonst ツ
Somit hoffe ich, dass nun die Kernobstliebhaber beruhigt sind.

OpenVPN auf der pfSense 2.x

Installation des Exportwerkzeuges

Als erstes sollte das Paket OpenVPN Client Export Utility über den Menüpunkt Packages installiert werden. Als Abhängigkeit installiert es momentan eigentlich nur zip in der Version 3.0

Erstellen der Certification Authority

Über den Menüpunkt System > Cert Manager > CAs per + >> Method Create an internal Certification Authority folgende Certification Authority erstellen:

Descriptive Name: Teiko VPN CA
Key Length: 2048 bits
Lifetime: 3650
CountryCode: DE
State or Province :  eigenes Bundesland
City: eigene Stadt
Common Name: Eigener guter Name (bei mir teikovpn-ca)

Speichern

Erstellen des VPN-Benutzers

Über den Menüpunkt System > User Manager > per + den Benutzer wie folgt erstellen:

username: vpnroadwarrior
password: eigenestollespasswort
Fullname : vpnroadwarrior

Certificate anklicken und eingeben:

Descriptive Name vpnroadwarrior
Certifcate authority Name aus der Eingabe von Common Name ( siehe oben, bei mir war es TeikoVPN CA)

Speichern

Erstellen des VPNs

Der in pfSense eingebaute Wizard hilft uns dabei.

Menüpunkt VPN > OpenVPN > Wizards

Type of Server: Local User Access > Next

Certification Authority: TeikoVPN CA > Next

Certificate: vpnroadwarrior

Choose a Server Certificate > Add New Certifcate

Descriptive name: TeikoVPNRoadwarrior Server Cert

Key length: 2048bits
Lifetime: 3650
Country Code: DE
State or Province: BadenWuerttemberg
City: Suttgart

Organization: Teiko
Email: musterbeispielemail@teiko.org

NEXT

General OpenVPN Server Information:
Interface: WAN
Protocol: UDP
Local Port: 1194
Description: TeikoVPNRoadwarrior

TLS Authentication: Yes Enable authentication of TLS packets.
Generate TLS Key: Yes
DH Parameters Length: 1024 bit
Encryption Algorithm: BF-CBC (128bit)
Hardware Crypto: No Hardware… (Leider Nein schluchz)

Tunnel Network: 10.0.8.0/24
Local Network:: 192.168.1.0/24 (Achtung… eigenes Heimnetzwerk eingeben)
Concurrent Connections: 2
Compression: YES
Dynamic IP: YES
Address Pool: YES

NEXT

Firewall Rule: YES Add a rule to permit traffic from clients on the Internet to the OpenVPN server process.

OpenVPN rule: YES Add a rule to allow all traffic from connected clients to pass across the VPN tunnel

Finish !!!

Geschafft.

Exportieren der OpenVPN-Einstellungen für Android

Um das Zertifikat zu exportieren nutzt man das am Anfang installierten Paket OpenVPN Client Export Utility. Dies findet man unter OpenVPN > Client Export.
Hier ist bei einer dynamisch vergebenen IP ganz wichtig darauf zu achten unter Host Name Resolution in dem Menü den DynDNS-Namen auszuwählen, da sonst die IP für das Zertifikat genommen wird. Die wirklich sexy anmutende Idee doch den DynDNS-Namen bei dem DNS-Server bei seinem Webhoster als CNAME einzutragen und jene FQDN zu nehmen funktioniert nicht, dies einmal vorab. Somit, DynDNS-Namen nehmen, oder den ISP um eine IPv6-Adresse auf Lebenszeit bitten.

Bei dem Export ist  Inline Configurations > OpenVPN Connect (iOS/Android)  jeder anderen Option vorzuziehen, da es sonst zu Fehlern kommen kann. Die Datei speichert man ab und schickt sie sich für den späteren Import per Mail auf das Telefon, packt sie auf die SDCard, den internen Speicher etc.
Ein Import als Barcode fehlt mir noch bei der später genutzten App. Das wäre mal was.

Importieren der OpenVPN-Einstellungen in Android

OpenVPN auf dem Smartphone öffnen und per unten Rechts angezeigten Ordner die exportierten OpenVPN-Einstellungen importieren.

In die Grundeinstellungen gehen und dort den Benutzernamen, sowie das Passwort eingeben.
Als nächstes in IP und DNS in OpenVPN die PullSettings auf An schalten.

Wer nun sein OpenVPN testen möchte, sollte sein WLAN ausschalten, 3G/LTE vom Provider nutzen und das eben erstellte Profil anklicken.Vorraussetzungen

Wer mehr zu den Thema pfSense in den Artikeln auf meinem Blog und natürlich auf der Homepage von pfSense.
Ich gebe keinen kostenlosen Support.
pfSense und OpenVPN für Android Smartphones
Markiert in:                             

2 Gedanken zu „pfSense und OpenVPN für Android Smartphones

  • 2016-09-28 um 19:16
    Permalink

    Hallo,

    vielleicht kannst Du mir auf die Sprünge helfen, habe nach Deiner Anleitung OpenVPN eingerichtet. Mein Smartphone bekommt eine IP von meiner pfsense. (10.0.8.2) Wenn ich vom Smartphone meinen PC (172.29.174.99) anpinge geht der nicht durch, von der pfsense kann ich das Smartphone anpingen, vom PC aus nicht. Muss ich noch irgendwo was freigeben. Sehe nur noch Kreise……
    Danke

    Antworten
    • 2016-09-28 um 20:02
      Permalink

      Hallo Christian,

      also beide Hosts sind ja schon einmal in verschiedenen Netzen, 10.0.x.x und 172.29.x.x sind schon sehr verschiedene Netze.
      Mein internes Netzerk ist 10.10.10.0, Subnetmask 255.255.255.0, vergeben wird von 10.10.10.110 bis 10.10.10.200 und alles darunter sind feste Leases.
      OpenVPN bekommt 10.10.8.0/24 Inter-client communication ist erlaubt. Redirect Gateway Force all client generated traffic through the tunnel ist auch gesetzt.

      Somit, im gleichen Netz, dann wird es auch etwas mit dem Zugriff.
      LG

      Antworten

Schreibe einen Kommentar zu Christian Beilfuß Antworten abbrechen

You have to agree to the comment policy.