Hetzner - DokuWiki

IPSec-NAT

Inhaltsverzeichnis

IPSec auf CX-vServer mit 1:1 NAT

Zur sicheren Anbindung von Hosts kommt oft IPSec zum Einsatz. Bei der Einrichtung muß beachtet werden, daß bei CX-vServern die öffentliche IP per 1:1 NAT auf eine interne IP umgesetzt wird

In dieser Anleitung wird mit StrongSWAN und Pre-Shared-Keys eine transparente IPSec Verbindung zwischen einem externe Host und eine CX vServer aufgebaut. Es können dann auf beiden Seiten die öffentlichen IPs verwendet werden.

Es sollten grundsätzlich Kennwörter mit einer Länge über 32 Zeichen inklusive Ziffern und Sonderzeichen verwendet werden.

Daten

Host Alice (Endpunkt Host A)

  • System: Debian 8 jessie
  • IPSec: strongswan 5.2.1-6+deb8u2
  • IPv4: 192.0.2.10
  • IPv6: 2001:db8:61:20e1::2

Host Bob (Endpunkt CX vServer)

  • System: Debian 8 jessie
  • IPSec: strongswan 5.2.1-6+deb8u2
  • IPv4: 203.0.113.40
  • IPv4 intern: 172.31.1.100
  • IPv6: 2a01:4f8:db8:c17::2

Installation

Wir bauen direkt 2 Tunnel, einen für IP4, einen für IP6.

Alice

Pakete installieren:

# apt-get install strongswan
# ipsec stop

Anschließend die Datei /etc/ipsec.conf mit entsprechend angepassten Werten anlegen bzw. ändern:

 version 2.0
 #
 config setup
 #
 conn NameDerVerbindung
         type=transport
         keyingtries=0
         authby=secret
         auto=start
         leftid=192.0.2.10
         left=192.0.2.10
         rightid=203.0.113.40
         right=203.0.113.40
 #
 conn NameDerVerbindungSix
         type=transport
         keyingtries=0
         authby=secret
         auto=start
         leftid=2001:db8:61:20e1::2
         left=2001:db8:61:20e1::2
         rightid=2001:db8:c17::2
         right=2001:db8:c17::2

Es gibt ein paar Implementationen von StrongSWAN die sehr genau auf Einrückungen achten. Es sind immer 8 Leerzeichen oder ein Tabulator.

Anschließend die Datei /etc/ipsec.secrets mit entsprechend angepassten Werten anlegen bzw. ändern:

 203.0.113.40 192.0.2.10 : PSK "SuperGeheimesPasswortFuerIp4Tunnel"
 2001:db8:c17::2 2001:db8:61:20e1::2 : PSK "SuperGeheimesPasswortFuerIp6Tunnel"

Anschließend IPSec-Tunnel starten:

# ipsec start

Bob

Pakete installieren:

# apt-get install strongswan
# ipsec stop

Anschließend die Datei /etc/ipsec.conf mit entsprechend angepassten Werten anlegen bzw. ändern:

 version 2.0
 #
 config setup
 #
 conn NameDerVerbindung
         type=transport
         keyingtries=0
         authby=secret
         auto=start
         leftid=203.0.113.40
         left=172.31.1.100
         rightid=192.0.2.10
         right=192.0.2.10
 #
 conn NameDerVerbindungSix
         type=transport
         keyingtries=0
         authby=secret
         auto=start
         leftid=2001:db8:c17::2
         left=2001:db8:c17::2
         rightid=2001:db8:61:20e1::2
         right=2001:db8:61:20e1::2

Anschließend die Datei /etc/ipsec.secrets mit entsprechend angepassten Werten anlegen bzw. ändern:

 192.0.2.10 203.0.113.40 : PSK "SuperGeheimesPasswortFuerIp4Tunnel"
 2001:db8:61:20e1::2 2001:db8:c17::2 : PSK "SuperGeheimesPasswortFuerIp6Tunnel"

Anschließend IPSec-Tunnel starten:

# ipsec start

Test

Nun sollten die Tunnel erfolgreich aufgebaut werden. Die kann man auch in /var/log/syslog bzw. /var/log/auth.log beobachten. Der Befehl

 ipsec status

Sollte eine vergleichbare Ausgabe erzeugen:

 Security Associations (2 up, 0 connecting):
  TemplateTwo[20]: ESTABLISHED 76 minutes ago, 172.31.1.100[203.0.113.40]...192.0.2.10[192.0.2.10]
  TemplateTwo{12}:  INSTALLED, TRANSPORT, ESP in UDP SPIs: c5b8b7f7_i ccf37767_o
  TemplateTwo{12}:   172.31.1.100/32 === 192.0.2.10/32
 TemplateTwoSix[19]: ESTABLISHED 82 minutes ago, 2001:db8:c17::2[2001:db8:c17::2]...2001:db8:61:20e1::2[2001:db8:61:20e1::2]
 TemplateTwoSix{11}:  INSTALLED, TRANSPORT, ESP SPIs: c5521750_i cbe50d53_o
 TemplateTwoSix{11}:   2001:db8:c17::2/128 === 2001:db8:61:20e1::2/128

Mittels tcpdump sollte man die ESP Pakete sehen können (einfacher Ping)

 13:42:53.000336 IP 203.0.113.40.ipsec-nat-t > 192.0.2.10.ipsec-nat-t: UDP-encap: ESP(spi=0xccf37767,seq=0x516), length 116


© 2018. Hetzner Online GmbH. Alle Rechte vorbehalten.