3

Я пытаюсь создать L2TP/IPSec PSK VPN с моего телефона Android на мой сервер Ubuntu в моей домашней сети.

Я получаю две ошибки. во-первых, это ошибка проверки IP-переадресации при запуске ipsec verify.

"Two or more interfaces found, checking IP forwarding            [FAILED]"

Вторая ошибка возникает, когда я пытаюсь подключиться к ipsec с моего телефона Android. В auth.log я получаю эту ошибку;

Aug  7 19:47:57 ubuntu pluto[5019]: packet from 70.192.193.159:13305: initial Main Mode message received on 192.168.10.104:500 but no connection has been authorized with policy=PSK

Regarding IP forwarding, yes I've added "net.ipv4.ip_forward=1" into sysctl.conf and ran "sysctl -p /etc/sysctl.conf"

Из моего исследования распространено мнение, что эти проблемы вызваны неправильной конфигурацией в ipsec.conf и / или ipsec.secrets.

Я думаю, что проблема связана с тонкой разницей в нат-сети. Сначала у меня есть кабельный модем Comcast в режиме моста. Затем у меня есть проводной / беспроводной маршрутизатор Linksys, который использует DHCP для получения моего публичного IP-адреса, 70.192.193.70. Мой сервер Ubuntu извлекает зарезервированный IP-адрес DHCP и т.д. С моего маршрутизатора Linksys, 192.168.10.104. Мой маршрутизатор Linksys является шлюзом по умолчанию, 192.168.10.1.

Я надеюсь, что кто-то прочтет это и скажет, что глупый Крис неужели ты не видишь, что нужно настроить эти файлы, как это ... ЛОЛ!. Все, что я прочитал, использует примеры IP {адресов, таких как abcd и efgh Я дал вам реальные IP-адреса, чтобы все было менее запутанным. Со всем, что ниже, вот как выглядят мои файлы.

/etc/ipsec.secrets
192.168.10.104 %any: PSK "myPSKpassword"

/etc/ipsec.conf
config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
    # virtual_private=%v4:192.168.10.0/24
    #contains the networks that are allowed as subnet= for the remote client. In other words, the address ranges that may live behind a NAT router through which a client connects.
    oe=off
    protostack=netkey

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    # Apple iOS doesn't send delete notify so we need dead peer detection
    # to detect vanishing clients
    dpddelay=30
    dpdtimeout=120
    dpdaction=clear
    # Set ikelifetime and keylife to same defaults windows has
    ikelifetime=8h
    keylife=1h
    type=transport
    # Replace IP address with your local IP (private, behind NAT IP is okay as well)
    #left=x.x.x.x
    left=192.168.10.104
    # For updated Windows 2000/XP clients,
    # to support old clients as well, use leftprotoport=17/%any
    leftprotoport=17/%any
    right=%any
    rightprotoport=17/%any
    #force all to be nat'ed. because of iOS
    forceencaps=yes

Я так застрял .. Любой совет очень приветствуется!

2 ответа2

2

Вот как я это исправил:

1.

echo 0 > /proc/sys/net/ipv4/ip_forward

2.

ipsec verify

3.

echo 1 > /proc/sys/net/ipv4/ip_forward

Тогда это должно работать.

Надеюсь, что смогу помочь:P

1

Одна из вещей, которые я заметил, это ошибка в /etc/ipsec.secrets . Моя конфигурация выглядит следующим образом:

<outside  world>
       |
       V
    public ip
       |
       V
     router (private IP 10.0.100.1)
       |
       V
    10.0.1.1 (ubuntu IP)

Мой /etc/ipsec.secrets выглядит так:

10.0.1.1   %any:  PSK "whateverpassword"

Мой /etc/ipsec.conf выглядит так:

<code>
version 2.0
config setup
        dumpdir=/var/run/pluto/
        nat_traversal=yes
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:!10.0.151.0/24
        oe=off
        protostack=netkey
conn L2TP-PSK-NAT
        rightsubnet=vhost:%priv
        also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        dpddelay=30
        dpdtimeout=120
        dpdaction=clear
        ikelifetime=8h
        keylife=1h
        type=transport
        left=10.0.1.1
        leftnexthop=10.0.1.1
        leftprotoport=17/%any
        right=%any
        rightprotoport=17/%any
        forceencaps=yes
</code>

Как видите, в обоих файлах используется IP-адрес VPN-сервера, а не IP-адрес маршрутизатора.

10.0.151.0/24 - это подсеть, которую я использую для VPN. Моя машина с Ubuntu имеет адрес 10.0.151.0 , первый клиент, который подключится, получает назначенный адрес 10.0.151.1 и так далее.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .