In questa paginaObiettiviIl modulo consente di: | • | Configurare un canale per comunicazioni protette tra due computer Microsoft® Windows® 2000 Server mediante IPSec. |
Ambito di applicazioneLe informazioni contenute in questo modulo sono valide per i seguenti prodotti e tecnologie: | • | Windows 2000 Server con Service Pack 3 | | • | Microsoft Network Monitor | | • | Microsoft .NET Framework versione 1.0 con Service Pack 2 e versioni successive | | • | Microsoft Visual Studio® 1.0 .NET e versioni successive | | • | Microsoft Visual C#® .NET | | • | Microsoft SQL Server ™ 2000 con Service Pack 2 e versioni successive |
Utilizzo del moduloPer trarre il massimo vantaggio dal modulo: | • | È necessario disporre di due computer con il sistema operativo Windows 2000 Server e la seguente configurazione: | • | Indirizzi IP fissi. | | • | SQL Server 2000 nel computer server di database server su cui è installato il database di esempio Northwind. |
| | • | È necessario aver acquisito esperienza nella programmazione con Visual C# .NET. | | • | È necessario aver acquisito esperienza nell'utilizzo dell'ambiente di sviluppo Visual Studio .NET. | | • | È necessario aver acquisito esperienza nella configurazione di Windows 2000 Server mediante gli strumenti amministrativi di Windows. | | • | È necessario aver acquisito esperienza nell'utilizzo dello strumento Network Monitor. | | • | Leggere il modulo 4 "Comunicazione protetta". Vi sono incluse una panoramica dei problemi associati ai canali di comunicazione protetta e un'introduzione a IPSec. |
RiepilogoInternet Protocol Security (IPSec) è un meccanismo di trasporto a livelli mediante il quale è possibile garantire la confidenzialità e l'integrità delle comunicazioni basate su TCP/IP tra due computer. IPSec supporta anche l'autenticazione basata su computer. Queste funzionalità rendono IPSec ideale per canali di comunicazione protetta tra computer, invisibili a tutte le applicazioni. In questo modulo viene descritto come configurare un canale di comunicazione protetta tra due computer mediante IPSec. Conoscenze necessarieIPSec (Internet Protocol Security) può essere utilizzato per proteggere i dati scambiati tra due computer, ad esempio tra un server applicazioni e un server di database. Questa tecnologia è completamente trasparente alle applicazioni in quanto i servizi di crittografia, integrità e autenticazione vengono implementati a livello di trasporto. senza interferire con la normale comunicazione tra le applicazioni sulle porte TCP e UDP. Utilizzando IPSec è possibile: | • | Garantire la riservatezza dei messaggi grazie alla crittografia dei dati inviati tra due computer. | | • | Garantire l'integrità dei messaggi trasmessi tra due computer (senza crittografare i dati). | | • | Eseguire l'autenticazione reciproca tra due computer. Ad esempio, è possibile contribuire alla protezione di un server di database definendo un criterio che abilita solo le richieste provenienti da un computer client specifico, ad esempio un'applicazione o un server Web. | | • | Specificare quali computer possono comunicare tra loro. È inoltre possibile limitare la comunicazione a protocolli IP e porte TCP/UDP specifici. |
In questo modulo viene illustrato come proteggere il canale di comunicazione tra un server applicazioni e un server di database eseguendo SQL Server 2000. Il server applicazioni utilizza la libreria di rete client TCP/IP consigliata per connettersi a SQL Server e la porta 1433 TCP di SQL Server. La configurazione è illustrata nella figura 1.  Figura 1 Procedura relativa alla configurazione della soluzione In questo modulo viene descritto come utilizzare un semplice criterio IPSec per applicare quanto segue: | • | Consentire la comunicazione con SQL Server solo dal server applicazioni utilizzando TCP attraverso la porta 1433. | | • | Eliminare tutti gli altri pacchetti IP, incluso ICMP (ping). | | • | Crittografare tutti i dati inviati tra due computer per assicurare la riservatezza. |
I vantaggi di questo approccio sono i seguenti: | • | La riservatezza viene assicurata per tutti i dati inviati tra i due computer. | | • | L'area esposta a potenziali attacchi in SQL Server è ridotta in modo significativo. Gli unici punti di attacco rimanenti sono l'accesso interattivo al server di database o il controllo del server applicazioni e la porta 1433 TPC per tentativi di attacco a SQL Server. | | • | La definizione e l'implementazione dei criteri IPSec sono estremamente semplici. |
Questi criteri specifici presentano i seguenti svantaggi: | • | SQL Server non può comunicare con altri controller di dominio e pertanto: | • | Non è possibile applicare criteri di gruppo, in quanto il server di database deve essere un server autonomo. | | • | L'autenticazione di Windows tra il server applicazioni e il server di database richiede account locali sincronizzati con stesso nome utente e password in entrambi i computer. | | • | Non è possibile utilizzare metodi più potenti per l'applicazione di IPSec, ad esempio quello predefinito di Windows 2000 o Kerberos. |
| | • | SQL Server non potrà comunicare con altri computer, inclusi i server DNS. | | • | Nell'approccio presentato in questo modulo viene utilizzata l'autenticazione basata sulla chiave precondivisa, che non è indicata per gli scenari di produzione. Per i sistemi di produzione, è consigliabile utilizzare i certificati o l'autenticazione di dominio di Windows 2000. I criteri IPSec che utilizzano segreti precondivisi sono indicati solo per ambienti di sviluppo o di test. | | • | Gli indirizzi IP di entrambi i computer devono essere statici. |
Note| • | Un criterio IPSec è costituito da un insieme di filtri, operazioni filtro e regole. | | • | Un filtro è costituito dai seguenti elementi: | • | Un indirizzo IP o un intervallo di indirizzi di origine. | | • | Un indirizzo IP o un intervallo di indirizzi di destinazione. | | • | Un protocollo IP, ad esempio TCP, UDP o "qualsiasi". | | • | Porte di origine e di destinazione (solo per protocolli TCP o UDP). |
| | • | È inoltre possibile eseguire il mirroring dei filtri in due computer. Un filtro con mirroring applica la stessa regola nei computer client e server, invertendo gli indirizzi di origine e di destinazione. | | • | Un'operazione filtro specifica le operazioni da eseguire quando viene richiamato un determinato filtro. Tra le operazioni filtro sono incluse le seguenti: | • | Autorizza. Il traffico non è protetto e sono consentiti l'invio e la ricezione di dati senza alcun intervento. | | • | Blocca. Il traffico non è consentito. | | • | Negozia protezione. Gli endpoint devono concordare e quindi utilizzare un metodo sicuro per comunicare. Se non possono concordare un metodo, la comunicazione non viene stabilita. In caso di errore di negoziazione, è possibile specificare se consentire la comunicazione non protetta o bloccare tutte le comunicazioni. |
| | • | Una regola associa un filtro a un'operazione. | | • | Un criterio di mirroring applica le regole a tutti i pacchetti con indirizzi IP di origine e di destinazione esattamente invertiti. In questo modulo viene creato tale tipo di criterio. |
Creazione di un filtro IP| • | Per creare un nuovo filtro IP nel computer server di database 1. | Accedere al server di database come amministratore. | 2. | Avviare lo snap-in MMC (Microsoft Management Console) Criteri di protezione locali dal gruppo di programmi Strumenti di amministrazione. | 3. | Nel riquadro sinistro fare clic con il pulsante destro del mouse su Criteri di protezione IP su computer locale, quindi scegliere Gestisci elenchi filtri IP e azioni filtro. Sarà possibile osservare che sono stati già definiti due elenchi di filtri per tutto il traffico ICMP e per tutto il traffico IP. | 4. | Fare clic su Aggiungi. | 5. | Nella finestra di dialogo Elenco filtri IP digitare Porta SQL nel campo Nome. | 6. | Scegliere Aggiungi, quindi fare clic su Avanti nella finestra di dialogo iniziale della Creazione guidata filtro IP per proseguire. | 7. | Nella finestra di dialogo Origine traffico IP selezionare Indirizzo IP specifico dal menu a discesa Indirizzo origine, quindi immettere l'indirizzo IP del computer server applicazioni. | 8. | Fare clic su Avanti. | 9. | Nella finestra di dialogo Destinazione traffico IP selezionare Indirizzo IP specifico dal menu a discesa Indirizzo di destinazione, quindi immettere l'indirizzo IP del computer server di database. | 10. | Fare clic su Avanti. | 11. | Nella finestra di dialogo Tipo protocollo IP selezionare TCP come tipo di protocollo, quindi fare clic su Avanti. | 12. | Nella finestra di dialogo Porta protocollo IP selezionare Da qualsiasi porta, quindi selezionare A questa porta. Immettere 1433 come numero di porta. | 13. | Fare clic su Avanti, quindi fare clic su Fine per chiudere la procedura guidata. | 14. | Fare clic su Chiudi per chiudere la finestra di dialogo Elenco filtri IP. |
|
Creazione di operazioni filtroQuesta procedura consente di creare due operazioni filtro. La prima verrà utilizzata per bloccare tutte le comunicazioni dai computer specificati, mentre la seconda verrà utilizzata per applicare la crittografia tra il computer server applicazioni e il computer server di database. | • | Per creare operazioni filtro 1. | Selezionare la scheda Gestione operazioni filtro. Si noti che diverse operazioni predefinite sono già impostate. | 2. | Fare clic su Aggiungi per creare una nuova operazione filtro. Nei passaggi successivi verrà creata un'operazione che può essere utilizzata per bloccare tutte le comunicazioni provenienti dai computer selezionati. | 3. | Nella finestra di dialogo iniziale dell'Impostazione guidata operazione filtro fare clic su Avanti per proseguire. | 4. | Nel campo Nome digitare Blocco, quindi fare clic su Avanti. | 5. | Nella finestra di dialogo Opzioni standard operazione filtro selezionare Blocca, quindi fare clic su Avanti. | 6. | Fare clic su Fine per chiudere la procedura guidata. | 7. | Fare clic su Aggiungi per avviare nuovamente l'Impostazione guidata operazione filtro. Nei passaggi successivi verrà creata un'operazione filtro per forzare l'utilizzo della crittografia tra il server applicazioni e il server di database. | 8. | Nella finestra di dialogo iniziale dell'Impostazione guidata operazione filtro fare clic su Avanti per proseguire. | 9. | Nel campo Nome digitare Richiedi protezione alta, quindi fare clic su Avanti. | 10. | Selezionare Negozia protezione, quindi fare clic su Avanti. | 11. | Selezionare Non comunicare con computer che non supportano IPsec, quindi fare clic su Avanti. | 12. | Selezionare Personalizzata, quindi fare clic su Impostazioni. | 13. | Accertarsi che la casella di controllo Integrità dati con crittografia (ESP) sia selezionata. | 14. | Selezionare SHA1 dall'elenco a discesa Algoritmo di integrità. | 15. | Selezionare 3DES dall'elenco a discesa Algoritmo di integrità. | 16. | Selezionare le due caselle di controllo all'interno del gruppo Impostazioni chiave di sessione per generare una nuova chiave rispettivamente ogni 100000 KB e 3600 secondi. | 17. | Fare clic su OK per chiudere la finestra di dialogo Impostazioni personalizzate metodo di protezione, quindi fare clic su Avanti. | 18. | Selezionare la casella di controllo Modifica proprietà, quindi fare clic su Fine. | 19. | Deselezionare la casella di controllo Accetta comunicazioni non protette, ma rispondi sempre usando IPSec. | 20. | Selezionare la casella di controllo PFS (Perfect Forward Secrecy) chiave di sessione, quindi fare clic su OK. | 21. | Fare clic su Chiudi per chiudere la finestra di dialogo Gestisci elenchi filtri IP e operazioni filtro. |
|
Creazione di regoleQuesta procedura consente di creare due nuove regole che verranno utilizzate per associare il filtro creato nella prima procedura alle due operazioni filtro create nella procedura precedente. | • | Per creare le regole 1. | Nel riquadro sinistro fare clic con il pulsante destro del mouse su Criteri di protezione IP su computer locale, quindi scegliere Crea criterio di protezione IP. | 2. | Nella finestra di dialogo iniziale della Creazione guidata criteri di protezione IP fare clic su Avanti per proseguire. | 3. | Nel campo Nome digitare SQL protetto, quindi fare clic su Avanti. | 4. | Deselezionare la casella di controllo Attiva la regola di risposta predefinita, quindi fare clic su Avanti. | 5. | Lasciare selezionata la casella di controllo Modifica proprietà, quindi fare clic su Fine. | 6. | Fare clic su Aggiungi per avviare la Creazione guidata regola di protezione IP. | 7. | Nella finestra di dialogo iniziale della Creazione guidata regola di protezione IP fare clic su Avanti per proseguire. | 8. | Fare clic su Questa regola non specifica un tunnel, quindi su Avanti. | 9. | Fare clic su Tutte le connessioni di rete, quindi su Avanti. | 10. | Fare clic su Utilizza questa stringa per proteggere lo scambio di chiave (chiave già condivisa). | 11. | Immettere MySecret come chiave "segreta" nella casella di testo. Nota: per consentire ai due computer di comunicare correttamente, è necessario che questa chiave sia la stessa per entrambi. È consigliabile utilizzare un numero esteso casuale, ma per questo modulo è sufficiente specificare "MySecret". | 12. | Fare clic su Avanti. | 13. | Selezionare l'opzione Porta SQL. Nota: per selezionare l'opzione, è necessario fare clic sul cerchio del pulsante di opzione anziché sul testo. | 14. | Fare clic su Avanti. | 15. | Selezionare l'opzione Richiedi protezione alta, quindi fare clic su Avanti. | 16. | Fare clic su Fine per tornare alla finestra di dialogo Proprietà - SQL protetto. | 17. | Fare clic su Aggiungi per avviare nuovamente la Creazione guidata regola di protezione IP, quindi fare clic su Avanti nella finestra di dialogo iniziale per proseguire. | 18. | Fare clic su Questa regola non specifica un tunnel, quindi su Avanti. | 19. | Fare clic su Tutte le connessioni di rete, quindi su Avanti. | 20. | Nella finestra di dialogo Metodo di autenticazione lasciare selezionata l'opzione Impostazione predefinita di Windows 2000 (protocollo V5 Kerberos), quindi fare clic su Avanti. Nota: poiché questa regola specificherà l'operazione filtro Blocca, non sarà necessaria alcuna autenticazione. | 21. | Nella finestra di dialogo Elenco filtri IP fare clic su Tutto il traffico IP, quindi su Avanti. | 22. | Nella finestra di dialogo Operazione filtro selezionare l'opzione Blocca, quindi fare clic su Avanti. | 23. | Fare clic su Fine. | 24. | Fare clic su Chiudi per chiudere la finestra di dialogo Proprietà - SQL protetto. |
|
Esportazione del criterio IPSec nel computer remoto A questo punto è necessario esportare il criterio IPSec creato nel server di database e copiarlo nel computer server applicazioni. | • | Per esportare il criterio IPSec nel computer server applicazioni 1. | Nel riquadro sinistro fare clic con il pulsante destro del mouse sul nodo Criteri di protezione IP su computer locale, selezionare Tutte le attività, quindi scegliere Esporta criteri. | 2. | Nel campo Nome digitare SQL protetto, quindi fare clic su Salva per esportare il file nel disco rigido locale. | 3. | Copiare il file con estensione IPSEC nel server applicazioni o renderlo disponibile mediante una condivisione file. Importante: poiché il file dei criteri contiene una chiave precondivisa in formato testo non crittografato, è necessario proteggere il file in modo adeguato. È sconsigliabile archiviarlo sui dischi rigidi dei computer. | 4. | Accedere al server applicazioni come amministratore e avviare lo snap-in MMC Criteri di protezione locali. | 5. | Selezionare e fare clic con il pulsante destro del mouse su Criteri di protezione IP su computer locale, scegliere Tutte le attività, quindi fare clic su Importa criteri. | 6. | Individuare il file IPSEC esportato in precedenza e fare clic su Apri per importare il criterio. |
|
Assegnazione dei criteriÈ necessario assegnare un criterio IPSec prima che diventi attivo. Tenere presente che in un determinato computer può essere attivo un solo criterio alla volta. | • | Per assegnare il criterio SQL protetto nel computer server applicazioni e nel computer server di database 1. | Nel computer server applicazioni fare clic con il pulsante destro del mouse sul criterio SQL protetto importato, quindi fare clic su Assegna. | 2. | Ripetere il passaggio precedente nel computer server di database. A questo punto, il criterio con mirroring è assegnato a entrambi i computer. I criteri assicurano che solo il server applicazioni possa comunicare con il server di database. Inoltre, sono consentite solo connessioni TCP tramite la porta 1433 e tutto il traffico inviato tra i due computer è crittografato. |
|
Verifica del funzionamentoQuesta procedura consente di utilizzare Network Monitor per verificare che i dati inviati tra il server applicazioni e il server di database siano crittografati. | • | Per verificare il funzionamento 1. | Nel computer server applicazioni utilizzare Visual Studio .NET per creare una nuova applicazione console C# denominata SQLIPSecClient. | 2. | Copiare il codice riportato di seguito in class1.cs sostituendo il codice esistente. Nota: sostituire l'indirizzo IP nella stringa di connessione con l'indirizzo IP del server di database.
using System;
using System.Data;
using System.Data.SqlClient;
namespace SQLIPSecClient
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
// Replace the IP address in the following connection string with
the IP
// address of your database server
SqlConnection conn = new SqlConnection(
"server=192.168.12.11;database=NorthWind;Integrated Security=
'SSPI'");
SqlCommand cmd = new SqlCommand(
"SELECT ProductID, ProductName FROM
Products");
try
{
conn.Open();
cmd.Connection = conn;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("{0} {1}",
reader.GetInt32(0).ToString(),
reader.GetString(1) );
}
reader.Close();
}
catch( Exception ex)
{
}
finally
{
conn.Close();
}
}
}
}
| 3. | Scegliere Genera soluzione dal menu Genera. | 4. | Per eseguire correttamente l'autenticazione di Windows tra i due computer, è necessario duplicare nel computer server di database l'account di accesso interattivo con cui si è collegati attualmente al computer server applicazioni. Accertarsi che il nome utente e la password corrispondano. È inoltre necessario utilizzare SQL Server Enterprise Manager per creare un account di accesso al database per l'account appena generato e aggiungere un nuovo utente del database per questo accesso al database Northwind. | 5. | Annullare temporaneamente l'assegnazione del criterio IPSec SQL protetto in entrambi i computer: 1. | Avviare Impostazioni protezione locale nel computer server applicazioni. | 2. | Fare clic su Criteri di protezione IP su computer locale. | 3. | Nel riquadro destro fare clic con il pulsante destro del mouse su SQL protetto, quindi fare clic su Annulla assegnazione. | 4. | Ripetere i passaggi a - c nel computer server di database. |
| 6. | Nel computer server di database scegliere Network Monitor dal gruppo di programmi Strumenti di amministrazione. Nota: una versione limitata di Network Monitor è disponibile in Windows 2000 Server. La versione completa è inclusa in Microsoft SMS. Se non è stato installato Network Monitor, passare a Installazione applicazioni nel Pannello di controllo, fare clic su Installazione componenti di Windows, selezionare Strumenti di gestione e controllo dall'elenco Componenti di Windows, scegliere Dettagli, quindi fare clic su Strumenti per il monitoraggio della rete. Fare clic su OK, quindi su Avanti per installare la versione limitata di Network Monitor. È possibile che venga richiesto il CD di Windows 2000 Server. | 7. | Scegliere Filtro dal menu Acquisizione per creare un nuovo filtro configurato per visualizzare il traffico di rete TCP/IP inviato tra il server applicazioni e il server di database. | 8. | Fare clic sul pulsante Avvia acquisizione. | 9. | Tornare al computer server applicazioni ed eseguire l'applicazione console di prova. Nella finestra della console verrà visualizzato un elenco dei prodotti proveniente dal database Northwind. | 10. | Tornare al server di database e fare clic sul pulsante Termina e visualizza acquisizione all'interno di Network Monitor. | 11. | Fare doppio clic sul primo frame acquisito per visualizzare i dati acquisiti. | 12. | Scorrere verso il basso i frame acquisiti. Viene visualizzata l'istruzione SELECT in formato testo non crittografato seguita dall'elenco dei prodotti recuperato dal database. | 13. | Assegnare il criterio IPSec SQL protetto in entrambi i computer: 1. | Avviare Impostazioni protezione locale nel computer server applicazioni. | 2. | Fare clic su Criteri di protezione IP su computer locale. | 3. | Nel riquadro destro fare clic con il pulsante destro del mouse su SQL protetto, quindi fare clic su Assegna. | 4. | Ripetere i passaggi a - c nel computer server di database. |
| 14. | In Network Monitor chiudere la finestra di acquisizione. | 15. | Scegliere il pulsante Avvia acquisizione, quindi fare clic su No nella finestra di messaggio Salva file. | 16. | Tornare al computer server applicazioni ed eseguire ancora una volta l'applicazione console di prova. | 17. | Tornare al computer server di database e fare clic su Termina e visualizza acquisizione all'interno di Network Monitor. | 18. | Verificare che i dati non siano leggibili in quanto crittografati. | 19. | Chiudere Network Monitor. |
|
Altre risorsePer ulteriori informazioni su IPSec, vedere "IP Security and Filtering" nel sito Microsoft TechNet all'indirizzo http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/winxppro/reskit/prcc_tcp_erqb.asp?frame=true> (in inglese). Per ulteriori informazioni su Network Monitor, vedere la sezione "Network Monitor" di Microsoft Platform SDK nel sito MSDN disponibile all'indirizzo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmon/netmon/network_monitor.asp (in inglese).
| |