Salta el contingut

Transferència de fitxers en Windows Server

1. FTP en l'ecosistema Windows: Context i enfocament

Abans de començar amb la configuració tècnica, vull que entenguis com funciona FTP en l'ecosistema Windows i quines diferències fonamentals hi ha respecte a Linux. Aquesta comprensió del context t'ajudarà a entendre millor les decisions de disseny i les opcions de configuració que trobarem.

A diferència de Linux, on vsftpd és un programari independent especialitzat únicament en FTP, Microsoft va integrar el servidor FTP directament dins del seu servidor web IIS (Internet Information Services). Aquesta integració no és casualitat: Microsoft ha mantingut durant dècades una filosofia de "tot en un" on IIS actua com a plataforma unificada per a múltiples serveis: HTTP, HTTPS, FTP, FTPS, i d'altres protocols web. Aquesta aproximació té avantatges i inconvenients que descobrirem durant la configuració.

La versió actual d'IIS que ve amb Windows Server dos mil vint-i-dos (la versió LTS més recent al novembre de dos mil vint-i-quatre) és IIS 10.0. Aquesta versió ha evolucionat significativament respecte a versions anteriors, especialment pel que fa a seguretat i rendiment. El servei FTP d'IIS s'anomena FTP Publishing Service i ofereix tant FTP bàsic com FTPS amb suport complet per a TLS u punt dos i TLS u punt tres.

Windows Server té dues grans edicions: Standard i Datacenter. Per a l'aprenentatge de FTP, qualsevol de les dues edicions funciona exactament igual, ja que IIS està disponible en ambdues sense limitacions funcionals. La diferència entre edicions es refereix principalment a drets de virtualització i característiques específiques de centres de dades que no afecten el nostre cas d'ús.

També existeix una alternativa de codi obert per a Windows anomenada FileZilla Server, que és completament independent d'IIS i ofereix una experiència més similar a vsftpd en Linux. Cobrirem ambdues opcions perquè en entorns reals et pots trobar tant amb IIS com amb FileZilla Server, i és important que dominis les dues aproximacions.

2. Instal·lació del servei FTP d'IIS en Windows Server

Començarem amb IIS perquè és la solució nativa de Microsoft i la que trobaràs més freqüentment en entorns empresarials Windows. El procés d'instal·lació en Windows Server és molt diferent del que hem vist en Linux: en lloc d'instal·lar paquets des d'un repositori, activarem "característiques" que ja estan presents al sistema operatiu però desactivades per defecte.

Aquesta filosofia de Windows Server es basa en el concepte de "roles" i "features". Un role és un conjunt de funcionalitats relacionades que converteixen el servidor en quelcom específic (per exemple, servidor web, servidor de fitxers, controlador de domini), mentre que les features són capacitats addicionals que complementen els roles. IIS és un role, i dins d'aquest role, el servei FTP és una feature específica que podem activar.

Hi ha diverses maneres d'instal·lar el servei FTP: mitjançant la interfície gràfica del Server Manager, mitjançant PowerShell, o utilitzant DISM (Deployment Image Servicing and Management) des de la línia de comandes. Cobrirem les tres aproximacions perquè cadascuna té els seus avantatges en diferents situacions. La interfície gràfica és més intuïtiva per aprendre, PowerShell és millor per automatització i scripts, i DISM és útil quan treballes amb instal·lacions desateses o imatges del sistema.

2.1 Instal·lació mitjançant Server Manager (interfície gràfica)

Aquest és el mètode més visual i el millor per familiaritzar-se amb Windows Server. El Server Manager és l'eina central d'administració que s'obre automàticament quan inicies sessió a Windows Server.

Primer, obre el Server Manager si no està ja obert. El pots trobar a la barra de tasques o pots cercar-lo al menú d'inici escrivint "Server Manager". Un cop obert, segueix aquests passos amb atenció:

Al panell principal del Server Manager, veuràs diverses opcions al menú superior. Fes clic a "Manage" (Gestionar) que està a la cantonada superior dreta, i després selecciona "Add Roles and Features" (Afegir Rols i Característiques). Això obrirà un assistent que et guiarà pel procés d'instal·lació pas a pas.

La primera pantalla és una introducció que explica què farà l'assistent. Pots llegir-la per entendre millor el procés o simplement fer clic a "Next" (Següent) per continuar.

A la pantalla "Installation Type" (Tipus d'Instal·lació), assegura't que està seleccionada l'opció "Role-based or feature-based installation" (Instal·lació basada en rols o característiques). Aquesta és l'opció estàndard per afegir funcionalitats al servidor. Fes clic a "Next".

A la pantalla "Server Selection" (Selecció de Servidor), veuràs el teu servidor local llistat. Si estàs gestionant múltiples servidors des d'un Server Manager centralitzat, aquí podries seleccionar quin servidor vols configurar. Per al nostre cas, deixa seleccionat el servidor local i fes clic a "Next".

Ara arribem a la pantalla més important: "Server Roles" (Rols del Servidor). Aquí veuràs una llista de tots els rols disponibles per instal·lar. Has de buscar i expandir l'opció "Web Server (IIS)" (Servidor Web IIS). Si IIS encara no està instal·lat al teu servidor, primer hauràs de marcar la casella de "Web Server (IIS)". Quan ho facis, apareixerà un diàleg emergent preguntant-te si vols afegir també les característiques requerides per a IIS (eines de gestió i altres components necessaris). Fes clic a "Add Features" (Afegir Característiques) per acceptar-ho.

Després d'això, hauràs d'expandir l'arbre de "Web Server (IIS)" fent clic a la fletxa que hi ha al costat. Dins d'aquest arbre, veuràs múltiples categories com "Common HTTP Features", "Health and Diagnostics", "Performance", "Security", etc. La que ens interessa és "FTP Server" (Servidor FTP). Expan aquesta categoria i veuràs dues opcions:

La primera és "FTP Service" (Servei FTP), que és el motor principal del servidor FTP. Aquesta opció és obligatòria i has de marcar-la. La segona opció és "FTP Extensibility" (Extensibilitat FTP), que permet utilitzar proveïdors d'autenticació personalitzats i altres extensions. Per a una configuració bàsica no és estrictament necessària, però és recomanable instal·lar-la perquè obre possibilitats futures. Marca ambdues caselles.

També és important marcar "Management Tools" dins de la secció d'IIS si no ho has fet ja. Això instal·larà el "IIS Manager", que és la consola gràfica que utilitzarem per configurar el servidor FTP. Sense aquesta eina, hauríem de fer tota la configuració mitjançant línia de comandes o editant fitxers XML directament, cosa que és molt més complicada.

Després de marcar totes les opcions necessàries, fes clic a "Next" fins arribar a la pantalla de confirmació. Aquí veuràs un resum de tot el que s'instal·larà. És una bona pràctica revisar aquesta llista per assegurar-te que tot és correcte. Opcionalment, pots marcar la casella "Restart the destination server automatically if required" (Reiniciar automàticament el servidor de destinació si cal), però normalment per instal·lar només FTP no cal reiniciar.

Fes clic a "Install" (Instal·lar) i el procés començarà. Veuràs una barra de progrés que et mostrarà l'estat de la instal·lació. Depenent de la velocitat del teu disc i del processador, aquest procés pot durar entre un i cinc minuts. Quan es completi, veuràs un missatge indicant que la instal·lació ha finalitzat amb èxit. Pots tancar l'assistent fent clic a "Close" (Tancar).

2.2 Instal·lació mitjançant PowerShell

PowerShell és l'eina de línia de comandes moderna de Microsoft i és extremadament potent per a l'administració de sistemes Windows. Per als administradors de sistemes professionals, PowerShell és sovint la manera preferida de treballar perquè permet automatitzar tasques, documentar configuracions mitjançant scripts, i gestionar múltiples servidors simultàniament.

Per instal·lar el servei FTP mitjançant PowerShell, primer has d'obrir una sessió de PowerShell amb privilegis d'administrador. Pots fer-ho fent clic dret sobre la icona de PowerShell al menú d'inici i seleccionant "Run as Administrator" (Executar com a Administrador), o bé pots obrir el Server Manager i seleccionar "Tools" (Eines) i després "Windows PowerShell".

Un cop tinguis la finestra de PowerShell oberta amb privilegis administratius, executa aquesta comanda:

# Instal·lar el rol de Web Server (IIS) amb el servei FTP
# Aquest cmdlet utilitza el Windows Feature System per afegir components al servidor
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

# Aquesta primera comanda instal·la IIS complet amb les eines de gestió
# El paràmetre -IncludeManagementTools assegura que obtenim l'IIS Manager
# -Name especifica quin component volem instal·lar

# Ara instal·lem específicament el servei FTP i les seves eines
Install-WindowsFeature -Name Web-Ftp-Server -IncludeAllSubFeature -IncludeManagementTools

# Desglossem aquesta comanda:
# -Name Web-Ftp-Server: Aquest és el nom intern del component FTP
# -IncludeAllSubFeature: Això instal·la totes les característiques secundàries relacionades
#                        amb FTP, incloent extensibilitat i altres components opcionals
# -IncludeManagementTools: Assegura que tenim les eines per gestionar FTP

# Podem verificar que la instal·lació ha estat exitosa consultant l'estat
Get-WindowsFeature -Name Web-Ftp-Server

Quan executis aquestes comandes, PowerShell mostrarà una barra de progrés i finalment un missatge indicant l'èxit de la instal·lació. L'objecte retornat contindrà informació detallada sobre el que s'ha instal·lat, incloent si cal reiniciar el servidor (cosa que normalment no cal per a FTP).

Una de les grans avantatges de PowerShell és que pots guardar aquestes comandes en un fitxer de script (amb extensió punt ps u) i executar-lo en múltiples servidors automàticament. Per exemple, si tinguessis deu servidors nous on necessites instal·lar FTP, podries executar aquest script en tots ells simultàniament utilitzant tècniques de remoting de PowerShell.

2.3 Verificant la instal·lació

Independentment del mètode que hagis utilitzat per instal·lar el servei FTP, és important verificar que tot s'ha instal·lat correctament abans de continuar amb la configuració. Hi ha diverses maneres de fer aquesta verificació.

Primer, podem utilitzar PowerShell per comprovar que el servei està instal·lat i en quin estat es troba:

# Comprovar que la característica Web-Ftp-Server està instal·lada
Get-WindowsFeature -Name Web-Ftp-Server

# Hauries de veure quelcom com:
# Display Name                         Name                Install State
# ------------                         ----                -------------
# [X] FTP Server                       Web-Ftp-Server      Installed

# Comprovar l'estat del servei FTP
Get-Service -Name FTPSVC

# Hauries de veure:
# Status   Name               DisplayName
# ------   ----               -----------
# Running  FTPSVC             Microsoft FTP Service

# Si el servei no està en execució, el podem iniciar:
Start-Service -Name FTPSVC

# I configurar-lo perquè s'iniciï automàticament amb el sistema:
Set-Service -Name FTPSVC -StartupType Automatic

També podem obrir l'IIS Manager per verificar visualment que tot està correcte. Per obrir l'IIS Manager, pots anar al Server Manager, seleccionar "Tools" (Eines) al menú superior dret, i després "Internet Information Services (IIS) Manager". Alternativament, pots prémer la tecla Windows, escriure "inetmgr" i prémer Enter.

Quan s'obri l'IIS Manager, veuràs una finestra dividida en tres panells principals. Al panell esquerre hi ha l'arbre de connexions que mostra el teu servidor i els llocs web configurats. Al centre hi ha les icones de les diferents funcionalitats que pots configurar. I a la dreta hi ha el panell d'accions que mostra les operacions disponibles segons què tinguis seleccionat.

Si fas clic al nom del teu servidor a l'arbre de connexions esquerre, al panell central hauries de veure una icona etiquetada com "FTP Authentication" (Autenticació FTP), "FTP Authorization Rules" (Regles d'Autorització FTP), "FTP Current Sessions" (Sessions FTP Actuals), entre d'altres. La presència d'aquestes icones confirma que el servei FTP està correctament instal·lat i integrat amb IIS.

3. Configurant el primer lloc FTP a IIS

Ara que tenim el servei FTP instal·lat, és hora de crear el nostre primer lloc FTP. A IIS, els llocs FTP funcionen de manera molt similar als llocs web: cada lloc té el seu propi directori arrel, la seva pròpia configuració de seguretat, i pot escoltar en ports diferents o en adreces IP diferents. Aquesta arquitectura et permet tenir múltiples llocs FTP independents en el mateix servidor, cadascun servint diferents propòsits o diferents usuaris.

3.1 Creant el directori per als fitxers FTP

Abans de crear el lloc FTP a IIS, crearem primer el directori al sistema de fitxers on els usuaris pujaran i baixaran arxius. Aquesta és una bona pràctica: sempre prepara primer els recursos (directoris, permisos) i després configura el servei que els utilitzarà.

Obrim l'Explorador de Fitxers de Windows (Windows Explorer) i naveguem fins al disc C. Aquí crearem una nova carpeta que serà l'arrel del nostre lloc FTP. Fes clic dret a l'espai buit, selecciona "New" (Nou) i després "Folder" (Carpeta). Anomena aquesta carpeta "FTPRoot" o quelcom similar que identifiqui clarament el seu propòsit.

Dins d'aquesta carpeta, podem crear subdirectoris per organitzar millor els fitxers. Per exemple, podríem crear carpetes com "Public" (Pública), "Uploads" (Pujades), "Documents", etc., segons les necessitats del nostre entorn. Per a aquest exemple, crearem una carpeta anomenada "Uploads" dins de C:\FTPRoot.

Ara hem de configurar els permisos NTFS d'aquesta carpeta. Els permisos NTFS són el sistema de permisos natiu de Windows i són diferents dels permisos que configurarem després dins d'IIS (que són permisos específics de FTP). Ambdós tipus de permisos treballen junts: un usuari necessita tant permisos NTFS com permisos FTP per accedir als fitxers. Si falta qualsevol dels dos, l'accés serà denegat. Aquest sistema de doble capa de seguretat és més robust però també més complex d'entendre inicialment.

Fes clic dret sobre la carpeta C:\FTPRoot\, selecciona "Properties" (Propietats) i després ves a la pestanya "Security" (Seguretat). Aquí veuràs una llista dels usuaris i grups que tenen permisos sobre aquesta carpeta. Per defecte, probablement només veuràs administradors i el compte SYSTEM.

Per permetre que els usuaris puguin accedir via FTP, necessitem afegir permisos per a l'usuari especial anomenat "IIS_IUSRS". Aquest és un grup local que IIS utilitza per a tots els processos d'aplicació, incloent FTP. Fes clic al botó "Edit" (Editar) i després a "Add" (Afegir). Al quadre que apareix, escriu "IIS_IUSRS" (sense les cometes) i fes clic a "Check Names" (Comprovar Noms). Windows hauria de reconèixer aquest nom i transformar-lo al format complet del sistema. Fes clic a "OK".

Ara selecciona IIS_IUSRS a la llista i marca les caselles de permisos que vols atorgar. Per a un lloc FTP bàsic on els usuaris puguin tant llegir com escriure, marca "Read & execute" (Llegir i executar), "List folder contents" (Llistar contingut de carpeta), "Read" (Llegir), "Write" (Escriure), i "Modify" (Modificar). Tingues en compte que aquests permisos són molt permissius; en un entorn de producció real, probablement voldries ser més restrictiu i utilitzar permisos diferents per a diferents carpetes o diferents grups d'usuaris.

Després de configurar els permisos NTFS, fes clic a "Apply" (Aplicar) i després a "OK" per tancar els diàlegs. Ara el directori està preparat per ser utilitzat pel servei FTP.

També és recomanable crear algun fitxer de prova dins de la carpeta perquè després puguem verificar que la configuració funciona correctament. Pots crear un fitxer de text senzill anomenat "benvinguda.txt" amb un missatge de benvinguda, per exemple.

3.2 Creant el lloc FTP amb l'assistent d'IIS

Ara obrim l'IIS Manager si no el tenim ja obert (recorda: pots executar "inetmgr" des del menú d'inici). A l'arbre de connexions del panell esquerre, expandeix el node del teu servidor. Veuràs un node anomenat "Sites" (Llocs). Aquest node conté tots els llocs web i FTP configurats al servidor. Si acabes d'instal·lar IIS, probablement només veuràs "Default Web Site" (Lloc Web Per Defecte).

Fes clic dret sobre "Sites" i selecciona "Add FTP Site" (Afegir Lloc FTP). Això obrirà un assistent que ens guiarà pel procés de creació del lloc FTP pas a pas.

La primera pantalla de l'assistent demana informació bàsica sobre el lloc. Al camp "FTP site name" (Nom del lloc FTP), introdueix un nom descriptiu per al teu lloc. Aquest nom és només per a la teva referència dins d'IIS i no és visible per als usuaris que es connectin. Un bon nom seria quelcom com "Lloc FTP Principal" o "FTP del Centre Educatiu" que identifiqui clarament el propòsit del lloc.

Al camp "Physical path" (Ruta física), has d'especificar el directori que acabem de crear. Pots escriure directament "C:\FTPRoot" o utilitzar el botó amb els tres punts per navegar fins al directori mitjançant l'explorador de fitxers. Assegura't que la ruta és correcta abans de continuar. Fes clic a "Next" (Següent).

La segona pantalla de l'assistent configura com el lloc FTP escoltarà les connexions entrants. Hi ha diversos camps importants aquí que cal entendre bé.

El camp "Binding" (Vinculació) té dues parts: "IP Address" (Adreça IP) i "Port" (Port). Per a "IP Address", normalment seleccionaràs "All Unassigned" (Totes les No Assignades), que significa que el lloc FTP acceptarà connexions a qualsevol de les adreces IP que tingui el servidor. Si el teu servidor té múltiples targetes de xarxa o múltiples adreces IP i vols que FTP només estigui disponible en una d'elles, podries seleccionar una IP específica. Per al port, el valor estàndard i recomanat és vint-i-u (21), que és el port FTP per defecte.

El camp "Virtual Host" (Amfitrió Virtual) permet configurar hosting virtual basat en noms per a FTP. Això és similar al Server Name Indication (SNI) en HTTPS, però per a FTP. Per a una configuració bàsica, pots deixar aquest camp buit. L'hosting virtual és útil quan vols tenir múltiples llocs FTP diferents compartint la mateixa adreça IP i port, però distingits pel nom de domini amb què els usuaris es connecten.

Més avall trobaràs una secció "SSL" amb diverses opcions. Aquest és un punt molt important per a la seguretat. Les opcions són:

"No SSL" significa que les connexions seran FTP tradicional sense cap xifratge. Aquesta opció només hauria d'utilitzar-se en entorns de desenvolupament o xarxes completament internes de confiança.

"Allow SSL" permet que els clients utilitzin SSL/TLS si volen, però també accepta connexions sense xifratge. Aquest és el mode explícit de FTPS que vam veure en la secció teòrica.

"Require SSL" força que totes les connexions utilitzin SSL/TLS, rebutjant qualsevol intent de connexió sense xifratge. Aquest és el mode més segur i és el recomanat per a entorns de producció.

Per ara, per facilitar les proves inicials, seleccionarem "Allow SSL". Més endavant, quan configurem el certificat SSL i verifiquem que tot funciona, podrem canviar-ho a "Require SSL" per augmentar la seguretat. Si selecciones "Allow SSL" o "Require SSL", hauràs de seleccionar un certificat SSL del desplegable. Si no tens cap certificat encara, veurem com crear-ne un en la següent secció. Per ara, deixa'l amb "No SSL" temporalment fins que configurem els certificats.

Finalment, marca la casella "Start FTP site automatically" (Iniciar lloc FTP automàticament) si vols que el lloc estigui actiu immediatament després de crear-lo. Fes clic a "Next" per continuar.

La tercera i última pantalla de l'assistent configura l'autenticació i l'autorització, és a dir, qui pot connectar-se al lloc FTP i què poden fer. Aquesta és probablement la part més important de la configuració des del punt de vista de la seguretat.

A la secció "Authentication" (Autenticació), tens dues opcions principals que pots activar simultàniament:

"Anonymous" (Anònim) permet que qualsevol persona es connecti al lloc FTP sense necessitat de proporcionar credencials. Només hauries d'activar això si tens una àrea pública on vols que tothom pugui descarregar fitxers sense autenticar-se. Per a la majoria d'entorns educatius i empresarials, voldràs deixar aquesta opció desactivada.

"Basic" (Bàsic) requereix que els usuaris proporcionin un nom d'usuari i una contrasenya. Aquests usuaris poden ser comptes locals de Windows o comptes de domini Active Directory. Aquesta és l'opció que utilitzarem, així que marca aquesta casella.

A la secció "Authorization" (Autorització), has de configurar qui té permís per accedir al lloc FTP i què poden fer. Fes clic al desplegable "Allow access to" (Permetre accés a) i veuràs diverses opcions:

"All users" (Tots els usuaris) permetria que qualsevol usuari que s'autentiqui correctament tingui accés. Això podria ser adequat per a una carpeta pública dins del lloc FTP.

"Anonymous users" (Usuaris anònims) només s'aplicaria si has activat l'autenticació anònima.

"Specified roles or user groups" (Rols o grups d'usuaris específics) et permet especificar grups de Windows que tindran accés. Per exemple, podries crear un grup anomenat "FTPUsers" i afegir-hi els usuaris que vulguis que tinguin accés FTP.

"Specified users" (Usuaris específics) et permet llistar noms d'usuari individuals separats per comes.

Per a aquesta configuració inicial, seleccionarem "All users" per simplificar, però entén que en producció probablement voldries ser més restrictiu i utilitzar grups específics. Això segueix el principi de seguretat del menor privilegi: només atorgar accés a qui realment ho necessita.

A la secció "Permissions" (Permisos), marca les caselles segons el que vulguis permetre. "Read" (Llegir) permet als usuaris descarregar fitxers i llistar directoris. "Write" (Escriure) permet als usuaris pujar fitxers, crear directoris, i eliminar o renombrar fitxers. Per a un lloc FTP de compartició de fitxers, normalment voldràs ambdues opcions marcades. Tingues en compte que aquests permisos de FTP treballen en conjunció amb els permisos NTFS que vam configurar abans: un usuari necessita ambdós tipus de permisos per poder fer una operació.

Després de configurar tot això, fes clic a "Finish" (Finalitzar). L'assistent crearà el lloc FTP i, si has marcat l'opció d'iniciar automàticament, el servei començarà immediatament. Ara hauries de veure el teu nou lloc FTP llistat sota el node "Sites" a l'arbre de l'IIS Manager.

AC0375/04/04 — Miniactivitat

RA4 · CA4b, CA4c, CA4d, CA4e

Instal·la el rol FTP d'IIS en un Windows Server i crea un lloc FTP amb autenticació bàsica (sense accés anònim), restringint-lo a un grup d'usuaris específic amb permisos de lectura i escriptura. Connecta-t'hi amb un client FTP i comprova que un usuari no autoritzat no hi pot accedir.

Referències

  • Windows Server 2022 Documentation: https://learn.microsoft.com/en-us/windows-server/
  • IIS Documentation: https://learn.microsoft.com/en-us/iis/
  • FileZilla Server: https://filezilla-project.org/download.php?type=server
  • Install-WindowsFeature Cmdlet: https://learn.microsoft.com/en-us/powershell/module/servermanager/install-windowsfeature
  • IIS Manager Overview: https://learn.microsoft.com/en-us/iis/get-started/getting-started-with-iis/getting-started-with-the-iis-manager-in-iis-7-and-iis-8