AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 72391
Accepted
nedm
nedm
Asked: 2009-10-08 18:53:52 +0800 CST2009-10-08 18:53:52 +0800 CST 2009-10-08 18:53:52 +0800 CST

带有 OpenVPN 的 pfSense Site-toSite VPN 连接但不会路由流量

  • 772

使用两个 pfSense 路由器,我在 2 个站点之间创建了一个共享密钥 VPN。两个路由器都是 pfSense 1.2.2。客户端站点的 pfSense 框是该站点的网关路由器,但在服务器站点,pfSense 不是该 LAN 的网关。客户端站点连接到服务器站点正常,我收到“初始化序列完成”日志消息,表明连接成功。

然后,从客户端站点,我可以使用客户端 LAN 上的任何机器在其 LAN 地址上 ping 服务器站点上的 pfSense 框(甚至通过 Web 界面对其进行配置,因此 VPN 至少适用于该地址)。我还可以 ping “接口 IP”(客户端配置)/“地址池”(服务器配置)IP 范围内的两个地址,它们是相同的私有子网,并且不在客户端或服务器 LAN 范围内。

问题是我无法访问服务器站点 LAN 上的任何其他 IP。我不需要能够从服务器站点访问客户端站点 LAN 上的机器,但我确实需要能够从客户端站点访问的不仅仅是服务器。目前,客户端 LAN 上的任何人都可以 ping 到服务器的 LAN 接口,客户端 LAN 上的任何人都可以从 pfSense 服务器本身 ping,但不能从服务器 LAN ping。我在服务器上的 LAN 接口防火墙规则上添加了 any <> any 规则。

如果我在服务器的 LAN 接口上捕获流量,我会看到从客户端 LAN 站点传递的数据包,但如果我嗅探,我看不到这些数据包进入服务器的 LAN。正如我所说,我在 LAN 接口上添加了一条规则以允许任何到任何如下,那么我还需要做什么来允许从隧道到 LAN 的流量,反之亦然?

更新: 我在客户端 pfSense 上添加了服务器 LAN 的推送路由,反之亦然。我还尝试升级到 pfSense 1.2.3 的 RC 并将 Opt1 接口设置为 tun0,然后在 opt1 和 LAN 之间添加允许规则。仍然没有运气。

更新 2:需要按照接受的答案中所述在服务器 LAN 上设置正确的路由,但我忽略了服务器 pfSense/OpenVPN 单元在 KVM 下作为来宾操作系统运行,而另一半问题是 IP 转发需要在主机操作系统的 /etc/ufw/before.rules 中启用。这就是我没有更彻底地解释设置的原因。

openvpn
  • 2 2 个回答
  • 16760 Views

2 个回答

  • Voted
  1. Best Answer
    galets
    2009-10-13T20:31:08+08:002009-10-13T20:31:08+08:00

    这可能是一个问题。假设您有以下网络:

    address pool: 10.1.1.0/255.255.255.0
    router: 10.1.1.1
    internal interface on internal vpn server: 10.1.1.2
    some external machine that VPNs to network: 10.2.2.2
    some internal client machine: 10.1.1.90
    

    当您尝试从外部 VPN 盒访问 SIC 时,流量路由如下所示:

    • 10.2.2.2
    • vpn(互联网)
    • 10.1.1.2
    • 10.1.1.90
    • 好的

    看起来很好,但是,为了让流量流动,10.1.1.90 机器应该能够响应,这意味着来自它的数据包也必须可以路由到 10.2.2.2。内部客户端显然有ip:10.1.1.90,掩码:255.255.255.0和路由器:10.1.1.90。因此,数据包将按如下方式路由:

    • 10.1.1.90
    • 10.1.1.1(因为它是路由器,而 10.2.2.2 不可直接寻址)
    • 互联网
    • 未找到

    基本上,回复数据包甚至不会到达 VPN。你能做什么?显然,将路由添加到内部客户端以将所有数据包路由到 10.2.2.2 而不是 VPN 框而不是路由器,例如(Windows 框):

    route add 10.2.2.0 mask 255.255.255.0 10.1.1.2
    

    这将解决单机级别的问题。回复数据包会去:

    • 10.1.1.90
    • 10.1.1.2(显式路由)
    • vpn(互联网)
    • 10.2.2.2

    要解决网络级别的问题,您必须在同一问题上修改路由器,将所有流向 10.2.2.0 的流量重定向到 10.1.1.2。这种方式回复数据包将去:

    • 10.1.1.90
    • 10.1.1.1
    • 10.1.1.2
    • vpn(互联网)
    • 10.2.2.2

    另一种解决方案是:让您的 VPN 盒在 10.1.1.2 接口上进行 NAT。这样,对于内部机器,它看起来好像所有流量都来自 10.1.1.2,并且回复将转到 10.1.1.2。不过,我建议通过路由,因为 NAT 将需要 VPN 盒上的额外资源用于连接跟踪器

    • 8
  2. EEAA
    2009-10-08T19:08:08+08:002009-10-08T19:08:08+08:00

    您是否创建了防火墙规则以允许流量流向您想要的地方?

    • 2

相关问题

  • OpenVPN:在哪里生成私钥?

  • 将 iPhone 连接到 OpenVPN

  • OpenVPN 的 Linux IP 转发 - 正确的防火墙设置?

  • 最好的点对点 VPN?

  • 通过 VPN 使您的打印机可用的最佳方法是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve