Először létre kell hozni egy "vcan0" nevű hálózati interfészt, amelyhez a következő négy utasítás kiadása szükséges.
sudo modprobe can sudo modprobe vcan sudo ip link add dev vcan0 type vcan sudo ip link set up vcan0
Ezután adjuk ki a következő parancsot, és látható lesz a létrehozott virtuális interfész néhány tulajdonsága.
ifconfig vcan0
1. ábra Működik a vcan0 interfész
Most egy új terminálablakban indítsuk el a "can-utils" csomagban található "cangen" alkalmazást, amelynek segítségével véletlenszerű CAN forgalmat állítunk elő a "vcan0" interfészen. Ez az alkalmazás különböző konfiurálási lehetőségekkel rendelkezik, válasszuk most a legegyszerűbb módját, és csak az interfész nevét adjuk meg az alkalmazás elindításakor.
cangen vcan0
Látható a következő ábrán, hogy a virtuális interfész létrejött és működik.
2. ábra A cangen alkalmazás elindítása
A "cangen" alkalmazás elindul, és véletlenszerű CAN forgalmat generál, amely megjelenik az újonnan megnyitott terminálablakban (3. ábra).
3. ábra Véletlenszerű CAN forgalom a terminálablakban kerül megjelenítésre
Most egy szövegszerkesztő (pl.: nano) segítségével hozzuk létre a "canR1.py" nevű file-t, és másoljuk be a következő programot. A program sikeres futtatásához elengedhetetlen a "python-can" csomag telepítése.
Létrehozunk egy "bus" nevű objektumot a "socketcan" rétegen, majd a "recv()" függvény segítségével beolvassuk a forgalmat a "vcan0" nevű virtuális hálózati interfészről.
import can
bus = can.interface.Bus(channel='vcan0', bustype='socketcan')
while True:
msg = bus.recv()
print(str(msg.arbitration_id) + " - " + str(msg.dlc)+ " - " + str(msg.data))
A program futtatásának az eredménye látható a következő ábrán. Érdemes megjegyezni azt, hogy minden CAN frame megjelenítésre kerül a terminálablakban, tehát -költői túlzással- az alkalmazásunk működése megegyezik a "cangen" megjelenítési részével.
4. ábra Minden CAN frame megjelenítésre kerül
Módosítsuk most a Python kódunkat azért, hogy csak az előre meghatározott CAN ID-val rendelkező frame-ek kerüljenek megjelenítésre. Ehhez filtereket kell alkalmazni.
import can
from can import Message
filters = [
{"can_id": 0x100, "can_mask": 0x7FF, "extended": False},
{"can_id": 0x123, "can_mask": 0x7FF, "extended": False},
{"can_id": 0x222, "can_mask": 0x7FF, "extended": False},
{"can_id": 0x345, "can_mask": 0x7FF, "extended": False}
]
bus = can.interface.Bus(channel='vcan0', bustype='socketcan', can_filters=filters)
print("CAN_ID" + " ------ " + "CAN_DLC" + " ------ " + "CAN_DATA")
while True:
msg = bus.recv()
print(str(msg.arbitration_id) + " - " + str(msg.dlc)+ " - " + str(msg.data))
Indítsuk el ezt az alkalmazásunkat.
5. ábra Módosított PYthon kód (canR2.py) futási eredménye
Érdemes megemlíteni, hogy a Python kódban a CAN ID hexadecimálisan került megadásra, az 5. ábrán viszont ez az azonosító decimálisan került megjelenítésre.
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. . . .