我应该使用openVPN还是别的?

我负责为一群员工build立一套“有networking的服务器”,但我不知道从哪里开始。 下面发表的是最初的要求,我的思路和我的问题。

要求:
1.任何软件都需要开源。
2.用户不熟悉技术,他们将通过自己的计算机连接,我们可以假设他们有pipe理员访问这些计算机,所以他们可以安装/运行软件,如果需要的话。
他们可以从网上的任何地方连接到这个有围墙的networking。
4.我们不会提供一个只处理来往于服务器的stream量的隧道。
5.这个连接应该是安全的。 (SSH也许只是一个想法)
6.员工使用Windows,Linux和MacOSX。
7.每个用户需要一个用户名/密码
8.每个用户login时间的日志需要在某个地方。

我的思路:
我最初想使用openVPN,但据我了解,通过VPNnetworkingpipe道一切,并有问题连接到所有3个PC平台,这不会工作,每个上述要求。

问题:
1.我对vpn的了解是否特意打开了VPN?
2.是否有任何基于Web的解决scheme,以便员工不必在他们的计算机上安装VPN客户端。 也许我可以有一个networkinglogin,将用户IP添加到防火墙的白名单,然后删除一段时间的不活动(只是一个想法)?
我完全错过了什么,或者这样做可以做得更好吗?
4.任何想法,想法,资源,网站链接等将是有益的。

TL; DR我需要一种方法来validation用户在不同PC平台上的任意一组服务器的身份。

感谢您的时间。

编辑:感谢大家的帮助,但我想我只是需要跳跃,试着用必要的软件设置一个debian盒,然后在遇到问题时提出问题。 我正在考虑所有事情,并且花费了大量的时间。 所以我的行动计划如下

  1. 设置一个Debian服务器。
  2. 安装公司所需的服务器软件。
  3. 安装openVPN

我仍然困惑于设置用户名/密码帐户和logging时间和用户,但我会解决这个问题,当我到达它。

你有没有注意到我目前的行动计划有什么问题或陷阱?

广告

  1. 不它不是。 OpenVPN不要求您通过VPN接口传输所有通信。 您可以专门select将要创build的VPN路由。 此外,OpenVPN可用于各种平台,包括Windows,Linux和OS X.
  2. 有许多基于浏览器的SSL VPN解决scheme。 看看他们是否可以做你需要做的事情。
  3. &4. – 不知道,你已经遗漏了任何具体的东西,需要以有意义的方式来评估。

由于OpenVPN非常灵活,它很可能会满足您的需求。 但是它也是一个相当复杂的软件包,有很多configuration选项,所以在设置时需要准备一些工作 – “做我的意思是做”button还没有实现。

由于许多不同的用户和平台都连接到这个networking,所以我还假设你保护你的networking不在VPN服务器的后面。 基本上只是创build特定的Tun / Tap界面的规则,OpenVPN使用它来保证只有有效的stream量,这取决于你必须提供的服务。

正如syneticon-dj已经指出OpenVPN不要求你通过隧道接口发送所有的stream量。 事实上,你可以select在客户端或服务器端设置或推送路由到客户端,或者正如你所提到的设置OpenVPN接口作为默认网关(客户端路由与Windows)

#Network Route route 192.168.1.0 255.255.255.0 #Single host route trough a given server (1.2.3.4 over 10.20.30.40) route 1.2.3.4 255.255.255.255 10.20.30.40 

在Mac OS上,我select的客户端是Windows上的Tunnelblick和Linux上的OpenVPN 。

最安全的身份validation方法是为每个用户生成证书。 所以你可以很容易地撤销你的服务器端的连接,并可以密封(取决于你的密钥大小);)

要在服务器上启用日志logging,只需将以下行添加到服务器configuration中即可

 status /var/log/openvpn/server.status log-append /var/log/openvpn/server.log verb 3 

(该文件夹需要存在,具有正确的权限)

第一个文件是为了快速的使用目的,来检查哪个用户login。 第二个为您提供每个连接的详细日志。

PS:Logrotateconfiguration,别人OpenVPN永远不会旋转日志本身…;)

 /var/log/openvpn/*.log { daily copytruncate missingok rotate 7 delaycompress notifempty }