首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenVPN服务器向客户端发送虚假的默认网关信息?

OpenVPN服务器向客户端发送虚假的默认网关信息?
EN

Server Fault用户
提问于 2015-12-11 07:45:07
回答 1查看 4.2K关注 0票数 3

虽然VPN客户端成功地连接到OpenVPN服务器,但无论push "redirect-gateway local def1"和/或push "route 10.240.0.0 255.255.0.0"在server.conf文件中放置/注释/未注释,它似乎都设置了不正确的假网关。

server.conf文件具有此声明server 10.8.0.0 255.255.255.0,而且服务器确实得到分配的10.8.0.1,但出于某种原因,客户端解释在VPN启动期间发送的消息,即它应该通过默认网关在10.8.0.5上路由通信。根据Wireshark的说法,随后的任何数据包都被发送到10.8.0.5,并且从未收到任何响应,就好像这些数据包被发送到了VPN TCP端点一样,它们似乎从未到达服务器的tun0接口(根据服务器上的tcpdump )。

下面是OpenVPN客户端(Tunnelblick)日志的相关行,指示成功连接到VPN后立即更改路由表:

代码语言:javascript
复制
2015-12-11 02:25:18 /sbin/ifconfig utun0 10.8.0.6 10.8.0.5 mtu 1500 netmask 255.255.255.255 up
2015-12-11 02:25:18 /Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -d -f -m -w -pxxxxxxxxxxx utun0 1500 1543 10.8.0.6 10.8.0.5 init
                                        **********************************************
                                        Start of output from client.up.tunnelblick.sh
                                        No network configuration changes need to be made.
                                        Will NOT monitor for other network configuration changes.
                                        DNS servers '8.8.8.8 208.67.222.222' will be used for DNS queries when the VPN is active
                                        The DNS servers include only free public DNS servers known to Tunnelblick.
                                        Flushed the DNS cache via dscacheutil
                                        /usr/sbin/discoveryutil not present. Not flushing the DNS cache via discoveryutil
                                        Notified mDNSResponder that the DNS cache was flushed
                                        End of output from client.up.tunnelblick.sh
                                        **********************************************
                                        add net 104.196.7.35: gateway 192.168.0.1
                                        add net 0.0.0.0: gateway 10.8.0.5
                                        add net 128.0.0.0: gateway 10.8.0.5
                                        add net 10.240.0.0: gateway 10.8.0.5
                                        add net 10.8.0.0: gateway 10.8.0.5
2015-12-11 02:25:20 Initialization Sequence Completed

有没有办法强迫OpenVPN向客户端发送正确的信息?或者我错了,是否还有另一个原因,即正确发送到OpenVPN TCP端口的数据包没有发送到OpenVPN服务器上的tun0接口?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2015-12-11 07:51:54

不,这是对的。

您的OpenVPN在"net30“拓扑模式下工作。在这种模式下,OpenVPN进程本身就是一个路由器。实际上,虚拟网络模式如下所示:

代码语言:javascript
复制
                                   Client3
                                 10.8.0.14/30
                                    |
                                 10.8.0.13/30
Server 10.8.0.1/30 --- 10.8.0.2/30 OpenVPN 10.8.0.5/30 --- 10.8.0.6/30 Client1
                                 10.8.0.9/30
                                    |
                                 10.8.0.10/30
                                   Client2

每个人,包括服务器,通过10.8.0.x (x -他们各自的内部-OpenVPN下一跳地址)拥有额外的路由10.8.0.0/24。

也就是说,10.8.0.5实际上是OpenVPN路由器的地址,它“隐藏在进程中”。如果您想要将Windows连接到VPN中,这是必需的,因为在Windows中不可能创建真正的TUN接口,并且它是使用TAP和上面的设置来实现的。

这也是"iroute“选项存在的原因。它用于在此虚拟路由器内设置路由。

如果您从来不想将Windows包含到您的虚拟专用网中,您可以将拓扑模式设置为p2p,并期望在客户端上直接使用.1路由。

有关详细信息,请参阅OpenVPN手动https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage拓扑模式部分。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/742347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档