Inhaltsverzeichnis

IPsec (Internet Protocol Security) ist eine Sammlung von Protokollerweiterungen für das Internet Protokoll (IP). Die Erweiterungen ermöglichen die Verschlüsselung und Authentifizierung der mit IP übertragenen Informationen und sorgen für eine sichere Kommunikation in IP-Netzwerken wie dem Internet. IPsec entstand im Zuge der Entwicklung von IPv6 und ist in verschiedenen aktuellen RFCs spezifiziert. Siehe auch VPN. Siehe auch GRE (Generic routing encapsulation, IPSec Alternative für Tunnel).

Siehe auch GRE.

Interesting traffic

Der Begriff wird verwendet, um festzulegen, welche Datenpakete über die IPSec-Sicherheitsverbindung geschützt werden sollen.

Wenn eine IPSec-Verbindung eingerichtet wird, wird normalerweise festgelegt, welche Art von Datenverkehr als „interesting traffic“ betrachtet wird und über die Verbindung geschützt werden soll. Dies kann anhand verschiedener Kriterien definiert werden, wie beispielsweise basierend auf Quell- und Ziel-IP-Adressen, Protokolltypen oder Portnummern.

Der „interesting traffic“ wird dann von den IPSec-Geräten erkannt und entsprechend den Sicherheitsrichtlinien verschlüsselt und über die IPSec-Verbindung übertragen. Datenverkehr, der nicht als „interesting traffic“ definiert ist, wird normalerweise unverschlüsselt übertragen und nicht von IPSec geschützt.

Funktionsweise

Man kann mit ACLs bestimmen welcher Traffic encryptet wird und welcher nicht. Es gibt Tunnel mode und Transport mode.

Tunnel mode

Ein IP Paket mit einer privaten IP Adresse als Ziel wird dabei vom Edge Router verschlüsselt und als Payload in ein neu generiertes IP Paket eingefügt. Der Edge Router vom Zielnetz entpackt das äußere IP Paket, entschlüsselt das darin enthaltene IP Paket mit den privaten Adressen und stellt es im lokalen Netz zu.

Transport mode

Beim Transport mode wird kein neuer IP Header generiert sondern nur der Payload über Layer 3 des OSI Modells verschlüsselt.

Hauptkomponenten

Siehe Understanding AH vs ESP and ISKAKMP vs IPSec in VPN tunnels (Youtube).

IKE

Siehe IKE.

IKE (Internet Key Exchange) ist das Protokoll, das verwendet wird, um die Sicherheitsparameter zwischen den VPN-Endpunkten zu verhandeln. Dazu gehören die Verschlüsselungs- und Integritätsalgorithmen sowie der Schlüsselaustauschmechanismus. IKE stellt sicher, dass die beteiligten Parteien authentisch sind und die Kommunikation sicher geschützt ist.

Die wichtigsten Aufgaben von IKE sind:

Zusammen mit ESP (Encapsulating Security Payload) oder AH (Authentication Header) bildet IKE eine kritische Komponente eines sicheren IPSec-VPN.

Siehe IPSec Fundamentals (Youtube).

IKE Phase 1 Messages, IKE Phase 1/2 Messages

ESP

Siehe ESP.

ESP (Encapsulating Security Payload) bietet Verschlüsselung und Integritätsschutz für den Datenverkehr, der über das Internet übertragen wird. Es ist eines der Hauptprotokolle von IPSec und sorgt dafür, dass die Daten zwischen den Endpunkten sicher und vertraulich bleiben.

AH

Siehe AH.

IKE nutzt den Authentication Header (AH) um Datenintegrität, Authentifizierung und Anti-Replay-Funktionen für IPSec VPN bereitzustellen. Aber keine Verschlüsselung des Nutztraffic.

Beispiele

Cisco

! R2

int fa0/0
 ip addr 100.0.0.2 255.255.255.0
 no shut
 exit

int fa1/0
 ip addr 192.168.1.1 255.255.255.0
 no shut
 exit

ip route 0.0.0.0 0.0.0.0 100.0.0.1

crypto isakmp policy 1
 encryption aes 256
 authentication pre-share 
 group 2
 hash md5

crypto isakmp key cisco address 200.0.0.2

crypto ipsec transform-set MYSET esp-aes esp-sha-hmac 

access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255

crypto map MYMAP 1 ipsec-isakmp 
 set transform-set MYSET
 set peer 200.0.0.2
 match address 100

int fa0/0
 crypto map MYMAP
! R3

int fa0/0
 ip addr 200.0.0.2 255.255.255.0
 no shut
 exit

int fa1/0
 ip addr 192.168.2.1 255.255.255.0
 no shut
 exit

ip route 0.0.0.0 0.0.0.0 200.0.0.1

crypto isakmp policy 1
 encryption aes 256
 authentication pre-share 
 group 2 
 hash md5

crypto isakmp key cisco address 100.0.0.2

crypto ipsec transform-set MYSET esp-aes esp-sha-hmac

access-list 100 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255

crypto map MYMAP 1 ipsec-isakmp 
 set transform-set MYSET
 set peer 100.0.0.2
 match address 100

int fa0/0
 crypto map MYMAP
show crypto ipsec sa interface fastethernet0/0

Fortigate

# FG1

config system interface 
    edit port1
        set mode static
        set ip 100.0.0.2 255.255.255.0
        set role wan
        set alias "WAN"
    next
    edit port2
        set mode static
        set ip 192.168.1.1 255.255.255.0
        set role lan
        set alias "LAN"
    next
end

config vpn ipsec phase1-interface
    edit to_FG2
        set interface port1
        set peertype any
        set net-device enable
        set proposal aes128-sha256 aes256-sha256 aes128-sha1 aes256-sha1
        set remote-gw 200.0.0.2
        set psksecret sample
    next
end

config vpn ipsec phase2-interface
    edit to_FG2
        set phase1name to_FG2
        set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256 aes128gcm aes256gcm chacha20poly1305
        set auto-negotiate enable
    next
end

config router static
    edit 0
        set device port1
        set gateway 100.0.0.1
    next
    edit 0
        set dst 192.168.2.0 255.255.255.0
        set device to_FG2
    next
end

config firewall address
    edit "subnet_192.168.1.0_24"
        set subnet 192.168.1.0 255.255.255.0
    next
    edit "subnet_192.168.2.0_24"
        set subnet 192.168.2.0 255.255.255.0
    next
end

config firewall policy
    edit 0
        set name "inbound"
        set srcintf to_FG2
        set dstintf port2
        set srcaddr "subnet_192.168.2.0_24"
        set dstaddr "subnet_192.168.1.0_24"
        set action accept
        set schedule "always"
        set service "ALL"
    next
    edit 0
        set name "outbound"
        set srcintf port2
        set dstintf to_FG2
        set srcaddr "subnet_192.168.1.0_24"
        set dstaddr "subnet_192.168.2.0_24"
        set action accept
        set schedule "always"
        set service "ALL"
    next
end
# FG2

config system interface 
    edit port1
        set mode static
        set ip 200.0.0.2 255.255.255.0
        set role wan
        set alias "WAN"
    next
    edit port2
        set mode static
        set ip 192.168.2.1 255.255.255.0
        set role lan
        set alias "LAN"
    next
end

config vpn ipsec phase1-interface
    edit to_FG1
        set interface port1
        set peertype any
        set net-device enable
        set proposal aes128-sha256 aes256-sha256 aes128-sha1 aes256-sha1
        set remote-gw 100.0.0.2
        set psksecret sample
    next
end

config vpn ipsec phase2-interface
    edit to_FG1
        set phase1name to_FG1
        set proposal aes128-sha1 aes256-sha1 aes128-sha256 aes256-sha256 aes128gcm aes256gcm chacha20poly1305
        set auto-negotiate enable
    next
end

config router static
    edit 0
        set device port1
        set gateway 200.0.0.1
    next
    edit 0
        set dst 192.168.1.0 255.255.255.0
        set device to_FG1
    next
end

config firewall address
    edit "subnet_192.168.1.0_24"
        set subnet 192.168.1.0 255.255.255.0
    next
    edit "subnet_192.168.2.0_24"
        set subnet 192.168.2.0 255.255.255.0
    next
end

config firewall policy
    edit 0
        set name "inbound"
        set srcintf to_FG1
        set dstintf port2
        set srcaddr "subnet_192.168.1.0_24"
        set dstaddr "subnet_192.168.2.0_24"
        set action accept
        set schedule "always"
        set service "ALL"
    next
    edit 0
        set name "outbound"
        set srcintf port2
        set dstintf to_FG1
        set srcaddr "subnet_192.168.2.0_24"
        set dstaddr "subnet_192.168.1.0_24"
        set action accept
        set schedule "always"
        set service "ALL"
    next
end

GRE IPSec Tunnel

Zwischen R2 und R3 ist ein GRE Tunnel eingerichtet

#R2
crypto isakmp policy 1
encryption aes 256
authentication pre-share

crypto isakmp key cisco address 200.0.0.2

crypto ipsec transform-set MYSET esp-aes esp-sha-hmac 

ip access-list extended GRE-IN-IPSEC
permit gre any any

crypto map IPSECVPN 10 ipsec-isakmp
match address GRE-IN-IPSEC
set transform-set MYSET
set peer 200.0.0.2

interface fa0/0
crypto map IPSECVPN
#R3
crypto isakmp policy 1
encryption aes 256
authentication pre-share

crypto isakmp key cisco address 100.0.0.2

crypto ipsec transform-set MYSET esp-aes esp-sha-hmac 

ip access-list extended GRE-IN-IPSEC
permit gre any any

crypto map IPSECVPN 10 ipsec-isakmp
match address GRE-IN-IPSEC
set transform-set MYSET
set peer 100.0.0.2

interface fa0/0
crypto map IPSECVPN