﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-风之语-随笔分类-linux</title><link>http://www.blogjava.net/gf7/category/3751.html</link><description>&lt;a href="http://www.keepc.com/voip/?t=1&amp;id=6125" target="_blank"&gt;&lt;img src="http://union.keepc.com/templates/default/images/1/950X90.gif" alt="KC网络电话，中国最优秀的网络电话" width="950" height="90" border="0"&gt;&lt;/a&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 12 Dec 2012 04:31:08 GMT</lastBuildDate><pubDate>Wed, 12 Dec 2012 04:31:08 GMT</pubDate><ttl>60</ttl><item><title>Vm虚拟机访问本地硬盘文件</title><link>http://www.blogjava.net/gf7/archive/2012/12/12/392850.html</link><dc:creator>风</dc:creator><author>风</author><pubDate>Wed, 12 Dec 2012 02:43:00 GMT</pubDate><guid>http://www.blogjava.net/gf7/archive/2012/12/12/392850.html</guid><wfw:comment>http://www.blogjava.net/gf7/comments/392850.html</wfw:comment><comments>http://www.blogjava.net/gf7/archive/2012/12/12/392850.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gf7/comments/commentRss/392850.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gf7/services/trackbacks/392850.html</trackback:ping><description><![CDATA[虚拟机上的linux访问本机Windows共享文件设置方法 <br /><p style="text-indent: 2em;">1.安装VMtools for linux:<br />选择vmware <br />workstation程序菜单中VM <wbr> &gt; install VMware tools...</p><p style="text-indent: 2em;">&nbsp;2. 进入linux</p><p style="text-indent: 2em;">挂载vmtools 安装文件:</p><p style="text-indent: 2em;">mount /dev/cdrom <br />/mnt/cdrom（vmtools的安装文件放在vmware虚拟的cdrom中，首先要mount上这个光驱才能找到安装文件）<br />进入/mnt/cdrom 目录，把安装文件解压到/tmp :</p><p style="text-indent: 2em;">cd /mnt/cdrom<br />tar -zxvf <br />VMwareTools-5.0.0-12124.i386.tar.gz -C /tmp（把安装文件解压到/tmp）<br />执行vwware的安装脚本:<br />cd <br />/tmp/vmware-tools-distrib<br />./vmware-install.pl</p><p style="text-indent: 2em;">&nbsp;在这里，安装程序会询问安装文件存放位置和设置分辨率等一系列问题，在大多数情况下，安装默认配置vmware <br />tools就可以正常工作，因此，这里对每一个问题按回车键选择默认配置。</p><p style="text-indent: 2em;"><a href="http://www.xuniji.com/upload/forum/200610/20061016184735fl.jpg" rel="nofollow" target="_blank"></a>安装完以后，vmware会添加一个vmhgfs的模块到内核中，可以使用lsmod查看.</p><p style="text-indent: 2em;">&nbsp;<a rel="nofollow" target="_blank">3</a>.设置共享文件夹：</p><p style="text-indent: 2em;">选择vmware <br />workstation程序菜单中VM&gt;Settings&gt;Options&gt;Shared Folders <br />&gt;Properties<br />点击对话框右下的&#8220;add&#8221;按钮，点击&#8220;下一步&#8221;<br />在文本框&#8220;name&#8221;中输入共享目录的名字（这里填写的目录名以后VM的linux系统中将显示出同样的目录名），比如：win_linux_share<br />下一个对话框是选择共享的方式:Enable <br />this share是指这个共享长期有效，目录可读写；Read-only方式是指这个共享长期有效，目录只读；Disable after this <br />session方式是指下次ghost computer被关闭或挂起后，共享将会失效。一般情况下选择Enable this share然后点击&#8220;完成&#8221;<br />shared folder设置完毕<br />4.在VM的linux查看shared <br />folder目录的使用<br />cd /mnt/hgfs</p><p style="text-indent: 2em;">/mnt/hgfs/目录下就同步了windows中的win_linux_share文件夹</p><p style="text-indent: 2em;">&nbsp;[root@localhost network-scripts]# cd <br />/mnt/hgfs<br />[root@localhost hgfs]# ls<br />win_linux_share<br />[root@localhost <br />hgfs]# cd win_linux_share/<br />[root@localhost win_linux_share]# <br />ls<br />sunzhaoyao.txt</p><img src ="http://www.blogjava.net/gf7/aggbug/392850.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gf7/" target="_blank">风</a> 2012-12-12 10:43 <a href="http://www.blogjava.net/gf7/archive/2012/12/12/392850.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NFS文件无法写入的权限问题</title><link>http://www.blogjava.net/gf7/archive/2012/12/12/392843.html</link><dc:creator>风</dc:creator><author>风</author><pubDate>Wed, 12 Dec 2012 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/gf7/archive/2012/12/12/392843.html</guid><wfw:comment>http://www.blogjava.net/gf7/comments/392843.html</wfw:comment><comments>http://www.blogjava.net/gf7/archive/2012/12/12/392843.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gf7/comments/commentRss/392843.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gf7/services/trackbacks/392843.html</trackback:ping><description><![CDATA[<br /><div><font size="3">环境:</font></div><br /><div><font size="3">OS:Red Hat Linux As 5</font></div><br /><div><font size="3"></font> </div><br /><div><font size="3">1.服务器上创建共享目录<br /><font color="#0000f0">mkdir <br />doc_share</font></font></div><br /><div><br /><font size="3">2.编辑exports文件<br /></font><font size="3"><font color="#0000f0">vim /etc/exports<br /></font>写入<br /></font><font size="3"><font color="#0000f0">/doc_share <br />192.168.2.131/255.255.255.0(rw,sync)<br /></font>格式是:<br />要共享的目录 <br />共享的IP及掩码或者域名(权限,同步更新)</font></div><br /><div><font size="3"></font> </div><br /><div><font size="3">3.启动服务<br /></font><font color="#0000f0" size="3">/etc/init.d/portmap restart<br />/etc/init.d/nfs restart<br />chkconfig nfs <br />on<br />chkconfig portmap on</font></div><br /><div><font size="3">然后关闭防火墙以及更改Selinux关于NIS的选项<br /><font color="#0000f0">/etc/init.d/iptables stop</font> (防护墙服务关闭)<br /></font><font size="3"><font color="#0000f0">chkconfig iptables off<br /></font><font color="#0000f0">system-config-selinux</font> (设置selinux)</font></div><br /><div><br /><font size="3">查看共享的东西<br /></font><font color="#0000f0" size="3">[root@rac1 <br />/]# exportfs -rv<br />exporting 
192.168.2.131/255.255.255.0:/doc_share</font></div><br /><div><font size="3"></font> </div><br /><div><font size="3">试着在本机看能否加载<br /><font color="#0000f0">mount <br />192.168.2.131:/doc_share /mnt</font></font></div><br /><div><font color="#0000f0" size="3">[root@rac1 doc_share]# echo <br />aa&gt;aa.txt<br />[root@rac1 doc_share]# ls<br />aa.txt<br />[root@rac1 /]# cd <br />/mnt<br />[root@rac1 mnt]# ls<br />aa.txt</font></div><br /><div><font size="3"></font> </div><br /><div><font size="3">4.客户端<br />手工mount:<br /></font><font size="3"><font color="#0000f0">mount -o nolock 192.168.2.131:/doc_share <br />/mnt<br /></font>这个时候可以看到在节点1上内容了.<br /></font><font color="#0000f0" size="3">[root@rac2 <br />mnt]# cd /mnt<br />[root@rac2 mnt]# ls<br />aa.txt</font></div><br /><div><font size="3">自动mount:<br />编辑fstab文件，实现开机自动挂载<br />mount -t nfs IP:/目录 挂载到的目录 <br />(此为临时挂载)<br />如：</font><font size="3"><font color="#0000f0">mount -t nfs <br />192.168.0.9:/doce /doc<br /></font>vim /etc/fstab 添加如下内容<br /></font><font color="#0000f0" size="3">192.168.2.131:/doc_share /mnt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nfs&nbsp;&nbsp;&nbsp;&nbsp; <br />defaults&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0<br /></font></div><br /><div><font size="3"></font> </div><br /><div><font size="3"></font> </div><br /><div><font size="3">相关的一些命令:<br />showmout命令对于NFS的操作和查错有很大的帮助.<br />showmout <br /><br />-a:这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器.<br />-e:显示指定的NFS <br />SERVER上export出来的目录.<br />例如： <br /><font color="#0000f0">showmount -e 192.168.0.30 <br /><br />Export list for localhost: <br />/tmp * <br />/home/linux *.linux.org <br /><br />/home/public (everyone) <br />/home/test 192.168.0.100 </font></font></div><br /><div><font size="3"> </font></div><br /><div><font size="3">exportfs命令:<br />如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢？这个时候我们就可以用exportfs命令来使改动立刻生效，该命令格式如下:<br />exportfs <br />[-aruv] <br />-a ：全部mount或者unmount /etc/exports中的内容 <br />-r ：重新mount <br />/etc/exports中分享出来的目录 <br />-u ：umount 目录 <br />-v ：在 export <br />的时候,将详细的信息输出到屏幕上.<br />具体例子:<br /><font color="#0000f0">[root @test root]# exportfs <br />-rv</font> &lt;==全部重新 export 一次！ <br /><font color="#0000f0">exporting <br />192.168.0.100:/home/test <br />exporting 192.168.0.*:/home/public <br />exporting <br />*.the9.com:/home/linux <br />exporting *:/home/public <br />exporting *:/tmp <br /><br />reexporting 192.168.0.100:/home/test to kernel</font> </font></div><br /><div><font size="3"><font color="#0000f0">exportfs -au</font> <br />&lt;==全部都卸载了</font></div><div>-------------------------------------------------------------------------------<br />今天在机器上配置NFS文件系统，在/etc/exports中加入以下信息：<br />&nbsp;&nbsp;&nbsp; /testfs 10.0.0.0/8(rw)<br />&nbsp;&nbsp;&nbsp; 重启NFS服务以后，在客户机通过mount -o rw -t nfs 10.214.54.29:/testfs /rd1命令将网络文件mount到本地。执行完成之后，目录是可以访问了，但无法写入。感觉有点奇怪，明明在命令中指定可以写入了。于是到网上搜索资料，发现exports目录权限中，有这么一个参数no_root_squash。其作用是：登入 NFS 主机使用分享目录的使用者，如果是 root 的话，那么对于这个分享的目录来说，他就具有&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root 的权限！。默认情况使用的是相反参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root_squash：在登入 NFS 主机使用分享之目录的使用者如果是 root 时，那么这个使用者的权限将被压缩成为匿名使用者，通常他的&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UID 与 GID 都会变成 nobody 那个身份。<br />&nbsp;&nbsp;&nbsp; 因为我的客户端是使用root登录的，自然权限被压缩为nobody了，难怪无法写入。将配置信息改为：<br />&nbsp;&nbsp;&nbsp; /testfs 10.0.0.0/8(rw,no_root_squash)<br />&nbsp;&nbsp;&nbsp; 据说有点不安全，但问题是解决了。 <br />&nbsp;&nbsp;&nbsp; 另外，在测试NFS文件系统时，会经常mount和umount文件，但有时会出现device is busy的错误提示。你肯定感到很奇怪，我明明没有使用啊，看看你当前所在的目录，是不是在mount的文件目录中？回退到上层目录重新umount，是不是OK了？<br /></div><img src ="http://www.blogjava.net/gf7/aggbug/392843.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gf7/" target="_blank">风</a> 2012-12-12 10:06 <a href="http://www.blogjava.net/gf7/archive/2012/12/12/392843.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>移动Linux操作系统中的TMP分区</title><link>http://www.blogjava.net/gf7/archive/2008/04/17/193726.html</link><dc:creator>风</dc:creator><author>风</author><pubDate>Thu, 17 Apr 2008 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/gf7/archive/2008/04/17/193726.html</guid><wfw:comment>http://www.blogjava.net/gf7/comments/193726.html</wfw:comment><comments>http://www.blogjava.net/gf7/archive/2008/04/17/193726.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gf7/comments/commentRss/193726.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gf7/services/trackbacks/193726.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 在服务器管理过程中，通常会遇到分区空间不够，或要调整分区的大小，如果是普通用户，大不了备份数据然后重装系统，可是，在正常运营的linux 服务器系统中，这么做是不现实的，我们必须学会动态的调整linux 的分区，linux为我们提供了一个lvm 逻辑驱动器卷的方案，除此之外，还有一个方法，本文将向你一一道来：<br />
&nbsp;&nbsp;&nbsp; 其实linux为我们的管理提供更方便的方法，我们知道，在linux系统中的各种状态都分别以相应的运行级来代表，比如，关机进程是run level 0 单用户管理是run level 1， 我们常用的图形用户界面在某此系统中被定义为run level 5，而重启是run level 6，关于linux中的运行级，在今后的文章中，小编会向你详细介绍，今天，小编主要向你介绍如何在运行的linux中移动tmp分区！
<p>&nbsp;&nbsp;&nbsp; 在正常的系统初始化的情况下，启动时会加载/etc/fstab文件来挂载文件系统，当我们正常进入系统后，进行维护性的管理时，所有的文件系统是不允许被卸掉的，那么有什么方法可以让我们卸掉文件系统呢，答案就是运行级，在运行级1中，系统进入单用户管理模式，只有root用户能够登录系统，这个时候系统完全在内存中运行，我们就可以对硬盘进行完全的操作，好，下面我们就进入运行级1</p>
<p>&nbsp;&nbsp;&nbsp; # init 1 以root用户执行此命令后，系统会关闭所有运行中的服务，并切换到单用户模式，这时只有root用户能够登录，登录后，比如，我们可以需要把/tmp移动到/var/tmp下面，我们可以使用：</p>
<p>&nbsp;&nbsp;&nbsp; # mv /tmp /var/tmp</p>
<p>&nbsp;&nbsp;&nbsp; 这样，/tmp中的内容就被移动到了/var/tmp下面，接下来我们删除/tmp目录：</p>
<p>&nbsp;&nbsp;&nbsp; #rm -rf /tmp</p>
<p>&nbsp;&nbsp;&nbsp; 接下来，创建一个到/var/tmp的符号链接：</p>
<p>&nbsp;&nbsp;&nbsp; ln -s /var/tmp /tmp</p>
<p>&nbsp;&nbsp;&nbsp; 这时，/tmp实际就变为了指向/var/tmp的一个符号链接，然后我们按ctrl+D命令返回到图形界面，登录后，就看到/tmp目录已经被移走了。</p>
<p>&nbsp;&nbsp;&nbsp; 用相同的方法也可以移动/var分区到新的硬盘，只是/var分区不比/tmp分区，系统运行的重要数据保存在这里，移动前一定要好备份并仔细检查哦。</p>
<img src ="http://www.blogjava.net/gf7/aggbug/193726.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gf7/" target="_blank">风</a> 2008-04-17 13:27 <a href="http://www.blogjava.net/gf7/archive/2008/04/17/193726.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CVS的远程认证通过SSH远程访问CVS</title><link>http://www.blogjava.net/gf7/archive/2005/10/08/15017.html</link><dc:creator>风</dc:creator><author>风</author><pubDate>Sat, 08 Oct 2005 12:18:00 GMT</pubDate><guid>http://www.blogjava.net/gf7/archive/2005/10/08/15017.html</guid><wfw:comment>http://www.blogjava.net/gf7/comments/15017.html</wfw:comment><comments>http://www.blogjava.net/gf7/archive/2005/10/08/15017.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/gf7/comments/commentRss/15017.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gf7/services/trackbacks/15017.html</trackback:ping><description><![CDATA[使用cvs本身基于pserver的远程认证很麻烦,需要定义服务器和用户组，用户名，设置密码等，<BR>
<P>常见的登陆格式如下：<BR>cvs -d :pserver:cvs_user_name@cvs.server.address:/path/to/cvsroot login<BR>例子：<BR>cvs -d :pserver:cvs@samba.org:/cvsroot login</P>
<P>不是很安全，因此一般是作为匿名只读CVS访问的方式。从安全考虑，通过系统本地帐号认证并通过SSH传输是比较好的办法，通过在客户机的 /etc/profile里设置一下内容：<BR>CVSROOT=:ext:$USER@cvs.server.address#port:/path/to/cvsroot CVS_RSH=ssh; export CVSROOT CVS_RSH<BR>所有客户机所有本地用户都可以映射到CVS服务器相应同名帐号了。</P>
<P>比如:</P>
<P>CVS服务器是192.168.0.3，上面CVSROOT路径是/home/cvsroot，另外一台开发客户机是192.168.0.4，如果 tom在2台机器上都有同名的帐号，那么从192.168.0.4上设置了：<BR>export CVSROOT=:ext:tom@192.168.0.3:/home/cvsroot<BR>export CVS_RSH=ssh<BR>tom就可以直接在192.168.0.4上对192.168.0.3的cvsroot进行访问了（如果有权限的话）<BR>cvs checkout project_name<BR>cd project_name<BR>cvs update<BR>...<BR>cvs commit <BR></P>
<P>如果CVS所在服务器的SSH端口不在缺省的22，或者和客户端与CVS服务器端SSH缺省端口不一致，有时候设置了：<BR>:ext:$USER@test.server.address#port:/path/to/cvsroot <BR><BR>仍然不行，比如有以下错误信息：<BR>ssh: test.server.address#port: Name or service not known<BR>cvs [checkout aborted]: end of file from server (consult above messages if any)<BR><BR>解决的方法是做一个脚本指定端口转向（不能使用alias，会出找不到文件错误）：<BR>创建一个/usr/bin/ssh_cvs文件，假设远程服务器的SSH端口是非缺省端口：34567<BR>#!/bin/sh<BR>/usr/bin/ssh -p 34567 "$@"<BR>然后：chmod +x /usr/bin/ssh_cvs<BR>并CVS_RSH=ssh_cvs; export CVS_RSH</P>
<P>注意：port是指相应服务器SSH的端口，不是指cvs专用的pserver的端口<BR></P><img src ="http://www.blogjava.net/gf7/aggbug/15017.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gf7/" target="_blank">风</a> 2005-10-08 20:18 <a href="http://www.blogjava.net/gf7/archive/2005/10/08/15017.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenSSH：让远程管理更安全</title><link>http://www.blogjava.net/gf7/archive/2005/10/08/14997.html</link><dc:creator>风</dc:creator><author>风</author><pubDate>Sat, 08 Oct 2005 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/gf7/archive/2005/10/08/14997.html</guid><wfw:comment>http://www.blogjava.net/gf7/comments/14997.html</wfw:comment><comments>http://www.blogjava.net/gf7/archive/2005/10/08/14997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gf7/comments/commentRss/14997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gf7/services/trackbacks/14997.html</trackback:ping><description><![CDATA[<FONT face=Verdana size=2>安全和稳定是Linux操作系统的两大特点。由于Linux采取了许多安全技术措施，包括读/写权限控制、带保护的子系统、审计跟踪、核心授权等，为网络多用户环境中的用户提供了必要的安全保障，因此越来越多的用户开始学习和使用Linux。但是Linux的安全要建立在有效的防范基础上，如果是一个不加任何防范和限制的Linux系统，同样也有较多漏洞。以传统的网络服务程序为例，FTP、R Shell和Telnet等服务在本质上都存在不安全因素，因为它们在网络上用“明文”传送口令和数据，使别有用心的人很容易截获这些口令和数据。同时这些服务程序的安全验证方式也有弱点，很容易受到“中间人”（man-in-the-middle）的攻击。所谓“中间人”的攻击方式，即“中间人”冒充真正的服务器接收用户传给服务器的数据，然后再冒充该用户把数据传给真正的服务器。服务器和用户之间的数据传送被“中间人”做了手脚之后，会出现很严重的问题。所以，尽可能地使用安全的工具来管理系统显得愈发重要。<BR><BR>　　传统远程管理工具的特点<BR><BR>　　远程登录的作用就是让用户以模拟终端的方式，登录到Internet的某台主机上。一旦连接成功，这些个人计算机就像远程计算机的一个终端，可以像使用终端计算机一样输入命令，并运行远程计算机中的程序。<BR><BR>　　在企业通常的使用环境中，服务器放在ISP托管中心或其服务器机房内，只有少数人才能进入并接触到主机。因此管理员通常会在服务器上开启Telnet服务守护进程，以便能够随时观察服务器上的变化，并登录到服务器上进行维护；如果管理员需要在服务器调试程序，还会开启FTP服务进程，从本地机上传程序到服务器进行调试（如图1所示）。可见这种终端的服务对网络管理员来说非常重要。<BR><BR>　　图1 管理员利用终端服务对ISP进行操控<BR><BR>　　一般在远程管理中经常使用远程管理Telnet的工具有CRT、 NetTerm、ShellNet，以及Rlogin、Rcp、Rexec、Rsh（所有以“R”开头的服务都建立在不与外界进行任何联系的基础上。出于安全方面的考虑，必须禁止这些进程的启动）。这些工具的优点是使用方便、配置简单；缺点是不够安全。以Telnet为例，因为其以“明码”传输，所以不能称为一个很好的联机方式。什么是“明码”？简单地说，使用Telnet时，系统会出现一个主机界面，如果没有设置系统的issue.net文件为空，系统默认出现的界面就会泄露一些对用户不利的信息给别人，如图2所示。<BR><BR><BR><BR>　　图2 Telnet登录主机界面<BR><BR>　　用户需要输入账号与密码，当主机接受资料后才能进行确认。此时，用户资料就会经过 Telnet协议传输到主机上。如果有人正在某个router节点监听封包，就可以轻而易举地截获资料封包，并可以通过解读窃取账号和密码。建议非必要时不要激活Telnet；如果一定要激活，必须确定限制的联机范围，并使用iptables设定联机的限制区域。此外，还要随时注意登录档案里关于登录的事项，不要让root用户以Telnet方式登入Linux主机。<BR><BR>　　SSH及OpenSSH简介<BR><BR>　　SSH（Secure Shell）是以远程联机服务方式操作服务器时的较为安全的解决方案。它最初由芬兰的一家公司开发，但由于受版权和加密算法的限制，很多人转而使用免费的替代软件OpenSSH。<BR><BR>　　用户通过SSH可以把所有传输的数据进行加密，使“中间人”的攻击方式不可能实现，而且也能够防止DNS和IP欺骗。它还有一个额外的好处是传输的数据是经过压缩的，可以加快传输的速度。SSH作用广泛，既可以代替Telnet，又可以为FTP、POP，甚至为PPP提供一个安全的“通道”。SSH协议在预设的状态中，提供两个服务器功能：一个是类似Telnet的远程联机使用Shell服务器，即俗称SSH功能；另一个是类似FTP服务的SFTP-Server功能，可提供更安全的FTP服务。<BR><BR>　　SSH的安全验证如何工作呢？主要依靠联机加密技术。从客户端来看，有以下两种安全验证级别：<BR><BR>　　1．基于口令的安全验证（ssh1） 只要知道自己的账号和口令，就可以登录到远程主机。所有传输的数据都将被加密，但是不能保证正在连接的服务器就是想要连接的服务器。可能受到“中间人”的攻击。<BR><BR>　　2．基于密匙的安全验证（ssh2） 需要依靠密匙，即用户必须为自己创建一对密匙，并把公用密匙放在需要访问的服务器上。如果要连接到SSH服务器上，客户端软件就会向服务器发出请求，请求用密匙进行安全验证。服务器收到请求之后，先在该服务器的home目录下寻找公用密匙，然后把它和发送过来的公用密匙进行比较。如果两个密匙一致，服务器就用公用密匙加密“质询”（challenge），并把它发送给客户端软件。客户端软件收到“质询”后，就可以用私人密匙解密再把它发送给服务器。使用这种方式，用户必须知道自己密匙的口令。与第一种级别相比，这种级别不需要在网络上传送口令，不仅加密所有传送的数据，而且阻止了“中间人”攻击方式。整个登录的过程一般需要10秒。<BR><BR>　　OpenSSH的安装和启动<BR><BR>　　OpenSSH的安装非常简便，操作如下。<BR><BR>　　1.下载软件包。到http://www.openssh.com下载最新软件包OpenSSH 3.6.1（最好下载源程序软件包后自行编译）。本文以openssh-3.5p1.tar.gz为例进行介绍，安装环境为Red Hat 7.1/kernel 2.4.8/gcc-2.96-98。<BR><BR>　　2. 解压及安装，代码如下：<BR><BR># tar zxvf openssh-3.5p1.tar.gz <BR># cd openssh-3.5p1<BR># ./configure --prefix=/opt --sysconfdir=/etc/openssh<BR># make<BR># make install<BR># cd /etc/rc.d/init.d/<BR># vi sshd <BR>//加入/opt/sbin/sshd启动进程<BR># cd /etc/rc.d/rc3.d/<BR># ln -s ../init.d/sshd S59sshd<BR><BR><BR><BR>　　重启计算机以后，用下列命令进行测试：<BR><BR># ssh -l 　geminis 　www.test.com<BR>The authenticity of host 'www.test.com (*.*.*.*)' can't be established.<BR>RSA key fingerprint is a7:35:3c:bd:47:b0:5d:30:68:f1:15:77:1a:b1:67:dd.<BR>Are you sure you want to continue connecting (yes/no)?<BR><BR><BR><BR>　　因为是第一次登录主机，OpenSSH将显示不能识别该主机。键入“yes”，把主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候就不会再显示这条提示信息。然后，OpenSSH提示输入远程主机上的账号及口令。输入完后就建立了SSH连接，可以像使用 Telnet一样使用OpenSSH。<BR><BR>　　配置基于密钥认证的OpenSSH<BR><BR>　　缺省情况下，SSH将默认使用口令验证方式。不需要对系统进行任何配置就可以使用账号和口令登录到远程主机。下面介绍如何配置并使用基于密匙认证的OpenSSH（假设用户名为geminis，主机IP为192.168.0.1）。<BR><BR>　　首先创建一对密匙（包括公匙和密匙，并且用公匙加密的数据只能用密匙解密），把公匙放到需要远程服务器上。当登录远程服务器时，客户端软件会向服务器发出请求，请求用密匙进行认证，代码如下：<BR><BR># ssh-keygen -d<BR>// 加上参数d是创建一个一基于ssh2的密匙对　<BR>#Generating public/private DSA key pair.　<BR>// 生成DSA加密模式的密匙对<BR># Enter file in which to save the key (/home/geminis/.ssh/id_dsa):　<BR>//存放密匙文件的路径，直接回车为默认目录<BR># Enter passphrase (empty for no passphrase): <BR>//必须输入一个＞4个字符的标识符<BR># Enter same passphrase again: <BR>//重新确认一次<BR><BR><BR><BR>　　如果创建成功，系统将返回以下信息：<BR><BR>Your identification has been saved in /home/geminis/.ssh/id_dsa.<BR>Your public key has been saved in /home/geminis/.ssh/id_dsa.pub.<BR>The key fingerprint is:<BR>29:1b:46:00:08:38:d5:87:da:96:e7:c4:a3:6b:b1:3f geminis@www.test.com<BR><BR><BR><BR>　　接下来，把id_dsa.pub发布到服务器上。通过FTP将公匙文件“/home/admin/.ssh/id_dsa.pub”，复制到远程服务器的“/home/admin/.ssh”目录。如果.ssh目录不存在，可以用mkdir命令先建立。然后，将“id_dsa.pub”重命名为“authorized_keys2”，代码如下：<BR><BR>＃ mv id_dsa.pub authorized_keys2<BR>＃ chmod 644 authorized_keys2<BR><BR><BR><BR>　　注意，如果authorized_keys2文件的权限不正确，会导致SSH连接失败。<BR><BR>　　服务器收到请求之后，在该服务器的宿主目录下寻找公匙，然后检查该公匙是否合法。如果合法就用公匙加密一随机数（即所谓的challenge）并发送给客户端软件。客户端软件收到后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密，服务器经过比较就可以知道该客户连接的合法性。连接代码如下：<BR><BR># ssh -l geminis www.test.com<BR><BR><BR><BR>　　系统返回以下信息：<BR><BR># Enter passphrase for key '/home/geminis/.ssh/id_dsa': ******<BR>Last login: Wed Apr 16 12:31:49 2003 from www.geminis.com<BR><BR><BR><BR>　　OpenSSH客户端使用方法<BR><BR>　　1． Windows平台<BR><BR>　　客户端通常使用Windows平台，操作较为直观。下面对几种客户端工具进行介绍。<BR><BR>　　◆ PuTTY<BR><BR>　　在客户端使用SSH较好的工具是PuTTY，这是一个开源软件。用户可以根据自己的配置情况对该软件进行修改，如图3所示。<BR><BR><BR><BR>　　图3 PuTTY配置界面<BR><BR>　　如果是第一次使用该软件，系统会提示下载有关主机的“识别标记”，选择“yes”，下次登录就不会出现提示框。<BR><BR>　　◆ Filezilla<BR><BR>　　Filezilla是客户端使用SFTP的一款不错的开源软件，对中文支持很好，配置界面如图4所示。<BR><BR><BR><BR>图4 Filezilla配置界面<BR><BR>　　2． Linux终端<BR><BR>　　在Linux终端下使用SSH，优点是操作更方便，无须其它软件；缺点是不太直观。使用方法及命令介绍如下：<BR><BR>　　◆ SSH的使用<BR><BR># ssh -l geminis www.test.com<BR>Enter passphrase for key '/home/geminis/.ssh/id_dsa':　<BR>//输入以前设置的标识符<BR><BR><BR><BR>　　◆ SFTP的使用<BR><BR>　　# sftp www.test.com<BR><BR><BR><BR>　　SFTP相关命令的使用方法如表1所示。<BR><BR>　　3．进阶提高要点<BR><BR>　　配置SSH客户端文件“/etc/ssh/ssh_config”，如图5所示。<BR><BR>　　图5 配置“/etc/ssh/ssh_config”文件<BR><BR>　　表1 SFTP相关命令的使用方法<BR><BR>　　选项设置说明如表2所示。<BR><BR>　　表2 SSH配置选项说明<BR><BR>　　配置SSH服务器端文件“/etc/ssh/sshd_config”，取消口令验证。把“PasswordAuthentication Yes”改为“no”，可以禁止使用第一种口令验证。<BR><BR>　　配置“/etc/ssh/sshd_config”文件，编辑“sshd_config”文件，加入或改变下面的参数：<BR><BR>#　This　is　ssh　server　systemwide　configuration　file.　 <BR>Port　22　 <BR>ListenAddress　192.168.1.1　 <BR>HostKey　/etc/ssh/ssh_host_key　 <BR>ServerKeyBits　1024　 <BR>LoginGraceTime　600　 <BR>KeyRegenerationInterval　3600　 <BR>PermitRootLogin　no　 <BR>IgnoreRhosts　yes　 <BR>IgnoreUserKnownHosts　yes　 <BR>StrictModes　yes　 <BR>X11Forwarding　no　 <BR>PrintMotd　yes　 <BR>SyslogFacility　AUTH　 <BR>LogLevel　INFO　 <BR>RhostsAuthentication　no　 <BR>RhostsRSAAuthentication　no　 <BR>RSAAuthentication　yes　 <BR>PasswordAuthentication　yes　 <BR>PermitEmptyPasswords　no　 <BR>AllowUsers　admin</FONT><BR><img src ="http://www.blogjava.net/gf7/aggbug/14997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gf7/" target="_blank">风</a> 2005-10-08 16:52 <a href="http://www.blogjava.net/gf7/archive/2005/10/08/14997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>