Windows Server 2025 / Installare IIS e pubblicare una pagina HTML statica nel laboratorio
In Windows Server 2025 IIS può servire una pagina HTML dopo l’installazione del ruolo server web e delle funzionalità per contenuto statico. Configurate percorso fisico, pool di applicazioni, binding e permessi di lettura, quindi controllate la pagina su WEB1 e da un client separato.
Preparare un server web separato
Internet Information Services (IIS) è il server web di Windows. Questa prova restituisce un file statico: il server invia HTML senza database o framework applicativo. PHP e ASP.NET richiedono runtime e configurazioni aggiuntivi; non installateli per questo esempio.
Preparate WEB1 come server membro del dominio separato, con Windows Server 2025 ed Esperienza desktop nella rete isolata del laboratorio, senza aggiungere il ruolo a DC1 o FS1. L’esempio usa 172.24.50.30/24, il DNS DC1 a 172.24.50.10 e appartenenza ad ad.example.test. Verificate prima che l’indirizzo sia libero e assegnato al server, che rete e DNS di dominio funzionino e che l’host disponga di risorse. Non collegate il laboratorio alla rete di produzione per risolvere questi prerequisiti.
Usate Windows PowerShell con privilegi elevati e Gestione IIS su WEB1. I nuovi oggetti saranno LabSite, LabSitePool, C:\Sites\LabSite e la porta HTTP 8080. Esaminate siti, pool, cartelle, regole e binding esistenti. Se un nome o una destinazione è già in uso, fermatevi senza sostituirli. Mantenete separato il binding del sito predefinito sulla porta 80 e non esponete il server a Internet. HTTP qui trasporta soltanto testo di prova senza segreti, non è un canale protetto per credenziali.
Installare IIS e verificare le funzionalità
- In Server Manager scegliete Gestisci → Aggiungi ruoli e funzionalità, installazione basata su ruoli e WEB1 come destinazione. Controllate il server prima di continuare.
- Selezionate Server Web (IIS) e gli strumenti di gestione necessari. Questa prova usa la console locale con Esperienza desktop; Server Core richiede un altro metodo di gestione.
- In Funzionalità HTTP comuni controllate Contenuto statico e Documento predefinito; in Integrità e diagnostica controllate Registrazione HTTP. Verificate anche Console di gestione IIS.
- Esaminate il riepilogo e installate senza runtime applicativi non pertinenti. Non selezionate tutte le funzionalità per comodità.
- Leggete esito e richiesta di riavvio. Se necessario pianificate e completate il riavvio, poi ricontrollate lo stato prima di procedere. Aprite Gestione IIS con inetmgr.
L’alternativa PowerShell si esegue localmente su WEB1. Se IIS è già presente, esaminate prima stato delle funzionalità e utilizzo dei siti. Install-WindowsFeature richiede privilegi elevati e non installa gli strumenti di gestione per impostazione predefinita; per questo viene incluso IncludeManagementTools. Eseguite le righe separatamente e fermatevi in caso di errore. Installare il ruolo non configura automaticamente percorso, permessi o accesso di rete:
Install-WindowsFeature Web-Server -IncludeManagementTools
Get-WindowsFeature Web-Static-Content,Web-Default-Doc,Web-Http-Logging,Web-Mgmt-Console
Ci si aspetta installazione riuscita e stato Installed per Web-Static-Content, Web-Default-Doc, Web-Http-Logging e Web-Mgmt-Console in Get-WindowsFeature. Controllate anche RestartNeeded. Available non soddisfa il requisito: tornate alla procedura guidata per installare precisamente la funzionalità mancante e verificate di nuovo. La presenza della console non dimostra tutte le funzionalità per servire la pagina.
Creare pagina e pool dedicato
Se C:\Sites\LabSite esiste, fermatevi e accertatene lo scopo senza sovrascrivere file. Altrimenti create la cartella e salvate il documento completo seguente come index.html in UTF-8. Nel Blocco note scegliete Tutti i file durante il salvataggio e verificate in Esplora file, con estensioni visibili, che il nome reale non sia index.html.txt. L’esempio conserva testo inglese e lang="en"; la frase consente di riconoscere il sito che risponde:
<!doctype html>
<html lang="en">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>LabSite</title></head>
<body><h1>Windows Server 2025 web server lab</h1><p>This page is served by LabSite on WEB1.</p></body>
</html>
- In Gestione IIS → Pool di applicazioni create LabSitePool soltanto se il nome è libero. Se esiste già o appartiene ad altri lavori, fermatevi senza sostituirlo.
- Per questo sito soltanto statico scegliete Nessun codice gestito (No Managed Code) come versione CLR .NET. La scelta non installa PHP né altri runtime.
- In Impostazioni avanzate del pool confermate Identity = ApplicationPoolIdentity. Non sostituite l’identità con un amministratore.
- In Proprietà → Sicurezza di C:\Sites\LabSite scegliete WEB1 come percorso di ricerca e aggiungete IIS AppPool\LabSitePool con Controlla nomi. Se non viene risolto, controllate posizione locale, nome ed esistenza del pool.
- Concedete Lettura ed esecuzione, Visualizzazione contenuto cartella e Lettura a cartella e file, mantenendo SYSTEM e amministratori. Non date al processo web scrittura o Controllo completo.
Un’identità del pool di applicazioni è un account virtuale associato al pool, non un utente da creare manualmente nel dominio. Il pool raggruppa applicazioni per i processi di lavoro IIS; qui ne usate uno dedicato. Separate la scrittura dell’amministratore che pubblica dalla lettura del processo web. Servire questa pagina non richiede amministrazione, scrittura o Controllo completo al pool. Non copiate concessioni ampie da esempi generici; verificate che la lettura si applichi a index.html e non sia impedita da una negazione.
Configurare sito e identità anonima
- In Siti → Aggiungi sito Web impostate LabSite, scegliete LabSitePool e C:\Sites\LabSite come percorso fisico. Controllate che il pool selezionato non sia un altro creato automaticamente.
- Usate tipo http, IP 172.24.50.30, porta 8080 e nome host vuoto. Verificate che WEB1 abbia quell’IP e che nessun binding o servizio usi già la combinazione.
- In LabSite → Autenticazione → Autenticazione anonima confermate Abilitata, scegliete Modifica e Identità pool di applicazioni. Applicate solo al sito di prova.
- In LabSite → Documento predefinito confermate l’abilitazione e index.html nell’elenco; aggiungetelo solo se manca. Non abilitate Esplorazione directory.
- Ricontrollate binding, percorso, pool e stato, poi avviate il sito. Se fallisce, conservate il messaggio e risolvete il conflitto senza arrestare siti altrui.
L’utente anonimo predefinito IUSR è diverso dall’identità del pool. Scegliere esplicitamente il pool nelle impostazioni di autenticazione anonima allinea le richieste della pagina ai permessi concessi a IIS AppPool\LabSitePool. Verificate inoltre che Autenticazione anonima sia abilitata su LabSite. Non correggete errori di autenticazione assegnando scrittura a Everyone o cambiando l’intera configurazione del server.
Nel browser di WEB1 aprite http://172.24.50.30:8080/index.html e poi http://172.24.50.30:8080/. Ci si aspetta il titolo visibile Windows Server 2025 web server lab e la frase This page is served by LabSite on WEB1. Non deve apparire la pagina di benvenuto del sito predefinito né una copia locale aperta con file://. L’URL radice richiede che index.html esista e sia elencato come documento predefinito. Il riferimento New-Website descrive anche percorso, porta e pool; non create un secondo sito se avete già seguito la procedura guidata.
Verificare il client e diagnosticare la risposta
Dopo aver confermato il profilo Dominio sull’interfaccia di laboratorio di WEB1, aprite wf.msc → Regole connessioni in entrata → Nuova regola → Porta → TCP e porta locale 8080 → Consenti la connessione → solo Dominio. Usate Lab-IIS-HTTP-8080 se non esiste. Poi, in Proprietà → Ambito, limitate gli indirizzi IP remoti a 172.24.50.0/24 e ricontrollate porta e profilo. I filtri delle regole firewall distinguono porta locale e origine remota. Un profilo inatteso richiede controlli di DNS e connettività di dominio, non di estendere la regola a tutti i profili o spegnere il firewall. Esaminate anche regole o criteri che potrebbero già consentire un ambito maggiore.
Su CLIENT1 nella sottorete autorizzata eseguite il test seguente, poi aprite entrambi gli URL nel browser. TcpTestSucceeded: True conferma soltanto il collegamento TCP alla porta, non HTML, permessi o sito corretti. Con False controllate percorso di rete, profilo, regola e porta in ascolto, senza cambiare subito le credenziali del sito:
Test-NetConnection -ComputerName 172.24.50.30 -Port 8080
| Sintomo | Controllo |
|---|---|
| Timeout | Percorso di rete, profilo e regole firewall, porta in ascolto e ambito consentito. |
| 403.14 | File e configurazione del documento predefinito; non abilitate esplorazione directory per aggirare il problema. |
| 401.3 | Identità anonima effettiva e permessi di lettura NTFS su cartella e file. |
| 404 | Percorso fisico, nome ed estensione del file; esaminate il sottostato prima di attribuire ogni 404 a un file mancante. |
| 503 | Stato del pool, protezione da errori rapidi ed eventi; non disabilitate la protezione per nascondere il guasto. |
In Gestione IIS cercate l’ID sotto LabSite → Impostazioni avanzate e la posizione attiva in LabSite → Registrazione. Correlate client, URL e ora alla cartella C:\inetpub\logs\LogFiles\W3SVC seguita dall’ID del sito se è in uso quella posizione predefinita; controllate il fuso orario del formato di log. La diagnosi degli errori HTTP IIS distingue stato e sottostato. Una richiesta che non raggiunge IIS può non comparire nei suoi log. Separate guasti di rete e risposte HTTP. Per pulire conservate i log necessari, arrestate e rimuovete solo LabSite, controllate che LabSitePool non serva altre applicazioni e rimuovete soltanto quel pool e la nuova regola. Eliminate la cartella solo se contiene esclusivamente vostri file sacrificabili. Conservate sito predefinito, regole altrui e ruolo condiviso.




