OpenVPN 服务器以太网桥接问题

OpenVPN 服务器以太网桥接问题

我在使用安装在 CentOS 5 (VPN 服务器) 上的 OpenVPN 2.0.9 正确配置以太网桥时遇到了困难。我试图完成的目标是连接一个 VM(在同一台 CentOS 机器上运行的实例),充当 Microsoft Business Contact Manager 服务器。然后,我希望这个“BCM 服务器”为 192.168.1.0/24 网络上的 Windows XP 客户端以及从 VPN ( 10.8.0.0/24 ) 连接的客户端提供服务。现在的设置基于已知的工作配置。工作配置的问题在于,它允许客户端连接和访问 VPN 服务器 ( SVN、Samba、VM 服务器) 上运行的所有内容,但不允许访问 192.168.1.0/24 网络上的任何计算机。

我必须透露的是,VPN 服务器位于路由器/防火墙后面。端口转发正确(再次,客户端能够毫无问题地连接到 VPN 服务器。netcat 也确认 udp 端口​​已打开)。

当前 ifconfig 输出

br0       Link encap:Ethernet  HWaddr 00:21:5E:4D:3A:C2
          inet addr:192.168.1.169  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::221:5eff:fe4d:3ac2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:846890 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3072351 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:42686842 (40.7 MiB)  TX bytes:4540654180 (4.2 GiB)

eth0      Link encap:Ethernet  HWaddr 00:21:5E:4D:3A:C2
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:882641 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1781383 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:82342803 (78.5 MiB)  TX bytes:2614727660 (2.4 GiB)
          Interrupt:169

eth1      Link encap:Ethernet  HWaddr 00:21:5E:4D:3A:C3
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:650 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1347223 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67403 (65.8 KiB)  TX bytes:1959529142 (1.8 GiB)
          Interrupt:233

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:17452058 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17452058 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:94020256229 (87.5 GiB)  TX bytes:94020256229 (87.5 GiB)

tap0      Link encap:Ethernet  HWaddr DE:18:C6:D7:01:63
          inet6 addr: fe80::dc18:c6ff:fed7:163/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3086 errors:0 dropped:166 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 b)  TX bytes:315099 (307.7 KiB)

vmnet1    Link encap:Ethernet  HWaddr 00:50:56:C0:00:01
          inet addr:192.168.177.1  Bcast:192.168.177.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4224 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

vmnet8    Link encap:Ethernet  HWaddr 00:50:56:C0:00:08
          inet addr:192.168.55.1  Bcast:192.168.55.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4226 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

当前路由表

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.55.0     *               255.255.255.0   U     0      0        0    vmnet8
192.168.177.0   *               255.255.255.0   U     0      0        0    vmnet1
192.168.1.0      *               255.255.255.0   U     0      0        0    br0

当前 iptables 输出

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

服务器已知工作目录

local banshee
port 1194
proto udp
dev tap0
ca ca.crt
cert banshee_server.crt
key banshee_server.key
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
client-to-client
keepalive 10 120
tls-auth ta.key 0
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4

以下是当前的 CentOS 服务器配置文件。

server_ethernet_bridged.conf(当前)

local 192.168.1.169
port 1194
proto udp
dev tap0
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.1.169 255.255.255.0 192.168.1.200 192.168.1.210
push "route 192.168.1.0 255.255.255.0 192.168.1.1"
client-to-client
keepalive 10 120
tls-auth ta.key 0
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 6

以下是与已知工作配置一起使用的客户端配置文件之一。

客户端.opvn

client
dev tap
proto udp
remote XXX.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca client.crt
cert client.crt
key client.key
tls-auth client.key 1
verb 3

我已经尝试过 OpenVPN 提供的 HOWTO 以及其他

http://www.thebakershome.net/openvpn_tutorial?page=1

但没有成功。

任何帮助或建议都将不胜感激。

答案1

除非你真的需要 vpn 客户端出现在同一个第 2 层子网上,我会避免桥接。

如果 192.168.1.0/24 是您当前的内部子网,请配置 openvpn 以将 192.168.2.0/24 左右分配给 VPN 客户端。

那么你需要做以下两件事之一:

  1. 配置 openvpn 服务器以 NAT vpn 地址
  2. 配置你的路由器,通过你的 openvpn 服务器添加 192.168.2.0/24 的静态路由

1 可以简单到

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE

只要您不介意所有 vpn 客户端在服务器上显示为相同的地址,此方法就会有效。这样也无法从局域网连接到 vpn 客户端。

2 其实并不复杂,在 IOS 领域它只是

ip route 192.168.2.0 255.255.255.0 a.b.c.d

其中 abcd 是您的 openvpn 服务器的内部 ip 地址。甚至可以在便宜的 linksys 路由器上添加静态路由。

答案2

我有一个类似的设置,其中:

内部 LAN <--> OpenVPN 服务器(位于企业防火墙后面)<--> OpenVPN 客户端(也充当 FW/DHCP 服务器)<--> 位于其后面的子网

基本上,我们让 OpenVPN 服务器在内部充当服务器,OpenVPN 客户端使用 tun 接口(我们使用路由)连接到它。通过该隧道,我使用 ipforward 规则和路由规则允许来自内部 LAN 的所有流量通过 VPN 隧道流向 OpenVPN 客户端后面的外部子网。这是 OpenVPN 的正常设置,另外只需添加正确的路由,并在 server.conf 中添加 ccd 和 iroute 命令,即可访问 OpenVPN 客户端后面的子网。本质上,使用此设置,您只需使用路由接口(而不是桥接)将本地 LAN 扩展到具有加密隧道的异地位置。希望这对某些人有所帮助,我从来没有搞砸过它的桥接方面。

答案3

在这种情况下,桥接可以发挥作用,尽管严格来说这不是必要的。尝试删除以下行

push "route 192.168.1.0 255.255.255.0 192.168.1.1"
client-to-client

从服务器配置中,因为在桥接模式下不需要它们。客户端连接后,尝试 ping VPN 服务器 IP 和默认 LAN IP。

另外,发布输出

brctl show

高血压,

吉吉克

相关内容