Назад | Перейти на главную страницу

strongswan: полностью виртуальная подсеть

Недавно я установил Strongswan IPSec VPN для доступа к некоторым частным службам моего домашнего сервера со своего смартфона Android. Я использую OpenVPN на некоторых других устройствах для той же задачи, но выбрал strongswan для телефона, поскольку IKEv2 предполагается (поправьте меня, если я ошибаюсь), чтобы быть очень ресурсоемким на мобильных устройствах.

Текущая установка (openvpn) состоит из одного сервера (виртуальный IP-адрес: 10.0.0.2) и нескольких клиентов (все в подсети 10.0.0.0/24). Маршруты на всех сторонах настроены для маршрутизации через vpn только пакетов, выделенных для этой подсети. (Я не хочу получить доступ к локальной подсети моего сервера от клиента, и я также не хочу направить весь трафик моих клиентов через сервер)

Теперь мне как бы удалось наладить работу с strongswan (сервер: 5.0.4, клиент: официальное приложение Strongswan для Android 1.3.0), но я еще не совсем там. Прежде всего, конфигурация сервера:

config setup

conn %default
  keyexchange=ikev2

conn android
  left=%any
  leftauth=pubkey
  leftcert=serverCert.pem
  leftid=vpn.mydomain.com
  leftsourceip=10.10.10.128
  leftfirewall=yes
  right=%any
  rightsourceip=10.10.10.0/24
  rightauth=pubkey
  rightcert=clientCert_mymobilephone.pem
  rightauth2=eap-mschapv2
  auto=start

Это назначает IP 10.10.10.1 моему телефону, но не IP-адрес серверу на любых его интерфейсах, что было бы тем, что я хочу. Я все еще могу получить доступ к своему серверу через VPN, используя его локальный IP-адрес (192.168.1.2), что не совсем то, что я намеревался;)

Я хотел бы перенести всех клиентов (в основном ноутбуки) с OpenVPN на strongswan, но указанная выше проблема не позволяет мне сделать переход. Я пробовал множество различных конфигураций strongswan, но ни одна не могла соответствовать моей конфигурации OpenVPN. Возможно ли это вообще, если да, то как?

Обратите внимание, что в отличие от OpenVPN, StrongSWAN не предназначен для использования таким образом - он не создает виртуальных интерфейсов и не назначает виртуальные IP-адреса обеим сторонам туннеля. Что ты определенно мог do добавляет адрес 10.0.0.2 к одному из ваших интерфейсов на стороне сервера

ip addr add 10.0.0.2/32 dev eth0

и добавив соответствующую директиву leftsubnet в вашу конфигурацию, чтобы она стала частью обмена IPSEC Phase 2. Излишне говорить, что в этом случае вам нужно будет использовать ESP с туннелированием.