8 de septiembre de 2020

Como crear una conexión VNC a una Instancia en Oracle OCI

Buenas tardes, la verdad que este post es muy básico, pero todavía hay especialistas que se complican o están aprendiendo a como iniciar una ventana gráfica en una Instancia de OCI. Además vi muchos casos en los cuales utilizan desktop y desde mi punto de vista esto consume recursos innecesariamente. 

Así que voy a dejar un paso a paso de cómo yo lo realizo yo.

Los pasos van a ser los siguientes:

Asumimos que las redes de la instancia a la cual vamos a configurar VNC están correctamente configuradas y no tienen acceso libre desde internet.

a.       Agregar al Security Rules de nuestra instancia o VCN una regla que permita conectar el VNC.

b.       Instalación paquetes de SO

c.       Iniciar vncserver.

d.       Crear una conexión de tunnel desde putty.

e.       Abrir VNC


Parte A:

Lo primero que tenemos que hacer es crear una regla en nuestra security list de nuestro security Group.

1. Dentro de nuestra instancia hacemos click sobre nuestra red bajo el título Primary VNIC.



2.       En esta ventana, hacemos click en Add Rules:



3. Completamos con los siguientes datos:

o SOURCE TYPE: CIDR

o SOURCE CIDR: 0.0.0.0/0 (indica acceso público desde internet )

    Esto es para una prueba, pero deberían configurarlo para acceder solo de la vpn.

o IP PROTOCOL: TCP

o DESTINATION PORT: 5902 (puerto en el cual configuramos nuestro vnc)



Luego click en Save or Add

3. Con esta configuración abrimos el puerto 5902 a un rango de  IP para conectarnos a nuestra instancia por VNC.  (recuerden que la imagen esta en acceso público para la demo)



Parte B:

Estos pasos se realizan por única vez en el SO y con usuario root.

1. Instalar VNC

# yum install tigervnc-server (vncserver)

2. Instalar e Iniciar manejador de ventanas, en background. Vi en varios blog que instalar el motor gráfico de escritorio completo, pero en mi caso recomiendo una herramienta que consume menos recursos.

 yum install openmotif 

3. Instalar Xterm, para utilizar ventanas dentro del VNC.

yum install xterm 

4. Solo para probar el correcto funcionamiento y levantar un proceso desde vnc, instalo esta tool para administrar los usuarios de Linux

yum install system-config-users 


Parte C

1. Iniciar vnc, con el usuario oracle preferentemente, ya que el vnc quedaría iniciado con este usuario. Al iniciar por primera vez el vncserver, pide una contraseña que se utilizaría en adelante para loguearnos a vnc.

[opc@develop ~]$ sudo su - 
[root@develop ~]# su - oracle 
Last login: Wed Jul 15 19:15:45 GMT 2020 on pts/0 
[oracle@develop ~]$ vncserver 

You will require a password to access your desktops. 

Password: ******* 
Verify: ******* 

Would you like to enter a view-only password (y/n)? n 
A view-only password is not used 

New 'develop.dominio.com:1 (oracle)' desktop is develop.dominio.com:1 

Creating default startup script /home/oracle/.vnc/xstartup 

Creating default config /home/oracle/.vnc/config 

Starting applications specified in /home/oracle/.vnc/xstartup 

Log file is /home/oracle/.vnc/develop.dominio.com:1.log

 
2. Cerramos el vnc y vamos a editar el archivo de configuración que se generó para tener el manejador de ventanas al iniciarlo automáticamente.

## Cerramos el VNC iniciado al comienzo, podemos validarlo con el siguiente comando: 

$ vncserver -list 
TigerVNC server sessions: 
X DISPLAY # PROCESS ID 
:1 2665 

## con este comando lo cerramos 
$ vncserver -kill :1 


## Editamos el archivo de configuración y agregamos la siguiente línea al final. 
$ vi .vnc/xstartup 

mwm & 

## Iniciamos vncserver nuevamente. 
$ vncserver 


##También podríamos iniciar en el vnc en el puerto que necesitemos, por ejemplo el 5902 (esto sirve si queremos tener varios vnc de varios servidores. 

$ vncserver :2 


3. Ver el Puerto. Por lo gral el puerto del vnc mapea:

:1 -> 5901

:2 -> 5902, y así sucesivamente.

[oracle@develop ~]$ ps -efa|grep vnc 

oracle 27865 1 0 19:37 pts/0 00:00:00 /bin/Xvnc :1 -auth /home/oracle/.Xauthority -desktop develop:1 (oracle) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/oracle/.vnc/passwd -rfbport 5902 -rfbwait 30000 


Parte D


Crear un Tunnel en Putty para realizar la conexión de forma segura por ssh.

Dentro de la misma sesión que utilizamos para conectarnos a la instancia.


1. Abrimos Putty.

2. En la columna de la izquierda vamos a Connection -> SSH -> Tunnels.



Como se ve en la imagen, tenemos que ingresar la ip por la cual nos conectamos a la instancia y el puerto de vnc que visualizamos en el paso anterior con el siguiente formato:

190.168.X.X:5902

3. Hacer click en el botón Add, de esa forma nos queda en la lista de Forwarded ports.

4. Muy importante volver a la columna izquierda a nuestra sesión y hacer click en SAVE



Parte E :

Aquí solo vamos a iniciar una conexión con putty, dejarla en segundo plano para que realice el tunnel y nos conectamos por vnc.

1. Instalamos cualquier vnc view en nuestra PC.

2. Luego simplemente abrimos un VNC View e indicamos la conexión. Pero como el túnel es local, en la ip tenemos que poner nuestro localhost el cual estaría realizando el tunnel al 5901




3. Nos pide la contraseña que configuramos cuando iniciamos el vncserver:



4. Listo!, estamos conectados a una terminar VNC en nuestra instancia:



Pd: En esta ventana estoy conectado como root, pero siempre recomiendo iniciar el VNC con un usuario de menor privilegio.

5. Para probar que realmente nos funciona VNC, podemos ejecutar la tool que instalamos al principio.

$ system-config-users




Espero que les sirva, yo le veo mucha ventajas:

- Consumo menos recursos del servidor al no tener todo desktop iniciado.

- Es posible dejar procesos largos en ejecución sin riesgo que se me corte la conexión

- Es fácil copiar y pegar comandos.

- Se puede utilizar para dejar alguna aplicación que necesite quedar iniciada gráficamente.

- Es útil para iniciar un Firefox y hacer pruebas locales sobre aplicaciones web.



Referencias:

https://www.ateam-oracle.com/vnc-in-the-oracle-cloud

https://www.ateam-oracle.com/using-vnc-securely-in-oracle-cloud-infrastructure

https://docs.cloud.oracle.com/en-us/iaas/Content/Resources/Assets/whitepapers/run-graphical-apps-securely-on-oci.pdf



No hay comentarios.:

Publicar un comentario