|
Col Service Pack 2 di Windows XP, nel Pannello di
Controllo sono presenti il "Centro Sicurezza del PC" (wscui.cpl) ed il "Windows
Firewall" (firewall.cpl). Soffermiamoci un attimo su quest' ultimo e guardiamo
un attimo quali sono le chiavi di registro che corrispondono ad alcune delle
impostazioni
La chiave base è
HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
che ha come sottochiavi:
DomainProfile --> usata se il computer è client di Dominio
StandardProfile --> usata se il computer è in un Gruppo di lavoro
Prendiamo come riferimento per gli esempi lo StandardProfile
HKLM\System\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile
Facendo riferimento al primo tab della maschera di impostazioni e
cioè

Si hanno le seguenti corrispondenze coi valori della suddetta
chiave
"EnableFirewall"=dword:00000000 (Attivato (impostazione consigliata))
"DoNotAllowExceptions"=dword:00000000
(Non consentire eccezioni)
Spostandosi invece sul secondo tab

abbiamo
"DisableNotifications"=dword:00000000
(Visualizza un avviso quando Windows Firewall blocca un programma)
L'elenco definito in "Programmi e servizi" è l' unione degli
elenchi presenti nelle seguenti chiavi
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
In pratica in trafico in ingresso può essere filtrato per
applicazione e per porta:
ad esempio ho un'applicazione che gira sul mio computer e che
consente ad altre utenze su computer remoti di interagire col mio computer; non
mi interessa quale o quali porte utilizza, mi interessa solo che da remoto
possano interagire utilizzando tale applicazione: faccio "Aggiungi
Programma"

e seleziono il programma in questione. Un esempio lampante può
essere un programma di p2p come Kazaa, Shareaza, Emule, DCPro, etc... Lo
seleziono ed a questo punto funziona come se il firewall non fosse abilitato:
può aprire tutte le porte locali che vuole e non cambia nulla perchè ho
stabilito che quel programma sia accessibile dall' esterno. L' elenco di tutti i
programmi così inseriti va a popolare i valori della chiave
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\AuthorizedApplications\List]
Poi vedremo in seguito i dettagli.
Così come posso consentire l' accesso dall' esterno al mio computer interagendo
con un determinato programma sul mio computer, analogamente posso andare più nei
dettagli e specificare quale porta di comunicazione sul mio computer voglio
aprire all' esterno e che tipo di pacchetti sono disposto ad accettare in
ingresso su questa porta. Faccio "Aggiungi porta"

e posso specificare porta e protocollo (e dare anche un nome
identificativo al filtro che stiamo creando). Ad esempio se ho un programma che
apre la porta 4567 TCP e quindi dall'esterno interagiscono con tale programma
inviando pacchetti al mio computer su porta TCP 4567 allora scriverò "Numero
porta" 4567 e seleziono TCP.
L' elenco di tutte le porte così inserite va a popolare i valori della chiave
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
Ma come vengono creati i valori nelle 2 chiave appena descritte??
per le applicazioni:
valore: <nome applicazione (eseguibile con percorso
completo)>
tipo : REG_SZ
contenuto: <nome applicazione (eseguibile con percorso completo)>:<elenco
computer che possono accedere>:<abilitato o disabilitato>:<etichetta che compare
nell' elenco "programmi e servizi">
per le porte:
valore: <numeroporta>:<protocollo>
tipo: REG_SZ
contenuto: <numeroporta>:<protocollo>:<elenco computer che possono
accedere>:<abilitato o disabilitato>:<etichetta che compare nell' elenco
"programmi e servizi">
Andiamo un pò più nei dettagli ed analizziamo il concetto di
"<elenco computer che possono accedere>"
Se voglio aprire una porta all' esterno ma voglio definire anche
quali computer possono accedere dall' esterno al mio computer inviando pacchetti
a quella porta allora seleziono la porta nell' elenco "programmi e servizi",
faccio "modifica", click su "Cambia ambito"

Di default è selezionata la prima voce ma ad esempio se voglio
che solo il computer 192.168.1.140 possa inviare pacchetti TCP alla porta 4567
allora scriverò come da figura (o anche più semplicemente 192.168.1.140). Se
avessi voluto consentire l'accesso ad esempio a tutti i computer da 192.168.3.1
a 192.168.3.254 allora avrei scritto
192.168.3.0/255.255.255.0
Immediato il significato dell' opzione "Solo la rete (subnet) locale
A livello del valore nel registro avremo:
Tutti i computer (compresi quelli in internet) = *
Solo la rete (subnet) locale = LocalSubNet
Elenco Personalizzato = 192.168.1.140, 192.168.3.0/255.255.255.0 (in
pratica quello che compare nella casella di testo relativa)
Con riferimento all' immagine avremo
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]
"4567:TCP"="4567:TCP:192.168.1.140/255.255.255.255:Enabled:mio_programma"
Un discorso analogo vale naturalmente per i Programmi: ad
esempio abilitando Kazaa per tutti avremo
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List]
"C:\\Programmi\\Kazaa Lite K++\\KazaaLite.kpp"="C:\\Programmi\\Kazaa Lite
K++\\KazaaLite.kpp:*:Enabled:KazaaLite"
Se ad esempio volessi consentire il collegamento in terminal emulation al mio
computer solo ai computer 10.0.0.5 e 192.168.5.1 allora andrei a modificare la
riga già esistente
"3389:TCP"="3389:TCP:*:Disabled:@xpsp2res.dll,-22009"
e scriverei
"3389:TCP"="3389:TCP:10.0.0.5,192.168.5.1*:Enabled:@xpsp2res.dll,-22009"
Si noti qui l' utilizzo di una stringa di risorsa invece del
testo per definire l' etichetta (@xpsp2res.dll,-22009)
Elenco tips di registro |