loader
Foto

OpenPLC telepítése Raspberry Pi4-re

Akár a PLC-k programozásának a tanulásához, akár az ipari rendszerek vizsgálati lépéseinek a megértéséhez "fizikai" PLC-k kellenek. Sajnos azonban az iparban alkalmazott PLC-k drágák, ezért megjelent a github-on az OpenPLC projekt, amely szabadon elérhető az Interneten. Ebben a cikkben egy Raspberry Pi4-re kerül telepítésre az OpenPLC.

Az általunk használt Raspberry Pi4-en egy Ubuntu Server 20.04 operációs rendszer található. Erre az operációs rendszerre kerül telepítésre az OpenPLC projekt.
Célszerű először updatelni az operációs rendszert, adjuk ki ezért a következő utasítást.

sudo apt update

kep
1. ábra   A Rasberry Pi4-en futó operációs rendszer update-elése
 

Ezután tudjuk frissíteni, upgrade-elni az Ubuntu Server OS-t a következő utasítás segítségével.

sudo apt upgrade

kep
2. ábra   A Rasberry Pi4-en futó operációs rendszer upgrade-elése
 

Az OpenPLC projekt a github-on érhető el, klónozzuk a Raspberry Pi4-re az "OpenPLC_v3" repository-t. Ehhez a következő utasítás kiadása szükséges.

git clone https://github.com/thiagoralves/OpenPLC_v3.git

kep
3. ábra   Az OpenPLC projekt klónozása a Rasperry Pi-re
 

Ezután lépjünk be az "OpenPLC_v3" könyvtárba, és nézzük meg a tartalmát.

kep
4. ábra   A "lemásolt" projekt könyvtára a Raspberry Pi-n
 

Egyébként a telepítés történhet Raspberry-re, virtuális gépre, stb, ezért az "install.sh" telepítőfile-t az elindításakor el kell látni attribútummal. Ha Raspberry-re szeretnénk telepíteni az OpenPLC-t, akkor a paraméter értéke "rpi".

./install.sh rpi

kep
5. ábra   Az OpenPLC projekt telepítése a Rasberry Pi4-en 
 

Ha a telepítés sikeres volt, akkor indítsuk újra a Raspberry-t. Az általunk  alkalmazott Raspberry Pi4-en Ubuntu Server 20.04 operációs rendszer található, ezért alkalmazható a következő utasítás.

sudo reboot

kep
6. ábra   A Rasberry Pi4 újraindítása
 

Ha a Raspberry Pi a hálózatunkban található, akkor az újraindítás után írjuk be ennek az eszköznek az IP címét a 8080-as portszámmal a böngészőnkbe, és a következő kép jelenik meg (7. ábra).

http://IP CÍM:8080

kep
7. ábra   A Rasberry Pi4-en futó operációs rendszer update-elése
 

A belépéshez szükséges default adatok:

usernév: openplc
jelszó: openplc

A sikeres belépés után válasszuk ki a "Hardware" menüpontnál a "Raspberry Pi"-t (8. ábra).

kep
8. ábra   A Rasberry Pi4-en futó operációs rendszer update-elése
 

Fontosnak tartjuk megjegyezni azt, hogy a PLC-nk jelenleg még nem fut, nem működik, az ipari protokollok még nem elérhetők. Erről könnnyen meg is győzödhetünk, indítsunk egy portscan-t, például a Kali Linux alatt.
Adjuk ki a következő utasítást.

sudo nmap -p- IP CÍM

kep
9. ábra   A Rasberry Pi4-en futó operációs rendszer update-elése
 

Látható a portscan eredményéből, hogy csak két port nyitott, azaz, két szolgáltatás érhető csak el. Be tudunk SSH-zni, illetve a nyitott 8080 port miatt elérhető a projekt webes felületen is.

Kattintsunk most a "Start PLC" nyomógombra, majd ellenőrizzük a PLC állapotát a "Dashboard" menüpont alatt. Láthatjuk a 10. ábrán, hogy a PLC-nk már működik, és a log-oknál láthatók azok a portszámok is, amelyeken a különböző ipari protokollok elérhetők.

kep
10. ábra   A Rasberry Pi4-en futó operációs rendszer update-elése
 

Ismételjük most meg a teljes portscan-t, és a 11. ábrán látható eredményt kapjuk. Az ipari protkollok elérhetők, a hozzájuk tartozó portok nyitottak.

sudo nmap -p- IP CÍM

kep
11. ábra   A Rasberry Pi4 nyitott portjai, elérhető szolgáltatásaifutó operációs rendszer update-elése
 

A "Runtime Logs" ablakban a következő logbejegyzések keletkeztek akkor, amikor a böngészőben a PLC bekapcsolásra került.

 

OpenPLC Runtime starting... Interactive Server: Listening on port 43628 Skipping configuration of Slave Devices (mbconfig.cfg file not found) Warning: Persistent Storage file not found Issued start_modbus() command to start on port: 502 Server: Listening on port 502 Server: waiting for new client... Issued start_dnp3() command to start on port: 20000 DNP3 ID manager: Starting thread (0) DNP3 ID DNP3_Server: Listening on: 0.0.0.0:20000 Issued start_enip() command to start on port: 44818 Server: Listening on port 44818 Server: waiting for new client... Issued stop_pstorage() command Server: Client accepted! Creating thread for the new client ID: 12... Server: waiting for new client... Server: Thread created for client ID: 12 Modbus Server: client ID: 12 has closed the connection Terminating Modbus connections thread Server: Client accepted! Creating thread for the new client ID: 12... Server: waiting for new client... Server: Thread created for client ID: 12 Modbus Server: client ID: 12 has closed the connection Terminating Modbus connections thread

 



Egyéb cikkek

További cikkeink ebben a témakörben

Régebbi cikkeink

Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .

A Python programozási nyelv nagyon elterjedt a fejlesztők körében. Használják beágyazott rendszereknél, webes alkalmazásoknál, IT biztonság különböző területein, stb. Látható, hogy nagyon széles a felhasználási területe ennek a nyelvnek, ideje volt m. . . .

Bemutatjuk most a saját (!) Wifi-s hálózatunk tesztelésének az alapjait. Megnézzük, hogy hogyan lehet biztonságos jelszót választani. Feltörhetetlen rendszer nem létezik, de megismerve a tesztelés folyamatát, válaszokat kaphatunk arra vonatkozólag, h. . . .