VPN Bintec zu Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 100: Zeile 100:
 
; {{RedText|Uhrzeiten und Datum auf allen Geräten kontrollieren und synchronisieren!}}
 
; {{RedText|Uhrzeiten und Datum auf allen Geräten kontrollieren und synchronisieren!}}
 
=== Zertifikate erstellen ===
 
=== Zertifikate erstellen ===
==== CA Erstellen ====
+
Siehe: [[SSL Certificate Authority]]
/etc/ssl/openssl.cnf
 
<source lang="Make">
 
# Globale Variablen
 
DIR= . # Nützliches Macro
 
RANDFILE= ${DIR}/private/.rnd # Entropy Quelle
 
default_md= sha1 # Standard message digest
 
 
 
# CA Abschnitt
 
[ ca ]
 
default_ca= dft_ca # Konfigurationsdateien können mehr als eine CA enthalten
 
# Abschnitt für verschiedene Szenarien.
 
 
 
[ dft_ca ]
 
certificate= ${DIR}/cacert.pem # Das CA Zertifikat.
 
database= ${DIR}/index.txt # Datenbank zur Prüfung gültiger/zurückgezogener Zertifikate.
 
new_certs_dir= ${DIR}/newcerts # Kopieen der signierten Zertifikate
 
private_key= ${DIR}/private/cakey.pem # Der CA Schlüssel.
 
serial= ${DIR}/serial # Sollte mit der Nächsten Zertifikats S/N veröffentlicht werden (Hex)
 
 
 
# Dies regelt die Anzeige der Zertifikate während der Signierung
 
name_opt= ca_default
 
cert_opt= ca_default
 
 
 
default_days= 365 # Wie lange soll das Zertifikat gültig sein
 
default_crl_days=30 # Das selbe für die CRL.
 
 
 
policy= dft_policy # Die Standardrichtlinie
 
x509_extensions=cert_v3 # Für v3 Zertifikate
 
 
 
[ dft_policy ]
 
# 'supplied' - Parameter muss im Zertifikat enthalten sein.
 
# 'match'    - Parameter muss mit CA Wert übereinstimmen.
 
# 'optional' - Parameter ist komplett Optional.
 
 
 
C= supplied # Land
 
ST= supplied # Region
 
L= optional # Ort
 
O= supplied # Organisation
 
OU= optional # Abteilung
 
CN= supplied # Common name
 
 
 
[ cert_v3 ]
 
# Mit Ausnahme von 'CA:FALSE' gibt es PKIX Empfehlungen für Endbenutzer-Zertifikate,
 
# welche nicht in der Lage sein sollten weitere Zertifikate zu unterschreiben.
 
# 'CA:FALSE' ist explizit, weil es sonst zu Softwareproblemen führen kann.
 
 
 
subjectKeyIdentifier= hash
 
basicConstraints= CA:FALSE
 
keyUsage= nonRepudiation, digitalSignature, keyEncipherment
 
 
 
nsCertType= client, email
 
nsComment= "OpenSSL Generated Certificate"
 
 
 
authorityKeyIdentifier=keyid:always,issuer:always
 
 
 
# CA req Einstellungen
 
...
 
</source>
 
 
 
Makefile
 
<source lang="Make">
 
 
 
</source>
 
 
 
==== Zertifikate erstellen ====
 
 
=== Konfiguration der Linux Seite ===
 
=== Konfiguration der Linux Seite ===
 
=== Konfiguration der Bintec Seite ===
 
=== Konfiguration der Bintec Seite ===

Version vom 29. Juli 2011, 07:58 Uhr

Ist-zustand

  • ESXi Server zur Simulation der Linux Seite unkonfiguriert vorhanden
  • unkonfigurierter Bintec Router

Soll-zustand

  1. 2 gesicherte Netze sollen über eine verschlüsselte VPN Verbindung miteinander kommunizieren
    Bintec Router - Mit Laptop für Testnetz
    Linux System
  2. VPN Eigenschaften
    1. Authentifizierung mittels PSK
    2. Austausch des PSK mit Zertifikaten
      Bintec behält feste IP

Kann Optionen

  • Linux Seite bekommt Adressen via DHCP
  • Datenverkehr wird mittels Firewall geregelt

Abgrenzungskriterien

  • Keine Roadwarrior

Netzplan

BILD

Netze

Transitnetz
192.168.240.0/20
Bintec Intern
172.23.47.0/24
Linux Intern
192.168.33.0/24

IPs

Bintec
  • Transit
192.168.253.47
  • Intern
172.23.47.1
  • Client
172.23.47.5
Linux
  • Transit
192.168.248.21
  • Intern
192.168.33.1

Vorgehensweise

  1. Grundaufbau
    Netzwerkstukur
    Verkabelung
    Bintec Basiskonfiguration ohne VPNs
    VM Installieren
  2. VPN Aufbau
    Kenndaten
    siehe Datei:Projekt Bintec VPN 1.pdf
  3. VPN Wechsel zu Zertifikaten
    Kenndaten
    Siehe Datei:Projekt Bintec VPN 2.pdf

Step by Step Anleitung

VPN mit PSK

Konfiguration der Linux Seite

Installation von OpenSwan als IPSec Implementierung

aptitude install openswan

IPSec Konfiguration

Konfiguration der VPN Tunnel

/etc/ipsec.conf

config setup
      protostack=netkey 
      nat_traversal=yes 

conn %default                         # Standartwerte
       left=192.168.248.21            # Eigene externe IP
       leftid=192.168.248.21          # Eigene Gateway ID
       leftsubnet=192.168.33.0/24     # Zu tunnelndes eigenes Netzwerk
       authby=secret                  # Authentifizierungsmethode
       ike=3des-md5-modp1024          # Phase 1 Authentifizierungs-Parameter für Verschlüsselung und Hashes
       esp=3des-md5-96                # Phase 2 Parameter 
       pfs=yes                        # erneute Diffie-Hellman-Methode bei periodischem Schlüsselwechsel
       auto=start                     # VPN Automatisch starten

conn linux-bintec                     # interner Name der VPN Verbindung
       right=192.168.253.47           # VPN Gateway IP der Gegenseite
       rightsubnet=172.23.47.0/24     # via VPN getunneltes Netz der Gegenseite
Einrichtung des gemeinsamen Geheimnisses (PSK)

/etc/ipsec.secrets

192.168.248.21 192.168.253.47 : PSK "meinsicherespasswort"

Start der Konfiguration

/etc/init.d/ipsec start
ipsec setup --restart

Konfiguration der Bintec Seite

(Klicken zum Vergrößern)

IPSec-Peers.jpgIPSec-Peers2.jpg

Phase-1.jpgPhase-1-2.jpg

Phase-2.jpgPhase-2-2.jpg

VPN mit Zertifikaten

Uhrzeiten und Datum auf allen Geräten kontrollieren und synchronisieren!

Zertifikate erstellen

Siehe: SSL Certificate Authority

Konfiguration der Linux Seite

Konfiguration der Bintec Seite

Konvertierung zu PKCS#12 Format

Wichtig Container mit einem Passwort versehen, da Bintec sonst den Import abbricht

# openssl pkcs12 -export -in bintec.crt -inkey bintec.key -certfile ca.crt -out bintec.p12

Zertifikate Importieren

Da wir den Schlüssel mitsamt Zertifikat und CA in einem PKCS#12 Container haben können wir mit

> cert get tftp://tftp-server/path/to/file.p12 belibigebezeichnung

alles mit einem mal Importieren.


Andernfalls muss der Schlüssel in einen PKCS#8 Container.

# openssl pkcs8 -in bintec.key -topk8 -inform pem -out bintec.pk8

Um anschließend einzeln importiert werden zu können.

> key import tftp://tftp-server/path/to/file.pk8 belibigebezeichnung passwort
In der Tabelle ipsecPublicKeyTable wird der Schlüssel angezeigt.
> ipsecPublicKeyTable

Und nun müssen die Zertifikate einzeln geladen werden. Zuerst das Schlüssel-Zertifikat.

Die Bezeichnungen von Schlüssel und Zertifikat müssen übereinstimmen!
> cert get tftp://tftp-server/path/to/file.crt belibigebezeichnung
Achten Sie auf
cert: user certificate detected

Zum Schluss das CA Zertifikat.

> cert get tftp://tftp-server/path/to/ca/file.crt belibigeCAbezeichnung
Achten Sie auf
cert: CA certificate detected
In der CertTable können alle Zertifikate kontrolliert werden.
> certtable

IKE

ESP

Links