Amikor egy alkalmazást (pl.: Modbus TCP szerver) futtatunk Linux alatt egy terminálablakban, akkor ez az alkalmazás csak addig fut, amíg az adott ablak nyitva van. Ha kilépünk az ablakból (vagy bontjuk a távoli kapcsolatot), akkor az adott szolgáltatás futása véget ér, már nem elérhető. Ha azt szeretnénk, hogy az adott alkalmazás továbbra is működjön, alkalmazni kell a "screen"-t.
Vagy......
Vagy kell készíteni egy service-t, azaz egy szolgáltatást.
Indítsuk el a szövegszerkesztőt a terminálablakban, és másoljuk be a következő programot. Ez a Python nyelven írt alkalmazás létrehozza a "timeSave.txt" file-t, és 15 másodpercenként beírja ebbe a szöveges file-ba az aktuális időt.
import time from datetime import datetime while True: now = datetime.now() with open("timeSave.txt", "a") as f: f.write("Time: " + str(now) + "\n") f.close() print("Time: " + str(now)) time.sleep(15)
A futási eredmény látható a következő sorokban.
Time: 2022-11-15 14:12:26.190826 Time: 2022-11-15 14:12:41.201815 Time: 2022-11-15 14:12:56.202593
Ha kilépünk abból a terminálablakból, ahol futtatjuk ezt a Python nyelven írt alkalmazást, akkor már nem kerül 15 másodpercenként kiírásra az aktuális időpont.
Hozzunk létre tehát egy újabb file-t "peldaService.service" néven, és másoljuk be a következő sorokat. A Linux service három részből áll, az "Unit", a "Service" és az "Install" blokkokból.
[Unit]
Description=Demo a szolgaltatasirasra
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=plc
ExecStart=/usr/bin/python3 /home/plc/pythonCodes/pelda1.py
[Install]
WantedBy=multi-user.target
Látható az első ábrán, hogy a most létrehozott service engedélyeztetésre és futtatásra került.
1. ábra A "peldaService.service" engedélyeztetése és futtatása
Ha szeretnénk meggyőződni a service állapotáról, státuszáról, akkor a következő utasítás kiadása szükséges.
sudo systemctl status peldaService.service
Látható, hogy az elkészített service aktív (2. ábra).
2. ábra A saját service aktív, futtatja a Pythony nyelven írt alkalmazásunkat
Most a korábban közölt Modbus TCP szerver állandó futtatásához szükséges service-t készítsük el, egy új file-ba, amely a PLC-t emuláló virtuális gépen van, másoljuk be a következő sorokat.
[Unit]
Description=Demo a szolgaltatasirasra
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/usr/bin/python3 /home/plc/pythonCodes/modbusServer.py
[Install]
WantedBy=multi-user.target
A 3. ábrán látható az, hogy a PLC-t emuláló virtuális gépen a most implementált service aktív.
3. ábra A PLC-t emuláló virtuális gépen lévő szolgáltatás állapota aktív
A másik virtuális gépen, amelyen a Kali Linux operációs rendszer található, futtassunk egy port scant az nmap segítségével. Látható a port scan futási eredményén, hogy az 502/TCP port nyitva van, tehát a Modbus TCP szerver üzemel (azaz, a szolgáltatásunk működik, az általa futtatott Python alkalmazás működik).
4. ábra A teljes port scan futási eredménye a Kali Linux terminálablakában
Ha elindítjuk a Modbus klienst implentáló Python nyelven készült alkalmazást, akkor a terminálablakban megjelennek a szervernek elküldött véletlenszámok (5. ábra).
5. ábra Működik a Modbsu TCP kliens, tehát a távoli Modbus TCP szerver elérhető
A Modbus TCP szerver és kliens alkalmazások elérhetők a WebElektronika github oldalán.
https://github.com/webelektronika/ICS_Scripts/tree/main/modbus
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. . . .