为路由 OpenVPN 配置 Shorewall

为路由 OpenVPN 配置 Shorewall

我有一台 Ubuntu 服务器 14.04 机器,用作 NAT 路由器。路由是使用 Shorewall 实现的,主要符合本教程. LAN 有子网10.0.0.0/24

在这台机器上,我还想运行一个 OpenVPN 服务器,它监听端口 1194(udp)。连接到此 VPN 的客户端(来自互联网)应该会发现自己位于子网中10.34.56.0/24。VPN 子网中的主机应该能够通过 udp 和 tcp 连接访问 LAN 子网中的主机。此外,VPN 子网中的主机应该能够通过我的服务器(伪装)访问互联网。

我的问题是:我该如何配置 Shorewall 来实现这一点?
A)连接的 VPN 客户端应该从 OpenVPN 服务器获得答复
b)VPN 子网中的主机应该能够访问互联网


其中/etc/shorewall/rules包含一行用于打开 OpenVPN 服务器的端口以接收传入的 VPN 连接

#ACTION         SOURCE          DEST            PROTO   DEST    SOURCE 
#                                               PORT    PORT(S)
# listen for VPN on net
ACCEPT          net             $FW             udp     1194

我曾尝试使用/etc/shorewall/tunnels文件,例如这一页建议,但无济于事。我还尝试将/etc/shorewall/tunnels文件翻译成/etc/shorewall/rules,按照这一页,但这也没有成功。我得到的只是在设置连接时超时。


我的更多 shorewall 配置文件:

我的/etc/shorewall/interfaces

#ZONE   INTERFACE       BROADCAST       OPTIONS
net     p10p1           detect          #...
loc     eth1            detect          #...
vpn     tun+

我的/etc/shorewall/zones

#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4
vpn     ipv4

我的/etc/shorewall/masq

#INTERFACE:DEST         SOURCE          ADDRESS         PROTO   PORT(S) IPSEC   MARK    USER/   SWITCH  ORIGINAL
#                                                                                       GROUP           DEST
p10p1                   10.0.0.0/24

答案1

尝试改变规则:

ACCEPT          net             $FW             udp     1194

成为 :

ACCEPT:info          net             $FW             udp     1194

然后跟踪 /var/log/syslog 文件以查看连接是否已启动。

确保 /etc/shorewall/policy 文件有一个部分允许 VPN 到 LOC 和 LOC 到 VPN:

loc       vpn         ACCEPT
vpn       loc         ACCEPT

...或 /etc/shorewall/rules 文件中的规则允许 loc 到 vpn 和 vpn 到 loc。

ACCEPT         loc       vpn
ACCEPT         vpn       loc

并且您的 /etc/shorewall/tunnels 文件中应该包含以下内容:

openvpnserver:1194      net     0.0.0.0/0

如果所有设置都已设置并正常工作,则可能是 openvpn 配置存在问题。这是我的配置示例,其中进行了更改以匹配您的配置。

# General Options
local your.public.ip
dev tun0
proto udp
port 1194
topology subnet
client-config-dir /etc/openvpn/ccd

# Certificate locations
ca /etc/openvpn/easyrsa/keys/ca.crt
cert /etc/openvpn/easyrsa/keys/gateway.crt
key /etc/openvpn/easyrsa/keys/gateway.key
dh /etc/openvpn/easyrsa/keys/dh2048.pem

# Who the openvpn process run as
user nobody
group nogroup

# Use this range for IP's
server 10.34.56.0 255.255.255.0
persist-key
persist-tun

# Allow client to client traffic
client-to-client

# Set VPN as Default GW
#push “redirect-gateway def1″

# Push routes to client (prefered over default route)
push "route 10.0.0.0 255.255.255.0"

#set the dns servers
push “dhcp-option DNS 10.0.0.1″

status /var/log/openvpn-status.log
verb 5
log-append /var/log/openvpn
comp-lzo
keepalive 20 120

相关内容