View
73
Download
0
Category
Preview:
Citation preview
Cmo instalar el servidor VNC en Ubuntu Server 12.04
VNC es un protocolo que se utiliza para compartir el escritorio con otros usuarios / equipos en la red /
Internet. Para compartir un escritorio, el servidor VNC debe ser instalado y configurado en el equipo a
compartir y el cliente VNC se debe ejecutar en el equipo que desea tener acceso al escritorio compartido.
Cuando instalamos la nueva copia de Ubuntu Server, que slo nos da la interfaz de "lnea de comandos".
Sin embargo, algunas personas prefieren la GUI (interfaz grfica de usuario) y para ello se debe instalar el
escritorio Gnome en Ubuntu Server. Para instalar los componentes bsicos de GNOME, use este
comando:
Para instalar los componentes bsicos de GNOME, use este comando:
sudo apt-get install gnome-core
Para instalar un escritorio virtual, utilice este comando:
sudo apt-get install vnc4server
Para utilizar VNC, necesitamos configurar una contrasea con la siguiente orden:
vncserver
Para hacer una modificacin en el script de inicio, hay que matar la sesin que acabamos de iniciar:
vncserver -kill :1
Ahora abra el archivo que tenemos que editar:
cd ~
nano .vnc/xstartup
Y modificar el archivo para que se vea as:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title "$VNCDESKTOP
Desktop" &
#x-window-manager &
A continuacin, cree la sesin VNC, una vez ms:
vncserver -geometry 1024x600
Ahora, descargue VNCViewer en la computadora desde la que queremos tener acceso al escritorio
compartido. Conectar usando ServerIP/Name:1 (1 es para la ventana del servidor VNC), en mi caso
es tendo: 1.
Introduzca la contrasea que hemos creado con el comando vncserver:
Ahora tenemos acceso GUI a nuestro servidor.
Despus de reiniciar el servidor, no vamos a ser capaces de conectar con el servidor con VNC, esto se
debe a que el comando vncserver -geometry 1024600 que hemos escrito ms arriba no es
persistente. Para resolver este problema, utilizaremos un excelente script de Justin Buser .
Como usuario sudo crear el archivo (y el directorio si no existe):
sudo mkdir -p /etc/vncserver
sudo touch /etc/vncserver/vncservers.conf
sudo nano /etc/vncserver/vncservers.conf
Agregar los servidores segn sea necesario para cada usuario mediante la adicin de algo como lo
siguiente en el fichero de vncservers.conf que acabamos de crear:
VNCSERVERS="1:arbab"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24"
A continuacin, cree un script de inicio vaco y hacerlo ejecutable:
sudo touch /etc/init.d/vncserver
sudo chmod +x /etc/init.d/vncserver
sudo nano /etc/init.d/vncserver
Agregue lo siguiente a /etc/init.d/vncserver:
#!/bin/bash
unset VNCSERVERARGS
VNCSERVERS=""
[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
prog=$"VNC server"
start() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Starting $prog: "
ulimit -S -c 0 >/dev/null 2>&1
RETVAL=0
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
DISP="${display%%:*}"
export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP}
${VNCUSERARGS}"
fi
done
}
stop() {
. /lib/lsb/init-functions
REQ_USER=$2
echo -n $"Shutting down VNCServer: "
for display in ${VNCSERVERS}
do
export USER="${display##*:}"
if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
echo -n "${display} "
unset BASH_ENV ENV
export USER="${display##*:}"
su ${USER} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1
fi
done
echo -e "\n"
echo "VNCServer Stopped"
}
case "$1" in
start)
start $@
;;
stop)
stop $@
;;
restart|reload)
stop $@
sleep 3
start $@
;;
condrestart)
if [ -f /var/lock/subsys/vncserver ]; then
stop $@
sleep 3
start $@
fi
;;
status)
status Xvnc
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
Vamos a necesitar ejecutar el comando vncserver POR LO MENOS UNA VEZ con cada usuario que quiere
iniciar la sesin. Puse eso en maysculas, porque si usted se salta este paso nada de eso va a funcionar.
Por ltimo, haga lo siguiente:
sudo update-rc.d vncserver defaults 99
Ahora, reinicie el servicio escribiendo:
sudo service vncserver restart
Capacidad de conectarse a mltiples usuarios:
Crear un usuario local, con el siguiente comando:
sudo adduser hussain
Cambie al usuario recin creado y ejecute el comando vncserver para ello:
su hussain
vncserver
Vaya al directorio y editar el archivo xstartup:
cd ~
nano .vnc/xstartup
Modifique el archivo para que se vea as:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
gnome-session --session=gnome-classic &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 1280x1024+10+10 -ls -title "$VNCDESKTOP
Desktop" &
#x-window-manager &
Ahora abra el archivo /etc/vncserver/vncservers.conf como usuario sudo:
sudo nano /etc/vncserver/vncservers.conf
Aadir servidores para el usuario recin creado aadiendo algo como esto:
VNCSERVERS="1:arbab 2:hussain"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24"
VNCSERVERARGS[2]="-geometry 1024x600 -depth 24"
Reinicie el servicio:
sudo service vncserver restart
Conctate con usuario recin creado usando tendo:2, donde tendo es mi nombre del servidor:
Introduzca la contrasea que hemos creado con el comando vncserver:
Ahora tenemos acceso a nuestro servidor de interfaz grfica de usuario para el usuario recin creado.
Evitar que Gnome se inicie en el arranque del servidor:
Gnome se inicia automticamente en el arranque en Ubuntu 12.04 LTS, si conectamos un monitor a
nuestro servidor veremos que la interfaz grfica de usuario est esperando por nosotros para iniciar sesin
Para evitarlo, edite el archivo gdm.conf:
sudo nano /etc/init/gdm.conf
Comenta estas seis lneas:
#start on ((filesystem
# and runlevel [!06]
# and started dbus
# and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
# or stopped udev-fallback-graphics))
# or runlevel PREVLEVEL=S)
Reinicie el servidor y en la pantalla ya no aparecer la GUI:
VNC encriptada a traves del tnel ssh:
De forma predeterminada, VNC no es un protocolo seguro. VNC utiliza cifrado durante la conexin inicial y
el login (las contraseas no son enviadas en texto plano). Luego de eso, todos los datos de VNC estn
desencriptados y un hacker podra sniffear la sesin VNC. Es mejor (ms seguro) para iniciar el servidor
VNC slo en 127.0.0.1 (localhost) y direccionar todo a un tnel SSH. (Para ello, hay opciones en Putty).
En Ubuntu, edite /etc/vncserver/vncservers.conf:
sudo nano /etc/vncserver/vncservers.conf
Aadir la opcin -localhost:
VNCSERVERS="1:arbab 2:hussain"
VNCSERVERARGS[1]="-geometry 1024x600 -depth 24 -localhost"
VNCSERVERARGS[2]="-geometry 1024x600 -depth 24 -localhost"
Reinicie el servicio:
sudo service vncserver restart
Aqu las imgenes de cmo conectar un VNC Server a travs de PuTTY (SSH) desde Windows, pero vale
para la versin de Linux tambin.
Ejecute PuTTY, introduzca la direccin IP o nombre de host del servidor VNC:
En el panel izquierdo, vaya a Connection -> SSH -> Tunnels:
Source Port:590x(Where x is a value that we set in vncservers.conf,like 1 for
arbab)
Destination:localhost:590x(Same x value that we used above in source port)
Haga clic en el botn Open para conectarse al servidor a travs de SSH:
Entrar al Ubuntu (VNC Server) con nombre de usuario y contrasea:
Al conectarse con xito a VNC Server, encontraremos el puerto 5901 que est en modo de escucha en
localhost:
netstat -a
Ejecutar VNC Viewer y entrar como localhost:1 (1 es para el usuario arbab, que hemos definido en el
archivo vncservers):
Introduzca la contrasea para conectarse al servidor VNC:
Ahora, estamos conectados remotamente al VNC Server a travs de un tnel ssh:
Recommended