OpenVPN Tunnel zum externen Server



  • Hallo,

    ich hatte vor 2-3 Wochen schonmal versucht anzufangen aber das ist leider nicht weiter gekommen.

    Mein Netzwerk:
    –-------------
    SAT-Modem - pfSense - Lan

    Externer Server bei Hetzner wo ich OpenVPN drauf habe.

    Mein Wunsch:

    Da auf dem SAT-Internet kein Ports offen sind, soll pfSense sich als Client an meinem externen OpenVPN Server anmelden.
    Wenn ich unterwegs bin melde ich mich mit dem Lappi auch auf dem xternen OpenVPN Server an und komme dann in mein Home Lan.
    Der Lan -> Internet Traffic soll aber nicht durch den Tunnel gehen.

    Aktuelle Stand:

    pfSense meldet sich als Client an. Siehe pic1.png

    Wie geht es jetzt weiter?

    Danke,
    Markus



  • Moderator

    Eigentlich wars das schon - zumindest meiner Meinung nach. Deine pfSense zu Hause ist OpenVPN Client gegenüber deinem externen Server. Beim Server musst du lediglich erlauben, dass eingewählte VPN Teilnehmer miteinander reden dürfen (wenn du dich also per OpenVPN zum Server verbindest und bspw. die 10.8.0.7 bekämst, dass du mit der 10.8.0.6 reden darfst).

    Dann solltest du die pfSense auf 10.8.0.6 erreichen können. Anschließend könntest du testweise auf einen Server aus deinem Heimnetz, so du einen hast, bspw. eine HTTP Weiterleitung machen. Dazu als Interface OpenVPN auswählen, damit das NAT-Forwarding auf dem VPN Interface greift und wenn du dann bspw 10.8.0.6:80 aufrufst, sollte theoretisch dein Heim-Webserver antworten.

    Grüße



  • Hallo,

    möchte das nochmal hoch holen da ich es bis jetzt nicht geschaft habe folgendes zu erreichen.

    Mein Home Netzwerk mit pfSense ist über SAT Internet angebunden. Leider keine feste IP und die Ports sind auch alle dicht.

    Habe das mal in ein Bild gezeichnet wie ich es mir wünschen würde.
    Möchte gerne von Unterwegs per VPN auf meine Rechner zugreifen können.

    Wer kann mir dabei helfen? Den OpenVPN Server richtig einzurichten (läuft bei Hetzner) und auch die PfSense einrichten.
    Ich würde das ganze dann auch in ein Tutorial packen und hier offen legen.

    Danke,
    Markus




  • Hi ljmarkus,

    wie JeGr schon geschrieben hat liegt das "problem" (wenn es überhaupt eines gibt) am OpenVPN Server welcher Du bei Hetzner hast.
    Bekommen alle Clients eine IP aus dem selben Bereich und können die Clients untereinander kommunizieren ?

    Ohne Logs/Configs/Fehler können wir leider nicht groß helfen.



  • Guten Morgen,

    hier das Log von der pfSense:

    
    Jul 15 09:01:02 	openvpn[70496]: OpenVPN 2.3.2 i386-portbld-freebsd8.3 [SSL (OpenSSL)] [LZO] [eurephia] [MH] [IPv6] built on Mar 27 2014
    Jul 15 09:01:02 	openvpn[70496]: WARNING: using --pull/--client and --ifconfig together is probably not what you want
    Jul 15 09:01:02 	openvpn[70496]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
    Jul 15 09:01:02 	openvpn[70496]: NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
    Jul 15 09:01:02 	openvpn[70766]: UDPv4 link local (bound): [AF_INET]*.*.*.*
    Jul 15 09:01:02 	openvpn[70766]: UDPv4 link remote: [AF_INET]*.*.*.*:1194
    Jul 15 09:01:17 	openvpn[70766]: [openvpn] Peer Connection Initiated with [AF_INET]*.*.*.*:1194
    Jul 15 09:01:20 	openvpn[70766]: TUN/TAP device ovpnc2 exists previously, keep at program end
    Jul 15 09:01:20 	openvpn[70766]: TUN/TAP device /dev/tun2 opened
    Jul 15 09:01:20 	openvpn[70766]: do_ifconfig, tt->ipv6=1, tt->did_ifconfig_ipv6_setup=0
    Jul 15 09:01:20 	openvpn[70766]: /sbin/ifconfig ovpnc2 10.8.0.6 10.8.0.5 mtu 1500 netmask 255.255.255.255 up
    Jul 15 09:01:20 	openvpn[70766]: /usr/local/sbin/ovpn-linkup ovpnc2 1500 1542 10.8.0.6 10.8.0.5 init
    Jul 15 09:01:20 	openvpn[70766]: ERROR: FreeBSD route add command failed: external program exited with error status: 1
    Jul 15 09:01:20 	openvpn[70766]: ERROR: FreeBSD route add command failed: external program exited with error status: 1
    Jul 15 09:01:20 	openvpn[70766]: Initialization Sequence Completed
    
    

    hier meine server.conf

    
    port 1194
    
    proto udp
    
    dev tun
    
    ca /etc/openvpn/easy-rsa2/keys/ca.crt
    cert /etc/openvpn/easy-rsa2/keys/openvpn.crt
    key /etc/openvpn/easy-rsa2/keys/openvpn.key
    
    dh /etc/openvpn/easy-rsa2/keys/dh1024.pem
    
    server 10.8.0.0 255.255.255.0
    
    ifconfig-pool-persist ipp.txt
    
    comp-lzo
    
    user nobody
    group nogroup
    
    persist-key
    persist-tun
    
    status openvpn-status.log
    
    verb 3
    
    push "route 192.168.178.0 255.255.255.0"
    
    

    hier mal ein Bild von pfSense OpenVPN Client Einstellungen.

    Danke, Markus




  • In deiner Config fehlt die client-to-client section.
    Damit erlaubst Du den Traffic unter den Clients. Per default können Client nur bis zum Server.

    –> https://openvpn.net/index.php/open-source/documentation/howto.html

    
    Uncomment out the client-to-client directive if you would like connecting clients to be able to reach each other over the VPN. By default, clients will only be able to reach the server.
    
    

    Des weiteren sollten wir wissen wo Du jetzt hinkommst und wo nicht.
    Poste bitte einen tracert/traceroute von den Clients zum Server und vom Client zum Client nachdem Du die "client-to-client" aktiviert hast.

    Da auf dem SAT-Internet kein Ports offen sind

    Ansonsten würde ich da nochmals beim Provider nachfragen. Ein Port würde Dir ja schon langen…



  • Hallo,

    in der server.conf habe ich jetzt client-to-client eingetragen und reboot ausgefüht.

    Habe dann versucht von meinem Laptop (Mobilfunk) mich per VPN auf dem Hetzner Server verbunden.

    tracert 192.168.178.254 auf die pfSense IP:

    
    $ tracert 192.168.178.254
    
    Routenverfolgung zu 192.168.178.254 ▒ber maximal 30 Abschnitte
    
      1    82 ms    78 ms    78 ms  10.8.0.1
      2     *        *        *     Zeit▒berschreitung der Anforderung.
      3     *        *        *     Zeit▒berschreitung der Anforderung.
      4     *        *        *     Zeit▒berschreitung der Anforderung.
      5     *        *        *     Zeit▒berschreitung der Anforderung.
    
    

    lg, markus


  • Moderator

    Hallo Markus,

    ich würde nach der Verbindung erstmal die Routen ausgeben lassen, ob du denn die pfSense erreichen kannst. Also ob 192.168.178.254 überhaupt gepusht wurde. Ansonsten weiß dein Rechner bzw. der VPN Server wenig damit anzufangen. Wenn das passt, müsstest du auf der pfSense auf dem VPN Interface auch mal schauen, ob du dort überhaupt ankommenden Traffic (und Pings) erlaubst oder nicht :)

    Grüße
    Jens



  • Hallo Jens,

    wie komme ich an die Infos die du brauchst?

    Danke, Markus


  • Moderator

    Zu den Routen:

    Wenn das Laptop mit VPN verbunden ist, sollte unter Windows "route print" und unter Linux "ip r"  weiterhelfen. Auf pfSense Seite solltest du bei den Filterregeln auf dem OpenVPN Tab mal nachsehen, ob da eingehend überhaupt was erlaubt wird :)

    Grüße



  • Hallo,

    unter Windows wenn ich mit dem OpenVpn Server verbunden bin:

    
    $ route print
    ===========================================================================
    Schnittstellenliste
     18...00 ff ad f3 e7 7a ......TAP-Windows Adapter V9
     16...ac 72 89 bd 38 15 ......Microsoft Virtual WiFi Miniport Adapter #2
     15...ac 72 89 bd 38 15 ......Microsoft Virtual WiFi Miniport Adapter
     14...ac 72 89 bd 38 14 ......Intel(R) Centrino(R) Wireless-N 1030
     13...00 26 2d ca 69 a3 ......Atheros AR8151 PCI-E Gigabit Ethernet Controller (NDIS 6.20)
     12...ac 72 89 bd 38 18 ......Bluetooth-Ger▒t (PAN)
     21...08 00 27 00 5c f8 ......VirtualBox Host-Only Ethernet Adapter
      1...........................Software Loopback Interface 1
     31...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter
     32...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #2
     29...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #3
     20...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #4
     17...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
     30...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #5
     33...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #6
     28...00 00 00 00 00 00 00 e0 Microsoft-ISATAP-Adapter #7
    ===========================================================================
    
    IPv4-Routentabelle
    ===========================================================================
    Aktive Routen:
         Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
              0.0.0.0          0.0.0.0    192.168.101.1   192.168.101.12     20
             10.8.0.0    255.255.255.0         10.8.0.9        10.8.0.10     30
             10.8.0.8  255.255.255.252   Auf Verbindung         10.8.0.10    286
            10.8.0.10  255.255.255.255   Auf Verbindung         10.8.0.10    286
            10.8.0.11  255.255.255.255   Auf Verbindung         10.8.0.10    286
            127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1    306
            127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1    306
      127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
         192.168.56.0    255.255.255.0   Auf Verbindung      192.168.56.1    276
         192.168.56.1  255.255.255.255   Auf Verbindung      192.168.56.1    276
       192.168.56.255  255.255.255.255   Auf Verbindung      192.168.56.1    276
        192.168.101.0    255.255.255.0   Auf Verbindung    192.168.101.12    276
       192.168.101.12  255.255.255.255   Auf Verbindung    192.168.101.12    276
      192.168.101.255  255.255.255.255   Auf Verbindung    192.168.101.12    276
        192.168.178.0    255.255.255.0         10.8.0.9        10.8.0.10     30
            224.0.0.0        240.0.0.0   Auf Verbindung         127.0.0.1    306
            224.0.0.0        240.0.0.0   Auf Verbindung      192.168.56.1    276
            224.0.0.0        240.0.0.0   Auf Verbindung    192.168.101.12    276
            224.0.0.0        240.0.0.0   Auf Verbindung         10.8.0.10    286
      255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
      255.255.255.255  255.255.255.255   Auf Verbindung      192.168.56.1    276
      255.255.255.255  255.255.255.255   Auf Verbindung    192.168.101.12    276
      255.255.255.255  255.255.255.255   Auf Verbindung         10.8.0.10    286
    ===========================================================================
    St▒ndige Routen:
      Keine
    
    IPv6-Routentabelle
    ===========================================================================
    Aktive Routen:
     If Metrik Netzwerkziel             Gateway
      1    306 ::1/128                  Auf Verbindung
     21    276 fe80::/10                Auf Verbindung
     21    276 fe80::/64                Auf Verbindung
     21    276 fe80::1de:6816:ed7c:4167/128
                                        Auf Verbindung
      1    306 ff00::/8                 Auf Verbindung
     21    276 ff00::/8                 Auf Verbindung
    ===========================================================================
    St▒ndige Routen:
     If Metrik Netzwerkziel             Gateway
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
      0 4294967295 fe80::/10                Auf Verbindung
    ===========================================================================
    
    

    Hier wird die Route nach 192.168.178.0/24 richtig eingetragen so wie ich das sehe.

    In der pfSense unter Firewall->Rules->OpenVPN habe ich folgenden Eintrag:
    Proto: IPv4 *
    Source: *
    Port: *
    Destination: *
    Port: *
    Gateway: *
    Quene: *
    Schedule: leer

    lg, markus


  • Moderator

    OK dann ein Schritt zurück: Kann denn dein OVPN Server überhaupt dich zu Hause (den pfSense Client) anpingen bzw. damit irgendwie reden?



  • Hallo.

    also Ping vom Server zur pfSense geht:

    
    root@openvpn ~ # ping 10.8.0.6
    PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
    64 bytes from 10.8.0.6: icmp_req=1 ttl=64 time=671 ms
    64 bytes from 10.8.0.6: icmp_req=2 ttl=64 time=631 ms
    64 bytes from 10.8.0.6: icmp_req=3 ttl=64 time=670 ms
    64 bytes from 10.8.0.6: icmp_req=4 ttl=64 time=630 ms
    64 bytes from 10.8.0.6: icmp_req=5 ttl=64 time=668 ms
    ^C
    --- 10.8.0.6 ping statistics ---
    6 packets transmitted, 5 received, 16% packet loss, time 5003ms
    rtt min/avg/max/mdev = 630.256/654.340/671.513/19.367 ms
    
    

    Danke, Markus


  • Moderator

    Gut, pfSense auf Server auch?  (sollte)
    Und wo ist 192.168.178.x? Hinter der pfSense in deinem LAN?



  • Hallo,

    Die pfSense mit bin auf 10.8.0.1 (openvpn server) geht auch.

    Die 192.168.178.254 ist mein pfSense im Lan und die PC's sind auch im 192.168.178.0/24.

    lg, markus



  • Hallo,

    hier mal ein Update:

    Der Tunnel von "Windows Client" und "pfSense Client" zum VPN Server steht.

    Leider habe ich noch das Routing Problem.
    Ein Zugriff durch den Tunnel auf die 192.168.178.0/24 funktioniert nicht.

    Anbei die aktuelle Config:

    Server:

    
    ;local a.b.c.d
    
    port 443
    
    proto tcp
    
    dev tun
    
    ca /etc/openvpn/easy-rsa2/keys/ca.crt
    cert /etc/openvpn/easy-rsa2/keys/openvpn.crt
    key /etc/openvpn/easy-rsa2/keys/openvpn.key
    
    dh /etc/openvpn/easy-rsa2/keys/dh1024.pem
    
    server 10.8.0.0 255.255.255.0
    
    ifconfig-pool-persist ipp.txt
    
    comp-lzo
    
    keepalive 10 120
    
    user nobody
    group nogroup
    
    persist-key
    persist-tun
    
    status openvpn-status.log
    
    verb 3
    
    route 192.168.178.0 255.255.255.0
    
    ;push "route 192.168.178.0 255.255.255.0"
    client-to-client
    
    

    Windows Client:

    
    client
    
    dev tun
    
    proto tcp
    
    remote SERVER_IP 443
    
    resolv-retry infinite
    
    nobind
    
    persist-key
    persist-tun
    
    ca ca.crt
    cert client1.crt
    key client1.key
    
    ns-cert-type server
    
    comp-lzo
    
    verb 3
    
    route 192.168.178.0 255.255.255.0
    
    

    und als Bild die Client Config der pfSense.

    Danke,
    Markus



  • Moderator

    Ich mag mich irren, aber in der Windows Client Konfiguration kommt mir die Route am Ende schräg vor.

    route 192.168.178.0 255.255.255.0

    Das erzeugt doch eine Route zum OVPN Server. Die muss aber auf die IP zeigen, die deine Home-pfSense beim einwählen auf dem VPN Server hat. Sonst kommt sie da ja nie an.

    Was mich zudem wunderte schon im Screenshot: Warum ist das Gateway vom Windows Server nach der Einwahl .9 und der Client .10? Wie sieht es bei der pfSense aus? Das sieht nämlich so aus, als würdest du kleine Mini-Subnetze im 10.8.0er Netz pro Einwahl aufmachen. Es sollte aber m.W. auch anders gehen, dass der Server EIN Gateway stellt (10.8.0.1/2) und jeder Client dann aufsteigende IPs hat (.3, .4, .5) aber das gleiche Gateway. Dann sollten die sich auch gegenseitig sehen können.

    Grüße