Einführung
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 externen Host und einem CX vServer aufgebaut. Es können dann auf beiden Seiten die öffentlichen IPs verwendet werden.
Dieses Tutorial sollte auch auf Cloud-Servern funktionieren.
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 stopAnschließ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::2Es 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 startBob
Pakete installieren:
# apt-get install strongswan
# ipsec stopAnschließ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::2Anschließ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 startTest
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/128Mittels 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 116Fazit
Inzwischen sollten Sie in der Lage sein, eine IPSec-Verbindung auf einem virtuellen Server mit NAT zu installieren.