Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Настройка IPSec на виртуальных серверах с NAT

profile picture
Author
Hetzner Online
Published
2019-03-08
Time to read
2 minutes reading time

Введение

Для создания безопасного соединения между хостами часто используется IPSec. Во время установки необходимо помнить, что виртуальные серверы CX доступны через 1:1 NAT на внутренний IP.

Это руководство использует StrongSWAN и совместно используемые ключи (PSK) для создания прозрачного соединения IPSec между внешним хостом и виртуальным сервером CX. Публичные IP-адреса могут использоваться с обеих сторон.

Эта процедура также должна работать на облачных серверах.

Данные

Хост Алиса (сервер А)

  • Система: Debian 8 jessie
  • IPSec: strongswan 5.2.1-6+deb8u2
  • IPv4: 192.0.2.10
  • IPv6: 2001:db8:61:20e1::2

Хост Боб (виртуальный сервера СХ )

  • Система: Debian 8 jessie
  • IPSec: strongswan 5.2.1-6+deb8u2
  • IPv4: 203.0.113.40
  • Внутренний IPv4: 172.31.1.100
  • IPv6: 2a01:4f8:db8:c17::2

Установка

Мы создадим два тоннеля: один через IPv4 и еще один через IPv6.

Алиса

Установка пакетов:

# apt-get install strongswan
# ipsec stop

Создание/изменение файла /etc/ipsec.conf с правильными значениями:

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

Некоторые версии StrongSwan используют определенные отступы. В нашем случае это ровно 8 пробелов или один tab.

Создание/изменение файла /etc/ipsec.secrets с правильными значениями:

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

Запуск IPSec-туннеля:

# ipsec start

Боб

Установка пакетов:

# apt-get install strongswan
# ipsec stop

Создание/изменение файла /etc/ipsec.conf с правильными значениями:

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

Создание/изменение файла /etc/ipsec.secrets с правильными значениями:

192.0.2.10 203.0.113.40 : PSK "SuperSecretPasswordForIp4Tunnel"
2001:db8:61:20e1::2 2001:db8:c17::2 : PSK "SuperSecretPasswordForIp6Tunnel"

Запуск IPSec-туннеля:

# ipsec start

Тест

Туннели должны быть успешно созданы. Это можно проверить в /var/log /syslog или /var/log/auth.log.

Команда ipsec status должна показать что-то вроде этого:

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

При помощи tcpdump можно увидеть ESP пакеты (простой пинг):

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

Вывод

Теперь вы можете установить IPSec соединение на виртуальном сервере с NAT.

Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue
Try Hetzner Cloud

Get 20€ free credit!

Valid until: 31 December 2024 Valid for: 3 months and only for new customers
Get started
Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more