VPN Bintec zu Linux: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 101: Zeile 101:
 
=== Zertifikate erstellen ===
 
=== Zertifikate erstellen ===
 
==== CA Erstellen ====
 
==== CA Erstellen ====
 +
/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
 +
</source>
 +
 
Makefile
 
Makefile
 
<source lang="Make">
 
<source lang="Make">
  
 
</source>
 
</source>
 +
 
==== Zertifikate erstellen ====
 
==== Zertifikate erstellen ====
 
=== Konfiguration der Linux Seite ===
 
=== Konfiguration der Linux Seite ===

Version vom 26. Juli 2011, 07:25 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

CA Erstellen

/etc/ssl/openssl.cnf

# 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

Makefile

Zertifikate erstellen

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