Esta pagina se ve mejor con JavaScript habilitado

Acceso KVM mediante tunneling SSH

 ·  ūüéÉ kr0m

En la mayor√≠a de ocasiones el acceso IPMI/KVM est√° restringido a una red interna de administraci√≥n ya que de este modo queda mas protegido que si se expusiese p√ļblicamente, el inconveniente de esto es que nos dificulta el acceso en caso de emergencia. En este art√≠culo veremos como tunelizar el tr√°fico a trav√©s de una conexi√≥n Ssh permiti√©ndonos de este modo accceso directo al KVM de la red privada.

Parece ser que cada KVM abre unos puertos distintos para su funcionamiento, así que primero averiguaremos los puertos correctos realizando un escaneo mediante Nmap, esto lo hacemos desde el equipo intermedio de salto:

nmap IP_LAN_KVM -p 0-65535

Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-16 22:05 UTC  
Nmap scan report for IP_LAN_KVM  
Host is up (0.0012s latency).  
Not shown: 65523 closed ports  
PORT      STATE SERVICE  
22/tcp    open  ssh  
80/tcp    open  http  
111/tcp   open  rpcbind  
443/tcp   open  https  
623/tcp   open  oob-ws-http  
5120/tcp  open  barracuda-bbs  
5123/tcp  open  unknown  
5124/tcp  open  unknown  
5127/tcp  open  unknown  
5988/tcp  open  wbem-http  
7578/tcp  open  unknown  
7582/tcp  open  unknown  
50000/tcp open  ibm-db2
  
Nmap done: 1 IP address (1 host up) scanned in 6.22 seconds

Ahora que ya sabemos que puertos queremos tunelizar procedemos a ello, como root en nuestro pc ejecutamos:

KVM=‘IP_LAN_KVM’

ssh USER@SERVER -L127.0.0.1:80:$KVM:80 -L127.0.0.1:443:$KVM:443 -L127.0.0.1:623:$KVM:623 -L127.0.0.1:5120:$KVM:5120 -L127.0.0.1:5123:$KVM:5123 -L127.0.0.1:5124:$KVM:5124 -L127.0.0.1:5127:$KVM:5127 -L127.0.0.1:5988:$KVM:5988 -L127.0.0.1:7578:$KVM:7578 -L127.0.0.1:7582:$KVM:7582 -L127.0.0.1:50000:$KVM:5000 -C

A√Īadimos la ip loopback a la lista de excepciones de Java:

/usr/local/linux-oracle-jdk1.8.0/bin/ControlPanel

http://127.0.0.1
https://127.0.0.1

Ahora ya podemos acceder a la interfaz web para descargar el applet Java,  desde Chrome podremos hacer login en la interfaz web:

Pero al descargar el applet aparecerá el siguiente error por alguna razón desconocida:

En cambio en Firefox no d√° problemas:

Ahora que ya tenemos el fichero jnlp lo lanzamos con el script de este artículo anterior:

./javaApplet jviewer.jnlp

En la siguiente captura podemos ver el applet Java arrancando desde una ISO de Gentoo:

Seguramente mediante herramientas como sshuttle el proceso podr√≠a ser un poco mas transparente pero parece que ser que sshuttle da algunos problemas en FreeBSD as√≠ que he optado por la aproximaci√≥n mas gen√©rica, Ssh. Otra opci√≥n ser√≠a instalar una VPN pero lo mas r√°pido es utilizar Ssh ya que no hay que instalar ning√ļn servicio adicional.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí