我已经正确安装并配置软醚在我的 Ubuntu 14 x64 VPS 上采用本地桥接模式,具有虚拟 TAP 接口。
我现在拥有一个功能齐全的 L2TP/IPSEC 服务器,它具有两个网络接口,我想使用它来进一步确保其安全ufw
。
在搜索了互联网之后,我按照下面的方法找到了一个可行的解决方案,但我不确定它有多安全/正确,希望有人能为我指明正确的方向。
从我的(缩短)开始ifconfig
:
eth0 Link encap:Ethernet HWaddr XX
inet addr:XXX.XXX.XXX.XXX Bcast:XXX.XXX.XXX.255 Mask:255.255.255.0
inet6 addr: XX Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
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:65536 Metric:1
tap_soft Link encap:Ethernet HWaddr XX
inet addr:192.168.7.1 Bcast:192.168.7.255 Mask:255.255.255.0
inet6 addr: XX Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
1-/etc/ufw/before.rules
我在以下行前插入了一条POSTROUTING
规则*filter
:
# Rules for NAT Table of iptables
*nat
:POSTROUTING ACCEPT [0:0]
# Forward traffic from Softether through eth0.
-A POSTROUTING -s 192.168.7.0/24 -o eth0 -j MASQUERADE
# tell ufw to process the lines
COMMIT
2-/etc/default/ufw
我已启用转发并设置DEFAULT_FORWARD_POLICY="ACCEPT"
3-当然附加net.ipv4.ip_forward = 1
到- 并重新加载 sysctl。/etc/sysctl.conf
4- 因为我在本地桥接模式下运行,所以tap_soft
需要 DHCP 服务器。
所以我的dnsmasq.conf
文件如下所示:
interface=tap_soft
dhcp-range=tap_soft,192.168.7.50,192.168.7.60,12h
dhcp-option=tap_soft,3,192.168.7.1
5-ufw
详细状态:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), allow (routed)
To Action From
-- ------ ----
67 on tap_soft ALLOW IN Anywhere
53 on tap_soft ALLOW IN Anywhere
1701 ALLOW IN Anywhere
4500/udp ALLOW IN Anywhere
500/udp ALLOW IN Anywhere
上述步骤意味着我拥有一个带有防火墙的功能齐全的 VPN 服务器 - 但我的防火墙配置是否仍然安全/正确/推荐?
我发现让它正常工作的唯一其他方法是
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to-source MYPUBLICIPADDRESS
只打开端口和67
。由于 不太熟悉,我不能 100% 确定它的作用或工作原理。53
ufw
iptables
答案1
像这样使用 SoftEther 在 TAP 接口中创建 L2 桥接本质上是一种 SecureNAT 配置。SoftEther 无需 dnsmasq 或 ufw 即可完成您想要的操作。
恢复当前配置并尝试以下操作:
- 创建名为斯奈特。
- 点击管理虚拟中心按钮。
- 点击虚拟 NAT 和虚拟 DHCP。
- 点击SecureNAT 配置。
- 使能够:使用虚拟 NAT 功能
- 使能够:使用虚拟 DHCP 功能
- 放:IP地址= 192.168.7.1
- 放:子网掩码= 255.255.255.0
- 放:分配 IP 地址192.168.7.50 至 192.168.7.60
- 放:子网掩码= 255.255.255.0
- 放:默认网关地址= 192.168.7.1
- 将 DNS 服务器地址设置为 /etc/resolv.conf 文件中当前的地址。
- 点击好的。
- 点击启用 SecureNAT。
- 点击出口。
- 点击出口再次。
步骤 5 和步骤 6 启用 SoftEther 中的功能,这些功能与 dnsmasq 的功能相同,只是 SoftEther 不实现 DNS 转发器。请记住在新的集线器中创建用户帐户。忽略有关虚拟机环境的所有警告。
SoftEther 的一个不太明显的特性是 192.168.7.1 网关地址未绑定到服务器,无法从服务器访问。如果您希望服务器与 VPN 客户端通信,那么也请执行以下操作:
- 点击本地桥接设置按钮。
- 选择斯奈特在里面虚拟中心下拉菜单。
- 选择带有新 Tap 设备的 Bridge。
- 放新 Tap 设备名称=斯奈特
- 点击创建本地桥接。
- 点击出口。
现在将此节放入 /etc/network/interfaces 文件中:
allow-hotplug tap_snat
iface tap_snat inet static
address 192.168.7.2
netmask 255.255.255.0
请注意,SoftEther 创建的接口在主机环境中始终带有 tap_ 前缀。重启后,启动 SoftEther 时 tap_snat 接口将上线。
请记住,SoftEther 不使用 Linux 内核工具进行 NAT,并且主机不得将 SoftEther 网关地址附加到其任何接口。此处使用 .2 不是拼写错误。
默认的 SoftEther 安全策略允许 VPN 客户端使用 DHCP 范围之外的静态 IP 地址,因此 UFW 可以像这样进行端口转发(禁用 IP 转发):
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to 192.168.7.3:1234
COMMIT
这样做的妙处在于,SoftEther 将桥接广播流量,使得 mDNS 和 uPNP 等正常工作,并且服务器将在与兼容 VPN 客户端连接的客户端计算机的 Explorer 面板中显示为 MyServer.local。