File Transfer Protocol
Tartalomjegyzék:
- FTP szerver kialakítása Filezillával
- FTP Szerver Windows XP Professional segítségével
File Transfer Protocol, vagy rövid nevén FTP TCP/IP hálózatokon – mint amilyen az internet is – történő állományátvitelre szolgáló szabvány.
Gyakran van szükség arra, hogy valamilyen állományt hálózaton keresztül töltsünk le saját gépünkre, vagy egy állományt mások számára hozzáférhetővé tegyünk. Erre alkalmas az FTP, ami lehetővé teszi a különböző operációs rendszerű gépek között is az információcserét. A világon nagy mennyiségű információforrás áll rendelkezésre, melyek letöltése ilyen módon megvalósítható. A hozzáférési jog alapján kétféle kapcsolattípus létezik:
- letöltés, vagy feltöltés nyilvánosan hozzáférhető állományokból vagy állományokba
- letöltés, vagy feltöltés olyan gépről, ahol azonosítóval rendelkezünk.
Azt a folyamatot, amikor egy távoli számítógépről fájlt mentünk a saját számítógépünk háttértárára,letöltésnek nevezzük; feltöltésnek nevezzük, ha a folyamat fordított irányban zajlik, és mi töltünk fájlt mások gépére.
Az FTP kapcsolat ügyfél/kiszolgáló alapú, vagyis szükség van egy kiszolgáló- (=szerver) és egy ügyfélprogramra (=kliens). Elterjedt protokoll, a legtöbb modern operációs rendszerhez létezik FTP-szerver és kliens program, sok webböngésző is képes FTP-kliensként működni.
Manapság az FTP kezdi elveszíteni a jelentőségét a peer-to-peer protokollokkal szemben, ugyanis bár az FTP protokollt fájlok letöltésére tervezték, a szervert nagyon leterheli, ha nagy méretű fájlt egyszerre sok kliens felé kell kiszolgálnia, ilyen feladatokra a fájlcserélő programok által használt eljárás sokkal alkalmasabb. Elavult tervezése miatt egyre inkább csak szükségmegoldásként használatos. Például nagyon sok apró fájl átvitele közben rendkívül gyenge hatékonysággal működik.
Biztinsági szempontból az FTP protokoll nem támogat titkosított autentikációt (felhasználó-azonosítást), így nem megbízható hálózaton való használata veszélyes lehet.
Hamár megismerkedtünk az FTP alapjairól akkor bemutatnám hogy működik. Filezilla és Windows XP-n keresztül megvalósítjuk.
FTP szerver kialakítása Filezillával
Először is van egy notebookunk ami routeren keresztül kapja az internetet, és az internetszolgáltatótól viszont dinamikusan változó IP címet kapok. Ezért első lépésként regisztráltam egy címet a DynDNS.com-on, hogy ne kelljen a szerver IP címét minden frissítés után újra megadni az ismerőseimnek.
A hosztnév regisztrációja ingyenes, miután létrehoztunk egy accountot, a My Account/Host Services/Add New Host gombra kattintva az alább ablakot kapjuk:
Itt meg lehet adni a hostnevet, amin keresztül majd elérhetnek minket, a jelenlegi IP címünket, és azokat a szolgáltatásokat, amiket a DynDNS továbbít nekünk. Ha például a 'web server'-t nem jelölöm meg, akkor a 80-as portra érkező kéréseket a DynDNS nem fogja továbbítani a gépem felé.
Én a későbbiekre gondolva bejelölgettem többet is, de az 'ftp backup' elég lett volna.
Ahhoz, hogy a DynDNS értesüljön az aktuális IP címünkről, a routeren is be kell állítani a megfelelő funkciót. Én egy Zyxel P334-et használok, ezen így néz ki a DynDNS konfigurálása:
A hosztnévnél meg kell adni a DynDNS-nél rögzített hosztnevünket, a User name és Password pedig értelemszerűen az ottani accountunkkal egyezik.
Következő lépés a FileZilla telepítése a kiszemelt gépre (Next..Next..Enter), majd következik a konfigurálás.
Első lépésben meg kell adni, hogy a FileZilla milyen porton kereszül kommunikáljon. Én a normál 21-es FTP porton hagytam, nem ez a legbiztonságosabb megoldás, de legalább az url hivatkozásoknál később nem kell majd megadni a port számát. Ha valaki mégis szeretné megváltoztatni, akkor érdemes az 1024-65536 közötti tartományból választani.
Ha szeretnénk azt, hogy az FTP szerverünk elérhető legyen bármilyen böngészőből, külön FTP kliens nélkül, akkor meg kell adnunk a passzív mód beállításait is. A legegyszerűbb, ha a szolgáltatótól kapott IP címünk felismeréséhez a FileZilla saját szerverét használjuk. Meg kell adnunk azt a port-tartományt is, amin keresztül passzív módban a géünkhöz kapcsolódhatnak. Itt nem érdemes túl nagy tartományt megadni, mert később ezeket a portokat egyenként engedélyeznünk kell a Windows tűzfalán, ami elég macerás munka. Egy otthoni szervernél valószínűleg nem kell ezres méretekben gondolkozni.
a ezzel megvagyunk, már csak a felhasználókat kell létrehozni, és megadni azokat a könyvtárakat, amikhez hozzáférhetnek a gépünkön. Nem akartam túlbonyolítani a dolgot, semmilyen titkos információt nem tárolok a gépemen, ezért egy weboldalhoz hasonló, nyilvános hozzáférést engedélyeztem. Ehhez egy anonymous nevű felhasználót hoztam létre, jelszó nélkül.
A könyvtár hozzárendelése az anonymous felhasználóhoz a Shared folders menüben:
A Speed Limits-nél megadhatjuk, hogy milyen sávszélességet engedélyezünk az FTP szerverhez. Nálam a torrentezés miatt ez nem túl nagy, de mindenképpen érdemes valamilyen határt szabni akkor is, ha az FTP szerver mellett nincs más kiszolgáló.
A nehezén már túl vagyunk, még a Windows tűzfal portjainak kinyitása, illetve a NAT beállítása van hátra a routeren.
Nagy sóhajtás után belekezdhetünk a jó öreg XP tűzfalának idomításába. Ehhez a Control Panel/Network and Internet Connections/Windows Firewall panelt kell kiválasztani, majd azon az Exceptions fület. Itt egyenként meg kell adni a passzív mód beállításainál kiválasztott portokat. Protokollnak a TCP-t válasszuk, mert az FTP ezen keresztül működik. Ne feledkezzünk meg az FTP alapprotokolljának engedélyezéséről sem, nyissuk meg a 21-es portot is (szintén TCP), amit még a FileZilla általános beállításainál (General Settings) hagytunk jóvá.
Utolsó simítások következnek!
Most szükségünk lesz a szerver hálózati kártyájának fizikai címére. Ehhez hozzájutni nem egyszerű feladat, ha valaki még nem próbálta korábban. De azért nem kell elkeseredni, aki idáig eljutott, annak ez is menni fog.
A legegyszerűbb módszer, ha a Start menü Futtatás parancsát választjuk, és ide beírjuk a következő 3 betűt: cmd, majd lenyomjuk az Entert. Megjelenik a szívünknek kedves fekete DOS-os képernyő, amit manapság Command Promptnak becéznek. Itt írjuk be, hogy IPCONFIG /ALL, majd nyomjunk ismét egy Entert. A megjelenő információk közül a Physical Address-re lesz szükségünk, ez egy ocsmány hexadecimális karaktersorozat, ilyen pl: 00-E0-00-99-42-EB. Ezt írjuk fel gyorsan valahová, majd csukjuk be a fekete ablakot.
Nyissuk meg a router konfigurációs ablakát, és keressük ki azt a panelt, ahol a statikus DHCP beállításokat lehet megadni. Itt vegyünk fel egy új bejegyzést: az előbb megszerzett fizikai címhez kell egy fix belső IP címet rendelnünk. A legtöbb router alapbeállítása a 192.168.1.x tartomány, úgyhogy a képen látható 10.0.0.10-es cím csak illusztráció. Ha ezzel a lépéssel megvagyunk, érdemes újraindítani a szervert, hogy valóban a kiválasztott IP címet vegye fel.
Most már tényleg csak egy legeslegutolsó lépés maradt hátra, be kell állítani, hogy az Internet felől érkező IP csomagokat a router a szerverünk felé továbbítsa. Ehhez a SUA/NAT panelre lesz szükségünk. Két sor fontos csak, a 4-es és az 5-ös, itt adjuk meg, hogy a FileZillában beállított, Windows Firewall-on is engedélyezett portok az előbb választott fix IP címmel legyenek összerendelve.
És kész! Ha minden sikerült, akkor a szerverünk mostmár elérhető egy, az alábbihoz hasonló címen, amit a böngészőbe lehet beírni:
ftp://hobbiit.dyndns.info
Apró probléma, hogy a kipróbáláshoz el kell ügetni egy webkávézóba, mert a saját belső hálózatunkról csak a belső (az utolsó panelen, a NAT-olásnál megadott) IP címen keresztül érhetjük el a szervert. Ez az én esetemben tehát így néz ki: ftp://10.0.0.10
FTP Szerver Windows XP Professional segítségével
Otthoni Windows XP FTP-szerver beüzemeléséhez általában a következőkre van szükségünk:
- Windows XP Professional telepítő CD
- állandó, szélessávú internetkapcsolat (ajánlott)
- a szerverként használt számítógép folyamatos működése
- router/tűzfal használata esetén az FTP-kapcsolat engedélyezése a tűzfalban, illetve port-átirányítás a routerben
- dinamikus IP-cím használata esetén dinamikus DNS-szolgáltatás regisztráció (ajánlott)
A következőkben az alábbi esetnek megfelelő megoldást vázoljuk: Windows XP SP2 operációs rendszert futtató számítógépünk állandó, szélessávú kapcsolattal rendelkező háztartásban üzemel, router, illetve tűzfal mögött, belső hálózaton. Gépünkön jelszóval védett FTP-helyet kívánunk távolról elérni, szerverünk mindenkori IP-címének ismerete nélkül. Amennyiben nem rendelkezünk router-rel, illetve fix IP-címet használunk, vagy nem akarjuk jelszóval védeni FTP-helyünket, értelemszerűen bizonyos lépések kihagyhatóak.
A Windows Internet Information Services (IIS) névre keresztelt szolgáltatása a Vezérlőpult "Programok hozzáadása és törlése" menüpont alól telepíthető, ehhez szükségünk van a Windows XP Professional telepítő CD-re. A Windows-összetevők közül válasszuk az "Internet Information Services" bejegyzést majd a "Részletek" gombot megnyomva jelöljük ki a "File Transfer Protocol" szolgáltatást. A további szükséges komponensek automatikusan kijelölésre kerülnek. Ezután az "OK" majd "Tovább" gombokkal hajtsuk végre a telepítést.
Az IIS telepítésével a rendszermeghajtó gyökérkönyvtárában létrejön egy "inetpub" nevű mappa, mely az FTP (ftproot), WEB (wwwroot) tárhelyeket, valamint az IIS adminisztrációjához használható szkripteket tartalmazza. Ezen kívül egy új felhasználó is létrejön a rendszerbenIUSR_számítógépnév néven, ennek funkcióját később tárgyaljuk.
Az IIS telepítése után állítsuk be FTP-szerverünket. Ehhez nyissuk meg a Vezérlőpultot, majd válasszuk a "Teljesítmény és karbantartás" aztán a "Felügyeleti eszközök" menüpontot. Ezen belül kattintsunk kétszer az "Internet Information Services" ikonra, mire megnyílik az IIS adminisztrációs felülete. (Ezt az ikont kimásolhatjuk a munkaasztalra is, hogy a későbbiekben gyorsan elérhessük.)
Az IIS kezelésben bontsuk ki a fastruktúrát, majd jelöljük ki az alapértelmezett FTP-helyet. Több FTP-helyet is létrehozhatunk, de a Windows XP egyszerre csak egy aktív FTP-helyet engedélyez, így mielőtt aktívvá tennénk egy megosztást, le kell állítanunk az aktuálisan aktív példányt. Nézzük most az FTP-hely tulajdonságlapját.
Az első fülön rögtön megadhatjuk az FTP-hely nevét (csak mi látjuk), valamint beállíthatjuk az átvitelhez használt port számát. (Ez később, a router és a tűzfal beállításánál lesz fontos, de mivel a 21-es az FTP szabványos portszáma, ezt nem ajánlott megváltoztatni.) Megadhatjuk továbbá, hogy egyszerre hány felhasználó csatlakozhat az FTP-helyhez (Windows XP esetén ez maximum 10 egyidejű kapcsolatot jelent), és beállíthatjuk az időtúllépés korlátját is. Ha ennyi idő alatt nem tudnak szerverünkhöz kapcsolódni, az IIS eldobja a kérést. A lap alján az események naplózását állíthatjuk be, valamint megtekinthetjük az aktuális kapcsolódási állapotot is.
A jogosultságok beállítása
A kapcsolat beállítása előtt a legfontosabb az FTP-hely és ezzel a rendszer védelmének biztosítása. Az FTP protokoll kétfajta hitelesítést támogat, a névtelen (anonymus), valamint az alapfokú hitelesítést (basic authentication).
Névtelen hozzáférés - Alapértelmezésként névtelen hozzáférést kapunk az új FTP-helyhez, olvasási jogokkal. (a jogokat lásd később) Ha így kapcsolódunk a szerverhez, a Windows nem kér sem felhasználónevet, sem jelszót. A kapcsolatot kezdeményező felhasználó a korábban említett, automatikusan létrehozott IUSR_számítógépnév helyi felhasználó "nevében" jelentkezik be a rendszerbe, és az ő jogait kapja. Ez a felhasználó speciálisan erre a feladatra lett felkészítve, alapértelmezett jogkörei is ennek megfelelően lettek kialakítva, így érdemes érintetlenül hagyni.
Alapfokú hitelesítés - Ha jelszóval kívánjuk védeni FTP-helyünket, kénytelenek vagyunk alapfokú hitelesítést alkalmazni. Azért írom, hogy "kénytelenek", mert a basic authentikációt a legritkább esetben szokták javasolni, használata ugyanis nem túl biztonságos. Bár a felhasználónév és a jelszó megadása kötelező, ezeket az adatokat az FTP nem titkosítja, azaz kódolatlanul továbbítja a szerver felé, így a vonal rosszindulatú "lehallgatásával" megszerezhetők a hitelesítő adatok. Mindazonáltal ha a bejelentkező felhasználó nem bír lényeges jogokkal a rendszeren, ez nem jelent túl nagy biztonsági kockázatot. Alapfokú hitelesítés használata esetén vegyünk fel a rendszerbe egy felhasználót, melynek minél kevesebb jogot adjunk és jelszavát lehetőleg gyakran változtassuk. Az alapfokú hitelesítés használatához vegyük ki a pipát a névtelen kapcsolatokat engedélyező dobozból, majd hagyjuk jóvá a módosítást.
MEGJEGYZÉS: Névtelen hozzáférés esetén ha a "Csak névtelen kapcsolatok engedélyezése" NINCS bejelölve, továbbra is bejelentkezhetük a gép rendszergazdájaként, hogy teljes hozzáférést kapjunk az FTP-helyhez, azonban a név és a jelszó ezesetben sem lesz titkosítva.
A hitelesítési mód megválasztása után eldönthetjük, hogy csak olvasásra, vagy írásra is engedélyt adunk-e a távoli felhasználónak. Ezt a beállítás-panel utolsó fülén tehetjük meg, ahol egyben megváltoztathatjuk az FTP-hely fizikai helyét a könyvtárszerkezetben. Fontos megemlíteni, hogy a fájlrendszer-jogosultságok felülbírálják az FTP-jogokat, tehát hiába adunk az IIS konfigurációban írási jogot, ha az NTFS-mappajogosultságok ezt megakadályozzák, a felhasználó nem tud majd írni a mappába.
Beállítottuk tehát az FTP-hely jogosultságait, és feltöltöttük az elérni kívánt tartalommal, most lássuk, hogyan tehetjük elérhetővé a külvilágból. Először is a tűzfalon meg kell nyitnunk az FTP által alapértelmezésként használt 21-es TCP portot. (Ha korábban másik portot adtunk meg az IIS adminisztrációban, értelemszerűen most azt engedélyezzük.) Ehhez nyissuk meg a Windows tűzfal beállításait, majd a "Port hozzáadása" gombra kattintva töltsük ki a mezőket az alábbiak szerint:
Példánkban a szerver egy otthoni hálózat tagja, így azt a külvilágtól még egy router is elválasztja. A számítógéphez érkező FTP-kéréseket így egy port-átirányítással a megfelelő gép megfelelő portjára kell irányítani. (Lehetőség szerint szerverünk használjon fix IP-címet a belső hálózaton!) A routerek konfigurációs oldalai kissé eltérőek lehetnek, az alábbi képen látható mezőket értelemszerűen töltsük ki.
FTP-szerverünk most már elérhető az internet felől is, de ha internetszolgáltatónk dinamikus IP-címet oszt ki az előfizetőknek, mindig tudnunk kell éppen aktuális címünket. Hogy ne kelljen papírfecnikre írkált számokkal a zsebünkben útra kelnünk, regisztráljunk magunknak dinamikus DNS-t. A szolgáltatás lényege, hogy egy fantázianevet választva mindig elérjük otthoni szerverünket, bármi is legyen a gép IP-címe. Ezt a számítógépen futó kis alkalmazás biztosítja, mely rendszeres időközönként "közli" a dinamikus DNS-t szolgáltató szerverrel gépünk aktuális címét, így nekünk mindig csak név szerint kell rá hivatkozni, az átirányítást a valós címre már a dinamikus DNS-szolgáltató végzi.
Számos ingyenes dinamikus DNS-szolgáltatás létezik, példánkban az egyik legnépszerűbb szolgáltatót, a DnyDNS.org-ot vesszük igénybe.
A DynDNS.org oldalán történt ingyenes regisztráció és bejelentkezés után válasszuk a "My Accounts" majd ezen belül a "Dynamic DNS"menüpontot és regisztráljunk dinamikus DNS-elérhetőséget. Ezek után a "Support" részleg alatt töltsük le a DynDNS szoftverét, majd telepítsük fel házi FTP-szerverünkre.
A program első indításakor egy varázslóval találkozunk, ahol beállíthatjuk internet-elérésünk típusát (DSL kapcsolat esetén válasszuk a betárcsázós lehetőséget), majd regisztrált felhasználónevünk és jelszavunk megadása után és az IP-cím távoli DNS-tárban való automatikus frissítését jóváhagyva máris aktiválhatjuk a szolgáltatást. Az alkalmazás ezután leül a tálca értesítési területére, majd a háttérben futva, megadott időközönként "megküldi" a DnyDNS.org-nak FTP-szerverünk aktuális IP-címét. Probléma esetén a program ikonja sárgára változik, ezesetben a naplófájlban találhatjuk a hiba okát.
Bizonyos router-ek képesek önállóan frissíteni a dinamikus DNS-bejegyzéseket, így a fenti program futtatására nincs szükség, egyszerűen töltsük ki a DDNS beállításokat az eszköz konfigurációs lapján. Ezután valahányszor új IP-címet kapunk az internetszolgáltatótól, a router automatikusan frissíti a DNS-bejegyzést a DynDNS szolgáltatónál.
Az FTP-szerver mostantól bárhonnan elérhető az "ftp://regisztráltnév.homeftp.net" (homeftp.net domainvégződés választása esetén) cím internetböngészőbe, vagy FTP-kliensszoftverbe beírva. Az egyik legnépszerűbb ilyen FTP-kliens a Total Commander.
Ha az IIS konfigurációt alapértelmezett beállításokon hagytuk, névtelen bejelentkezéssel jutunk be a szerverre, a belépéshez mindössze e-mail címünket, mint azonosítót kell megadnunk (adminisztratív okokból). Ha az alapfokú hitelesítés mellett döntöttünk tudnunk kell az FTP-szerveren erre a célra létrehozott, korlátozott jogú felhasználó nevét és jelszavát, vagy használhatjuk a rendszergazda hitelesítő adatait is. Ez utóbbi azonban egyáltalán nem ajánlott, hiszen ha - a basic authentikáció nem biztonságos mivolta okán - valaki hozzájut rendszergazda nevünkhöz és jelszavunkhoz, teljes hozzáférést szerezhet gépünk és adataink felett.
Az FTP-kiszolgálást bármikor leállíthatjuk a szerver gépen, az IIS konfigurációs ablakban található "Stop" gomb megnyomásával, vagy az "FTP alapú közzététel" szolgáltatás leállításával.