Ved hjelp av Netsh med Windows Firewall

Jeg har alltid hatt en forkjærlighet for boliger bygget av murstein. Foruten å ha en slags "Lord of the Manor" appell, de ser også solid bygget i forhold til mange av dagens tre-innrammet plast-ytterkledning hjem. Brick gir også en ekstra trygghet siden, som kommer til å knuse gjennom en murvegg for å bryte seg inn i huset ditt?

Men så lurer jeg på, ville ikke ditt hjem være enda mer sikker på om alle rommene hadde murvegger og ikke bare den ytre veggen av huset ditt? Tross alt, er gips så skjør at du kan lage hull gjennom det hvis du får virkelig sint (og ikke tankene en bit av smerte), så det virker som en god idé å gjøre det innvendige vegger murstein også. På den måten hvis noen bryter seg inn i huset ditt de har fortsatt å bryte seg inn i hvert enkelt rom til å finne safe hvor du holde dine juveler.

Mange bedriftsnettverk er akkurat som dette i dag-stedet for å stole bare på en brannmur på omkretsen (yttervegg) av nettverket, er det brannmurer installert på individuelle klienter og servere (rom) også til å opptre som en annen lag av forsvar mot angrep. Og på nettverk som kjører Windows XP på klienter og Windows Server 2003 på serverne, det er en klar kandidat som host-basert brannmur å bruke: Windows-brannmur. Tross alt, det er gratis!

Dessverre har brannmurer på klienter og servere betyr ekstra forvaltningsarbeid også, men Group Policy kan håndtere det så langt som Windows-brannmuren er opptatt av (en annen god grunn for distribusjon av Windows-brannmuren på vertene i stedet av tredjeparts brannmurer fra andre leverandører). Likevel, det er tider når du ønsker å kontrollere eller endre konfigurasjonen av Windows-brannmuren på noen verter på grunn av problemer av noe slag, og kommandolinjeverktøy Netsh.exe er bare ting å gjøre dette med.

få det fungerer

La oss si at Bob setter opp en Windows Server 2003 SP1 maskinen som web og filserver for intern bruk i hans selskap. Å vite at Windows Firewall /Internet Sharing Connection-tjenesten er deaktivert som standard, åpner han Services konsollen henhold Administrative verktøy og endrer Oppstartstype for denne tjenesten til Automatisk, og deretter starter tjenesten. Så langt, så bra, men hvis han hadde prøvd å åpne Windows-brannmuren verktøyet fra Kontrollpanel han ville ha blitt presentert med en melding som spør ham om han ønsket å starte denne tjenesten, og peker på at han skulle starte sin server etterpå for å sørge for Windows Brannmur erkjenner at serveren lytter etter innkommende trafikk fra fil og web-klienter.

Uansett, Bob nå ønsker å aktivere og konfigurere Windows-brannmuren på serveren, men plutselig kalt bort på en nødsituasjon. Han sender en kjapp e-post til sin assistent Mary bruke sin Blackberry sier "Aktiver brannmuren på serveren, slik at kundene kan få tilgang til it-få det fungerer" og går ut døren. Dessverre hans assistent jobber hjemmefra i dag, men Bob husket å aktivere Remote Desktop på den nye serveren, så Mary starter Remote Desktop Connection på hennes Windows XP SP2 datamaskinen og konsollen til den eksterne serveren vises.

Hva nå ? Mary kunne åpne kontrollpanelet på den eksterne maskinen og aktivere Windows-brannmuren, men hva unntak gjør hun trenger å konfigurere på det? Bob var tydeligvis i en hast da han sa ", slik at kundene kan få tilgang til det", men hva kunder? Og det er selvsagt viktig, fordi han ønsker det gjøres i dag.

I stedet for å jakte rundt Services konsollen ser for tilleggstjenester som Bob kanskje har aktivert på maskinen, bestemmer Mary å åpne en ledetekst på den eksterne maskinen og forfølge en ny taktikk. Hun starter med å skrive følgende kommando:
netstat -ano > netstat.txt
notepad netstat.txt

Hun undersøker deretter innholdet i netstat.txt fil som åpnes i Notepad:
Aktive tilkoblinger
Proto Lokal adresse utenlandsk adresse State PID
TCP 0.0.0.0:80 0.0.0.0:0 LYTTE 1 664
TCP 0.0.0.0:135 0.0.0.0:0 LYTTE 696
TCP 0.0.0.0:445 0,0. 0.0: 0 LYTTE 4
TCP 0.0.0.0:1037 0.0.0.0:0 LYTTE 1000
TCP 0.0.0.0:1040 0.0.0.0:0 LYTTE 436
TCP 0.0.0.0:1045 0.0.0.0: 0 LYTTE 1 220
TCP 0.0.0.0:3389 0.0.0.0:0 LYTTE 1 780
TCP 127.0.0.1:1051 0.0.0.0:0 LYTTE 1856
TCP 172.16.11.182:139 0.0.0.0:0 LYTTE 4
TCP 172.16.11.182:1029 172.16.11.181:445 TIME_WAIT 0
TCP 172.16.11.182:1034 172.16.11.181:135 TIME_WAIT 0
TCP 172.16.11.182:1035 172.16.11.181:1025 ETABLERT 436 < BR> TCP 172.16.11.182:1039 172.16.11.181:1025 TIME_WAIT 0
TCP 172.16.11.182:1043 172.16.11.181:445 TIME_WAIT 0
TCP 172.16.11.182:1052 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1053 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1055 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1056 172.16.11.181:139 TIME_WAIT 0
TCP 172,16 .11.182: 1062 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1063 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1071 172.16.11.181:445 TIME_WAIT 0
TCP 172.16.11.182 : 1 075 172.16.11.181:135 ETABLERT 436
TCP 172.16.11.182:1078 172.16.11.181:389 TIME_WAIT 0
TCP 172.16.11.182:1079 172.16.11.181:389 TIME_WAIT 0
< P> Med en gang det ser ut til henne fra denne filen som serveren har HTTP-tjenesten er installert på den siden maskinen lytter på TCP port 80. Bedre sjekk selv, og sørge for at denne tjenesten er faktisk den bruker denne porten. Hvordan gjør hun dette? Først bemerker hun prosess ID-nummer (PID) forbundet med disse portene som er 1664. hun typer følgende kommandoer ved ledeteksten:
tasklist /svc > svclist.txt
notepad svclist.txt

Hun undersøker deretter innholdet i svclist.txt fil, som ser slik ut:
Image Name PID Services
== ======================= ======== =================== =========================
System Idle Process 0 N /A
System 4 N /A
Smss.exe 260 N /A
CSRSS.EXE 348 N /A
Winlogon.exe 380 N /A
Services.exe 424 Eventlog, PlugPlay
lsass.exe 436 HTTPFilter, påloggings, PolicyAgent,
Protected , SamSs
svchost.exe 644 DcomLaunch
svchost.exe 696 RpcSs
svchost.exe 748 DHCP, dnscache
svchost.exe 796 LMHOSTS, W32Time
svchost.exe 812 AeLookupSvc, Browser, CryptSvc , dmserver,
Event, helpsvc, LanmanServer,
LanmanWorkstation, NETMAN, NLA, program,
seclogon, SENS, Shared,
ShellHWDetection, TrkWks, winmgmt,
wuauserv, WZCSVC
spoolsv.exe 976 Spooler
msdtc.exe 1000 MSDTC
vmsrvc.exe 1120 1-vmsrvc
svchost.exe 1144 ERSvc
Inetinfo.exe 1 220 IISADMIN
svchost.exe 1 288 RemoteRegistry
svchost.exe 1312 SrmSvc
vpcmap.exe 1 420 VPCMap
svchost.exe 1 664 W3SVC
svchost.exe 1780 Term
alg.exe 1856 ALG
explorer.exe 972 N /A
vmusrvc.exe 1412 N /A
wuauclt.exe 2120 N /A
Csrss.exe 2 176 N /A
Winlogon.exe 2204 N /A
rdpclip.exe 2 452 N /A
explorer.exe 2 556 N /A
wmiprvse.exe 2 564 N /A
vmusrvc.exe 2 648 N /A
cmd.exe 2724 N /A
tasklist.exe 2964 N /A
wmiprvse.exe 2 988 N /A
Hun undersøker denne filen på jakt etter den PID nevnt tidligere, og finner denne linjen:

svchost.exe 1 664 W3SVC

Denne linjen bekrefter hun at Bob installert IIS på serveren og konfigurert den til å kjøre som en webserver.

Nå Marit skal aktivere Windows-brannmuren på maskinen og lage et unntak for HTTP-klienter tilgang til den. Siden hun er allerede på kommandolinjen på den eksterne maskinen, bestemmer hun seg for å gjøre dette ved hjelp av Netsh kommandoen. Først hun visninger konfigurasjonen av Windows-brannmuren på serveren:
C: \\ > netsh firewall showet opmode Domene profil konfigurasjon (nåværende):
------- -------------------------------------------------- ----------
Operasjonell mode = Deaktiver
Exception mode = Aktiver
Standard profil konfigurasjon:
----------- -------------------------------------------------- ------
Operasjonell mode = Deaktiver
Exception mode = Aktiver
Lokal tilkobling brannmur konfigurasjon:
------------- -------------------------------------------------- ----
Operasjonell mode = Aktiver

Fra dette kommandoutdataene hun bekrefter at Windows-brannmuren er deaktivert, og må være aktivert. For å gjøre dette, Mary typer følgende kommando:
C: \\ > netsh firewall set opmode aktivere
Ok

Nå legger hun en port unntak for HTTP-tjenesten.
C: \\ > netsh firewall legge portopening TCP 80 HTTP aktivere nettverks
Ok .

For å teste dette, hun midlertidig reduserer sin Remote Desktop Connection vinduet og åpner Internet Explorer og typer http://172.16.11.182 i adressefeltet, og her er hva hun får i respons (figur 1):


Figur 1: Tilgang til serveren ved hjelp av HTTP

Det lyder som Bob! Alltid spille "tung" så langt som sin rolle som administrator er bekymret.

La oss nå se hva annet som kjører på serveren. Mary går tilbake til netstat.txt filen vist tidligere og finner følgende linjer av interesse:
TCP 0.0.0.0:445 0.0.0.0:0 LYTTE 4
TCP 172.16.11.182:139 0.0.0.0:0 LYTTE 4
Dette er en sikker giveaway at serveren er konfigurert som en filserver med delte mapper på det for disse to porter (og to andre oppført nedenfor) blir brukt av Server Message Block (SMB) protokollen (Microsofts fildelingsprotokollen) som følger:

  • UDP port 137 er lytteporten for NetBIOS-navnet Tjenesten
  • UDP port 138 er lytteporten for NETBIOS Datagram Tjenesten
  • TCP port 139 er lytteporten for NETBIOS Session Tjenesten
  • TCP port 445 er lytteporten for SMB over TCP /IP

    Med andre ord, de tre første portene er for SMB enn NBT (NetBIOS over TCP /IP) og den siste (nytt i Windows 2000 og senere) er for SMB direkte over TCP /IP.

    Så for å få tilgang til den eksterne serveren som en filserver, unntak må opprettes for disse fire porter i Windows-brannmuren. For å gjøre dette, Mary typer følgende kommandoer i ledeteksten vinduet åpent på den eksterne maskinen desktop:
    netsh firewall add portopening UDP 137 blah aktivere subnett
    netsh firewall legge portopening UDP 138 blah aktivere subnett
    netsh firewall legge portopening TCP 139 blah aktivere subnett
    netsh firewall legge portopening TCP 445 blah aktivere nettverks

    Hva er kult om denne tilnærmingen er at hvis hun åpner Windows-brannmuren fra Kontrollpanel på eksterne maskinen desktop , viser den Fil- og skriverdeling unntak som er aktivert (figur 2):


    Figur 2: Fil- og skriverdeling er aktivert på serveren

    Mary bør da kunne vise de delte mappene på den eksterne serveren rett og slett ved å klikke på Start, deretter Kjør og skrive \\\\ 172.16.11.182 og klikke OK.

    Konklusjon

    Mary kunne ha gjort henne livet enklere ved å konfigurere Windows-brannmur fra GUI stedet for å bruke Netsh siden hun var logget på i en ekstern skrivebordsøkt anyways med serveren, men da hun wouldn 't har hatt muligheten til å lære å bruke Netsh, en virkelig kul verktøy i administratorverktøykasse

    Et siste poeng: før Mary logget av henne RDC session hun skulle ha skrevet enda en kommando på serveren:

    netsh firewall add portopening TCP 3389 blah mulig for

    Ellers hun ikke vil være i stand til å koble til med RDC til den eksterne maskinen fordi når aktivert, blokkeres Remote Desktop sesjoner som standard!