Ez az ipari protokoll (OPC UA - Open Platform Communications Unified Architecture) egyre népszerűbb az ipari rendszerek üzemeltetői körében. Ezért megnézzük most az alapokat, amelyek ahhoz szükségesek, hogy ennek a kommunikációs protokollnak a gyakorlati megismerése sikeres legyen. Sajnos nagyon sok olyan ipari vezérlő van, amely még nem tartalmazza ennek a protokollnak a használati lehetőségét. Ezért ezt is emulálni fogjuk, a Python nyelvet fogjuk alkalmazni.
A korábbi cikkünkben elkészítettük azt a tesztelési környezetet, amely tartalmaz OPC UA tesztelési lehetőséget is.
Indítsuk el tehát a virtuális gépünket, amely a PLC emulálásához szükésges, illetve a Kali Linux-ot is. Fontos az, hogy ez a két virtuális gép egy hálózati tartományban legyen.
A Kli Linux-on található "netdiscover" alkalmazással derítsük fel a hálózati eszközöket, ehhez a következő utasítás kiadása szükséges.
sudo netdiscover
Természetesen megadható egy adott IP címtartomány is a "-r" kapcsoló segítségével.
1. ábra Hálózat felderítése
Már ismert a virtuális PLC IP címe, lépjünk be a másik virtuális gépbe, és a terminálablakban adjuk ki a következő utasítást, azaz, indítsuk el a Python-t. A "sudo" azért kell, mert a python kódunknak fontos a hálózati kártya elérése.
sudo python3
A Python felületén már lehetőségünk nyílt arra, hogy elindítsuk az OPC UA szervert. Írjuk be a következő kódsorokat.
import opcua
serverOPCUA = opcua.server.server.Server()
serverOPCUA.start()
Látható a következő ábrán, hogy az OPC UA szerver létrehozása és elindítása sikeres volt, a létrehozott szerver a 4840-es porton hallgatózik.
2. ábra Az OPCUA szerver elindítása a virtuális gépen
Működik az Ubuntu virtuális gépen az OPC UA kommunikációs protokoll emulálása, most a Kali Linuxon derítsük fel az emulált PLC nyitott portjait. Használjuk ehhez az nmap-ot a "-p-" kapcsolóval azért, hogy minden port állapota vizsgálatra kerüljön..
sudo nmap -p- 192.168.56.111
A 3. ábrán látható a port scan eredménye, és a 4840-es port is nyitott, tehát egy kliens már kapcsolódni tud az emulált PLC-hez.
3. ábra A céleszköz (virtuális PLC) nyitott portjai
A port scan egy részlete látható a következő ábrán.
4. ábra Port scan a hálózati forgalomban
Hiába van OPC UA szerver, jelenleg nem tudjuk használni, mert kell egy kliens, amelyik képes kommunikálni a szerverrel. A port scan is TCP protokollt alkalmazott, de az OPC UA nem jelent meg a hálózati forgalomban.
Ezért készíteni kell egy klienst, amely képes kapcsolódni a szerverhez. Későbbi cikkeink egyikében fogunk egy OPC UA klienst készíteni, de most egy kész alkalmazást fogunk a Kali Linuxra telepíteni.
A FreeOpcUa klienst fogjuk alkalmazni, a telepítéshez a terminál ablakban adjuk ki a következő utasítást azért, hogy a github-ról lemásoljuk a forráskódokat.
git clone https://github.com/FreeOpcUa/opcua-client-gui.git
5. ábra OPCUA kliens telepítésre a vizsgáló gépre, a Kali Linux-ra
Lépjünk be az "opcua-client-gui" könvtárba, és nézzük meg a tartalmát.
ls -l
6. ábra A letöltött könyvtár tartalma
A telepítéshez a következő utasítás szükséges.
sudo python3 setup.py install
7. ábra Telepítés menete
A siikeres telepítés után már elindítható az OPC UA kliens.. Ennek az alkalmazásnak a futtatásához szükséges a root jogok használata a hálózati kártya használata miatt, ezért így indítsuk el a FreeOpcUa klienst.
sudo opcua-client
8. ábra A telepített OPCUA kliens elindítása
A kliens elindítása után megjelenik a FreeOpcUa kliens grafikus felülete.
9. ábra FreeOpcUa Client felülete
A sorozatunk következő részében ezt az alkalmazást fogjuk használni az OPC UA gyakorlati megismerése során.
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. . . .