2022. december 1., csütörtök

Gyorskeresés

OpenVPN alkalmazás automatikus indítása a CoreElec-el/LibreElec-el + ki/be gomb

Írta: | Kulcsszavak: openvpn . coreelec

[ ÚJ BEJEGYZÉS ]

Utojára módosítva: 2022.01.06

OpenVPN alkalmazás automatikus indítása a CoreElec-el/LibreElec-el, illetve ki/be gomb létrehozása a Kodiban a VPN ki/be kapcsolásához manuálisan, illetve egyéb okosságok, tippek

TARTALOMJEGYZÉK:

I.) OpenVPN alkalmazás automatikus indítása a CE/LE eszközökön
II.) Kodiban a Kedvencek menüben gomb létrehozása az I.) pontban létrehozott szolgáltatás manuális ki/be kapcsolásához
III.) Ugyanaz mint a II.) pont kivéve, hogy nem hozunk létre a Kodival (CE/LE box) automaikusan induló szolgáltatást, hanem a VPN csak akkor indul, ha mi bekapcsoljuk (illetve ki).
IV.) Tippek, elmélkedések, ötletek

I.) OpenVPN alkalmazás automatikus indítása a CE/LE eszközökön:

ami kell hozzá egy Windows vagy egy Linux vagy akármilyen OP rendszer amiről SSH-n elérjük az adott boxot, persze ehhez nem árt ha az SSH elérés be van kapcsolva a CE/LE alatt (alapból aktív egyébként) meg persze egy VPN szolgáltató által kiadott OpenVPN config fájl (a legtöbb VPN szolgáltató tud ilyet adni, pl a NordVPN-ek is van) és persze egy tv box, amin CE vagy LE fut.

Szóval kezdjünk akkor bele, néha hirtelen jutnak eszembe dolgok, ezért remélem nem lesz kesze-kusza iromány:

CE/LE box bekapcs, utána nézzük meg a Kodiban mi az IP címe a beállítások/rendszer információk menüpont alatt, enyém most 192.168.1.170, tehát erre az IP címre kell SSH-n fellépni.

Tegyük fel, hogy Windows-om van és CoreELEC boxom, így jobb egérgomb a Start menüre és klikk Parancssor (vagy Power Shell tökmind1)

majd érjük el a boxot SSH-n:

ssh root@192.168.1.170

Ha még sosem jártunk a boxban akkor feljön egy hosszú dialógus, hogy ez meg ez az azonosítója az elérni kívánt eszköznek és ha biztosak vagyunk hogy folytatni akarjuk akkor gépeljük be (igen, be kell gépelni), hogy yes és nyomjunk ENTER-t, ekkor bent vagyunk a boxon. Egyébként alapjáraton, ha nem változtattunk semmit a boxon akkor coreelec a jelszó és root az user SSH-n.

Ha minden jól ment ezt látjuk (lehet neked más verziószám fogad, lényegtelen):
##############################################
# CoreELEC #
# https://coreelec.org #
##############################################

CoreELEC (official): 9.2.8 (Amlogic.arm)
CoreELEC:~ #

Először is kell az entware csomagkezelő
installentware

ENTER és feltelepül a végén pedig kiírja, hogy a telepítés befejezéséhez újra kell indítani a boxot y/N (tehát igen vagy nem) nyomjunk egy y-t és újra indul a box. Miután felállt a rendszer újra SSH-zuk be magunkat a boxra (mivel újraindításkor a kapcsolat elveszett, így újra be kell lépni). Ekkor ha minden igaz az entware csomaggal az openvpn alkalmazás is felkerült, próbáljuk ki, adjuk ki a parancsot, hogy így van-e, ha igen vmi ilyesmit kell látnunk:

Frissítés: a CE és LE rendszerek része eleve az openvpn csomag, szóval nem kell az entware, ha nem akarjuk. Persze nem egy butaság, mivel entware alatt egész sok csomag feltelepíthető, mint például a régi ismerős Midnight (Norton) Commander ami egy két ablakos (mint a Total Commander, csak egyszerűbb köntösben) lévő fájlkezelő (opkg install mc, futtatni pedig mc paranccsal, kilépni belőle pedig az exit paranccsal -- entware telepíthető csomagokat lásd bővebben: [link])

CoreELEC:~ # openvpn
OpenVPN 2.4.11 armv8a-libreelec-linux-gnueabi [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [AEAD] built on Sep  7 2021

General Options:
--config file   : Read configuration options from file.
--help          : Show options.
--version       : Show copyright and version information.

Tunnel Options:

bla-bla-bla-bla-bla-bla

Na most fel kell másolni a boxra az openvpn config fájlt/fájlokat. Nekem járt alapból a seedszerverem-hez, így nekem a fájlok így néznek ki:

ca.crt        xtend-1.conf  xtend-1.key
ta.key        xtend-1.crt   xtend-1.ovpn

ezeket a fájlokat én a boxra a /storage/ (ez a home könyvtár azaz ha ~ jelet látod a prompt-ban akkor eleve ebben a könyvtárban vagy) azon belül /backup/ könyvtárba másoltam, de előtte csináltam ott egy VPN nevű könyvtárat

CoreELEC:~/backup # mkdir VPN

majd nyitottam egy másik parancssor/power shell ablakot Windows-ba és az scp paranccsal felmásoltam a box adott könyvtárába a fájlokat (de lehet ezt akár pendrive-ról is a kodi fájlkezelőből, nekem így gyorsabb, nem kell külön eszköz):

belépsz a másik parancssor ablakban oda ahol vannak az openvpn fájlok, nekem a D:\Downloads\VPN\xtend-1 mappában vannak az openvpn fájlok így nekem a parancssor így néz ki abból a könyvtárból:

D:\Downloads\VPN\xtend-1> scp *.* root@192.168.1.170:/storage/backup/VPN

azaz az adott könyvtárból másolj mindent (*.*) a box /storage/backup/VPN könyvtárába, ekkor mint az SSH jelszót fog kérni ami alapjáraton ugye a coreelec szócska. És ha minden jól ment akkor látjuk, hogy fel lettek másolva a dolgok
root@192.168.1.170's password:
ca.crt 100% 1216 98.3KB/s 00:00
ta.key 100% 636 85.6KB/s 00:00
xtend-1.conf 100% 5041 330.0KB/s 00:00
xtend-1.crt 100% 4507 482.3KB/s 00:00
xtend-1.key 100% 1704 220.7KB/s 00:00
xtend-1.ovpn 100% 278 46.6KB/s 00:00

Illetve a SSH-n a boxon is ellenőrizzük belépve a VPN könyvtárba, hogy ott van-e minden:
CoreELEC:~/backup # cd VPN
CoreELEC:~/backup/VPN # ls
ca.crt xtend-1.conf xtend-1.key
ta.key xtend-1.crt xtend-1.ovpn

igen, minden fájl itt van.
Ezután telepítsük a speedtest-cli alkalmazást a boxra, ezzel fogjuk ellenőrizni, hogy működik-e a VPN-ünk, ugye a VPN ip-jét fogja kiírni amikor a sebesség tesztet csinálja
CoreELEC:~/backup/VPN # cd ~
CoreELEC:~ # wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/spee
dtest.py
CoreELEC:~ # chmod +x speedtest-cli

így futtathatóvá tettük a speedtest-cli alkalmazást, úgyhogy teszteljük is
CoreELEC:~ # ./speedtest-cli
Retrieving speedtest.net configuration...
Testing from Elisa Mobile (85.XX.XX.XX)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by teamfox.fi (Helsinki) [0.31 km]: 51.606 ms
Testing download speed................................................................................
Download: 20.21 Mbit/s
Testing upload speed................................................................................................
Upload: 28.60 Mbit/s

Hát most vmiért elég f*s speedtest lett :D, de most ez nem is releváns ide.
Ezután teszteljük az openvpn-t a fentebb felmásolt openvpn config fájllal ami az én esetemben az xtend-1.ovpn fájl és így néz ki a teljes parancs (meg kell adni, hol van az openvpn config fájlod):
CoreELEC:~ # cd ~/backup/VPN && openvpn --daemon --config /storage/backup/VPN/xtend-1.ovpn
azaz belépünk először is abba a könyvtárba ahol vannak a config fájlok majd futtatjuk az openvpn-t
Ha nem lett semmi hiba üzenet akkor elvileg működik a dolog, de győzödjünk meg róla, hogy fut-e
CoreELEC:~/backup/VPN # pgrep -f "openvpn --daemon"
3346

azaz a keresés vissza adott egy PID számot ami alatt fut az openvpn daemon módban majd ezzel a PID számmal "gyilkoljuk" le, hogy ne fusson, mert automatikus indításba fogjuk rakni az openvpn-t
De ellenőrizzük le a speedtest-el, ilyenkor teljesen más lesz az internet szolgáltató és az IP címünk is mint eredetileg:
CoreELEC:~/backup/VPN # ~/speedtest-cli
Retrieving speedtest.net configuration...
Testing from SlashN Services Pte. Ltd. (46.XX.XX.XX)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Claranet Benelux B.V. (Amsterdam) [10489.38 km]: 88.511 ms
Testing download speed................................................................................
Download: 6.53 Mbit/s
Testing upload speed................................................................................................
Upload: 14.08 Mbit/s

Mint a mellékelt ábra mutatja, működik, mert azt írja a speedtest, hogy a SlashN Service az internet szolgáltatóm és Amsterdam-ból vagyok. Bingó!
A speedtest sebességem ismét egy f*s, nem vágom most mi a baja a boxnak, általában 100 mbit/s mindig megvan, lehet már kellene egy router restart :D de mint fentebb írtam, ez most nem releváns.

Akkor gyilkoljuk le a futó openvpn parancsot a kill parancsal és a hozzá tartozó PID számmal, azaz.
CoreELECfent:~/backup/VPN # pgrep -f "openvpn --daemon"
3346
CoreELEC:~/backup/VPN # kill 3346
CoreELEC:~/backup/VPN # pgrep -f "openvpn --daemon"
CoreELEC:~/backup/VPN #

tehát a pgrep paranccsal lekértük mi a futó openvpn PID száma, majd "megöltük", illetve biztos ami biztos újra lekértük, hogy fut-e vagy leállt és mivel üres sort kaptunk vissza, így leállítottuk a futó openvpn parancsot

Most jön, hogy akkor automatikusan induljon minden reboot illetve box ki-be kapcs alkalmával az openvpn parancsunk
navigáljuk el a ~/.config/system.d mappába és ott hozzuk léptre például a vpn.service fájlt, azaz:
CoreELEC:~/backup/VPN # cd ~/.config/system.d
CoreELEC:~/.config/system.d # nano vpn.service

A tartalma pedig ez legyen (elérési utakat módosítsd ha te nem a /storage/backup/VPN mappába rakod az openvpn config fájlokat, illetve ugye neked nem xtend-1.ovpn lesz a használt config fájl neve)
[Unit]
Description=OpenVPN Autorun Service
Requires=network-online.service
After=network-online.service

[Service]
Type=forking
WorkingDirectory=/storage/backup/VPN
ExecStart= /usr/sbin/openvpn --daemon --config /storage/backup/VPN/xtend-1.ovpn
Restart=always
RestartSec=15

[Install]
WantedBy=kodi.target

Majd CTRL+S billentyűvel mentsük el a fájlt illetve CTRL+X billentyű kombóval lépjünk ki a szövegszerkesztőből
az ls parancs kiadásával láthatjuk hogy az system.d könyvtárban lett egy vpn.service fájl, bingó!

Majd engedélyezzük az új szervíz fájlt:
CoreELEC:~/.config/system.d # systemctl enable vpn.service
ekkor ezt látjuk majd:
Created symlink /storage/.config/system.d/kodi.target.wants/vpn.service → /storage/.config/system.d/vpn.service.
azaz engedélyeztük, hogy rendszer induláskor automatikusan induljon Ezután indítsuk is el és nézzük meg hogy megfelelően működik v. sem (ha mindent jól csináltunk nincs gépelési hiba,stb akkor működni kell)
CoreELEC:~/.config/system.d # systemctl start vpn.service
CoreELEC:~/.config/system.d # systemctl status vpn.service

Ha minden oké akkor a második parancs kiadása után ezt kell látnunk, amiből nekünk a Active: active (running) a lényeg illetve a végén, hogy Initialization Sequence Completed
● vpn.service - OpenVPN Autorun Service
● vpn.service - OpenVPN Autorun Service
Loaded: loaded (/storage/.config/system.d/vpn.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2022-01-04 21:26:25 EET; 39s ago
Process: 3491 ExecStart=/usr/sbin/openvpn --daemon --config /storage/backup/VPN/xtend-1.ovpn (code=exi
Main PID: 3492 (openvpn)
Memory: 512.0K
CGroup: /system.slice/vpn.service
└─3492 /usr/sbin/openvpn --daemon --config /storage/backup/VPN/xtend-1.ovpn

bla-bla-bla-bla-bla-bla-bla
Jan 04 21:26:27 CoreELEC openvpn[3492]: Initialization Sequence Completed

Szóval a service fájl működik, up&running... :D

Leállítani egyszerűen (tökmindegy hogy melyik könyvtárban vagyunk ekkor) a systemctl stop vpn.service paranccsal lehet, kiiktatni véglegesen pedig a systemctl disable vpn.service paranccsal (ha újra engedélyezni akarjuk kiiktatás után akkor a disable helyére enable szócska kell és kész).

Ennyi, kész is vagyunk! Az exit paranccsal lépjünk ki az SSH-ból!

Ha megtalálom és lesz időm, akkor leírom majd ide azt is, hogy hogy csináljuk a Kedvencek menübe 2db gombot ahol az egyik kikapcsolja a futo openvpn parancsot a másik pedig be, ez hasznos lehet, ha vmiért nem mindent VPN alól akarunk nézni például, bár ha jó a VPN szolgáltatód akkor tökmindegy, hogy állandoan fut-e az openvpn alkalmazás, nem zavar be az addonoknak, legalábbis nálam nem volt ilyen probléma pl. MS addonok alatt.

II.) Kodiban a Kedvencek menüben gomb létrehozása az I.) pontban létrehozott szolgáltatás manuális ki/be kapcsolásához:

Akkor ahogy ígértem itt a gomb amivel ki-be lehet kapcsolni a VPN-t Kodi alól (mármint a fentebb említett vpn.service-t lehet vele ki-be kapcsolni, ugye mivel elvileg minden CE/LE indításnál automatikusan felkapcsolódik a box a VPN-re)

Figyelem, ez az én megoldásom a fentebb leírt elérési helyekkel, ha neked más elérési utak vannak megadva akkor cseréld:
Én létrehoztam egy scripts könyvtárat a Kodi addon_data könyvtárában (ugye SSH-n bent vagyunk a boxban)
mkdir ~/.kodi/userdata/addon_data/scripts
majd lépjünk is bele
cd ~/.kodi/userdata/addon_data/scripts
ezután hozzuk létre vpn.py nevezetű python scriptet
nano vpn.py
a tartalma pedig ez legyen
import subprocess
import xbmcgui

result = subprocess.check_output(["/storage/.kodi/userdata/addon_data/scripts/vpn_kibe.sh"])
xbmcgui.Dialog().ok("Result", result.decode('utf-8'))

CTRL+S mentés, majd CTRL+X kilép
ezután hozzuk létre a vpn_kibe.sh shell scriptet
nano vpn_kibe.sh
tartalma pedig ez:
#!/usr/bin/bash

#nezzuk meg, hogy fut-e mar az openvpn,
#ha igen, akkor allitsuk le azt, de ha nem akkor inditsuk el
if pgrep -f "openvpn --daemon" > /dev/null
then
/usr/bin/systemctl stop vpn.service
echo "A VPN alkalmazás kikapcsolva!"
else
/usr/bin/systemctl start vpn.service
echo "A VPN alkalmazás bekapcsolva!"
exit;fi

szintén CTRL+S majd CTRL+X
ezután futtathatóvá kell tenni a shell scriptünket, azaz:
chmod +x vpn_kibe.sh

Ezt követően pedig például a kedvencek menübe rakjuk bele a vpn ki/be kapcsoló gombot:
nano /storage/.kodi/userdata/favourites.xml
aminek a tartalma ez legyen (ha nincs benne semmi):
<favourites>
<favourite name="VPN ki/be" thumb="">XBMC.RunScript(special://home/userdata/addon_data/scripts/vpn.py)</favourite>
</favourites>

ha már eleve voltak "dolgok" a kedvencek menüben akkor az első <favourites> és utolsó </favourites> közé kell beszúrni a fentebbi sort.
Sőt, fel is túrbózhatjuk pl a fentebb említett scripts könyvtárba berakunk egy .png fájlt és az lesz a gomb "képe" például legyen Restart.png a kép fájl akkor így fog kinézni az adott sor:
<favourites>
<favourite name="VPN ki/be" thumb="special://home/userdata/addon_data/scripts/Restart.png">XBMC.RunScript(special://home/userdata/addon_data/scripts/vpn.py)</favourite>
</favourites>

de ez már csak "rongyrázás" szerintem :D
ha ezzel is megvagyunk akkor már csak újra kell indítani a kodit:
systemctl restart kodi
paranccsal és voila' ott van a kedvencek menüben a VPN ki/be nevezetű gomb ami ki is írja hogy éppen be vagy kikapcsolta a VPN-t!

UPDATE: ha nem akarod, hogy automatikusan induljon a VPN szolgáltatás a CE/LE box bekapcsolása után, hanem a gombbal akarod ki-be kapcsolni azt, semmi akadálya, semmit sem kell máshogy csinálni, csak annyit, hogy a boxon SSH-n belépsz és kiadod a systemctl disable vpn.service parancsot és kész, ekkor ugyan már nem fog automatikusan indulni, de a fentebb említett gombbal ki-be kapcsolható!

III.) Ugyanaz mint a II.) pont kivéve, hogy nem hozunk létre a Kodival (CE/LE box) automaikusan induló szolgáltatást, hanem a VPN csak akkor indul, ha mi bekapcsoljuk (illetve ki).

Ebben a pontban annyi a különbség az előző kettőhöz képest, hogy itt nem hozunk létre semmilyen vpn.service fájlt, így az nem is indul automatikusan a CE/LE box bekapcsolása után, de a ki/be kapcsoló gombbal a Kodi alól elindíthatjuk/leállíthatjuk a VPN szolgáltatást. Egyébként a pár sorral feljebb lévő UPDATE-al kezdődő bekezdésben is a végeredmény ugyanaz, mint ebben a pontban, kivéve, hogy ott végig kell csinálni a vpn.service létrehozását, stb, itt nem kell.

Az első pár lépés ugyanaz mint az I.) pontban leírtak, tehát ha nincs fent az entware csomag akkor telepíteni kell a boxra, illetve (---nem szükséges az entware csomagot telepíteni---) a VPN config fájlokat fel kell másolni az adott könyvtárba (tehát addig kövesd az I.) pontot amíg el nem jutsz a "Most jön, hogy akkor automatikusan induljon minden reboot illetve box ki-be kapcs alkalmával az openvpn parancsunk.." <-- innentől már nem kell) és utána kövesd a II.) pontban leírtakat, de egy kis különbséggel, mégpedig az, hogy a vpn_kibe.sh fájlunk tartalma megváltozik, mivel ugye, mint fentebb írtam nincs vpn.service szolgáltatás.
Tehát a vpn_kibe.sh tartalma a következő (### jel után lévő utasítások arra vonatkoznak, hogy mivel neked nem ugyanaz a openvpn config fájl neve, mint nekem, illetve az elérésu utak mások, így módosítsd a megfelelőre)
#!/usr/bin/bash
#set -e

####updated: 2022.01.06

###ez a file a vpn config fajlod, ird at a tiedre
###ertelem szeruen az egyenloseg jel utanit ird at
VPNconfig_file=xtend-1.ovpn

###ez pedig a teljes eleresi ut ahol a .ovpn config file-od talalhato
###ezt is ird at a tiedre, ha mashol van
###detto az = jel utan
WorkingDirectory=/storage/backup/VPN

###ehhez meg ne nyulj, koszi!
WorkingFile=$WorkingDirectory/$VPNconfig_file

#nezzuk meg, hogy fut-e mar az openvpn,
#ha igen, akkor allitsuk le azt...
if pgrep -f "openvpn" > /dev/null
then
killall -9 "openvpn"
echo "A VPN alkalmazás kikapcsolva!"
else
#....de ha nem fut akkor inditsuk el
cd $WorkingDirectory
/usr/bin/openvpn --daemon --config $WorkingFile
echo "A VPN alkalmazás bekapcsolva!"

exit;fi

ennyi, a többi lépés mind ugyanaz mint a II.) pontban.

IV.) Tippek, elmélkedések, ötletek

Ide csak saját gondolataimat szeretném veletek megosztani, előre leszögezném, hogy nem KELL úgy cselekedni vagy azt csinálni amit én gondolok, de hátha valaki, jó ötletnek tartja:

Alapok: mi is az a VPN? Ebbe én nem szeretnék belemenni, Google a barátunk. Olvassatok utána és utána döntsetek, hogy kell-e az nektek vagy sem.

VPN vásárlás. sok jó VPN szolgáltató elérhető a piacon, az áruk nagyjából a top kategóriás szolgáltatóknak megegyezik (10000% vannak jó magyar szolgáltatók is, én sosem használtam, ezért nem tudom melyek azok). Általában két lehetőség van, hogy hűségidő nélküli havidíjat fizetsz, ugye ekkor bármikor felmondható, de ilyenkor elég magas szokott lenni a havidíj: ~8-12 € vagy $/hó. Ha pedig hűséget vállalunk 1-2-3 évre akkor pedig általában ~1-2/€-$/hó-ra jön ki a havidíj és sok szolgáltatónál nem egyben kell kifizetni előre az X év előfizetést hanem havi rendszerességgel.
Sőt a jobb szolgáltatóknál van 15-30 vagy akár 45 nap pénzvisszatérítési garancia is! Tehát a legjobb választás, ha először kipróbálod az adott szolgáltatót, hogy beváltja-e a hozzá fűzött reményeket és ha nem, akkor az adott időn belül vissza kapod a pénzed. Ilyen szolgáltatók amiket én kipróbáltam pl az IPVanish vagy NordVPN. Van persze több is, de azokat nem ismerem. Egyébként érdemes a neten a kiszemelt VPN szolgáltatóról úgynevezett "review"-t olvasgatni (felhasználói vélemények), így nagy eséllyel elkerülhető a mellé nyúlás. Én személyszerint ajánlom a nagyobb és ismert VPN szolgáltatókat, mert ezek már jó pár X éve működő cégek, ha kiszivárogtattak volna valamit az userek-ről az már rég kiderült volna.

Saját VPN szerver: ez is szerintem egy egész jó ötlet. Bérelhetünk egy kis VPS szervert akár havi 3-4 dollárért, aminek gigabites kapcsolata van és unlimited traffic, azaz nincs kvóta az internet forgalmon.
Ide nem írom le a menetét, mert a neten fellelhető sok leírás róla a Google a barátod, de pl írjuk be, a keresőbe, hogy "how to install openvpn server on Ubuntu/Debian/stb". Ezt akár 3-4-5 barát is bérelheti így a havidíjja fejenként kb. 300-400 forintra jön ki .... ez már elég jól hangzik nem?

És aki azon kesereg, hogy "dehát ezek pénzbe kerülnek"....igen! Manapság már csak a pofon van ingyen! Ezt tudomásul kell venni...én a helyetekben nem használnék sokáig ingyenes VPN-t!

Köszönöm a figyelmet! Semmitöbbetnemtudokelmondani, kéremkapcsoljaki! A helyesírási hibákért elnézést, gyorsan írtam ezt az irományt!

Copyright © 2000-2022 PROHARDVER Informatikai Kft.