VPN Bintec zu Linux: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Pascal (Diskussion | Beiträge) |
Pascal (Diskussion | Beiträge) |
||
| Zeile 155: | Zeile 155: | ||
authorityKeyIdentifier=keyid:always,issuer:always | authorityKeyIdentifier=keyid:always,issuer:always | ||
| + | |||
| + | # CA req Einstellungen | ||
| + | ... | ||
</source> | </source> | ||
Version vom 26. Juli 2011, 07:28 Uhr
Ist-zustand
- ESXi Server zur Simulation der Linux Seite unkonfiguriert vorhanden
- unkonfigurierter Bintec Router
Soll-zustand
- 2 gesicherte Netze sollen über eine verschlüsselte VPN Verbindung miteinander kommunizieren
- Bintec Router - Mit Laptop für Testnetz
- Linux System
- VPN Eigenschaften
- Authentifizierung mittels PSK
- 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
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
- Grundaufbau
- Netzwerkstukur
- Verkabelung
- Bintec Basiskonfiguration ohne VPNs
- VM Installieren
- VPN Aufbau
- Kenndaten
- siehe Datei:Projekt Bintec VPN 1.pdf
- 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)
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
# CA req Einstellungen
...
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