Az FTP vagy File Transfer Protocol az egyik legnépszerűbb adatátviteli módszer, amely különféle felhasználási esetekben elérhető.
Az FTP-nek különböző biztonságos változatai állnak rendelkezésre, ezek az FTPS és az SFTP, amelyek működési módjukban néhány finom és nem túl finom különbséget tartalmaznak. Ezek a különbségek az adatcsere módjához, a kommunikáció biztonságának szintjéhez és típusához, valamint a tűzfallal kapcsolatos megfontolásokhoz kapcsolódnak.
E protokollok működésének ismerete és a népszerű átviteli mechanizmusok közötti különbségek segíthetnek kiválasztani, hogy melyik működik a legjobban az Ön igényeinek.
Tartalomjegyzék
FTP
Az FTP a több évtizedes fájlátviteli protokoll, amelyet eredetileg az RFC 114 szerint javasoltak. Ez később RFC 959 néven fejlődött ki, amely a ma használatos szabvány.
Az FTP két csatornán működik az információcserére: az egyik a parancsokra, a másik pedig az adatokra. Ehhez két portra van szükség az FTP működéséhez – a parancscsatorna és az adatcsatorna.
A parancscsatorna a 21-es porton működik, amely fogadja a kapcsolatokat az ügyfelektől, és kezeli a parancsok átadását. A parancscsatorna az FTP-munkamenet teljes időtartama alatt nyitva marad mindaddig, amíg a kliens ki nem küldi a KILÉPÉS parancsot, vagy a szerver inaktivitás vagy egyéb lehetséges ok miatt kényszerből megszakad.
Az adatcsatorna igény szerinti ideiglenes portfigyelést használ a szerveren (passzív mód) vagy a kliensen (aktív mód). Ez a csatorna felelős a tényleges adatok megosztásáért a szerver és a kliens között címtárlisták és fájlátvitelek formájában.
A parancscsatornától eltérően az adatcsatorna csak a fájlátvitel idejére marad nyitva, és amint befejeződik, az adatcsatorna bezárul. Több fájl vagy könyvtárlista egyidejű átviteléhez több adatcsatorna portra van szükség.
Az FTP eredendően nem biztonságos protokoll, mivel mind a parancs-, mind az adatcsatornák titkosítatlan formában továbbítják az információkat, amelyek könnyen érzékenyek a köztes támadások során bárki általi elfogásra.
Amint azt korábban tárgyaltuk, az FTP bejövő kapcsolatot igényel a kiszolgálóoldali 21/tcp porton a parancscsatornához. Passzív porttartomány van meghatározva a fájlátvitelhez és a könyvtárlistázáshoz, és lehetővé teszi a bejövő kapcsolatokat. Ez a meghatározási folyamat a használt FTP-kiszolgálótól függően változhat. További részletekért tekintse meg a dokumentációját. A kliens oldalon engedélyezni kell a kimenő kapcsolatot a 21/tcp porton, valamint a szerveren meghatározott passzív porttartományt.
Hitelesítés FTP-ben
Az FTP-hitelesítési információk a parancscsatornán keresztül kerülnek átadásra a kapcsolat kezdeti létrehozása során. Az FTP használhat felhasználónevet és jelszót a hitelesítéshez, vagy lehet névtelen, hogy bárki bejelentkezhessen és hozzáférjen a szerverhez.
Aktív és passzív FTP módok
Az FTP Aktív vagy Passzív módot használ a kapcsolatok beállításához.
Aktív módban a felhasználó az FTP-kliens véletlenszerű portjáról csatlakozik a kiszolgáló 21/tcp FTP-portjához, és elküldi a PORT parancsot, megadva, hogy melyik kliensporthoz kell csatlakoznia. Ezt a portot fogja használni az adatcsatorna.
A szerver ezután a 20/tcp portról csatlakozik a kliens által korábban a PORT paranccsal megadott ügyfélporthoz. Ezt az adatcsatornát a szerver és a kliens közötti fájlátvitelre használják.
Passzív módban a kliens az FTP kliens véletlenszerű portjáról csatlakozik a szerver 21/tcp portjához, és elküldi a PASV parancsot. A szerver ezután egy véletlenszerű porttal válaszol, amelyet az adatcsatornához kell használni. A kliens ezután egy másik véletlenszerű portot használ, hogy csatlakozzon ahhoz a porthoz, amelyet a kiszolgáló válaszolt a korábbi lépésben. Ezt az adatcsatorna-kapcsolatot a szerver és a kliens közötti fájlátvitelre használják.
Tehát aktív módban a kezdeti csatlakozási kérelmet a kliens, míg az adatcsatorna csatlakozási kérést a szerver kezdeményezi.
Másrészt passzív módban a kezdeti csatlakozási kéréseket és a későbbi adatcsatorna-kéréseket is a kliens kezdeményezi a szerver felé. Ez a finom különbség néha befolyásolja, hogy a tűzfal hogyan engedélyezi/blokkolja a hagyományos FTP-kéréseket a bejövő/kimenő kapcsolattípus iránya miatt.
FTPS
Még ha hajlandó is vállalni az FTP-vel együtt járó kockázatokat a titkosítatlan adatátvitellel és a középponti támadásokkal, az iparági követelmények egy biztonságosabb alternatíva, például az FTPS és az SFTP használatára kényszerítik, amelyek viszonylag sokkal biztonságosabbak.
1990-ben a változó biztonsági környezet mellett a Netscape létrehozta az SSL vagy Secure Sockets Layer (SSL, ma TLS) protokollt a hálózaton keresztüli kommunikáció védelmére. Az SSL-t az FTP-re alkalmazták, amely FTPS vagy File Transfer Protocol Secure lett. Az FTPS vagy FTP/S általában a 990/tcp porton fut, de látható a 21/tcp porton is. Hasonlóképpen, az adatcsatorna 989/tcp portja az FTPS-hez használt közös port. Ha a parancs portja 21/tcp, az adatportja várhatóan 20/tcp.
Az FTP-hez hasonlóan az FTPS is két csatornát használ a kommunikációhoz: parancs- és adatcsatornát. Vagy az adatcsatorna titkosítható FTPS-sel, vagy a parancs- és adatcsatorna is titkosítható a nagyobb biztonság érdekében.
Az FTPS az FTP-hez hasonlóan több portot is használ a parancs- és adatcsatornákhoz. Tehát a 21/tcp portot használják a kezdeti csatlakozáshoz és a hitelesítési információk továbbításához. Később különböző portokra lesz szükség az adatcsatornák beállításához az ügyféltől érkező minden egyes fájlátviteli vagy könyvtárlista-kéréshez. Így az FTP-hez hasonlóan ennek is több portra van szüksége ahhoz, hogy engedélyezze a tűzfalat.
Hitelesítés FTPS-ben
Az FTPS hitelesítés felhasználónévvel és jelszóval, valamint a titkosításhoz egy szervertanúsítvánnyal működik. Amikor az FTPS-ügyfél csatlakozik egy kiszolgálóhoz, ellenőrzi, hogy a kiszolgáló tanúsítványa megbízható-e a kapcsolat folytatásához. Ez a tanúsítvány kérhető a klienstől és a szervertől.
SFTP
Az FTP-től és az FTPS-től eltérően az SFTP (SSH File Transfer Protocol) egy teljesen más SSH-ra (vagy Secure Shellre) épülő protokoll. Az SFTP alapértelmezés szerint a 22/tcp porton működik, ugyanúgy, mint az SSH, bár beállítható egyéni szabad port használatára a szerveren.
Az SFTP egy biztonságos FTP-protokoll, amely alatta SSH-t használ a fájlok küldésére és fogadására. Mivel az SSH teljesen titkosított, az SFTP egy robusztus és biztonságos módszer a fájlok hálózaton keresztüli átvitelére.
Az SFTP, ellentétben az FTP-vel és az FTPS-sel, egyetlen kommunikációs csatornát használ a parancsok és az adatforgalom átvitelére, amelyek mindegyike titkosított formában történik a kezdeti hitelesítéssel együtt.
Hitelesítés az SFTP-ben
Az SFTP-ben történő hitelesítés elvégezhető egyszerű felhasználónévvel és jelszóval, de az FTP-vel ellentétben az összes információ, beleértve a hitelesítési részleteket is, titkosítva kerül átadásra a hálózaton.
Az SFTP támogatja az SSH-kulcspár, a privát és nyilvános kulcsok kombinációjával történő hitelesítést is, ahol a kliens biztosítja a privát kulcsot a megadott felhasználó számára, és a kiszolgálónak rendelkeznie kell a megfelelő nyilvános kulccsal a sikeres hitelesítéshez. Biztonságosabb, mint a felhasználónév/jelszó kombináció használata. Ugyanazon felhasználó hitelesítése jelszóval és SSH-kulcsokkal is lehetséges, ha mindkét módszer be van állítva az SFTP-kiszolgálón.
Összegzés
Ez a cikk összefoglalja a különböző népszerű fájlátviteli protokollok, nevezetesen az FTP, FTPS és SFTP alapvető jellemzőit, és rávilágít az e protokollok közötti finom és főbb különbségekre. Lefedi azokat a portokat, amelyeket a tűzfalnak engedélyeznie kell egy működő FTP/FTPS/SFTP szerver beállításához, ugyanakkor rávilágít a biztonságosabb protokollokra, például az FTPS-re és az SFTP-re való átállás szükségességére.
Amikor itt FTP-t mondok, akkor a cikkben tárgyalt protokollokra gondolok. Ennek az az oka, hogy az FTP több évtizedes, és az újabb biztonságos verziókat is néha FTP-nek nevezik a mindennapi használat során a kijelölt név helyett.
Érdekelheti a legjobb FTP-kiszolgálószoftver és FTP/SFTP-kliensek ismerete is.