Samba tunnel beállítása smbm-hez (Windows XP, 7, 8, 10)

Innen: AdminWiki

Ebben a leírásban SSH-tunnelezett kapcsolatot állítunk be Windows (desktop vagy notebook) munkaállomásról egy (távoli) Samba szerverre, amelyet elsősorban fájlkiszolgálóként szeretnénk használni.

Szerver oldali teendők

A szerver oldalon létre kell hozni a (Samba/Windows mapped) Linux felhasználót és be kell sorolni a jogosultságainak megfelelő (Samba/Windows-mapped) Linux csoportokba. Ennek módja a használt backendtől és adminisztrációs felülettől (pl. tdbsam/Samba Manager, LDAP/phpLDAPadmin, egyéb Samba GUI, stb.) függ.

Ezen kívül szükségünk lesz egy SSH-tunnelezésre alkalmas, passphrase-zel védett RSA-2 kulcspárra, melynek privát kulcsa legyen PuTTY .ppk formátumú, publikus kulcsát pedig a létrehozott (Samba/Windows mapped) Linux felhasználó ~/.ssh/authorized_keys2 könyvtárában kell elhelyeznünk, célszerűen az alábbi korlátozásokkal:

command="/bin/false",no-pty,no-X11-forwarding,no-agent-forwarding,no-port-forwarding,permitopen="localhost:139",permitopen="127.0.0.1:139",permitopen="localhost:445",permitopen="127.0.0.1:445" ssh-rsa ...

Megjegyzés: a Samba Manager a kulcspárt felhasználó létrehozatalakor automatikusan elkészíti.

Ha a felhasználó korábban már létrejött, van kulcspárja és a csoportokba sorolás is megtörtént, szerver oldali tennivaló nincsen.

smbm használata esetén

Az alábbiak csak arra az esetre vonatkoznak, ha a szerveren a Samba Manager (smbm) toolkit telepítve van.
Feltételezzük, hogy a házirend szerinti Samba/Windows felhasználónév vezeteknev.keresztnev alakú.

A Samba Managert futtató fájlszerveren root-ként adjuk ki ezeket a parancsokat:

smbm -au vezeteknev.keresztnev password # password opcionális
  • Létrehozza a felhasználót vezeteknev.keresztnev Samba/Windows felhasználónévvel és ha nem adunk meg jelszót, generált jelszóval; valamint a háttérben smbNNNNN Linux felhasználónévvel (jelszavas belépés lehetősége nélkül).
  • Létrehozza a felhasználó home könyvtárát, elhelyez benne egy generált, tunnelezésre használható kulcspárt, amelynek jelszava (passphrase) a Samba/Windows jelszóval megegyezik.

A csoportokba soroláshoz:

smbm -lg                                             # Listázza a létező Samba/Windows csoportokat
smbm -aug vezeteknev.keresztnev "Windows csoportnév" # Beteszi a felhasználót a csoportba
smbm -lug vezeteknev.keresztnev                      # Listázza a felhasználó csoporttagságait

Ha ezzel készen vagyunk, kiléphetünk a szervergépből.

Kliens oldali teendők

Szükségünk lesz:

  • a felhasználó tunnelezésre alkalmas privát kulcsára és annak passphrase-ére;
  • a felhasználó Samba/Windows felhasználónevére (vezeteknev.keresztnev) és jelszavára;
  • a felhasználó gépén adminisztrátori jogkörre a szükséges segédprogramok telepítéséhez.

Teendők adminisztrátorként

A továbbiakhoz adminisztrátorként (rendszergazda jogkörű felhasználóként) lépjünk be a beállítandó munkaállomásra.

PuTTY telepítése

Kötelező telepítés, ha a felhasználó nem használ titkosított fájlrendszert (pl. BitLockert, TrueCryptet, VeraCryptet), mert ilyenkor a privát kulcs jelszavát nem jegyeztethetjük meg, így kelleni fog a PuTTYGen (passphrase változtatásra), esetleg a Pageant. Ha van titkosított fájlrendszer, akkor telepítése opcionális, de érdemes telepíteni, mert hibakeresésre is jól használható.

Töltsük le a PuTTY utolsó stabil verzióját Windows Installer formában és telepítsük. A célmappa legyen C:\Program Files\Security\PuTTY, a Start menü mappa Eszközök\PuTTY (Windows 10 esetén maradjon PuTTY), desktop ikonok nem kellenek.

MyEnTunnel telepítése

Kötelező telepítés, ezt használjuk a tunnel felépítésére és fenntartására.

Töltsük le a MyEnTunnel legfrissebb, stabil (nem Unicode) változatát, és telepítsük.

Windows XP

A service nem kell, célmappa legyen C:\Program Files\Security\MyEnTunnel, a Start menü mappa MyEnTunnel.

Sajnos a telepítő a Start menü mappát az aktuális felhasználó profiljába teszi, ezt innen mozgassuk át a közös Start menü Eszközök mappájába és javítsuk meg a jogokat.

Sajnos Windows XP alatt a MyEnTunnel az egyes kapcsolatok profilállományait a program mappájába teszi, ezért adjunk a C:\Program Files\Security\MyEnTunnel mappára a Felhasználók csoportnak írásjogot (TODO!).

Windows Vista, 7, 8, 10

A service nem kell, célmappa legyen C:\Program Files\Security\MyEnTunnel, a Start menü mappa Eszközök\MyEnTunnel (Windows 10 esetén maradjon MyEnTunnel).

Ha a telepítő a Start menü mappát az aktuális felhasználó profiljában is létrehozná (üresen), ezt töröljük le.

Windows Vista, 7, 8, 10 és bekapcsolt UAC esetén a Virtualstore szolgáltatás kezeli a profilállományokat, így a programkönyvtárra nem kell (nem szabad) írásjogot adni.

A telepítés tartalmaz egy plink.exe binárist is, ezt opcionálisan a PuTTY telepítéssel érkező frissebb változatra cserélhetjük. Sajnos a MyEnTunnel 3.4.2.1 (non-UTF8) a plink 0.63 verzióját jelenleg nem támogatja, így itt az innen letöltött 0.62 verziót érdemes használni.

Ezen kívül töltsük le a myentunnel-samba.bat scriptet is, és (a jogokra ügyelve!) helyezzük el a MyEnTunnel programkönyvtárában. Windows 10 esetén szükségünk lehet a Samba_tunnel_setup.xml időzített feladatra is.

Loopback interface elkészítése

Mivel a Windows munkaállomások minden használatban lévő hálózati interface-én fut(hat) a helyi Server (Fájl- és nyomtató megosztás) szolgáltatás, amely a tunnelben is használatos Samba portokat és protokollokat használja, egy új hálózati kapcsolatot, nevezetesen egy virtuális (hardverhez nem tartozó) hálózati interface-t ("hálókártyát") definiálunk, amelyen nem fut a Windows fájl- és nyomtatómegosztás szolgáltatása. Ez lesz az SSH tunnel végpontja a munkaállomáson.

Az interface-nek statikus IP-t adunk nem route-olható tartományból (192.168.255.254/24) gateway nélkül, magas metrikával; csak a TCP/IP-t engedélyezzük rajta. Ha több távoli Samba szerverhez is szeretnénk csatlakozni, akkor ugyanezen interface-en minden távoli szerverkapcsolathoz egy-egy külön dummy IP címet veszünk fel (célszerűen .254, .253, stb.).

Windows XP

  • Start menü, Vezérlőpult, Hardver hozzáadása, a varázslóban "Igen, már csatlakoztattam a hardvert", a listában legalul Új hardvereszköz hozzáadása, listából kiválasztás, Hálózati kártyák, Microsoft, Microsoft (KM-TEST) visszacsatoló adapter, Befejezés.
  • Start menü, Beállítások, Hálózati kapcsolatok, az adapterhez tartozó kapcsolaton jobbklikk, Tulajdonságok.
    • Általános fül, TCP/IP protokoll, Tulajdonságok, A következő IP cím használata, Speciális nyomógomb
      • IP-beállítások fül, IP-cím hozzáadása 192.168.255.254, netmask 255.255.255.0 Ugyanitt a Csatoló metrikája 9999 legyen.
      • DNS fül, "A kapcsolat címének regisztrálása a DNS-be" ne legyen engedélyezve.
      • WINS fül, NetBIOS tiltása TCP/IP felett, OK, OK.
    • Általános fül, csak a TCP/IP protokoll legyen engedélyezve, a korlátozott kapcsolatról sem kérünk értesítést.

Gyorsteszt: parancssorban ping 192.168.255.254 működik.

Windows Vista, 7, 8, 10

  • Start, hdwwiz.exe - megnyílik a Hardver hozzáadása varázsló; listából kijelölés, Hálózati kártyák, Microsoft visszacsatoló adapter, Befejezés.
  • Start, Vezérlőpult, Hálózati és megosztási központ, Adapterbeállítások módosítása, az adapterhez tartozó kapcsolaton jobbklikk, Tulajdonságok.
    • Csak a TCP/IP protokoll legyen engedélyezve.
    • A TCP/IP protokoll négyes verziója, Tulajdonságok, Általános fül, IP-cím hozzáadása 192.168.255.254, netmask 255.255.255.0 legyen.
      • Speciális nyomógomb, IP beállítások fül, a Csatoló metrikája 9999 legyen.
      • DNS fül, "A kapcsolat címének regisztrálása a DNS-be" ne legyen engedélyezve.
      • WINS fül, NetBIOS tiltása TCP/IP felett.

Gyorsteszt: parancssorban ping 192.168.255.254 működik.

Válasszunk egy profilnevet, amelyik a továbbiakban az erre a dummy interface-re tunnelezett kapcsolatot azonosítja. Ez lesz:

  • az ide tunnelezett távoli szerver (virtuális) hostneve;
  • a kapcsolatot indító és fenntartó MyEnTunnel profil neve.

Jegyezzük be ezt a nevet (jelen példában legyen geofile) a munkaállomás hosts file-jába, pl. az alábbi módon:

Windows XP

Start menü, Futtatás, notepad C:\Windows\system32\drivers\etc\hosts

[...]
# Dummy interface for Samba tunneling
192.168.255.254		geofile

Gyorsteszt: parancssorban ping geofile működik.

Windows Vista, 7, 8, 10

Start menü, cmd, Futtatás rendszergazdaként (admin konzol)

notepad drivers\etc\hosts

[...]
# Dummy interface for Samba tunneling
192.168.255.254		geofile

Gyorsteszt: parancssorban ping geofile működik.

Windows Vista, 7, 8, 10 SMB forgalom eltérítése

A beállítás csak Windows Vista és újabbak esetén szükséges - Windows XP esetén a TCP/139-es porti forgalom tunnelezése elegendő és minden trükk nélkül működik.

Windows Vista, 7, 8 és 10 esetén a TCP/139-es forgalmat hiába tunneleznénk, mert a fájlkiszolgáló szolgáltatást először a TCP/445-ös porton keresi a kliens (ez a viselkedés nem is módosítható). Sajnos a beépített és alapértelmezetten a rendszerindításkor automatikusan elinduló smb (újabban srv) driver minden interface TCP/445-ös portjára rátelepszik, vagyis semmilyen helyi TCP/445-ös portot nem tudunk tunnel végpontjaként felhasználni. Az egyetlen működőképes megoldásnak a dummy interface 445-ös portjára menő forgalomnak kernel szinten, ugyanezen interface másik portjára történő eltérítése látszik (portproxy). Így a helyi szolgáltatás elfoglalja ugyan a dummy interface TCP/445-ös portját, de az erre címzett csomagok az eltérítés miatt valójában a másik portra kerülnek, illetve az itt végződő tunnelen keresztül eljuthatnak a távoli gépre (a trükk innen származik).

Parancssorban (admin konzol) adjuk ki a következő parancsot, amellyel a dummy interface TCP/445-ös forgalmának a TCP/44445-ös portra (de használható bármely más szabad port is) átirányítását kérjük:

 netsh interface portproxy add v4tov4 listenaddress=192.168.255.254 listenport=445 connectaddress=192.168.255.254 connectport=44445

Ha több távoli Samba szervert kívánunk használni, és emiatt a dummy interface-nek több IP címe van, a beállítást mindegyikre el kell végezni.

A portproxy beállítás perzisztens (újraindítás után is megmarad), de még az smb/srv driver elindítása előtt kell megvalósulnia.

  • Windows 10 alatt gondoskodni kell arról, hogy az iphlpsvc (IP-segítő) szolgáltatás, amely a portproxy beállítást ténylegesen érvényesíti, korábban induljon és sikeresen elfoglalja a kívánt portot, mint azt SMB fájlrendszer meghajtót elindító lanmanserver (Kiszolgáló) szolgáltatás tenné. Jelenleg (version 1511) úgy tűnik, hogy a Windows belső, időzítési vagy függőségi(?) problémái miatt a sikeres foglalás véletlenszerűen meghiúsul, így a kívánt eredményhez a lanmanserver tiltása, a rendszerindítás után az iphlpsvc újraindítása(!), majd a lanmanserver indítása szükséges. Ezt valósítja meg az innen letölthető Samba_tunnel_setup.xml időzített feladat, amelyet a Feladatütemezőben (rendszergazda jogosultságokkal) importáljunk, és ezután egyszer, manuálisan futtassunk le.
  • Windows 8.x alatt elegendőnek tűnik a a Számítógép, Kezelés, Szolgáltatások listájában a Kiszolgáló (lanmanserver) service indítását (Tulajdonságok, Indítás típusa) Automatikus (késleltetett)-re állítani.
  • Windows 7 alatt a késleltetés opcionális (tapasztalat szerint enélkül is működik).
  • Windows Vista alatt a késleltetés nem látszik elegendőnek, így ehelyett az itt olvasható leírás alapján a lanmanserver indítását manuálisra kell állítani, és elindításáról (a Windows 10-hez hasonlóan) ütemezett feladattal kell gondoskodni.

Ezután újra kell indítanunk a munkaállomást.

Újraindítás után parancssorból ellenőrizzük az átirányítást (ehhez már nem szükséges rendszergazdai jogosultság):

netstat -ano | find ":445"

<TODO!>

netstat -tan -p TCP | find "192.168.255"

  TCP    192.168.255.254:445    0.0.0.0:0              FIGYEL          InHost

netsh interface portproxy show v4tov4

Figyelés ipv4:             Csatlakozás ipv4:

Cím             Port        Cím             Port
--------------- ----------  --------------- ----------
192.168.255.254 445         192.168.255.254 44445

azaz a dummy interface TCP/445-ös portján nem a helyi smb szolgáltatásnak (is) dolgozó PID 4 rendszerfolyamat figyel, hanem a portproxy-t megvalósító szolgáltatás, így az itt megjelenő forgalom valójában a TCP/44445-ös porton keresztül zajlik, ahonnan tovább tunnelezhető.

Teendők korlátozott felhasználóként

Kérjük meg a felhasználót, hogy lépjen be a beállítandó munkaállomásra a saját nevében és ha használ VeraCryptet, csatolja fel a titkosított meghajtót.

A privát kulcs elhelyezése

Ha a felhasználó használ VeraCryptet, privát kulcsát mozgassuk át a titkosított meghajtóra, pl. a T:\Keys könyvtárba. Opcionálisan elhelyezhetünk itt egy szövegfájlt, amelyben a kulcshoz tartozó passphrase és a Samba/Windows felhasználónév illetve jelszó is szerepel.

Ha nincs titkosított meghajtó, a kulcsot a felhasználó profilkönyvtárának gyökerébe helyezzük át.

A privát kulcs megszerzése smbm használata esetén

Az alábbiak csak arra az esetre vonatkoznak, ha a szerveren a Samba Manager (smbm) toolkit telepítve van, és a kulcsokat az smbm hozta létre és még nem töltöttük le a felhasználó privát kulcsát.

Samba Manager használata esetén a felhasználó privát kulcsa annak home könyvtárában jön létre, és a tunnel beállításához azt meg kell szerezzük. Ennek érdekében először egy másik, jelszavas belépésre jogosult(!) Linux felhasználó (pl. admin) nevében építünk ki tunnelt, de a Samba-hoz a beállítandó felhasználó nevében csatlakozunk, így látjuk a home könyvtárát és le tudjuk tölteni a kulcsot.

Parancssorból indítsuk el a myentunnel.exe-t a választott profilnévvel (példánkban geofile):

"%PROGRAMFILES%\Security\MyEnTunnel\myentunnel.exe" geofile
"C:\Program Files (x86)\Security\MyEnTunnel\myentunnel.exe" geofile

A megjelenő beállítóablak Settings fülén az SSH server mezőben adjuk meg a távoli szervert (pl. fileserver.geocom.hu), Username legyen a jelszavas belépésre jogosult másik Linux felhasználó (példánkban admin) a Verbose Logging legyen bekapcsolva, más beállításokat egyelőre ne kattintsunk be. A Tunnels fülön a Local mezőbe írjuk be az alábbiakat:

Windows XP         : 192.168.255.254:139:127.0.0.1:139
Windows Vista (+)  : 192.168.255.254:44445:127.0.0.1:445

Mentsünk (Save), lépjünk át a Status fülre és Connect. Adjuk meg a szerver admin (Linux) felhasználójának jelszavát, fogadjuk el a host key-t. Sikeres kapcsolódás esetén a Status ablakban stabil kapcsolatra és sikeres port továbbításra utaló üzenet jelenik meg. Sikertelenség esetén nézzük át az üzeneteket, esetleg lépjünk ki a MyEnTunnelből és a PuTTY elindításával próbáljuk megkeresni a hibát. Csak akkor menjünk tovább, ha ez a kapcsolat rendben felépül.

Ha a kapcsolat rendben van, hagyjuk nyitva a MyEnTunnel ablakát és az Intézőben nyissuk meg a \\192.168.255.254 megosztást. Adjuk meg a felhasználó Samba/Windows felhasználónevét a Samba-n használatos domain névvel együtt (pl. GEOCOM\vezeteknev.keresztnev) és jelszavát - ezeket az adatokat jegyeztessük is meg. Lépjünk be a home könyvtárába és töltsük le az ott lévő (privát) kulcsok közül a .ppk kiterjesztésűt. Csukjuk be az Intézőt és a MyEnTunnel ablakának Disconnect nyomógombjával bontsuk le a kapcsolatot és lépjünk is ki a MyEnTunnelből.

A tunnel beállítása

Ha már használtuk a tunnelt (pl. smbm esetén a privát kulcs letöltésére), akkor az első lépést elhagyhatjuk.

  • Parancssorból indítsuk el a myentunnel.exe-t a választott profilnévvel (példánkban geofile):
"%PROGRAMFILES%\Security\MyEnTunnel\myentunnel.exe" geofile
"C:\Program Files (x86)\Security\MyEnTunnel\myentunnel.exe" geofile

A megjelenő beállítóablakban semmit ne állítsunk be, csak mentsünk (Save) és lépjünk ki (Exit). Ezzel létrehoztuk a profil beállító állományát.

  • Sajnos a MyEnTunnel felületén a privát kulcs helyének megadására nincs lehetőség (minden mást be tudunk állítani), ezért szerkesszük meg az imént létrehozott beállító állományt (nevében szerepel a profilnév):
Windows XP:        notepad "%PROGRAMFILES%\Security\MyEnTunnel\geofile-myentunnel.ini"
(64 bit)           notepad "C:\Program Files (x86)\Security\MyEnTunnel\geofile-myentunnel.ini"
Windows Vista (+): notepad "%USERPROFILE%\AppData\Local\Virtualstore\Program Files\Security\MyEnTunnel\geofile-myentunnel.ini"
(64 bit)           notepad "%USERPROFILE%\AppData\Local\Virtualstore\Program Files (x86)\Security\MyEnTunnel\geofile-myentunnel.ini"

és a végére írjuk be az elérési utat. A .ppk kiterjesztésű privát kulcsfile helye a titkosított meghajtón van, illetve, ha nincs ilyen, a felhasználó helyi home könyvtárában; az alábbi példában egy smbm által létrehozott nevű kulcsfájlt használunk:

[...]
FullPathKeyfile=T:\Keys\smbNNNNN_AT_fileserver.geocom.hu.ppk

[...]
FullPathKeyfile="C:\Documents and Settings\user\smbNNNNN_AT_fileserver.geocom.hu.ppk"

[...]
FullPathKeyfile="C:\Users\user\smbNNNNN_AT_fileserver.geocom.hu.ppk"
  • Parancssorból indítsuk el ismét myentunnel.exe-t a választott profilnévvel (példánkban geofile):
"%PROGRAMFILES%\Security\MyEnTunnel\myentunnel.exe" geofile
"C:\Program Files (x86)\Security\MyEnTunnel\myentunnel.exe" geofile

és a tálcaikonra jobbklikkelve (Show) hozzuk vissza a beállító ablakot. A Settings fülön az SSH server mezőben adjuk meg a távoli szervert (pl. fileserver.geocom.hu), Username legyen a felhasználó Linux felhasználóneve (smbm használata esetén smbNNNNN alakú), kattintsuk be a Connect on Startup, Reconnect on Failure, Use Private Key és Verbose logging checkboxokat; ha a privát kulcs védett tárolóban van, akkor töltsük ki a Passphrase mezőt is (alapértelmezésben azonos a felhasználó Samba/Windows jelszavával).

A Tunnels fülön a Local mezőbe írjuk be az alábbiakat:

Windows XP:        192.168.255.254:139:127.0.0.1:139
Windows Vista (+): 192.168.255.254:44445:127.0.0.1:445

Mentsünk (Save), váltsunk a Status fülre és Connect. Ha nem jegyeztettük meg a kulcshoz tartozó passphrase-t, akkor a feljövő ablakban meg kell adnunk azt.

  • Sikeres kapcsolat esetén hagyjuk nyitva a MyEnTunnel ablakát és az Intézőben nyissuk meg a \\192.168.255.254 megosztást. Adjuk meg a felhasználó Samba/Windows felhasználónevét a Samba-n használatos domain névvel együtt (pl. GEOCOM\vezeteknev.keresztnev) és jelszavát - ezeket az adatokat jegyeztessük is meg.
  • Sikeres Samba kapcsolat esetén csukjuk be az Intézőt, a MyEnTunnel Settings fülén vegyük ki a Verbose Logging pipát, kapcsoljuk be az Enable Slow Polling-ot, majd Save, Disconnect és Exit. Ettől kezdve a fenti parancssorral a tunnel bármikor elindítható.

Megjegyzés: ha a felhasználó nem használ titkosított meghajtót, de a gépe saját használatú, helyhez kötött asztali munkaállomás, akkor meggondolhatjuk a passphrase megjegyeztetését a MyEnTunnellel. Ha a gépe hordozható vagy közös használatú, akkor NE jegyeztessük azt meg, viszont a telepített puttygen program segítségével megváltoztathatjuk a jelszót számára megjegyezhetőre.

Tunnel indító script

A myentunnel_samba.bat scripttel a már beállított és letesztelt MyEnTunnel profil indítható és a tunnel felépülését követően network drive csatolások végezhetőek el.

Készítsünk egy parancsikont a felhasználó asztalán, amelynek célja legyen ez a script a myentunnel.exe ikonjával és indítási paraméterekként a csatolandó network drive-ok listájával (drive:megosztás\pathname alakban). Pl. az alábbi hívás:

"C:\Program Files\Security\MyEnTunnel\myentunnel_samba.bat" /v geofile g:active h:homes i:archive
"C:\Program Files (x86)\Security\MyEnTunnel\myentunnel_samba.bat" /v geofile g:active h:homes i:archive

a tunnel indítása után H: meghajtóként a felhasználó távoli home könyvtárát, G: meghajtóként a fájlszerver aktív, I: meghajtóként az archív megosztását csatolja fel (a fenti csak példa, ügyeljünk arra, hogy létező megosztásokat adjunk meg!).

Ahhoz, hogy a felcsatolás automatikus legyen, érdemes ezeket a meghajtókat az Intézőből egyszer manuálisan csatolni, és a Samba/Windows felhasználói adatokat a géppel megjegyeztetni. Így a script csak a tunnelhez használt és nem titkosított meghajtón tárolt privát kulcs passphrase-át kérdezheti meg (munkamenetenként egyszer).

Tippek a myentunnel.samba.bat használatához:

  • Ha a felhasználó több távoli Samba szerverre is csatlakozik, minden szerverhez javasolt egy-egy parancsikont készíteni;
  • Érdemes lehet a parancsikon minden példányához a myentunnel.exe ikonját társítani (zöld lakat);
  • A parancsikon elindításakor megjelenő terminálablak a sikeres csatlakozás után bezáródik, hibaüzenet esetén azonban billentyűleütésig a képernyőn marad, hogy a hibaüzenet olvasható legyen;
  • Ha a tray ikon zöld, a kapcsolat fennáll; ha sárga vagy piros, a kapcsolat megszakadt (noha a MyEnTunnel igyekszik automatikusan újracsatlakozni). Ilyenkor a parancsikon (azaz a script) ismételt elindítása megkísérli a kapcsolat megjavítását (a script többszöri elindítása nem okoz kárt.)

Irodalom