我已经正确安装和configurationSoftether在我的Ubuntu 14 x64 VPS在本地桥模式与虚拟TAP接口。
我现在所拥有的是一个全function的L2TP / IPSEC服务器,它有两个networking接口,我希望使用ufw
来进一步保证安全。
在search了互联网之后,我按照下面的方法入侵了一个解决scheme,但是我不确定它是多么的安全/正确,希望这里有人能指引我朝着正确的方向前进。
从我的(缩写) 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
我在*filter
行之前插入了一个POSTROUTING
规则:
# 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
加载到/etc/sysctl.conf
– 然后重新加载sysctl。
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
上述步骤意味着我有一个防火墙function齐全的VPN服务器 – 但是我的防火墙configuration仍然安全/正确/build议?
我发现正确工作的唯一方法是
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -j SNAT --to-source MYPUBLICIPADDRESS
,只能打开ufw
端口67
和53
。
不熟悉iptables
,我不是100%确定这是做什么或为什么它的作品。
使用SoftEther创build一个L2桥接到这样的TAP接口本质上是一个SecureNATconfiguration。 SoftEther可以做你想要的,没有dnsmasq或ufw。
恢复当前的configuration,并尝试这个:
步骤5和步骤6启用SoftEther中的function,除了SoftEther不实现DNS转发器之外,其它function与dnsmasq相同。 请记住在新的集线器中创build用户帐户。 忽略有关虚拟机环境的所有警告。
关于SoftEther的非显而易见的事情是192.168.7.1网关地址没有绑定到服务器,并且不能从服务器访问。 如果您希望服务器与VPN客户端进行通信,请执行以下操作:
现在把这个节放在/ etc / network / interfaces文件中:
allow-hotplug tap_snat iface tap_snat inet static address 192.168.7.2 netmask 255.255.255.0
请注意,SoftEther创build的接口如何在主机环境中始终具有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将桥接广播stream量,使得诸如mDNS和uPNP之类的东西正常工作,并且服务器将在与兼容的VPN客户端连接的客户端计算机的资源pipe理器面板中显示为MyServer.local 。