Windows Azure Pack. Настройка Site-To-Site VPN на примере LibreSwan.
В сети достаточно примеров по настройке Site-to-Site VPN между инсталяцией Windows Azure Pack и Microsoft Azure, но отсутствует внятный мануал по конфигурированию соединения с инфраструктурой клиена. В данной статье мы настроим ipsec тоннель на примере LibreSwan, установленного на сервере OS Linux Centos 6.8, с тенантом хостинг-провайдера.Нам необходимо настроить соединение ipsec по протоколу IKEv2. Авторизация по ключу PSK.
На первом шаге надо выполнить установку LibreSwan:
# yum -y install libreswan
Далее сгенерируем PSK ключ:
# openssl rand -base64 48
avRo9KALoZyCaPvPxnY7CKzWij/XhkY+lcrAxOvIkx4CsuOuegRcbTgkuNeuF6ZZ
Хоть PSK ключ не является паролем, очень важно, чтобы он не попал в руки злоумышленников. Поэтому вы должны быть точно уверены, что никто не перехватит его в момент передачи администратору подписки Windows Azure Pack и не получит в дальнейшем.
Вы так же можете сгенерировать этот ключ любым другим удобным вам способом. Можно просто набрать рандомно на клавиатуре. Рекомендуемая длина - 64 символа.
Теперь приступим к созданию конфигурационных файлов. Наша схема выглядит так:
В терминологии libreswan под "Left" подразумевается локальная среда, а под "Right" - удаленная. В нашем случае это тенант клиента Windows Azure Pack.
IP адрес шлюза WAP (NVGRE) можно посмотреть в настройках сети, для которой активирован NAT:
Конфигурационные файлы LibreSwan находятся в папке "/etc/ipsec.d/". Это файлы настроек (*.conf) и файлы с ключами (*.secrets).
Начнем с создания файла, содержащего PSK ключ, который мы сгенерировали выше:
#vim /etc/ipsec.d/wap.secrets
185.32.224.77 185.65.139.36 : PSK "hZ1stKdkSEHQBFL3izmNbo2h2naNuWBkPZzYVjmE+qtyNVpiI9ViFjD3NrcLXnoc"
В строке мы указали IP адреса, которые будем использовать для создания тоннеля (есть на схеме выше). Теперь создадим сам файл для настроек:
#vim /etc/ipsec.d/wap.config
config setup
protostack=netkey
secretsfile=/etc/ipsec.d/wap.secrets
conn WAP
authby=secret
auto=start
dpdaction=restart
dpddelay=30
dpdtimeout=120
ike=aes256-sha1;modp1024
ikelifetime=10800s
ikev2=yes
keyingtries=3
left=185.32.224.77
leftid=185.32.224.77
leftsubnets=10.70.245.0/24
pfs=yes
phase2alg=aes256-sha1;modp2048
right=185.65.139.36
rightid=185.65.139.36
rightsubnets=192.168.3.0/24
salifetime=3600s
type=tunnel
Далее будет предложено настроить ширину канала для исходящий и входящих соединений - это остается на ваше усмотрение. Проверяем:
На этом настройка Windows Azure Pack завершена. Возвращаемся на наш сервер с LibreSwan и выполняем команды:
# /etc/init.d/ipsec restart
# ipsec auto --add Azure
# ipsec auto --up Azure
После выполнения последней команды мы должны получить приблизительно такой вывод:
000 initiating all conns with alias='Azure'
002 "Azure/1x1" #4: initiating v2 parent SA
133 "Azure/1x1" #4: STATE_PARENT_I1: initiate
133 "Azure/1x1" #4: STATE_PARENT_I1: sent v2I1, expected v2R1
134 "Azure/1x1" #5: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
002 "Azure/1x1" #5: IKEv2 mode peer ID is ID_IPV4_ADDR: '185.65.139.36'
002 "Azure/1x1" #5: negotiated tunnel [192.168.3.0,192.168.3.255:0-65535 0] -> [10.70.245.0,10.70.245.255:0-65535 0]
004 "Azure/1x1" #5: STATE_PARENT_I3: PARENT SA established tunnel mode {ESP=>0xc1b6dcda <0x65878d30 dpd="active}</font" natd="none" natoa="none" xfrm="AES_256-HMAC_SHA1">0x65878d30>
Посмотреть состояние соединения можно выполнив команду:
# ipsec auto status
Теперь проверим, что VPN работает корректно, выполнив ping любого адреса из сети, с которой мы настроили соединение. Это можно выполнить, например, с сервера LibreSwan:
# ping -n -c 3 -I eth1 192.168.3.20
PING 192.168.3.20 (192.168.3.20) from 10.70.245.39 eth1: 56(84) bytes of data.
64 bytes from 192.168.3.20: icmp_seq=1 ttl=126 time=20.8 ms
64 bytes from 192.168.3.20: icmp_seq=2 ttl=126 time=24.8 ms
64 bytes from 192.168.3.20: icmp_seq=3 ttl=126 time=20.8 ms
--- 192.168.3.20 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2024ms
rtt min/avg/max/mdev = 20.812/22.174/24.855/1.903 ms
Пример настройки ipsec на StrongSwan
День добрый. Вы такое подключение, случаем не к облаку DeNoovo пробовали ?
ОтветитьУдалитьДобрый день.
УдалитьНет, activecloud.ru
та вроде у DeNovo то-же Windows Azure pack , но при подключении к ним по этому алгоритму не подключается..
Удалить# ipsec auto --up denovo
000 initiating all conns with alias='denovo'
002 "denovo/6x1" #23: initiating v2 parent SA
133 "denovo/6x1" #23: STATE_PARENT_I1: initiate
002 "denovo/5x1" #24: initiating v2 parent SA
133 "denovo/5x1" #24: STATE_PARENT_I1: initiate
002 "denovo/4x1" #25: initiating v2 parent SA
133 "denovo/4x1" #25: STATE_PARENT_I1: initiate
002 "denovo/3x1" #26: initiating v2 parent SA
133 "denovo/3x1" #26: STATE_PARENT_I1: initiate
002 "denovo/2x1" #27: initiating v2 parent SA
133 "denovo/2x1" #27: STATE_PARENT_I1: initiate
002 "denovo/1x1" #28: initiating v2 parent SA
133 "denovo/1x1" #28: STATE_PARENT_I1: initiate
133 "denovo/6x1" #23: STATE_PARENT_I1: sent v2I1, expected v2R1
133 "denovo/5x1" #24: STATE_PARENT_I1: sent v2I1, expected v2R1
133 "denovo/4x1" #25: STATE_PARENT_I1: sent v2I1, expected v2R1
133 "denovo/3x1" #26: STATE_PARENT_I1: sent v2I1, expected v2R1
133 "denovo/2x1" #27: STATE_PARENT_I1: sent v2I1, expected v2R1
133 "denovo/1x1" #28: STATE_PARENT_I1: sent v2I1, expected v2R1
134 "denovo/6x1" #29: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
003 "denovo/6x1" #29: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/6x1" #29: STATE_PARENT_I2: v2N_INVALID_SYNTAX
134 "denovo/5x1" #30: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
003 "denovo/5x1" #30: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/5x1" #30: STATE_PARENT_I2: v2N_INVALID_SYNTAX
134 "denovo/4x1" #31: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
003 "denovo/4x1" #31: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/4x1" #31: STATE_PARENT_I2: v2N_INVALID_SYNTAX
134 "denovo/3x1" #32: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
003 "denovo/3x1" #32: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/3x1" #32: STATE_PARENT_I2: v2N_INVALID_SYNTAX
134 "denovo/2x1" #33: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
134 "denovo/1x1" #34: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_256 integ=sha1_96 prf=sha group=MODP1024}
003 "denovo/2x1" #33: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/2x1" #33: STATE_PARENT_I2: v2N_INVALID_SYNTAX
003 "denovo/1x1" #34: missing payload(s) (ISAKMP_NEXT_v2SA+ISAKMP_NEXT_v2IDr+ISAKMP_NEXT_v2AUTH+ISAKMP_NEXT_v2TSi+ISAKMP_NEXT_v2TSr). Message dropped.
207 "denovo/1x1" #34: STATE_PARENT_I2: v2N_INVALID_SYNTAX
010 "denovo/6x1" #29: STATE_PARENT_I2: retransmission; will wait 500ms for response
010 "denovo/5x1" #30: STATE_PARENT_I2: retransmission; will wait 500ms for response
010 "denovo/4x1" #31: STATE_PARENT_I2: retransmission; will wait 500ms for response
010 "denovo/3x1" #32: STATE_PARENT_I2: retransmission; will wait 500ms for response
010 "denovo/2x1" #33: STATE_PARENT_I2: retransmission; will wait 500ms for response
010 "denovo/1x1" #34: STATE_PARENT_I2: retransmission; will wait 500ms for response
Можете, чего посоветовать ? :)
ОтветитьУдалитьУ вашего облака плохая техподдержка? Или ее вообще нет?
УдалитьНе видя логов с их стороны, очень сложно диагностировать проблему.
сейчас ответили - будут у себя экспериментировать
ОтветитьУдалитьспаисбо, за ответы.
;)