IIS 7 FTP over SSL (FTPS)
Windows Server 2008 operációs rendszerrel érkezett az IIS7, amelyben többek között végre felfrissítették az eddigi szerény tudásúnak mondható FTP szerver modult is.
Ebben a leírásban bemutatom, hogyan hozhatunk létre IIS7 segítségével FTP szervert, melyben az adatok titkosítva (SSL) utaznak.
Figyelem! Az sFTP és az FTPS nem ugyanazt a technológiát jelenti! Míg az sFTP az SSH (a telnet titkosított megfelelője) fájlátviteli szolgáltatása (semmi köze az FTP szolgáltatáshoz), addig az FTPS egy szabványos FTP szolgáltatás, ahol az adatokat SSL titkosítással titkosítjuk (hasonló elven, mint ahogy a HTTPS működik).
Kétféle képen használhatjuk az FTPS szerverünket: Csak a vezérlő csatornát titkosítjuk (itt utaznak a jelszavak, felhasználónevek, az FTP műveletekkel kapcsolatos parancsok), vagy az adat és vezérlő csatornát is (az adat csatornában utaznak maguk az adatok). Előbbi titkosítást akkor érdemes használni, ha a felhasználónevek, jelszavakat biztonságban akarjuk tudni, azonban az adatokat nem, míg utóbbi esetben mindent titkosítani szeretnénk. Ez azonban nagy sávszélességnél nagyobb CPU terhelést is jelent, igaz, nagyobb biztonságot is.
IIS Kezelő
Először telepítenünk kell az IIS kezelő szolgáltatást. Kattintsunk jobb egérgombbal a Számítógép ikonon, majd válasszuk a Kezelés menüpontot.
A Kiszolgálókezelőben kattintsunk a bal oldali sávban a Szolgáltatásokra, majd jobb oldalt a Szolgáltatás hozzáadása szövegre.
Itt bontsuk ki a Távoli kiszolgáló felügyeleti eszközeit, majd ezen belül a Szerepkör-felügyeleti eszközök, és jelöljük be telepítésre a webkiszolgáló (IIS) eszközeit. Majd figyelmeztet a gép minket, hogy további szolgáltatásokat kell hozzáadni, amiket az IIS kezelő igényel, ezt fogadjuk el. Ezután keressük meg a Windows Folyamataktiválási szolgáltatás közül a Folyamatmodellt.
Ezután kattintsunk a Tovább gombra, majd a Telepítés gombra.
Ha sikeres a telepítés zárjuk be a Varázslót, majd menjünk át a Szerepkörökhöz, és itt is kattintsunk a Szerepkör hozzáadására.
A szerepkörök közül a varázslóban válasszuk az Webkiszolgálót, majd a részletes testreszabásnál vegyük ki a pipát a Webkiszolgáló elől, és menjünk be a Kezelőeszközök közé, és pipáljuk be a Kezelési szolgáltatást (majd erősítsük meg, hogy a .NET-et is telepíteni akarjuk)
Ha kész a varázsló feltelepítette az szerepkört, akkor bezárhatjuk.
FTP7 telepítése
Majd le kell tölteni az FTP7 csomagot a Microsoft oldalairól.
32 bites rendszer esetén ezt töltsük le, míg 64 bites rendszer esetén ezt.
A telepítés folyamán megfelel amit a telepítő varázsló felkínál, így csak menjünk végig rajta.
Tanúsítvány létrehozása
Első lépésként létre kell hoznunk egy tanúsítványt. Éles környezetben ne sajnáljuk a pénzt egy tanúsítványszolgáltató által kiadott tanúsítványra! Azonban most magunknak hozunk létre egy tanúsítványt, amit magunk írunk alá.
Indítsuk el a Start menü, Felügyeleti eszközök közül a Internet Information Services (IIS) kezelőjét.
Amennyiben először indítjuk el a kezelőt, meg kell adnunk, hogy melyik szervert szeretnénk kezelni. Ez most a localhost lesz (a saját gép). Kattintsunk a bal oldali oldalsávban a Kezdőlapra jobb egérgombbal, majd a Kapcsolódás kiszolgálóhoz opciót.
Kiszolgáló címének írjuk be, hogy localhost majd kattintsunk a Következő gombra. Adjunk valami nevet a kiszolgálónknak, majd kattintsunk a Befejezés gombra. Ekkor megjelenik az oldalsávban a kiszolgálónk.
Kattintsunk kettőt a Kiszolgáló tanusítványok ikonra, majd a jobb oldali Műveletek oldalsávban az Önaláírt tanúsítvány létrehozása lehetőséget válasszuk. Adjunk egy nevet a tanúsítványunknak (pl. FTP), majd kattintsunk az OK gombra.
FTP kiszolgáló létrehozása
Most hozzuk létre az új FTP kiszolgálónkat. Ehhez kattintsunk jobb egérgombbal a Helyekre, majd válasszuk az Add FTP site… opciót.
Az FTP site name mezőbe írjuk be leendő FTP oldalunk nevét, majd a Physical path részben tallózzuk be, hogy hol legyen az FTP oldal gyökere.
Az IP Address és Port mezőkben adjuk meg, hogy milyen IP címeken és porton figyeljen az FTP szerver. Ha a All Unassigned opciót válasszuk, akkor minden szabad IP címen fogad kéréseket. Az FTP szolgáltatás alapértelmezett portja a 21, tehát ezt hagyhatjuk így.
Amennyiben virtuális FTP szervereket szeretnénk létrehozni (egy IP cím alatt több FTP szerver, hasonlóan mint ahogy HTTP esetén is lehet egy IP címen sok weboldal) adjuk meg az FTP domain nevét.
Majd az SSL részben válasszuk ki a létrehozott SSL tanúsítványt.
A következő lépésben a Authentication részben beállíthatjuk, hogy elfogadunk e névtelen bejelentkezést (Anonymoust ez esetben pipáljuk be), vagy csak jelszó és felhasználónév esetén elérhető a szerver (Basic lehetőség). Akár választhatjuk mindkettőt egyszerre is.
Az Authorization részben hagyjuk most a Not selected lehetőséget.
Látjuk is FTP oldalunkat a Helyek között.
Ha rákattintunk a most létrehozott FTP oldalunk nevére, akkor megtekinthetjük, hogy milyen feladatokat végezhetünk itt.
Amennyiben FTP szerverünk tűzfal mögött, DMZ-ben (vagy NAT mögött) helyezkedik el (tehát a szerver IP címe nem a publikus, internetes IP címe), úgy ezt meg kell adnunk az IIS-nek. Ehhez kattintsuk az FTP firewall support ikonra, majd itt az Externap IP mezőbe írjuk be a publikus IP címünket.
Majd menjünk vissza az FTP oldalunk kezdőfelületére, és kattintsunk az FTP SSL settings ikonra. Itt pipáljuk be a Use 128 bit… sort, hogy 128 bites SSL titkosítást használhassunk.
Az SSL Policy részben tudjuk állítani a titkosítás használatának feltételét. Az Allow SSL opció választása esetén, ha az FTP kliens nem ismeri az SSL titkosítást, akkor is csatlakozhat (nem titkosított módon), a Require SSL opció használata esetén csak akkor tud kapcsolódni a kliens, ha támogatja a titkosítást. A Custom opcióval testre szabhatjuk, hogy melyik csatornára, milyen módszert alkalmazzon az FTP szerver.
Felhasználók kezelése
Két módon hozhatunk létre felhasználókat: Windows felhasználókat létrehozzuk, és nekik engedélyezzük az elérést, vagy csak az IIS-en belül hozunk létre felhasználókat.
Előbbi akkor előnyös, ha a szerver egy tartomány (intranet) tagja, ahol más amúgy is kellenek a Windows felhasználók. Utóbbi viszont akkor előnyös, ha csak az FTP hozzáféréséhez szeretnénk engedélyt adni, a Windowshoz nem.
Természetesen a két módszer együtt is használható.
Hitelesítés Windows felhasználókkal
Amennyiben Windowsban (vagy tartományban) már megvannak a felhasználók, akkor csak engedélyeznünk kell nekik az IIS-en keresztüli bejelentkezést.
Ehhez kattintsunk az FTP authorization rules ikonra. Itt vehetünk fel csoportokat, felhasználókat, akiknek engedélyezzük, vagy éppen megtiltjuk az elérést (a tiltó szabály erősebb az engedélyezésnél).
Kattintsunk a középső fehér részen jobb egérgombbal, majd válasszuk az Add new role opciót. Itt a következőket állíthatjuk be:
- All users: Minden felhasználó hozzáférhet (azok is, akik nincsenek hozzáadva az IIS-ben)
- All anonymous users: Windows felhasználók
- Specified roles or users group: A Windowsban létező biztonsági csoportokat adhatunk itt meg
- Specified users: Felhasználóneveket sorolhatunk fel
- Read és Write: Olvasás, és írás engedélyezését állíthatjuk be
Ilyen szabályokból többet is felvehetünk, amik felülről lefele értékelődnek ki.
Hitelesítés IIS felhasználókkal
Először kattintsunk kettőt az FTP authentication ikonon, majd itt (amennyiben nem szeretnénk Windows felhasználóknak engedélyezni az elérést) kattintsunk jobb egérgombbal a Basic soron, és válasszuk a Disable opciót.
Ezután kattintsunk jobb egérgombbal valahol a fehér üres területen, és válasszuk a Costum Providers opciót. A megjelenő ablakban pipáljuk ki az IisManagerAuth opciót.
Most engedélyezzük az IIS számára, hogy ne csak a Windowsból tudjon hotelesíteni. Ezt globálisan tehetjük meg. Kattintsunk kettőt a bal oldali oldalsávban a szerver nevére (localhost), majd itt a Kezelési szolgáltatás ikonra.
Ezután a megjelenő ablakban az Identitás hitelesítő adatai részben válasszuk ki a Windows és IIS kezelő hitelesítő adatait, majd a jobb oldali sávban kattintsunk az Alkalmaz gombra.
Menjünk vissza, majd válasszuk a szerver kezdőlapon az IIS-kezelő felhasználó opciót. Itt tudjuk az új felhasználókat felvinni.
Felvitelhez kattintunk a jobb oldali oldalsávban a Felhasználó hozzáadása lehetőségre, majd adjuk meg a felhasználónevet, és jelszót.
Ha felvittük a felhasználókat, akkor menjünk be az FTP oldalunkhoz, és itt is kattintsunk kettőt az IIS-kezelő engedélyei ikonra. Majd a a jobb oldali oldalsávban a Felhasználó engedélyezése opciót válasszuk. A megjelenő ablakban válasszuk azt, hogy az IIS-kezelőből szeretnénk felhasználókat kijelölni, majd kattintsunk a Kijelölés gombra. Itt jelöljük ki azokat a felhasználókat, akiknek engedélyezni szeretnénk az elérést, majd kattintsunk az OK gombra.
Nyissunk egy Parancssori ablakot (Start menü, Futtatás: cmd), majd az alábbi parancsokat másoljuk be:
CACLS "%SystemDrive%\Windows\System32\inetsrv\config" /G "HÁLÓZATI SZOLGÁLTATÁS":R /E
CACLS "%SystemDrive%\Windows\System32\inetsrv\config\administration.config" /G "HÁLÓZATI SZOLGÁLTATÁS":R /E
CACLS "%SystemDrive%\Windows\System32\inetsrv\config\redirection.config" /G "HÁLÓZATI SZOLGÁLTATÁS":R /E
Majd adjunk módosítási jogot a Hálózati szolgáltatásnak az FTP oldalunk gyökerére is (nálam ez C:\ftproot, ha más lett beállítva, akkor értelemszerűen módosítsuk az elérési utat)
CACLS "%SystemDrive%\ftproot" /G "HÁLÓZATI SZOLGÁLTATÁS":C /T /E
Csatlakozás a szerverhez
Ha kész vagyunk a konfigurálással, és felvettük a felhasználókat, akkor itt az ideje kipróbálni az FTP szervert.
Csatlakozáshoz olyan klienst keressünk ami támogatla az FTPS-t (esetleg SSL vagy TLS FTP néven hívják), pl. Filezilla. Vagy használhatjuk a Total Commandert is, csak előbb ahhoz le kell töltenünk az OpenSSL fájlokat (Letöltéshez kattintsunk ide), majd kicsomagolni a TC könyvtárába.
És már használhatjuk is az FTP oldalt.
Szuper jó cikk ez is, köszönjük! 🙂