Laboratorio Virtual de Ciberseguridad Industrial – Parte 2: Instalación de PLC y SCADA

En el anterior post se configuró el router virtual pfSense que se utilizará para orquestar las comunicaciones del resto de máquinas. Ahora veremos paso a paso cómo instalar OpenPLC y ScadaBR dentro de 2 servidores virtuales Ubuntu, siguiendo el diseño propuesto.

Esquema Lógico – OpenPLC y ScadaBR

Instalación de MV2 y MV3

Si bien es cierto que a nivel tecnológico se podría utilizar una única máquina virtual para ambos elementos, queremos replicar en la medida de lo posible la estructura física de un entorno Industrial, en la cual ambos dispositivos serían elementos independientes.

Comenzamos descargando Ubuntu Server e instalándolo en 2 máquinas virtuales independientes, teniendo en cuenta que:

  • Hay que configurar el mismo adaptador de red en modo Host Only para ambas maquinas, utilizado el mismo que se utilizó para la segunda interfaz del pfSense (ver imagen debajo).
    La máquina virtual de pfSense deber estar encendida para que las nuevas máquinas virtuales sean capaces de acceder a internet y descargar las actualizaciones necesarias.
Mismo adaptador host only asignado a ambas máquinas virtuales

Una vez finalizada la instalación de ambos servidores, es recomendable darles una IP estática en pfSense para poder guardar en marcadores los portales web de OpenPLC y ScadaBR más adelante facilitar el acceso, para ello seguiremos los siguientes pasos:

  • Accederemos a la consola de administración de pfSense ( en nuestro caso https://192.168.88.1/ )
  • Una vez dentro accedemos al apartado de “Status > DHCP Lease” y tendremos que ver 2 dispositivos conectados.
  • Para cada uno de ellos, accederemos a la configuración y le asignaremos una dirección IP estática fuera del rango de IPs de pfSense
Asignación de IP estática en pfSense
  • Asignadas las IPs estáticas , podemos reiniciar ambas máquinas virtuales y refrescar la página de administración de pfSense, para comprobar que la asignación se ha efectuado correctamente:
IPs estáticas asignadas a ambas máquinas virtuales

En este punto es recomendable comprobar que ambas maquinas tienen acceso a internet y entre ellas, para comprobar ambos puntos:

  • Desde MV2: ping www.google.com
  • Desde MV2: ping 192.168.88.202 (ping a MV3)
  • Desde MV3: ping www.google.com
  • Desde MV3: ping 192.168.88.201 (ping a MV2)

 

Instalación de OpenPLC en MV2

No voy a entrar en mucho detalle aquí porque OpenPLC ya cuenta con unas instrucciones bastante detalladas sobre cómo llevar a cabo la instalación. La versión resumida sería:

git clone https://github.com/thiagoralves/OpenPLC_v3.git
cd OpenPLC_v3
./install.sh linux

Una vez finalizada la instalación, se puede acceder a la interfaz web del PLC

  • https://192.168.88.201:8080
  • user: openplc
  • password: openplc
  • Guarda la dirección en marcadores para facilitar el acceso en adelante
  • OpenPLC se iniciará automáticamente con la máquina virtual
Portal de administración web de OpenPLC

Instalación de ScadaBR en MV3

Del mismo modo que antes, existen unas instrucciones bastante detalladas sobre cómo llevar a cabo la instalación. La versión resumida sería:

git clone https://github.com/thiagoralves/ScadaBR_Installer.git
cd ScadaBR_Installer
./install_scadabr.sh

Una vez finalizada la instalación, se puede acceder a la interfaz web del SCADA

  • http://192.168.88.202:9090/ScadaBR
  • user: admin
  • password: admin
  • Guarda la dirección en marcadores para facilitar el acceso en adelante
  • ScadaBR no se iniciará automáticamente con la máquina virtual

Accede al Scada al menos una vez antes de actualizarlo o podrías acabar con una instalación corrupta. Tras ese primer login puedes cerrar la pagina y ejecutar el ultimo comando para Actualizar ScadaBR a la versión 1.0:

./update_scadabr.sh
Portal de administración web de ScadaBR

Para iniciar ScadaBR de manera manual cuando enciendas la máquina virtual, será necesario ejecutar este comando:

sudo /opt/tomcat6/apache-tomcat-6.0.53/bin/startup.sh

Sin embargo, mi recomendación es crear un cronjob que lo inicie automáticamente. Para ello ejecuta en la línea de comandos:

sudo nano ctontab -e

Y escribe la siguiente línea al final del fichero:

@reboot /opt/tomcat6/apache-tomcat-6.0.53/bin/startup.sh

Guarda los cambios y sal del editor con CRTL+X

Autostart ScadaBR

Nota: es posible que al iniciar las máquinas virtuales sala un aviso de error en cloud-init. Puedes desactivarlo con el siguiente comando:

sudo touch /etc/cloud/cloud-init.disabled
Error con cloud-init al iniciar Ubuntu server

¡Enhorabuena!

Con esto ya tendríamos todo listo para poder trabajar con nuestras 3 máquinas virtuales en red con nuestro host y comenzar la simulación del proceso físico.