Позвольте Strongswan roadwarrior получать доступ к локальной LAN

Я успешно установил туннель IPSec между своим локальным хостом Linux и удаленным шлюзом VPN. Я использую виртуального дюйм/с, присваиваются шлюзом, потому что, будучи roadwarrior моя локальная подсеть ЛВС не фиксируется.

То, когда это - весь трафик, идет через туннель включая интернет-трафик. То, что я хотел бы, является всем трафиком за исключением локальной подсети для маршрутизации через туннель. Я прочитал и перечитал документацию Strongswan, но я не могу разработать, как сделать это.

Что я должен сделать?

Локальный ipsec.conf

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev2
        authby=secret


conn VPN
        left=%any
        leftsourceip=%config
        leftid=@robin.my.net
        leftfirewall=yes
        right=52.n.n.n
        rightsubnet=0.0.0.0/0
        rightid=@vpn.my.net
        auto=add

Сервер ipsec.conf

config setup

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2


conn AWSVPN
    left=%any
    leftsubnet=172.31.38.36/32
    leftid=@vpn.my.net
    leftfirewall=yes
    authby=secret
    right=%any
    rightsourceip=10.3.0.0/28
    auto=add

Шлюз

IP: 172.31.38.36 Подсеть: 172.31.32.0/20

Моя машина

IP: 192.168.1.150 (может измениться), Подсеть: 192.168.1.0/24 (может измениться), Виртуальный IP: 10.3.0.1 (присвоенный шлюзом Strongswan)

Править:

Мне удалось исключить локальную сеть путем добавления этого, но подсеть является hardcoded:

conn local-net
    leftsubnet=192.168.1.0/24
    rightsubnet=192.168.1.0/24
    authby=never
    type=pass
    auto=route
2
задан 31 July 2015 в 18:16
1 ответ

Я не могу добавить комментарий из-за низкой репутации, так что вот он ..

Когда он открыт, весь трафик проходит через туннель, включая интернет-трафик.

Этого не может быть. Укажите на сервере leftsubnet = 172.31.38.36 / 32, поэтому клиентский 'rightsubnet = 0.0.0.0 / 0' будет сужен до одного этого хоста.

Чтобы направить весь трафик в VPN, вам нужно 'leftsubnet = 0.0.0.0 / 0' на сервер тоже.

В конфигурации по умолчанию Strongswan добавляет маршрут к подсети сервера в таблице 220, что в случае подсети сервера '0.0.0.0/0' выглядит так:

$ ip route list table 220
default via 192.168.2.9 dev wlan0  proto static  src 10.3.0.2

И эта таблица имеет приоритет над «основной» таблицей маршрутизации, используемой по умолчанию:

$ ip rule list
0:      from all lookup local
220:    from all lookup 220
32766:  from all lookup main
32767:  from all lookup default

Итак, когда клиент отправляет пакет в локальную локальную сеть, это пакет маршрутизируется по таблице 220, у которого нет маршрута к локальной сети - только маршрут по умолчанию к серверу VPN. Таким образом, чтобы не маршрутизировать пакеты локальной LAN в VPN, вам просто нужно добавить маршрут к локальная LAN в таблице 220, например:

$ ip route add table 220 192.168.1.0/24 dev wlan0

Итак, таблица 220 теперь будет выглядеть так:

default via 192.168.2.9 dev wlan0  proto static  src 10.3.0.2
192.168.2.0/24 dev wlan0  scope link

Другое возможное решение - использовать «основную» таблицу маршрутизации для маршрутизации VPN подсеть ('routing_table = 32766' в strongswan.conf), потому что у нее уже будет маршрут к локальной сети. Но в этом случае текущий маршрут по умолчанию будет проблемой: strongswan не будет добавлять другой маршрут по умолчанию, если он уже есть ..

5
ответ дан 3 December 2019 в 09:34

Теги

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