如何配置 DD-WRT 以将 IPSec 流量转发到内部服务器以支持 road warrior 配置?

如何配置 DD-WRT 以将 IPSec 流量转发到内部服务器以支持 road warrior 配置?

我使用 dd-wrt ​​作为我的家庭路由器设置,它一直运行良好。现在我想找到一种方法,让我在路上时能够使用我的 iPad 设置到我家庭网络的 IPSec 隧道。

目前,PPTP 非常不安全,所以我想使用基于 IPSec 的东西。根据我找到的信息,dd-wrt ​​不支持 IPSec。所以我认为可以在我的家庭网络中设置一个带有 racoon 的 Linux 机器作为 VPN 终端。

因此,以图形形式来说,

iPad(在路上)----------[互联网] ------[dd-wrt@home] ----[linuxbox@home]

在 dd-wrt ​​上,我进行了如下设置:

  • 将端口 500 和 4500 转发到 Linux 机器 (udp/tcp)
  • SPI 防火墙已启用
  • IPSec 和 L2TP 直通已启用

在 Linux 机器上,IPv4 转发已启用

这是浣熊的设置

log debug;
#log notify;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";

listen {
        adminsock disabled ;
}

mode_cfg {
        network4 192.168.1.210 ;
        pool_size 10 ;
        netmask4 255.255.255.0 ;
        dns4 192.168.1.1 ;
        wins4 192.168.1.11 ;
}

remote anonymous {
        exchange_mode aggressive ;
        #my_identifier fqdn "vpn.foo.org" ;
        peers_identifier fqdn "vpn.foo.org" ;
        lifetime time 24 hour ;
        proposal_check claim ;
        generate_policy on ;
        nat_traversal on ;
        dpd_delay 20 ;
        proposal {
                encryption_algorithm aes ;
                hash_algorithm sha1 ;
                authentication_method xauth_psk_server ;
                dh_group 2 ;
        }
}

sainfo anonymous {
        pfs_group 2;
        lifetime time 24 hour ;
        encryption_algorithm aes ;
        authentication_algorithm hmac_sha1 ;
        compression_algorithm deflate ;
}

因此这是一个非常普通的设置,我稍后会切换到使用证书。

现在,查看日志,racoon 在 Linux 机器上启动正常,但无论出于什么原因,它甚至没有看到任何与 iPad 协商流量的尝试,所以我一定是遗漏了什么。

我想知道的是找出缺少的东西。我怀疑需要在 dd-wrt ​​盒上进行一些设置,以便将 IP 协议 ID 50 和 51 流量从其发送到 Linux 盒。

我不太清楚将 IPSec 转发到 VM 所需的 iptables 规则。

我有以下内容,但我怀疑我需要一些预路由和可能的一些后路由规则。

iptables -I FORWARD 23 -p 50 -d 192.168.1.10 -j ACCEPT
iptables -I FORWARD 23 -p 51 -d 192.168.1.10 -j ACCEPT

以下内容似乎没有按预期工作。

iptables -t nat -I PREROUTING 2 -p 50 -d $(nvram get wan_ipaddr) -j DNAT --to 192.168.1.10
iptables -t nat -I PREROUTING 2 -p 51 -d $(nvram get wan_ipaddr) -j DNAT --to 192.168.1.10

调查笔记:

  • 一开始无法连接。我怀疑我需要修改 iptables,但没有必要。将端口 500 和 4500 转发到端点就足够了。
  • 看起来第一个数据包现在确实到达了浣熊手中。
  • tcpdump 输出“17:45:50.652827 IP wan.isakmp > 192.168.1.10.isakmp:isakmp:阶段 1 I ident”
  • 看起来协商确实开始了,但是在尝试协商加密类型时它就停止了。 来自 racoon 的系统日志的 pastebin:http://pastebin.com/RFmbJ7Hz
  • 现在已经过了协商阶段,请求授权后隧道已建立。但流量没有流动。
  • 读完更多内容后,我将 mode_cfg 中的子网设置为与端点上的默认子网不同的子网。我怀疑如果我希望本地机器能够与其通信,我需要设置路由。
  • 现在,我的问题是 NAT-T 似乎不起作用,因为我无法获取互联网流量。

相关内容