⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 236.html

📁 本文详细介绍了学习FREEBSD的一些命令
💻 HTML
字号:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>www.newok.com::FreeBSD使用大全</title>
<link rel=stylesheet href="newok.css" tppabs="http://www.newok.com/include/newok.css">
</head>

<body>

<div align=center>
<p>&nbsp;</p>
<table width=720>
<tr><td>
<strong>当前所在位置:</strong><a href="javascript:if(confirm('http://www.at.china.com/bsd/index.html  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.at.china.com/bsd/index.html'" tppabs="http://www.at.china.com/bsd/index.html" class=t1>FreeBSD使用大全>></a>
</td></tr>
</table>
<table width=700>
<tr><th><font color=white>FreeBSD连载(77):安全工具(2)</font></th></tr>
<tr><td>&nbsp;</td></tr>
<tr><td align=left><i>作者:</i>王波</td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><font color=white><br>ssh<br><br>  由于网络上的数据传输是不安全,因此出现了S/key等方式来保护口令的安全。然而这些认证系统只是保证了口令等特别敏感信息的安全,而不能保证连接之后的传输数据安全性。为了保证数据传输的安全性,就必须先将数据加密之后再进行传输。<br><br>  对传输加密可以从两个方面入手,一个是在网络低层进行加密,应用程序不需了解加密的细节,因此可以兼容现有的应用程序,这种考虑方式包括建立虚拟专用网(VPN)的各种协议,如PPTP、L2TP,以及以后将采用的IPSec&nbsp;协议。另一种考虑方式是从网络应用程序入手,应用程序首先加密信息然后在进行传输,通过特定的服务程序和客户程序来建立安全连接,这种方式的代表就是ssh,此外还包括支持SSL(加密Socket层)的各个应用程序,如Telnet&nbsp;SSL,ApachSSL等。<br><br>  SSL在FreeBSD下的实现为openssl,它是在FreeBSD之类的免费操作系统下安装其他基于SSL应用程序的基础。<br><br>  PGP也是一个具备重要影响的加密程序,其本身虽然是为网络环境而设计的,但其程序本身不涉及网络。通常它和电子邮件的客户程序合作,构成安全的电子邮件系统。<br><br>  这些加密程序一般要使用Ports&nbsp;Collection下载安装,而没有现成的二进制软件包,主要原因是这些软件使用的公开密钥算法在美国有专利限制,其专利属于RSA研究所,因此FreeBSD就不将它们作成二进制软件包,以避免法律纠纷。即使使用Ports&nbsp;Collection下载这些软件的时候,也需要设定一个环境变量USA_RESIDENT&nbsp;,以区分是不是美国居民,make程序好决定从何处下载这些程序,当然,手工下载就不必顾及这些。RSA&nbsp;算法在其他国家没有专利限制,因此可以随意使用。<br><br>  如果需要反复安装这些加密工具,可以更改/etc/make.conf中的设置,使其自动设置这个变量,以方便安装过程。<br><br>  在这些工具中,最重要的还是ssh,因为它提供了Unix系统最基本访问功能的安全实现,如终端访问、文件传输功能。当使用ssh访问服务器时,服务器首先发送自己的公用密钥,客户可以使用这个密钥加密自己产生的随机密码,此后客户和服务器使用这个密码,用传统的算法,如IDEA、DES等方法来加密通信数据。对于任何希望增强安全性的系统来讲,使用ssh来代替telnet,ftp以及rlogin,rsh,rcp等命令,都是最优先要考虑的措施。网络安全敏感的系统一般都要屏蔽telnet,rlogin等方式,而使用ssh提供远程访问。<br><br>  ssh有两个不同的版本,ssh1和ssh2,这两个版本互不兼容。由于ssh1更为流行,在非Unix系统之外也拥有不同的客户程序,一般需要使用ssh1,否则就会遇到与其他ssh的服务器系统和客户软件不兼容的问题。ssh2&nbsp;功能更为强大,然而其提供的额外功能一般不需要,ssh1提供的能力已经是绰绰有余的了。Ports&nbsp;Collection中这两个版本使用同样的安装位置,不能同时安装。<br><br>  安装了ssh之后,ssh将自动产生它所使用的公用密钥,这个密钥和ssh的设置文件保存在/usr/local/etc/&nbsp;目录中,不需要改动这些设置,直接启动ssh守护进程sshd就可以正常提供ssh登录服务了。通过Ports&nbsp;Collection安装的ssh的sshd位置为/usr/local/sbin/sshd。启动sshd之后,ssh客户程序就能登录和使用这台系统,可以&nbsp;立即使用命令ssh来连接本地系统。<br><br>bash-2.02$&nbsp;ssh&nbsp;localhost<br>wb@localhost's&nbsp;password:<br>Last&nbsp;login:&nbsp;Wed&nbsp;May&nbsp;19&nbsp;08:14:13&nbsp;1999&nbsp;from&nbsp;202.102.245.72<br>Copyright&nbsp;(c)&nbsp;1980,&nbsp;1983,&nbsp;1986,&nbsp;1988,&nbsp;1990,&nbsp;1991,&nbsp;1993,&nbsp;1994<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;Regents&nbsp;of&nbsp;the&nbsp;University&nbsp;of&nbsp;California.&nbsp;&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.<br><br>FreeBSD&nbsp;3.1-RELEASE&nbsp;(wb)&nbsp;#6:&nbsp;Thu&nbsp;Apr&nbsp;22&nbsp;18:29:12&nbsp;CST&nbsp;1999<br>Welcome&nbsp;to&nbsp;FreeBSD!<br>&nbsp;<br>&nbsp;<br><br>  Ports&nbsp;Collection会在/usr/local/etc/rc.d目录下放置ssh的启动文件sshd.sh&nbsp;,用以在系统启动时自动启动sshd。<br><br>  sshd使用端口22来监听用户的连接请求,需要调整网络中防火墙系统的设置,打开对ssh服务器端口22的连接请求,以便让网络之外的客户能够发送请求并建立连接。由于ssh系统相当安全,不必担心这样作会带来安全问题。<br><br>  当在低速网络上使用ssh的时候,就会希望网络连接的效率更高,可以在客户端启动ssh时使用压缩选项-C,这将使用与gzip相同的压缩算法对数据先进行压缩再传输,能用来提高传输非压缩数据的效率。<br><br>  同样文件传输也能通过加密的方式进行,ssh提供了scp用于复制远程文件,它的参数与rcp使用的参数相同,用与email地址相似的方式标识远程主机及确定的用户,然后再是文件位置。<br><br>bash-2.02$&nbsp;scp&nbsp;vpn.txt&nbsp;wb@remotehost:vpn.txt<br>wb@mx's&nbsp;password:<br>vpn.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;KB&nbsp;|&nbsp;&nbsp;&nbsp;1.5&nbsp;kB/s&nbsp;|&nbsp;ETA:&nbsp;00:00:00&nbsp;|&nbsp;100%<br>&nbsp;<br>&nbsp;<br><br>  对于使用Windows系统的客户,可以从Internet中下载运行在Windows下的ssh客户程序。支持ssh的仿真终端软件有:<br>TTSSH&nbsp;http://www.zip.com.au/~roca/ttssh.html<br>SecureCRT&nbsp;http://www.vandyke.com/<br>F-Secure&nbsp;http://www.DataFellows.com)&nbsp;<br><br>  ssh的另一项强大能力是可以在客户机和服务器之间建立加密传输通道,从而能将本地的数据转发到远端的服务器上。这种功能最常用于将X&nbsp;Window的数据包进行转发,以便能在本地X服务器上通过ssh连接到远程,然后在ssh的连接终端上启动远程计算机上的X应用程序,但显示到本地X服务器上。此时X系统的通信数据是通过ssh建立的加密通道进行传输的,而不是普通情况下直接通过网络进行的传输,因此就保证了安全性。这种X11转发功能不需要任何设置,包括设置DISPLAY&nbsp;环境变量或-dislay参数,因此同时兼具安全性和方便性。<br><br>bash-2.02$&nbsp;ssh&nbsp;remotehost&nbsp;/usr/X11R6/bin/xterm<br>wb@remotehost's&nbsp;password:<br>Waiting&nbsp;for&nbsp;forwarded&nbsp;connections&nbsp;to&nbsp;terminate...<br>The&nbsp;following&nbsp;connections&nbsp;are&nbsp;open:<br>&nbsp;&nbsp;X11&nbsp;connection&nbsp;from&nbsp;remotehost&nbsp;port&nbsp;3979<br>&nbsp;<br>&nbsp;<br><br>  此外,还可以使用ssh转发其他不同的TCP连接,这样就不必担心数据在通过不安全的网络部分时的安全问题了。这首先需要使用ssh的-L参数定义本地端口和要转发的远程服务器端口的对应关系。<br><br>bash-2.02$&nbsp;ssh&nbsp;remotehost&nbsp;-L&nbsp;1234:192.168.3.1:23<br>wb@remote's&nbsp;password:<br>&nbsp;<br>&nbsp;<br><br>  如果使用上例建立ssh连接之后,任何对本地端口1234的连接请求,将首先转发给ssh,然后再由ssh服务器连接远端计算机的相应端口上。<br><br><br>使用ssh和ppp建立安全连接<br><br>  由于ssh能在客户和服务器之间建立加密连接,因此它能和其他程序合作,如ppp,建立安全的网络通道。这种建立VPN的方式虽然不符合任何标准,然而却十分有效。对于FreeBSD系统之间,以及FreeBSD与其他Unix&nbsp;系统之间,都可以使用这种方式建立虚拟专有网络连接。<br><br>  无论使用ppp或者是pppd,都能用于和ssh协作建立VPN。然而ppp更易于使用和设置,FreeBSD&nbsp;下,通常使用ppp程序建立ppp连接,因此这里就介绍使用ppp程序建立虚拟安全连接的方法。<br><br>  在/etc/ppp/目录下的ppp缺省配置文件ppp.conf中,已经提供了一个和外部程序协作,建立安全ppp连接的基本例子。就是由ppp启动外部程序建立连接,通过认证之后自动在远端执行ppp服务器,从而建立ppp&nbsp;连接。这种方法中ppp通过set&nbsp;device命令设置使用管道启动外部命令,但是这种管道方法不能和ssh很好的合作。因为进行认证的口令是ssh直接从终端设备上读取的,而在通道方式中ppp供应口令是通过标准输入/输出进行的,因此这些认证信息到达不了ssh中,就造成不能通过ssh认证建立连接。<br><br>  为了修正这个问题,让ppp程序能够建立ssh加密连接,一个解决办法是使用外部拨号程序,首先使用外部程序首先进行ssh认证,认证之后再将标准输入输出交回ppp,而外部程序可以生成伪设备文件直接控制ssh进行验证,然而需要使用者进行一些编程工作,并使用这个伪设备文件作为通信设备。另一种方式是通过设置ssh系统信任,使其不需要进行标准方式的口令认证(可以使用事先分发的公开密钥进行认证),显然这不是一个简单且安全的解决办法。更好、更简单的办法是使用ssh的TCP/IP转发能力,结合ppp建立IP通道的能力,从而建立安全的专有连接。<br><br>  为了建立ssh转发条件下的安全专有连接,首先回顾使用ppp建立IP通道的方法,这个方法在前面设置ppp&nbsp;时介绍过。可以根据这些设置来设置客户端ppp配置文件ppp.conf,建立与本机的IP通道。<br><br>vpnclient:<br>&nbsp;set&nbsp;timeout&nbsp;0<br>&nbsp;set&nbsp;log&nbsp;phase&nbsp;chat&nbsp;connect&nbsp;lcp&nbsp;ipcp<br>&nbsp;set&nbsp;dial<br>&nbsp;set&nbsp;ifaddr&nbsp;192.168.4.10&nbsp;192.168.4.1&nbsp;255.255.255.0<br>&nbsp;set&nbsp;device&nbsp;localhost:3333<br>&nbsp;<br>&nbsp;<br><br>  上面vnpclient的拨号设备设置为本地端口3333,与建立标准IP通道时的设置是不同,这里设置的是本地计算机的端口。而服务器端的设置为:<br><br>vpnserver:<br>&nbsp;set&nbsp;timeout&nbsp;0<br>&nbsp;set&nbsp;log&nbsp;phase&nbsp;lcp&nbsp;ipcp&nbsp;command<br>&nbsp;set&nbsp;ifaddr&nbsp;192.168.4.1&nbsp;192.168.4.10&nbsp;255.255.255.0<br>&nbsp;allow&nbsp;mode&nbsp;direct<br>&nbsp;enable&nbsp;proxy<br>&nbsp;<br>&nbsp;<br><br>  为了建立安全连接,与设置IP通道类似,服务器端也需要设置使用inetd之类的超级服务器程序来启动ppp&nbsp;服务器,回应客户端的请求以在IP通道上建立PPP连接。需要修改/etc/services,增加启动ppp服务器的端口号。<br><br>ppploop&nbsp;6671/tcp&nbsp;#&nbsp;loopback&nbsp;ppp&nbsp;daemon<br>&nbsp;<br>&nbsp;<br><br>  然后修改/etc/inetd.conf文件,增加对ppp服务器启动的支持,并重新启动inetd。<br><br>ppploop&nbsp;stream&nbsp;tcp&nbsp;nowait&nbsp;root&nbsp;/usr/sbin/ppp&nbsp;ppp&nbsp;-direct&nbsp;vpnserver<br>&nbsp;<br>&nbsp;<br><br>  但是,由于ppp客户是向本地计算机发送连接请求,而非直接将请求发送给PPP服务器,因此就需要启动ssh,并建立相应的数据包转发功能,将转发的目标端口设置为服务器上ppp监听的端口。<br><br>bash-2.02$&nbsp;ssh&nbsp;remotehost&nbsp;-L&nbsp;3333:remotehost:6671<br>wb@remotehost's&nbsp;password:<br>&nbsp;<br>&nbsp;<br><br>  此后,可以在本地使用ppp连接本地的转发端口,直接建立安全连接。<br><br>bash-2.02#&nbsp;ppp&nbsp;-b&nbsp;vpnclient<br>Working&nbsp;in&nbsp;background&nbsp;mode<br>Using&nbsp;interface:&nbsp;tun0<br>PPP&nbsp;enabled.<br>bash-2.02#&nbsp;ifconfig&nbsp;tun0<br>tun0:&nbsp;flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST>&nbsp;mtu&nbsp;1500<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inet&nbsp;192.168.4.10&nbsp;-->&nbsp;192.168.4.1&nbsp;netmask&nbsp;0xffffff00<br>&nbsp;<br>&nbsp;<br><br>未完,待续。。。</font></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td align=right><i>来源:</i><a href="javascript:if(confirm('http://freebsd.online.ha.cn/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://freebsd.online.ha.cn/'" tppabs="http://freebsd.online.ha.cn/">http://freebsd.online.ha.cn/</a></td></tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
声明:本站的文章和软件是本人从网上收集整理的(除本人的作品之外),所有版权属于作者,<br>
如有侵犯您的权益,请指出,本站将立即改正,谢谢.
<hr  width=500>
<br>
<font color=#ffffff>Copyright 2000 <a href="javascript:if(confirm('http://www.newok.com/  \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address.  \n\nDo you want to open it from the server?'))window.location='http://www.newok.com/'" tppabs="http://www.newok.com/" class=t1>www.newok.com</a></font>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -