Mi az a VPN?
A VPN (VirtualPrivate Network, magyarul virtuális magánhálózat) segítségével kiterjesztett helyi hálózatokat lehet létrehozni nyilvános hálózatokon. Lényegében a neve levezetve:
- V, mint virtuális – A hálózat résztvevői bárhol lehetnek, csupán el kell tudniuk érni a számukra kialakított belépési pontot.
- P, mint magán – A résztvevők között folyó kommunikáció titkosított, az eredeti hordozó hálózat külsős tagjai nem láthatják az adatcsomagok tartalmát.
- N, mint hálózat – A résztvevő eszközök között egy exkluzív LAN jellegű hálózat kerül kialakításra.
Gyakori alkalmazása ennek a technológiának például egy cég belső hálózatához való hozzáférés biztosítása külső hálózatról csatlakozni kívánó munkavállaló számára. Manapság egyre elterjedtebb a lakossági használata is ennek a megoldásnak: nyilvános szolgáltatásként kínálják egyes cégek azt, hogy a világ szinte tetszőleges pontján elérhető VPN-szerverükön keresztül lehet böngészni az internetet.
Szükség van erre?
Ennek eldöntéséhez először érdemes tisztán látni a technológia előnyeit és hátrányait:
Előnyök:
- A végpontok között az adatcsomagok tartalma titkosított
- A hálózathoz csak megfelelő engedélyekkel férhet hozzá egy eszköz
- Részben leplezni képes az eredeti feladót
- A fentiekből fakad, hogy az internetszolgáltató sem látja az adatforgalom minden részletét
Hátrányok:
- Jóval lassabb adatforgalom
- A VPN-szervert üzemeltető személy vagy szervezet minden részletét látja az adatforgalomnak
Lényegében a magánéletben és ipari környezetben is azt lehet mondani, hogy egy VPN szolgáltatás használata akkor képes nagymértékű biztonságot adni, ha a szerver üzemeltetője megbízhatóan kezeli a rajta áthaladó adatokat. Amennyiben nincs kulcsfontosságú szerepe a biztonságnak, érdemes lehet továbbá a feladó IP címének elrejtése érdekében használni még hasonló szolgáltatást. Minden más esetben a lassabb adatforgalom és az internet szolgáltatóknál kevésbé megbízhatóbb VPN szolgáltatók miatt inkább érdemesebb elkerülni ennek a technológiának a használatát.
Hogyan lássak hozzá?
Az első lépés minden esetben az igények felmérése és a tervezés. Ez a cikk az alábbi hálózat megvalósítását mutatja be:
1. ábra – Bemutatott rendszer vázlata
A cél a helyi hálózaton található két PLC között már kialakított Modbus TCP kommunikációs kapcsolat titkosítása. Természetesen szinte minden problémára több jó megoldás is létezik, ebben az esetben egy VPN rendszer kialakítása tölti be ezt a szerepet.
Az igény azt mutatja, hogy a hálózat két tagból fog állni: egy szerverből és egy kliensből. Az esetleges későbbi igényeket figyelembe véve a Modbusslave funkciót ellátó PLC lesz a VPN szerver, mert adatszolgáltató funkciója révén minden valószínűleg hosszabb élettartam várható az ő esetében. Ha később az üzemeltetői számítógépnek is el kellene érnie valamiért a Modbus adattáblát, akkor nagyobb valószínűséggel teheti meg ezt majd.
Azonosítás, tanúsítványok, kulcsok
A VPN technológia TLS alapokon nyugszik, továbbá tanúsítvány és kulcs alapú azonosítást használ az eszközök közötti kapcsolatok felépítéséhez és fenntartásához. Erről egy korábbi cikkben, a Titkosítás, tanúsítványok– ban lehet többet olvasni. A cikk a jelenlegi hálózati modell tanúsítványainak létrehozási lépéseit vezeti le.
2. ábra – Self-Signed gyökértanúsítvány és minden más szükséges fájl; További információk a Titkosítás, tanúsítványok cikkben
Szerver és kliens konfiguráció
Az eszközökre telepített OpenVPN szoftver számos konfigurációs lehetőséggel rendelkezik, ezeknek csak a töredéke kerül bemutatásra ebben a cikkben. A teljes dokumentáció az OpenVPN hivatalos weboldalán érhető el.
Először érdemes a VPN szerver konfigurációs fájllal kezdeni.
Az OpenVPN 2.0 verziója óta támogatja a pont-pont mód helyett a szerver módot is, amivel elérhetővé vált a multi-kliens szerverek létrehozása.
Ezek a paraméterek a kapcsolat felépítésére vonatkoznak. A szerver az UDP:1194 porton keresztül hallgatózik kapcsolódási igények után, és amennyiben talál egyet és megfelelően megtörténik az azonosítás a „tun” nevű illesztési mód követésével felépíti az eszközök közötti kapcsolatot.
Ezek a paraméterek azt adják meg, hogy a szerver alkalmazás az indulás során hol találja a titkosítás elvégzéséhez szükséges fájlokat, amiket korábban generáltunk. Ezeket fel kell másolni a PLC tárhelyébe FTP/FTPS/SFTP protokollon keresztül, vagy a PLC WBM felületén keresztül.
Ezek a sorok azt a hatást érik el, hogy a VPN szerver a 10.11.12.0 – 10.11.12.255 IP tartományon belül üzemelteti a hálózatot, és a kliens eszközök is ebből a tartományból kaphatnak majd IP címet. Az is meghatározásra kerül, hogy a kliensek a hálózatra csatlakozva a VPN- re csatlakozott összes eszközt elérhetik a kapott IP címükön.
Ez a paraméter azt mondja meg a VPN szervernek, hogy a „ccd” nevű mappában található fájlok kliensekre vonatkozó konfigurációs beállításokat (például fix IP címeket) tartalmaznak. A mappa a /etc/openvpn/ccd útvonalat jelöli, és ebbe a mappába kell létrehozni ezeket a fájlokat. A mi esetünkben, hogy a kliens a 10.11.12.20 IP címet kapja például egy „192.168.1.20” fájl létrehozása szükséges, aminek a tartalma:
Ennek hatására a kapcsolat felépítése rögtön a VPN IP konfiguráció beállításával fog kezdődni.
Az első sor hatása a fentiek közül azt a hatást gyakorolja, hogy —ping-restart parancs hatására nem tölti újra a kulcs fájlokat, illetve a második sor pedig szintén a —ping-restart hatására nem zárja és nyitja újra a tun/tap csatornát.
Az utolsó néhány sor csupán a log fájlok helyét és beszédességét állítja.
Ezek után a következő a kliens konfigurációs fájl elkészítése.
A pirossal kiemelt sorok kritikus fontosságúak, mert teljes egészében meg kell egyezniük a szerver konfigurációban beállítottakkal. A fájlnak tartalmaznia kell szintén a működési mód típusát (kliens), a szerver titkosítás nélküli elérési helyét (IP cím vagy domain név) és a tanúsítvány/kulcs fájlok útvonalainak leírását. Ami ezen felül még változás, az az, hogy a „nobind” utasítással a kapcsolat megkezdése pillanatában a kliens egy véletlenszerűen kiválasztott porton kezdi meg a kommunikációt a szerver dedikált portjával.
Fájlok feltöltése, indítás
A tanúsítványokat érdemes a /etc/certificates, a kulcsokat a /etc/certificates/keys mappába másolni. Ez megtehető a PLC webes felületén keresztül is:
3. ábra – Minden tanúsítvány betöltve, a WBM szintén a fent említett mappákba menti a fájlokat
És végül szükséges még az elkészített konfigurációs fájl feltöltése, és az OpenVPN funkció engedélyezése is:
4. ábra – Ha a “currentstate” nem a “running” üzenetet tartalmazza, akkor valami hiba történt. A hibaüzeneteket a konfigurációs fájlban beállított fájlok tartalmazzák.
Amennyiben sikeresen megtörtént szerver és kliens oldalon is a konfiguráció SSH kapcsolaton keresztül ellenőrizhető is a hálózati elérés.
5. ábra – A PLC nem VPN IP címére csatlakozva elérhető a VPN interfészén keresztül a hálózaton résztvevő másik eszköz
Alkalmazások illesztése, Modbus TCP
Az e!COCKPIT konfigurátorának nem kell semmit tudnia a továbbiaknak arról, hogy ki milyen jellegű hálózaton van jelen. Az egyedüli információ, amire egy Modbus TCP master- nek szüksége van ebben az esetben az az, hogy mi a slave eszköz IP címe. Ez a korábbi 192.168.1.10- ről 10.11.12.1-re módosul.
6. ábra – Az utolsó simítások, illesztés
Végül, hogy kizárólag VPN elérés segítségével legyen elérhető a slave eszköz Modbus regiszter táblája, módosítanunk kell az eszköz tűzfal beállításait:
- Az eszköz a normál interfészén keresztül tiltja a TCP:502 portot
- Az eszköz a VPN interfészén keresztül engedélyezi a TCP:502 portot.
- Az eszköz a normál interfészén keresztül engedélyezi az UDP:1194 portot
7. ábra – Enélkül tűzfal bekapcsolt állapota mellett nem tudják megkezdeni a leendő kliensek a belépést
További lehetőségek
Nincs semmi akadálya a későbbiekben annak, hogy a PLC akár az OpenVPN által biztosított felhőszolgáltatás alapú VPN szerverekhez csatlakozzon, vagy hogy külső eszközzel bővítsük a kialakított hálózatot. Probléma nélkül illeszthető a 192.168.1.120 IP című üzemeltetői gép is az új kis hálózathoz, így akár az e!COCKPIT program letöltések is VPN- en keresztül történhetnek a jövőben.
Ez a cikk a https://www.wago.com/hu/d/16186 honlapról letölthető alkalmazási jegyzet alapján készült.
A példában végigvezetett egyedi példa innen tölthető le:https://wago.sharepoint.com/:u:/s/O_38_Support_PartnerekHUN/EbWNfFtPCsdKmuzcvGxbeUQBewGeuUHXnWd6NWz1_Yl3LA?e=biNmTS