我即将启动一个为Windows机器编写远程控制软件的项目,我想从服务器端应用程序开始。我需要类似OpenSSH服务器的东西,因为该程序的主要目的是通过服务器提供客户端的http隧道,类似代理但更安全和加密。我有一些经验,主要是使用C ++或Python中的几个基于unix的守护进程和客户端,但在这里我面对的是更大的东西。我现在的主要问题是隧道部分 - 我不知道该怎么做而且实施起来非常重要。客户端应该能够通过服务器上网(如SSH隧道),我不知道这是如何工作的。我希望有人能指出一些很好的链接,这些内容很好解释,或者至少向我推荐一些我应该查阅的书。
感谢。
答案 0 :(得分:1)
我目前在一个项目中使用openvpn隧道与windows机器的组合,然后在Windows上使用Cygwin来访问Windows机器。它有效,它很简单,而且是免费的:)
答案 1 :(得分:0)
您没有描述要为其提供安全性的威胁,因此我假设您要阻止位于客户端和服务器之间的攻击者读取和/或修改Web流量,这样这就是你需要加密的原因。
为此,您无需编写自己的代码。相反,您可以通过在服务器上运行HTTP代理(例如squid)和SSH服务器(例如openssh)以及通过SSH隧道访问HTTP代理来获得所需的内容。
您可以将HTTP代理配置为仅接受来自“localhost”的连接,而SSH服务器接受来自客户端系统的连接。
可以在http://kimmo.suominen.com/docs/proxy-through-ssh/找到关于如何从Windows客户端使用此类设置的一个很好的描述(它描述了使用这样的设置将从Internet连接到内部网,但原则是一样的)
为了安全起见,您需要浏览SSH服务器配置文件,并禁用除访问HTTP代理所需的一个特定端口的端口转发之外的所有内容。
这就是你所描述的“主要目的”。如果您需要服务器代表客户端执行其他操作,我的建议是将它们作为在服务器上运行的单独应用程序实现,具有HTTP接口(CherryPy是在python中执行此操作的简单方法)客户端可以通过HTTP代理访问。
答案 2 :(得分:0)
不确定这是否是你需要的,但我想你可以使用VPN。 OpenVPN构建一个加密的VPN,你可以配置它来发送网关(带有DHCP)和你想要的路由到客户端,这样你就可以通过encripted连接将所有客户端http流量重定向到你想要的服务器。
答案 3 :(得分:0)
您可以在Windows上运行OpenSSH服务器,例如:http://sshwindows.sourceforge.net/
不幸的是,这个特定的链接指向2004年最新发布的死项目。自2004年以来有多少安全更新?超过零,我敢肯定......