Ubuntu 上的 ipsec 配置问题。Android 客户端的“IP 转发”连接授权错误

Ubuntu 上的 ipsec 配置问题。Android 客户端的“IP 转发”连接授权错误

我正在尝试从我的 Android 手机到我家庭网络上的 Ubuntu 服务器创建 L2TP/IPSec PSK VPN。

我收到两个错误。第一个是当我运行 ipsec verify 时检查 IP 转发失败。

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

当我尝试从 Android 手机连接到 ipsec 时,发生了第二个错误。在 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 中的错误配置引起的。

我认为问题与在 natted 网络上的细微差别有关。首先,我有一个处于桥接模式的 Comcast 电缆调制解调器。接下来,我有一个 Linksys 有线/无线路由器,它使用 DHCP 检索我的公共 IP 地址 70.192.193.70。我的 Ubuntu 服务器从我的 Linksys 路由器 192.168.10.104 检索其保留的 DHCP natted IP 地址等。我的 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

我很困惑。非常欢迎任何建议!

答案1

以下是我修复它的方法:

1.

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

2.

ipsec verify

3.

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

那么它就可以工作了。

希望我能帮上忙:P

答案2

我注意到的一件事是 中的一个错误/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>

如您所见,两个文件中都使用了 VPN 服务器的 IP 地址,而不是路由器的 IP 地址。

10.0.151.0/24是我用于 VPN 的子网。我的 Ubuntu 机器有该10.0.151.0地址,第一个连接的客户端会获得10.0.151.1分配的地址,依此类推。

希望这能有所帮助。另外,请用代码块清理您的帖子,因为您的配置文件不可读。

相关内容