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.

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.

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

- 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:

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

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

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

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

¡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.