应用:让OpenSSH成为安全的Web服务器
来源:IT168 时间:2008-10-09 16:51:00
对那些出门在外的使用无线网络的旅行者来说,不管他们是在一个咖啡屋里使用无线访问点,还是在一个飞机场,还是在其度过夜间时光的一个旅馆里,一个值得关心的重要问题是他们绝对不知道所使用网络的安全性,除非他们知道它根本并不安全。例如对于一个咖啡店的网络来说,这就是真实情况:因为它们要对每一个人开放,你不能完全相信它们。如果它们并不对任何人开放,它们也就一文不值了。
在你在一个公共的无线访问点上使用一台笔记本电脑时,解决安全问题的唯一健全方法在于,你通过其网络访问资源时,注意选择内容以及访问这些资源的方式。在很大程度上,这意味着你要避免登录到你的银行的Web站点等操作,不能在线购物,也不要通过这种网络发送敏感的数据。即使这个被怀疑的Web站点使用了登录会话的加密,那也不能表明你不会受到某种中间人的攻击,或者受到某种你不能控制的其它欺骗的攻击。
不过,还是有一些方法可以保护你,这样你就可访问那种要求通过网络多次传送敏感数据的资源。其中一种方法是使用一个安全的透明代理服务。任何种类的Web代理服务对于一般用户的安装和配置都是很困难的,不过如果你仅需要一个到达透明代理的加密连接而不需要其它措施,并且你使用了恰当的工具,Web代理服务实现起来却又相对简单。幸运的是,这种“恰当的工具”是很容易得到的。
下面的例子中,我们假定你正将家中一个Linux、BSD Unix、或商业类UNIX系统用作代理服务器。我们还假定你在家里拥有一个连续的互联网连接,如通过一个典型的DSL连接实现的Internet连接。
服务器访问
设置访问你的透明代理的第一步是配置家庭网络的防火墙,使其可以将一个SSH端口转到你要用作透明代理的计算机上。你在家用计算机上拥有一个防火墙来提供安全的访问,对吧?如果你还没有的话,那么笔者建议你先别读本文了,先去改正这个问题吧。在无防火墙的情况下直接连接到互联网绝对是一个很糟糕的不安全做法。
配置防火墙实现端口转发的过程在防火墙上的实现可以说是千差万别。你可以购买到的多数消费者级别的路由器/防火墙设备提供了端口转发的功能,用户可以轻松搞定。如果你在某种老的硬件上运行着自己的基于Linux或BSD Unix的防火墙,你可能需要知道自己如何完成设置。
我们假定你已经配置了面向互联网的防火墙,用以在端口2200上接收SSH连接,并将这些连接转到你的内部网络上一个类Unix系统的22号端口上。你最好不要将防火墙用作代理服务器,虽然这是可能的,甚至实现起来很简单。你一要确信自己在代理服务器上保障SSH的安全性,可以安全地对付常见的强力口令攻击。
你还必须保障你的服务器通过防火墙以HTTP方式访问互联网。
最后,为了从某个外部网络连接到你的家用网络,你必须知道可以使用的IP地址。这可能需慎重对待。对于那些分配一个相对稳定IP地址的服务供应商来说,你必须找出这个IP地址是什么,并确保不要丢失它。你可以将其保存到笔记本电脑中的一个文本文件中。
如果你的ISP经常更改你的IP地址,你可能需要采取更为严格的措施。现在有许多服务可以将DNS域名解析为动态的IP地址,例如,你可以在一个家中的Web服务器上指向一个域名,即使你的IP地址经常改变。这是解决这个问题的一个可能方案,也有可能是最简单的方案。在IP地址改变时,这些服务的一个客户端需要安装到家中的一台电脑上,目的是通知服务的DNS服务器。
加密的代理连接
使用一个到达家中Web代理加密连接过程的其余步骤是在客户机上的完成的,有可能就是在你的笔记本电脑上,在这样的机器上安装一个一般的类似于Unix操作系统(如Debian GNU/Linux 或 FreeBSD)并不是难事。我们将假定你目前正使用这样的一个操作系统。
如果你正使用一种动态的DNS解析服务,你可能需要将下面例子中的IP地址用使正使用的域名来替换之。在此例中,为了方便起见,我们假定你使用的是静态的IP地址25.10.101.250。创建你的加密的代理连接需要输入类似于下面的一个命令:
“username”部分应当用代理服务器上的一个普通的用户账户名称来替换之。这个命令在端口8080上创建了一个本地的透明代理,它可以将所收到的所有通信转发到25.10.101.250的2200端口上。
你需要做的最后一件可以使一切正常运行的事情就是告诉你的Web浏览器应用程序对所有的连接要使用本地系统上的8080端口。例如,在Firefox中,你可以打开“选项”对话框,单击“高级”选项卡,再单击其下的“网络”选项卡,单击“连接””标签框右侧的“设置”按钮,如图:
Firefox设置
Firefox设置 然后确信已选中“手动配置代理”单选按钮,在“SOCKS主机”右侧的文本框中输入本地主机,在对应的端口字段中输入8080即可。如果由于某种原因,用“SOCKS V5”不能工作,可以试着换为“SOCKS V4”。如此,你已经可以将OpenSSH用作一个安全的Web服务器。祝你用得开心!