Übersicht über die VPN-Variante OVPN

Manual:Interface/OVPN

< Manual:Interface
version

Gültig für RouterOS: v5+

Inhalte

  • 1 Zusammenfassung
  • 2 OVPN Client
    • 2.1 Eigenschaften
    • 2.2 Beispiel
  • 3 OVPN Server
    • 3.1 Server-Konfiguration
  • 4 Überwachung
  • 5 Anwendungs-Beispiel
    • 5.1 Übersicht über die Einrichtung
    • 5.2 Zertifikate erstellen
    • 5.3 Server Konfiguration
    • 5.4 Client Konfiguration

1 Zusammenfassung

Standards:
Package: ppp

OVPN Merkmale die aktuelle nicht unterstützt werden:

  • UDP Modus
  • LZO Datenkompression
  • TLS Authentifizierung
  • Authentifizierung ohne Nutzername/Passwort

2 OVPN Client

Sub-menu: /interface ovpn-client

2.1 Eigenschaften

Property Description
add-default-route (yes | no; Default: no) Um eine OVPN Remote Adresse als Standard Route hinzuzufügen
auth (md5 | sha1; Default: sha1) Erlaubte Authentifikations-Methoden.
certificate (string | none; Default: none) Name des Client-Zertifikats, welches in die certificate list importiert wurde.
cipher (aes128 | aes192 | aes256 | blowfish128; Default: blowfish128) erlaubte Ziffern.
comment (string; Default: ) Möglichkeit um Nachrichten an Interfaces/Einträgen zu hinterlassen
connect-to (IP; Default: ) Remote Adresse des OVPN Servers.
disabled (yes | no; Default: yes) Aktivierung und Deaktivierung eines Interfaces. Standardmäßig ist der Eintrag auf deaktiviert.
mac-address (MAC; Default: ) MAC-adress des OVPN Interfaces. Wird automatisch generiert, wenn sie nicht vorgegeben wird.
max-mtu (integer; Default: 1500) Maximum Transmission Unit. Max Paketgröße, mit der das OVPN Interface senden kann, ohne das Pakete fragmentiert werden.
mode (ip | ethernet; Default: ip) Layer3 oder layer2 Tunnelmodus (alternativ tun, tap)
name (string; Default: ) gesetzter Name eines Interfaces.
password (string; Default: “”) Passwort, welches für die Authentifizierung genutzt wird.
port (integer; Default: 1194) Port auf welchem man sich verbindet.
profile (name; Default: default) Genutzte PPP profile.
user (string; Default: ) Nutzername, welcher für die Authentifizierung genutzt wird.

2.2 Beispiel

Das Beispiel zeigt, wie man einen OVPN Client mit Nutzernamen “test” und dem Password “123”, sowie dem Server 10.1.101.1 aufsetzt.

[admin@bumba] /interface ovpn-client> add connect-to=10.1.101.1 user=test password=123 disabled=no 
[admin@bumba] /interface ovpn-client> print 
Flags: X - disabled, R - running 
 0    name="ovpn-out1" mac-address=FE:7B:9C:F9:59:D0 max-mtu=1500 connect-to=10.1.101.1 
      port=1194 mode=ip user="test" password="123" profile=default certificate=none auth=sha1 
      cipher=blowfish128 add-default-route=no 

3 OVPN Server

Sub-menu: /interface ovpn-server

In diesem Untermenü werden die Interfaces für jeden verbundenen OVPN Client angezeigt.

Für jeden zum Server aufgebauten Tunnel wird ein Interface angelegt. In der OVPN Server Konfiguration gibt es zwei verschiedene Arten von Interface-Typen.

  • Statische Interfaces werden administrativ hinzugefügt, wenn es erforderlich ist auf einen speziellen Interface-Namen zu verweisen (z.B. in Firewallregeln oder anderweitig) welcher für den entsprechenden Nutzer angelegt wurde.
  • Dynamische Interfaces werden immer dann automatisch zur Liste hinzugefügt, wenn sich ein Nutzer verbunden hat und sein Nutzernamen nicht in der Liste mit statischen Einträgen vorhanden ist oder bereits ein Interface mit diesem Namen aktiv ist, da es keine zwei aktiven Tunnel mit ein und demselben Namen geben kann.

Dynamische Interface erscheinen, wenn sich ein Nutzer verbindet und verschwindet auch wieder, wenn der Nutzer die Verbindung schließt. Es ist also unmöglich, auf diesen Tunnel in der Routerkonfiguration zu verweisen (z.B. in der Firewall) da für gleichbleibende Regeln in Bezug auf einen Nutzer zwingend ein statischer Eintrag vorliegen muss. Abgesehen davon ist es sicher, eine dynamische Konfiguration zu nutzen.

Hinweis: In beiden Fällen müssen PPP Nutzer sorgfältig konfiguriert werden. Statische Einträge ersetzen nicht gleichzeitig die PPP Konfiguration.

3.1 Server-Konfiguration

Sub-menu: /interface ovpn-server server

Eigenschaften:

Property Description
auth (sha1 | md5; Default: sha1,md5) Authentifizierungsmethoden, die vom Server akzeptiert werden.
certificate (name | none; Default: none) Name des Zertifikats, welches der OVPN Server nutzen wird.
cipher (aes128 | aes192 | aes256 | blowfish128; Default: aes128,blowfish128) Erlaubte Ziffern.
default-profile (name; Default: default) genutztes Standard-Profil.
enabled (yes | no; Default: no) Gibt an, ob der OVPN Server aktiv ist oder nicht.
keepalive-timeout (integer | disabled; Default: 60) Gibt die Zeitperiode an (in Sekunden) nach der der Router jede Sekunde ein Keepalive Paket sendet. Wenn kein Traffic und keine Keepalive Antwort für die Zeitperiode zurückkommt (z.B. 2 * Keepalive-Timeout), wird die Verbindung zum nicht antwortenden Client beendet
mac-address (MAC; Default: ) Automatisch generierte MAC-Adresse des Servers.
max-mtu (integer; Default: 1500) Maximum Transmission Unit. Max Paketgröße, mit der das OVPN Interface senden kann ohne dass die Pakete fragmentiert werden.
mode (ip | ethernet; Default: ip) Layer3 oder layer2 Tunnel-Modus (alternativ tun, tap)
netmask (integer; Default: 24) Subnetzmaske, welche beim Client zur Anwendung kommt.
port (integer; Default: 1194) Port auf dem der Serverdienst läuft.
require-client-certificate (yes | no; Default: no) Wenn man hier yes einstellt, prüft der Server, ob das Client-Zertifikat zum selben Zertifikats-Kanal gehört.
[admin@bumba] /interface ovpn-server server set enabled=yes 
[admin@bumba] /interface ovpn-server server set certificate=server 
[admin@bumba] /interface ovpn-server server print 
                     enabled: yes
                        port: 1194
                        mode: ip
                     netmask: 24
                 mac-address: FE:A5:57:72:9D:EC
                     max-mtu: 1500
           keepalive-timeout: 60
             default-profile: default
                 certificate: server
  require-client-certificate: no
                        auth: sha1,md5
                      cipher: blowfish128,aes128

Warnung: Es ist sehr wichtig, dass das Datum, welches auf dem Router hinterlegt ist, aktuell gehalten wird und sich im Zeitrahmen des Ablaufdatums des installierten Zertifikats bewegt. Damit es hier nicht zu Problemen bei der Verifikation von Zertifikaten kommt, sollte man die NTP Datensynchronisation auf Server und Client aktivieren.

4 Überwachung

Um den Verbindungsstatus des Tunnels auf Server und Client zu überwachen, nutzt man das Monitor Kommando.

[admin@dzeltenais_burkaans] /interface ovpn-server monitor 0
     status: "connected"
     uptime: 17m47s
  idle-time: 17m47s
       user: "test"
  caller-id: "10.1.101.18:43886"
        mtu: 1500

Read-only Eigenschaften

Property Description
status () Aktueller Status. Andere Werte als “connected” deuten auf ein Problem bei der Herstellung des Tunnels hin.
uptime (time) Vergangenen Zeit, seitdem der Tunnel hergestellt wurde.
idle-time (time) Vergangene Zeit, seit der letzten Aktivität im Tunnel.
user (string) Nutzernamen, welcher für die Herstellung des Tunnels genutzt wurde.
mtu (integer) Ausgehandelte und genutzte MTU
caller-id (IP:ID) Quell-IP und Port des Clients.

5 Anwendungs-Beispiel

5.1 Übersicht über die Einrichtung

ipsec-road-warrior

Angenommen, dass die öffentliche IP Adresse des Offices 2.2.2.2 ist und man zwei Remote OVPN Clients Zugang zu 10.5.8.20 und dem 192.168.55.0/24 Netzwerk hinter dem Office Gateway gewähren will.

5.2 Zertifikate erstellen

Alle Zertifikate können auf dem RouterOS Server erstellt werden, wenn man den Zertifikats-Manager nutzt. Beispiel>>.

Für das einfachste Setup braucht man nur ein OVPN Server Zertifikat.

5.3 Server konfigurieren

Der erste Schritt ist, Nutzer und einen IP Pool anzulegen, von welchem aus Client Adressen vergeben werden.

/ip pool add name=ovpn-pool range=192.168.77.2-192.168.77.254

/ppp profile add name=ovpn local-address=192.168.77.1 remote-address=ovpn-pool
/ppp secret
  add name=client1 password=123 profile=ovpn
  add name=client2 password=234 profile=ovpn

Vorausgesetzt dass das Server Zertifikat ist erstellt und dieses wurde als “server” bezeichnet

/interface ovpn-server server set enabled=yes certificate=server

5.4 Client konfigurieren

RouterOS Client

Da RouterOS kein route-push unterstützt, muss manuell eingetragen werden, welches Netzwerk über den Tunnel erreicht werden soll.

/interface ovpn-client
  add name=ovpn-client1 connect-to=2.2.2.2 user=client1 password=123 disabled=no
/ip route 
  add dst-address=10.5.8.20 gateway=ovpn-client1
  add dst-address=192.168.55.0/24 gateway=ovpn-client1
/ip firewall nat add chain=srcnat action=masquerade out-interface=ovpn-client1

Linux Client konfigurieren

dev tun
proto tcp-client

remote 2.2.2.2 1194

tls-client

user nobody
group nogroup

#comp-lzo # Do not use compression.

# More reliable detection when a system loses its connection.
ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key

mute-replay-warnings

verb 3

cipher BF-CBC
auth SHA1
pull

auth-user-pass auth.cfg 

Die Datei auth.cfg beinhaltet die Kombination aus Nutzernamen/Passwort. In der ersten Zeile muss der Nutzernamen und in der zweiten das Passwort stehen.

client2
234

 

[ Top | Back to Content ]

Dieser Beitrag wurde unter OVPN, Interface abgelegt und mit , , , , , , , , , , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.