Пример настройки SITE-TO-SITE VPN между облаком Azure Pack от ActiveCloud и ALTLinux.
Сервером у нас будет Московское облако ActiveCloud, а ALTLinux будет выступать в качестве клиента, для этого будем использовать пакет strongswan. С точки зрения strongswan клиентская сторона - левая, а серверная (Azure) - правая. Клиентская сеть у нас будет 192.168.90.0/24, а сеть в облаке 192.168.91.0/24.Получается такая схема:
82.209.209.42 это внешний белый IP адрес на Linux машине, а 185.65.139.14 это белый адрес шлюза в облаке Azure, узнать его можно если нажать DASHBOARD в настройках сети:
Первым шагом сгенерируем PSK ключ, сделать это можно на любой линукс машине.
$ openssl rand -base64 48lnQkQm7W2cd7ow6yXpbhzXJsEuCt7IpA6JrAEcmX+4Qh03JTCJE0NE0J0Ub/c5jSДалее настроим все со стороны облака:
1. Переходим в Networks -> "наша сеть" ->SITE-TO-SITE VPN, внизу видим "+" с надписью "CREATE VPN", жмем сюда;
Вводим имя VPN-соединения и внешний IP адрес нашего Linux клиента, а так же ключ который ме сгенерировали ранее:
2. Переходим на следующий шаг. Тут заполняем адресные пространства сетей, которые находятся на стороне клиента, сетей может быть несколько
3 и 4 шаги позволяют ограничить полосы пропускания incomming и outgoing
Жмем на Complite и ждем несколько секунд пока VPN-соединение создается. В результате вы должны будете видеть нечто такое:
Все настройка облачной части закончена, переходим к настройке Linux-машины.
Для начала на клиентском линуксе поставим необходимый пакет:
# apt-get install strongswanДалее запустим его
# service ipsec startПри первом запуске он создаст файл /etc/strongswan/ipsec.secrets
В который мы должны добавить наш PSK ключ, что бы получилось вот так:
[root@sf-srv strongswan]# cat ipsec.secrets: RSA myKey.der185.65.139.14 : PSK lnQkQm7W2cd7ow6yXpbhzXJsEuCt7IpA6JrAEcmX+4Qh03JTCJE0NE0J0Ub/c5jSIP адрес указанный тут, это адрес шлюза в Azure.
Теперь отредактируем /etc/strongswan/ipsec.conf следующим образом:
# ipsec.conf - strongSwan IPsec configuration file# basic configurationconfig setup # strictcrlpolicy=yes # uniqueids = noconn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev2 authby=secretconn Azure left=82.209.209.42 leftsubnet=192.168.90.0/24 leftfirewall=no right=185.65.139.14 rightsubnet=192.168.91.0/24 auto=add type=tunnelНапоминаю, левая часть клиентская, т.е. наш линукс, указываем внешний адрес и leftsubnet, тоже самое с правой частью для Azure.
В основной конфиг /etc/strongswan/strongswan.conf мы должны добавить необходимые модули.
charon { threads = 16 load = aes des sha1 sha2 md5 gmp random nonce hmac stroke kernel-netlink socket-default updown}Теперь перезапускаем ipsec
[root@sf-srv strongswan]# service ipsec restartStopping strongSwan IPsec...Starting strongSwan 5.1.0 IPsec [starter]...!! Your strongswan.conf contains manual plugin load options for charon.!! This is recommended for experts only, see!! http://wiki.strongswan.org/projects/strongswan/wiki/PluginLoadИ поднимаем сам тунель (указываем такое же имя как в конфигурации, т.е. Azure):
[root@sf-srv strongswan]# ipsec up Azureinitiating IKE_SA Azure[1] to 185.65.139.14generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]sending packet: from 82.209.209.42[500] to 185.65.139.14[500] (676 bytes)received packet: from 185.65.139.14[500] to 82.209.209.42[500] (38 bytes)parsed IKE_SA_INIT response 0 [ N(INVAL_KE) ]peer didn't accept DH group MODP_2048, it requested MODP_1024initiating IKE_SA Azure[1] to 185.65.139.14generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) ]sending packet: from 82.209.209.42[500] to 185.65.139.14[500] (548 bytes)received packet: from 185.65.139.14[500] to 82.209.209.42[500] (384 bytes)parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) V V V ]authentication of '82.209.209.42' (myself) with pre-shared keyestablishing CHILD_SA Azuregenerating IKE_AUTH request 1 [ IDi N(INIT_CONTACT) IDr AUTH SA TSi TSr N(MOBIKE_SUP) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(ADD_4_ADDR) N(EAP_ONLY) ]sending packet: from 82.209.209.42[4500] to 185.65.139.14[4500] (428 bytes)received packet: from 185.65.139.14[4500] to 82.209.209.42[4500] (204 bytes)parsed IKE_AUTH response 1 [ IDr AUTH N(MOBIKE_SUP) SA TSi TSr ]authentication of '185.65.139.14' with pre-shared key successfulIKE_SA Azure[1] established between 82.209.209.42[82.209.209.42]...185.65.139.14[185.65.139.14]scheduling reauthentication in 3413smaximum IKE_SA lifetime 3593sconnection 'Azure' established successfullyПроверяем статус:
[root@sf-srv strongswan]# ipsec statusSecurity Associations (1 up, 0 connecting): Azure[1]: ESTABLISHED 20 seconds ago, 82.209.209.42[82.209.209.42]...185.65.139.14[185.65.139.14] Azure{1}: INSTALLED, TUNNEL, ESP SPIs: c57d83d0_i d91d2ba8_o Azure{1}: 192.168.90.0/24 === 192.168.91.0/24Еще отладочную информацию можно увидеть командой:
[root@sf-srv strongswan]# ip -s xfrm statesrc 82.209.209.42 dst 185.65.139.14 proto esp spi 0xde39cbdc(3728329692) reqid 2(0x00000002) mode tunnel replay-window 32 seq 0x00000000 flag af-unspec (0x00100000) auth-trunc hmac(sha1) 0xeccf3b4af91d5effcb3dd0a0a3f229d327c7ae2e (160 bits) 96 enc cbc(aes) 0x98c85fffc7bc8de8f80cad9672b8b9600ce8dc5f513dbf62cfe04ad2da671c9d (256 bits) lifetime config: limit: soft (INF)(bytes), hard (INF)(bytes) limit: soft (INF)(packets), hard (INF)(packets) expire add: soft 914(sec), hard 1200(sec) expire use: soft 0(sec), hard 0(sec) lifetime current: 252(bytes), 3(packets) add 2016-10-14 17:04:43 use 2016-10-14 17:04:53 stats: replay-window 0 replay 0 failed 0src 185.65.139.14 dst 82.209.209.42 proto esp spi 0xce627721(3462559521) reqid 2(0x00000002) mode tunnel replay-window 32 seq 0x00000000 flag af-unspec (0x00100000) auth-trunc hmac(sha1) 0xfe18996b3f433fec209d07181d2be0d436979494 (160 bits) 96 enc cbc(aes) 0x3834ed7bcba2eda8061fb8172e8d036868c8d6801e956593a0b02b80adfcde2a (256 bits) lifetime config: limit: soft (INF)(bytes), hard (INF)(bytes) limit: soft (INF)(packets), hard (INF)(packets) expire add: soft 887(sec), hard 1200(sec) expire use: soft 0(sec), hard 0(sec) lifetime current: 252(bytes), 3(packets) add 2016-10-14 17:04:43 use 2016-10-14 17:04:53 stats: replay-window 0 replay 0 failed 0Попробуем попинговать с Linux машины виртуальную машину в нашем облаке Azure.
[root@sf-srv ~]# ping 192.168.91.2PING 192.168.91.2 (192.168.91.2) 56(84) bytes of data.64 bytes from 192.168.91.2: icmp_req=1 ttl=62 time=27.9 ms64 bytes from 192.168.91.2: icmp_req=2 ttl=62 time=26.1 ms64 bytes from 192.168.91.2: icmp_req=3 ttl=62 time=26.0 ms^C--- 192.168.91.2 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 26.008/26.699/27.917/0.883 msА теперь со стороны облака
[root@Konovalov001 ~]# ping 192.168.90.10PING 192.168.90.10 (192.168.90.10) 56(84) bytes of data.64 bytes from 192.168.90.10: icmp_seq=1 ttl=62 time=30.7 ms64 bytes from 192.168.90.10: icmp_seq=2 ttl=62 time=27.1 ms64 bytes from 192.168.90.10: icmp_seq=3 ttl=62 time=26.1 ms^C--- 192.168.90.10 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 26.158/28.007/30.700/1.957 ms[root@Konovalov001 ~]#Незабываем добавить сервис в автозагрузку
# chkconfig ipsec on
Не забывайте так же открыть порты 4500 (TCP) и 500 (TCP) на клиентском линуксе для работы IPSEC.
Больше информации о strongswan можно найти тут https://wiki.strongswan.org/projects/strongswan/wiki/
Как настроить VPN на Centos используя LibreSwan, смотрите тут: http://www.lin.by/2016/09/windows-azure-pack_22.html#more