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