IPSec-Konfigurationsprobleme unter Ubuntu. Fehler bei der IP - Weiterleitung "Verbindungsautorisierung vom Android - Client

3

Ich versuche, ein L2TP / IPSec-PSK-VPN von meinem Android-Telefon zu meinem Ubuntu-Server in meinem Heimnetzwerk zu erstellen.

Ich erhalte zwei Fehler. Die erste ist ein Fehler bei der Überprüfung der IP-Weiterleitung, wenn ich ipsec verify ausführe.

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

Der zweite Fehler tritt auf, wenn ich versuche, von meinem Android-Telefon aus eine Verbindung zu ipsec herzustellen. Im auth.log bekomme ich diesen Fehler;

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"

Nach meinen Recherchen sind die allgemeinen Gedanken, dass dieses Problem durch eine Fehlkonfiguration in ipsec.conf und / oder ipsec.secrets verursacht wird.

Ich denke, das Problem hat mit subtilen Unterschieden in einem vernetzten Netzwerk zu tun. Zuerst habe ich ein Comcast-Kabelmodem im Bridge-Modus. Als nächstes habe ich einen Linksys-Kabel- / WLAN-Router, der DHCP verwendet, um meine öffentliche IP-Adresse 70.192.193.70 abzurufen. Mein Ubuntu-Server ruft seine reservierte DHCP-IP-Adresse, ua von meinem Linksys-Router, 192.168.10.104, ab. Mein Linksys-Router ist das Standard-Gateway 192.168.10.1.

Ich hoffe, jemand wird das lesen und sagen, dummer Chris, kannst du nicht sehen, dass du diese Dateien so konfigurieren musst? LOL !. Diese Lektüre, die ich gemacht habe, verwendet alle Beispiel-IP-Adressen wie abcd und efgh. Ich habe Ihnen tatsächliche IP-Adressen gegeben, um alles weniger verwirrend zu machen. Nachstehend sehen Sie, wie meine Dateien derzeit aussehen.

/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

Ich stecke so fest. Jeder Rat ist sehr willkommen!

Chris Boyd
quelle

Antworten:

2

So habe ich es behoben:

1.

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

2.

ipsec verify

3.

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

Dann sollte es klappen.

Hoffe, dass ich helfen konnte: P

RootedMaster
quelle
Dies hat dazu beigetragen, mein Problem mit zwei oder mehr gefundenen Schnittstellen zu beseitigen.
Kevin Li
1

Eines der Dinge, die mir aufgefallen sind, ist ein Fehler in /etc/ipsec.secrets. Meine Konfiguration ist wie folgt:

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

Mein /etc/ipsec.secretssieht so aus:

10.0.1.1   %any:  PSK "whateverpassword"

Mein /etc/ipsec.confsieht so aus:

<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>

Wie Sie sehen, wird in beiden Dateien die IP-Adresse des VPN-Servers verwendet, nicht die IP-Adresse des Routers.

10.0.151.0/24ist das Subnetz, das ich für VPN benutze. Mein Ubuntu-Rechner hat die 10.0.151.0Adresse, der erste Client, der eine Verbindung herstellt, bekommt die 10.0.151.1Adresse zugewiesen und so weiter.

Hoffe das hilft. Bitte bereinige auch deinen Beitrag mit Codeblöcken, da deine Konfigurationsdateien nicht lesbar sind.

Luc van Donkersgoed
quelle
Ich habe diese kleine Änderung vorgenommen und es hat funktioniert!
Kevin Li
@LucvanDonkersgoed Ja, dieser Vorschlag hat mir auch geholfen. Danke.
Dustin Oprea