Как подключить Linux-сервер к лазурному шлюзу точка-сайт?

Моей первой попыткой было попытаться использовать совместное использование подключения к Интернету и выделить машина для внешнего интерфейса Linux (просто пересылка большого количества портов), но совместное использование соединения, похоже, не работает при подключении к лазурной VPN (я пробовал Windows 10 и win2008R2 до сих пор).

Я также не удалось найти какое-либо программное обеспечение VPN для Linux, поддерживающее необходимые протоколы.

6
задан 28 March 2017 в 00:53
3 ответа

Да, OpenVPN помогло. Поскольку иностранные пакеты не могут проходить через сеть Azure, я не смог использовать OpenVPN в качестве шлюза на стороне Azure в традиционном смысле. Я установил клиент OpenVPN на каждую виртуальную машину и использовал функцию клиент-клиент в OpenVPN, чтобы все они могли видеть друг друга. Несмотря на то, что он не оптимален, он работает в нашей тестовой сети, пока мы ожидаем подключения IPsec ExpressRoute к Azure. Самое приятное то, что для этого требуется только порт 443 по TCP, который без проблем проходит через все.

0
ответ дан 3 December 2019 в 00:15

разделение соединений, похоже, не работает при подключении к лазурной VPN. (До сих пор я пробовал windows 10 и win2008R2)

Мы не можем использовать Azure P2S VPN таким образом.

ICS маршрутизирует TCP/IP пакеты из маленькой локальной сети в Интернет. ICS сопоставляет отдельные IP-адреса локальных компьютеров с неиспользуемыми номерами портов в стеке TCP/IP. Из-за характера NAT IP-адреса локального компьютера не видны в Интернете. Все пакеты, выходящие или входящие в локальную сеть, отправляются с или на IP-адрес внешнего адаптера на хост-компьютере ICS.

Azure P2S VPN, используемый для создания защищенного соединения с виртуальной сетью Azure Virtual Network с отдельного клиентского компьютера. После того, как вы подключите Azure VPN, главный компьютер ICS получит IP адрес адресов из пула адресов Point-to-Site VPN Client Address Pool, который вы указали в вашей конфигурации. Результаты должны быть похожими на следующие:

 PPP adapter VNet1:
     Connection-specific DNS Suffix .:
     Description.....................: VNet1
     Physical Address................:
     DHCP Enabled....................: No
     Autoconfiguration Enabled.......: Yes
     IPv4 Address....................: 172.16.201.3(Preferred)
     Subnet Mask.....................: 255.255.255.255
     Default Gateway.................:
     NetBIOS over Tcpip..............: Enabled

Главный компьютер ICS взаимодействует с Azure через IP адрес Пула адресов VPN клиентов, но главный компьютер ICS не может использовать этот IP для совместного доступа к сети, поэтому мы не можем использовать Azure P2S VPN таким образом.

Если вы хотите, чтобы все компьютеры подключились к Azure, мы можем соединить их с P2S VPN, создать на них VPN соединения.

Я также не могу найти ни одного VPN программного обеспечения для Linux, которое бы поддерживало необходимые протоколы.

На данный момент поддержка Azure P2S VPN ограничена только операционной системой Windows.

Если вы хотите подключиться к виртуальной сети Azure через Linux, мы можем использовать некоторое программное обеспечение на базе Linux, здесь блог о том, как подключиться к виртуальной сети Azure через linux, пожалуйста, смотрите it.

.
0
ответ дан 3 December 2019 в 00:15

можно подключить Linux к Azure P2S с помощью strongSwan (IKEv2). Microsoft просто не заморачивается этим вопросом и настаивает на прохождении курса «P2S для Linux не поддерживается» (именно на это мне ответили в билетах поддержки). Вот как вы можете настроить IKEv2 на основе аутентификации сертификатов.

Установить зависимости

Вот необходимые пакеты для Ubuntu:

apt-get install strongswan-ikev2 strongswan-plugin-eap-tls
# in Ubuntu 16.04 install libstrongswan-standard-plugins for p12 keypair container support
apt-get install libstrongswan-standard-plugins

Если вы устанавливаете пакет libstrongswan-extra-plugins в Ubuntu 16.04 сломается сильный Лебедь. Этот пакет содержит плагины af-alg , ctr и gcrypt , и они конфликтуют с плагином openssl . В этом случае вам нужно либо удалить пакет libstrongswan-standard-plugins , содержащий плагин openssl , либо отключить плагин openssl :

sudo sed -i 's/\sload =.*/ load = no/g' /etc/strongswan.d/charon/openssl.conf

или af -alg , ctr и gcrypt плагины:

sudo sed -i 's/\sload =.*/ load = no/g' /etc/strongswan.d/charon/{af-alg,ctr,gcrypt}.conf

Сгенерировать ключи и сертификаты

Сначала вы должны создать свой собственный CA, затем необходимо сгенерировать сертификат пользователя с расширением X509v3 Subject Alternative Name (SAN) ( strongSwan FAQ ), которое должно соответствовать общему имени субъекта сертификата (CN). Т.е. сертификат с субъектом CN = client должен содержать DNS: client SAN. Это позволит вам указать идентификатор EAP без префикса CN = в strongSwan. По умолчанию strongSwan передает полную тему сертификата как удостоверение EAP, но шлюз Azure VPN не поддерживает это. Вы можете узнать больше об истории CN и SAN: http://unmitigatedrisk.com/?p=381 .

# Generate CA
ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "CN=VPN CA" --ca --outform pem > caCert.pem
# Print CA certificate in base64 format, supported by Azure portal. Will be used later in this document.
openssl x509 -in caCert.pem -outform der | base64 -w0 ; echo

# Generate user's certificate and put it into p12 bundle.
export PASSWORD="password"
export USERNAME="client"
ipsec pki --gen --outform pem > "${USERNAME}Key.pem"
ipsec pki --pub --in "${USERNAME}Key.pem" | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "CN=${USERNAME}" --san "${USERNAME}" --flag clientAuth --outform pem > "${USERNAME}Cert.pem"
# Generate p12 bundle
openssl pkcs12 -in "${USERNAME}Cert.pem" -inkey "${USERNAME}Key.pem" -certfile caCert.pem -export -out "${USERNAME}.p12" -password "pass:${PASSWORD}"

Затем откройте портал Azure, найдите свой «Virtual Network Gateway» и его Страница конфигурации точка-сеть в разделе Корневые сертификаты вставьте CA в кодировке base64, напечатанный выше.

Настройте клиент

Найдите кнопку Загрузить VPN-клиент на точке шлюза -to-site конфигурации, затем распакуйте VpnServerRoot.cer CA из загруженного ZIP-архива:

sudo unzip -j downloaded.zip Generic/VpnServerRoot.cer -d /etc/ipsec.d/cacerts

Вы можете проверить его, используя следующую команду:

openssl x509 -inform der -in /etc/ipsec.d/cacerts/VpnServerRoot.cer -text -noout

Затем извлеките DNS сервера VPN:

$ unzip -p downloaded.zip Generic/VpnSettings.xml | grep VpnServer
  <VpnServer>azuregateway-00112233-4455-6677-8899-aabbccddeeff-aabbccddeeff.cloudapp.net</VpnServer>

Используйте значение VpnServer для значения right и для значения rightid с префиксом % в ipsec.conf ниже.

Затем скопируйте пакет p12 пользователя в соответствующий каталог:

sudo cp client.p12 /etc/ipsec.d/private/

Используйте следующую конфигурацию /etc/ipsec.conf :

config setup

conn azure
  keyexchange=ikev2
  type=tunnel
  leftfirewall=yes
  left=%any
  leftauth=eap-tls
  leftid=%client # use the DNS alternative name prefixed with the %
  right=azuregateway-00112233-4455-6677-8899-aabbccddeeff-aabbccddeeff.cloudapp.net # Azure VPN gateway address
  rightid=%azuregateway-00112233-4455-6677-8899-aabbccddeeff-aabbccddeeff.cloudapp.net # Azure VPN gateway address, prefixed with %
  rightsubnet=0.0.0.0/0
  leftsourceip=%config
  auto=add

и /etc/ipsec.secrets content:

: P12 client.p12 'password' # key filename inside /etc/ipsec.d/private directory

Затем перезапустите ipsec для повторного чтения конфигурации и запуска туннеля:

sudo ipsec restart
sudo ipsec up azure

MTU / MSS issue

IPsec VPN-клиент может испытывать проблемы с подключением из-за высоких значений MTU / MSS и IKE Fragmentation . Чтобы решить эту проблему, вы должны явно установить значение 1350 для MTU / MSS в конфигурации kernel-netlink strongSwan charon (эта конфигурация работает только в версии strongSwan> = 5.2.1). Задайте значения mtu и mss в файле конфигурации /etc/strongswan.d/charon/kernel-netlink.conf :

mss = 1350
mtu = 1350

и перезапустите туннель. :

sudo ipsec restart
sudo ipsec up azure
10
ответ дан 3 December 2019 в 00:15

Теги

Похожие вопросы