OpenVPN Server und Windows Client mit pfSense

//OpenVPN Server und Windows Client mit pfSense

OpenVPN Server und Windows Client mit pfSense

Da nun eine pfSense installiert wurde, kann noch viel mehr gemacht werden als reines Routing/Firewall. Die Plattform gibt auch eine ganz passable OpenVPN Basis her, auf die wir hier einmal eingehen möchten. Ziel dieser kleinen Anleitung ist, das ein Laptop/PC sich mit dem heimischen Büro/Netzwerk verbinden kann, um gesichert auf Daten oder das Internet zugreifen zu können.

Vorraussetzungen

 

  • IP Grundkonfiguration ist bekannt
    • z.B. Quellnetz A: 192.168.1.0/24
      • Router im Quellnetz: 192.168.1.1
    • z.B. VPN-Netz: 192.168.12.0/24
    • z.B. Zielnetz B: 192.168.2.0/24
      • Router im Zielnetz: 192.168.2.1 (macht DNS und NTP)
      • Zielnetzdomain: remotedomain.local
  • Das Quellnetz verfügt über einen DynDNS Namen bei dynamischen IP Adressen
    (z.B. meinvpnserver.dyndns.org) oder eine feste IP-Adresse.
  • Kurz sich selbst die Frage beantworten ob der Client nur auf bestimmte IP Adressen im Zielnetz zugreifen,
    oder quasi komplett integriert sein soll (z.B. ähnlich einem echten Rechner im Büro).

 

Schnelldurchlauf

  • pfSense Konfigurieren
  • Zertifikate erstellen
  • OpenVPN Server installieren
  • Firewall öffnen
  • Benutzer und Gruppenberechtigung anlegen
  • OpenVPN Client Einstellungen exportierbar machen
  • OpenVPN Client Installieren

 


pfSense Konfigurieren

  1. Grundeinstellungen
    1. System / Advanced / Miscellaneous
      1. PowerD: Ja
      2. Cryptographic Hardware: AES-NI and BSD Crypto Device
      3. Thermal Sensors: AMD K8, K10….
      4. State Killing on Gateway Failure: yes
      5. Save
    2. System / Advanced / Firewall & NAT
      1. Firewall Optimization Options: Conservative
      2. Firewall Maximum Table Entries: 400000
      3. Save

Zertifikate erstellen

  1. CA Zertifikat erstellen
    1. System / Certificate Manager / CAs
    2. Add
      1. Descriptive name: Server-CA
      2. Method: Create an internal Certifacate Authority
      3. Key length (bits): 2049
      4. Digest Algorithm: 256
      5. Lifetime (days): 3650
      6. Country Code: DE
      7. State or Province: NRW
      8. City: ERKRATH
      9. Organization: computing competence
      10. Organizational Unit: IT
      11. Email Address: info@computing-competence.de
      12. Common Name: internal-ca
      13. Save
  2. OpenVPN Server Zertifikat erstellen
    1. System / Certificate Manager/ Certificates
    2. Add
      1. Method: Create an Certificate Signing Request
      2. Descriptive name: OpenVPN Server SR
      3. Country Code: DE
      4. State or Province: NRW
      5. City: ERKRATH
      6. Organization: computing competence
      7. Organizational Unit: IT
      8. Email Address: info@computing-competence.de
      9. Common Name: OpenVPN Server
      10. Certificate Type: Server Certificate
      11. Alternative Names: leer
      12. Save
    3.  Sign
      1. Method: Sign a Certificate Signing Request
      2. Descriptive name: OpenVPN Server
      3. CA to sign with: Server-CA (oben erstellt)
      4. CSR to sign: OpenVPN Server SR (oben erstellt)
      5. Certificate Lifetime (days): 3650
      6. Digest Algorithm: sha256
      7. Certificate Type: Server Certificate
      8. Save
    4. OpenVPN Server SR kann dann gelöscht werden
      Damit sind nun die nötigen Zertifikate erstellt.

 

OpenVPN Server einrichten

  1. OpenVPN Server erstellen
    1. VPN / OpenVPN / Servers
    2.  Add
      1. Disabled: No
      2. Server mode: (Remote Access (SSL/TLS + User Auth)
        Damit braucht man einen Benutzernamen/Kennort UND ein gültiges Zertifikat
      3. Backend for authentication: Local Database
      4. Protocol: UDP on IPv4 only (Oder TCP wenn es zu Problemen kommt)
      5. Device mode: tun
      6. Interface: any
      7. Local port: 1194 (default; kann auch was anders sein)
      8. Description: OpenVPN Server
      9. TLS Configuration: Use a TLS Key
      10. Automatically generate a TLS Key: yes
        Diesen Schlüssel GUT aufbewahren
      11. TLS Key Usage Mode: TLS Authentication
      12. Peer Certificate Authority: Server-CA (den wir oben erstellt haben)
      13. Server certificate: OpenVPN Server (oben erstellt)
      14. DH Parameter Length: 2048
      15. Encryption Algorithm: AES-256-CBC
      16. NCP Algorithms: AES-128-CBC, AES-192-CBC, AES-256-CBC
        Die aussuchen, die auch auch die Hardware Crypto unterstützt werden
      17. Auth digest algorithm: SHA256
      18. Hardware Crypto: BSD cryptodev engine – RSA, DSA, AES-128-CBC, AES-192-CBC, AES-256-CBC
      19. Pv4 Tunnel Network: 192.168.12.0/24
      20. Hier kommt es nun an was ihr machen wollt:
        1. Der verbundene Client soll nur auf einzelne IP Adressen des Zielnetzes zugreifen können (z.b. ein bestimmter Server), aber der normale Internetverkehr geht über den eigenen Router raus.
          1. Redirect IPv4 Gateway: No
          2. Redirect IPv6 Gateway: No
        2. Der verbundene Client soll komplett im Zielnetz teilnehmen können, und der normale Internetverkehr geht ebenfalls über den Router im Zielnetz raus.
          1. Redirect IPv4 Gateway: Yes
          2. Redirect IPv6 Gateway: No
      21. IPv4 Local network(s): leer
      22. Compression: Omit Preference
        Hier kann, wenn es auf Geschwindigkeit denn auf Effizienz ankommt, auch „No LZO Compression“ ausgewählt werden.
      23. Dynamic IP: yes
      24. Topology: Subnet
      25. Hier kommt es nun wieder an was ihr machen wollt:
        1. Der verbundene Client soll nur auf einzelne IP Adressen des Zielnetzes zugreifen können (z.b. ein bestimmter Server), aber der normale Internetverkehr geht über den eigenen Router raus.
          1. DNS Default Domain: no
          2. DNS Server enable: no
          3. Block Outside DNS: no
          4. Force DNS cache update: no
          5. NTP Server enable: no
          6. NetBIOS enable: no
        2. Der verbundene Client soll komplett im Zielnetz teilnehmen können und der normale Internetverkehr geht über den Router im Zielnetz raus.
          1. DNS Default Domain: Yes
          2. DNS Default Domain: remotedomain.local (anpassen!)
          3. DNS Server enable: Yes
          4. DNS Server 1: lokaler DNS Server, z.b. 192.168.2.1
          5. Block Outside DNS; yes
          6. Force DNS cache update: yes
          7. NTP Server enable: yes
          8. NetBIOS enable: no
      26. Custom options: push „route 192.168.2.0 255.255.255.0″
        Damit der OpenVPN Client auch weiß, wo es zum Zielnetz lang geht.
      27. Mit Save abspeichern.

Firewall öffnen

  1. OpenVPN Server von außen erreichbar machen, denn von Haus aus kommt nichts rein:
    1. Firewall / Rules / WAN
    2. Add
      1. Action: Pass
      2. Interface: WAN
      3. Address Family: IPv4
      4. Protocol: UDP
      5. Source: any
      6. Destination: This Firewall (self)
      7. Destination Port Range: OpenVPN (1194)
      8. Description: OpenVPN Server

 

Damit wäre die OpenVPN Server Installation abgeschlossen.

 

Benutzer und Gruppenberechtigung anlegen

  1. Benutzer für OpenVPN anlegen
    1. System / User Manager / Groups
      1. Add
        1. Group name: OpenVPN User
        2. Remote
      2. Save
      3. OpenVPN User Gruppe bearbeiten
        1. Assigned Privileges
        2. Add
          1. User – VPN: IPSec xauth Dialin
        3. Save
    2. System / User Manager / Users
      1. Add
        1. Username: vpnuser
        2. Password: vpnpassword
        3. Group membership: OpenVPN User
        4. Certificate: Yes!
        5. Descriptive name: OpenVPN Client (vpnuser)
        6. Certificate authority: Server-CA
        7. Key length: 2048
        8. Lifetime: 3650
      2. Save

 

 

Damit wäre alles bereit damit sich ein Benutzer (hier der vpnuser) mit dem OpenVPN Server verbinden kann.

OpenVPN Client Einstellungen exportieren

  1. Um Einstellungen aus dem OpenVPN Server exportieren können,
    lohnt sich die Installation eines kleinen Addons, was die Sachen extrem vereinfacht:

    1. System / Package Manager / Available Packages
    2. „pfSense-pkg-openvpn-client-export“ installieren

  1. Einstellungen exportieren:
    1. VPN / OpenVPN / Client Export
      1. Remote Access Server: OpenVPN Server
      2. Host Name Resolution: Other
      3. Host Name: Der DynDNS Name oder die feste IP Adresse
      4. Verify Server CN: Automatic
      5. Hier kommt es nun an was ihr machen wollt:
        1. Der verbundene Client soll nur auf einzelne IP Adressen des Zielnetzes zugreifen können (z.b. ein bestimmter Server), aber der normale Internetverkehr geht über den eigenen Router raus.
          1. Block Outside DNS: No
        2. Der verbundene Client soll komplett im Zielnetz teilnehmen können, und der normale Internetverkehr geht über den Router im Zielnetz raus.
          1. Block Outside DNS; Yes
      6. Unter OpenVPN Clients den Benutzeraussuchen
        und das Paket aussuchen:Current Windows Installer (2.4.4-Ix01)

 

OpenVPN Client Installieren

    1. Das heruntergeladene Paket auf dem Rechner installieren, welches eine VPN Verbindung herstellen soll.
      Die Konfiguration wird automatisch bei der Installation mit hinterlegt.
    2. OpenVPN starten und mit einem Doppelklick auf das Systemsymbol neben der Uhr wird eine Verbindung hergestellt.
      Ob das Kennwort gespeichert werden soll oder nicht ist Geschmackssache.

 

Nun steht dem Zugriff auf das Zielnetz nichts mehr im Wege.
Ein ping z.B. auf die 192.168.2.1 bringt Klarheit ob die Verbindung und Verbindungseinstellungen korrekt sind.

By | 2018-04-03T15:40:32+00:00 April 1st, 2018|Tipps|0 Comments

About the Author:

Inhaber der Firma computing competence und mit Leib und Seele IT-Mensch. Seit C64 Zeiten am Rechner und bietet seit 15 Jahren professionelle IT Dienstleistungen an. Das Hauptaugenmerk liegt dabei auf klassischem Netzwerkdesign, Server, Telefonanlagen oder Firewalls im Linux/UNIX oder Windows Umfeld.