77 FreeBSD连载:安全工具( 五 )


sshd使用端口22来监听用户的连接请求,需要调整网络中防火墙系统的设置,打开对ssh服务器端口22的连接请求,以便让网络之外的客户能够发送请求并建立连接 。由于ssh系统相当安全,不必担心这样作会带来安全问题 。
当在低速网络上使用ssh的时候,就会希望网络连接的效率更高,可以在客户端启动ssh时使用压缩选项-C,这将使用与gzip相同的压缩算法对数据先进行压缩再传输,能用来提高传输非压缩数据的效率 。
同样文件传输也能通过加密的方式进行,ssh提供了scp用于复制远程文件,它的参数与rcp使用的参数相同,用与email地址相似的方式标识远程主机及确定的用户,然后再是文件位置 。
bash-2.02$ scp vpn.txt wb@remotehost:vpn.txtwb@mx"s password:vpn.txt |1 KB |1.5 kB/s | ETA: 00:00:00 | 100%对于使用Windows系统的客户,可以从Internet中下载运行在Windows下的ssh客户程序 。支持ssh的仿真终端软件有:
TTSSH http://www.zip.com.au/~roca/ttssh.HTML
SecureCRT http://www.vandyke.com/
F-Secure http://www.DataFellows.com)ssh的另一项强大能力是可以在客户机和服务器之间建立加密传输通道,从而能将本地的数据转发到远端的服务器上 。这种功能最常用于将X Window的数据包进行转发,以便能在本地X服务器上通过ssh连接到远程,然后在ssh的连接终端上启动远程计算机上的X应用程序,但显示到本地X服务器上 。此时X系统的通信数据是通过ssh建立的加密通道进行传输的,而不是普通情况下直接通过网络进行的传输,因此就保证了安全性 。这种X11转发功能不需要任何设置,包括设置DISPLAY环境变量或-dislay参数,因此同时兼具安全性和方便性 。
bash-2.02$ ssh remotehost /usr/X11R6/bin/xtermwb@remotehost"s password:Waiting for forwarded connections to terminate...The following connections are open:X11 connection from remotehost port 3979【77 FreeBSD连载:安全工具】此外,还可以使用ssh转发其他不同的TCP连接,这样就不必担心数据在通过不安全的网络部分时的安全问题了 。这首先需要使用ssh的-L参数定义本地端口和要转发的远程服务器端口的对应关系 。
bash-2.02$ ssh remotehost -L 1234:192.168.3.1:23wb@remote"s password:如果使用上例建立ssh连接之后,任何对本地端口1234的连接请求,将首先转发给ssh,然后再由ssh服务器连接远端计算机的相应端口上 。
使用ssh和ppp建立安全连接
由于ssh能在客户和服务器之间建立加密连接,因此它能和其他程序合作,如ppp,建立安全的网络通道 。这种建立VPN的方式虽然不符合任何标准,然而却十分有效 。对于FreeBSD系统之间,以及FreeBSD与其他Unix系统之间,都可以使用这种方式建立虚拟专有网络连接 。
无论使用ppp或者是pppd,都能用于和ssh协作建立VPN 。然而ppp更易于使用和设置,FreeBSD下,通常使用ppp程序建立ppp连接,因此这里就介绍使用ppp程序建立虚拟安全连接的方法 。
在/etc/ppp/目录下的ppp缺省配置文件ppp.conf中,已经提供了一个和外部程序协作,建立安全ppp连接的基本例子 。就是由ppp启动外部程序建立连接,通过认证之后自动在远端执行ppp服务器,从而建立ppp连接 。这种方法中ppp通过set device命令设置使用管道启动外部命令,但是这种管道方法不能和ssh很好的合作 。因为进行认证的口令是ssh直接从终端设备上读取的,而在通道方式中ppp供应口令是通过标准输入/输出进行的,因此这些认证信息到达不了ssh中,就造成不能通过ssh认证建立连接 。
为了修正这个问题,让ppp程序能够建立ssh加密连接,一个解决办法是使用外部拨号程序,首先使用外部程序首先进行ssh认证,认证之后再将标准输入输出交回ppp,而外部程序可以生成伪设备文件直接控制ssh进行验证,然而需要使用者进行一些编程工作,并使用这个伪设备文件作为通信设备 。另一种方式是通过设置ssh系统信任,使其不需要进行标准方式的口令认证(可以使用事先分发的公开密钥进行认证),显然这不是一个简单且安全的解决办法 。更好、更简单的办法是使用ssh的TCP/IP转发能力,结合ppp建立IP通道的能力,从而建立安全的专有连接 。

推荐阅读