Defcon-1-Logo

           [Home]    [FBSD Articles]    [Scripts Corner]    [Contribute]    [Search]    [FBSD Links]    [Files]

About Us

FreeBSD Articles
  *Hardware
  *Networking
  *Security
  *Software
  *X Windows


Files / Scripts
Newbies Corner
Tech. Talk
Tips and Tricks


FreeBSD Links

Articles in other
Languages :
  *French Articles
  *Spanish Articles

Want to Help ?
 
   Click Here

Email Users5

Search:
 

 


FreeBSD Search:


 

 

Powered-By-Apache-Logo
VNC Server/Viewer
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
WiSEFreeBSD HOW-TO
Copyright 1999-2000 WiSEFreeBSD, [-WiSE-]
[wisesage98@yahoo.com ] [sagejona@msu.edu ]
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

     **VNC Server/Viewer**

Setting Up and using the VNC Viewer and Server

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1 What is VNC
2 Setting Up The Server on FreeBSD
3 Setting Up The Server on Windows
4 Using the FreeBSD viewer
5 Using the Windows viewer
6 Using a web browser as a viewer
7 Configuring XDM for VNC
8 Configuring Inetd for VNC
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
**Section 1**
 VNC is shoret for Virtual Network Computing. It allows you to remotely view
your X desktop on another machine with a minimal of setup. I can also allow you
to view a windows desktop on a FreeBSD machine. It does not require the correct
setup of XDM, and it also allows you to run X on a machine that can't display
it, for viewing on another machine.

**Section 2**
 Like most unix style applications, the VNC package consists of both a server
and a client. Install both of these from the ports collection

 # /usr/ports/net/vnc
 # make install
 >> vnc-3.3.3r2_unixsrc.tgz doesn't seem to exist in /usr/ports/distfiles/.
 >> Attempting to fetch from http://www.uk.research.att.com/vnc/dist/.
 Receiving vnc-3.3.3r2_unixsrc.tgz (2072772 bytes): 100%

 [ ... configure and build process ... ]

 ===>  Registering installation for vnc-3.3.3r2
 #

At this point, the VNC server and viewer should be installed. To Set up the
viewer, we must first set a session password. This is user specific, so you
will want to log in as that user first.

 login: testuser
 password : [Password]

 [/home/testuser]$ mkdir .vnc
 [/home/testuser]$ vncpasswd
 Password: [session password]
 Verify: [session password]
 [/home/testuser]$

Then, we need to make a xstarup script. This is a SH style script that will
set up X for us under vnc.

 [/home/testuser]$ cat .vnc/xstartup

 #!/bin/sh

 xrdb $HOME/.Xresources
 xsetroot -solid grey
 xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 wmaker

 [/home/testuser]$

That is my sample xstartup. Customize yours as you need to. The next step is
to start the server. We will start it with a color depth of 24bit, and a screen
size of 1152x864 :

 [/home/testuser]$ vncserver -depth 24 -geometry 1152x864

 New 'X' desktop is hostname.domain.com:1

 Starting applications specified in /home/testuser/.vnc/xstartup
 Log file is /home/testuser/.vnc/hostname.domain.com:1.log

 [/home/testuser]$

It is all set to connect to now. To kill the server, do :

 [/home/testuser]$ vncserver -kill :1
 Killing Xvnc process ID #####
 [/home/testuser]$


**Section 3**
 Setting up a server under windows is also pretty simple. First, retrieve the
Win32 package from http://www.uk.research.att.com/vnc/download.html

Extract it, and run setup from the winvnc folder. Run the WinVNC application
that is shown. The options should look very familiar to those that you set up
in the FreeBSD server.

**Section 4**
 To use the FreeBSD viewer, you must first be in a X session. Under an Xterm :

 [/home/testuser]$ vncviewer hostname.domain.com:1
 VNC server supports protocol version 3.3 (viewer 3.3)
 Password: [session password]
 VNC authentication succeeded
 Desktop name "hostname"
 Connected to VNC server, using protocol version 3.3
 VNC server default format:
  16 bits per pixel.
  Least significant byte first in each pixel.
  True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0
 Using default colormap which is TrueColor. Pixel format:
  8 bits per pixel.
  True colour: max red 7 green 7 blue 3, shift red 0 green 3 blue 6

**Section 5**
 The windows viewer is nearly as simple. It installs with the server, or without
first installing the server, it is availible in the vncviewer directory of the
distribution. Specify the host as hostname.domain.com:displynumber. Enter the
same session password as before.

A note on both viewers :
 When you exit the viewer, the server does not die. Nor do the applications that
are running under the VNC instance. So, if for whatever reason you connection dies,
you won't lose anything.

**Section 6**
 To use a webserver as a viewer, point the webbrowser at

 Http://hostname.domain.com:58xx

where XX is the display number. In our example is is 01. Keep in mind that the
display refresh in this mode is considerably slower than the actual viewer.

**Section 7**
 I have been told that XDM can be configured to use VNC as well. It is a rather
complex setup, and I have found it to be relativly unstable. But, here goes.

First, edit your /etc/X11/xdm/xdm-config

Add the lines :

 DisplayManager._12.authorize:        true
 DisplayManager._12.authFile:        /etc/X11/xdm/xauthvnc

And Comment out the line :

 #DisplayManager.requestPort:        0

Then, edit /etc/X11/xdm/Xservers and add the line (yes, all one line):

 :12 local /usr/X11R6/bin/Xvnc :12 -broadcast -ac -dontdisconnect -geomerty
  1152x864 -auth /etc/X11/xdm/xauthvnc

Also, edit /etc/X11/xdm/Xaccess and uncomment the line :

 *                #any host can get a login window

At this point, restart xdm, and you should have a login window waiting for you
on hostname.domain.com:12

**Section 8**
 Further, it is possible to run Xvnc off of inetd. I have this working as
well, and it appears to run a login window. However, XDM must be running on
a local display for this to work. Or for that matter, it seems for inetd to
work at all. Anyway, here we go.

Edit /etc/services and add :

 vnc             5950/tcp

Then, edit /etc/inetd.conf and add (as one line, split for readability :

 vnc    stream    tcp    nowait    root    /usr/X11R6/bin/Xvnc
  
   Xvnc -inetd -broadcast -once -geometry 1152x864 -depth 24
 
Note that there may be security implication to running it as root. I don't
know. Connect to hostname.domain.com:50. It will spawn a session for
each time you connect.

Just a note, you will only be able to login properly if you can login with
a usable .xsession and such under xdm. When using XDM, you may want to
remove the setuid bit on the xserver. Dunno what the security implications
of this might be though. Thats how I got it to work though.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Thanks to the VNC people, Andre Moreira (inetd stuff) and misc mailing lists
for the abundance of XDM help.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 

Email Us

ghostrdr@defcon1.org

This site cannot be duplicated without permission

© 1998 - 2010 Defcon1, www.defcon1.org. Copyrights for all materials on this web site are held by the individual authors, artists, photographers or creators. Materials may not be reproduced or otherwise distributed without permission of www.defcon1.org and the content's original author.