Kako blokirati pristup web mjestu u sustavu Windows pomoću PowerShell-a

Evo nekoliko načina pomoću kojih možete zabraniti pristup određenim web lokacijama, URL-ovima i IP adresama u sustavu Windows bez upotrebe programa treće strane. Obično je najučinkovitije konfigurirati blokadu web mjesta na razini mrežnog prolaza (usmjerivač, usmjerivač, Wi-Fi pristupna točka putem koje pristupate internetu) ili pomoću softvera treće strane (sadržajni filtri, DNS filtri itd.). U našem slučaju pokušat ćemo blokirati određeno web mjesto pomoću ugrađenih alata Windows 10 i PowerShell automatizacije.

sadržaj:

  • Blokirajte web mjesta u sustavu Windows pomoću datoteke host
  • Blokiranje web-lokacija putem DNS-a
  • Blokiramo IP adresu web mjesta u Windows vatrozidu
  • PowerShell: pravila za blokiranje web mjesta prema imenu i IP adresi u vatrozidu sustava Windows

Blokirajte web mjesta u sustavu Windows pomoću datoteke host

Najbolji poznati način za blokiranje određene web lokacije u sustavu Windows jest uređivanje datoteke. domaćini. Obično se datoteka nalazi u direktoriju % windir% \ system32 \ vozači \ itd \. Imajte na umu da host datoteka nema proširenje.

Put do mape s datotekom host postavljen je u parametru DataBasePath u podružnici registra HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parametri. Prema zadanim postavkama ovo je% SystemRoot% \ System32 \ drivers \ itd.

Datoteka domaćin koristi se za ručno dodjeljivanje preslikavanja između IP adresa i DNS imena. Kod rješavanja imena, host datoteka ima prednost nad DNS poslužiteljima navedenim u postavkama mrežne veze.,

Da biste blokirali određenu web lokaciju (na primjer, ok.ru), otvorite datoteku domaćina za uređivanje (s administratorskim pravima) i dodajte retke obrasca:

127.0.0.1 ok.ru
127.0.0.1 www.ok.ru

Spremite datoteku i ponovno pokrenite računalo (ili očistite predmemoriju DNS-a pomoću naredbe: ipconfig / flushdns).

Nakon toga, kada pokušate otvoriti web stranicu ok.ru u bilo kojem pregledniku, pojavit će se poruka "Stranica nije pronađena" / "Stranica nije dostupna"..

Možete dodati nove retke iz URL-a web mjesta u datoteku s hostima pomoću takve datoteke bat:

@echo isključeno
postaviti hostspath =% windir% \ System32 \ driver \ etc \ hosts
echo 127.0.0.1 www.facebook.com >>% hostspath%
odjek 127.0.0.1 facebook.com >>% hostpath%
izlaz

Ili možete koristiti sljedeće funkcije PowerShell da automatizirate blokiranje (deblokiranje) određenih web lokacija na popisu zabranjenih domena u datoteci s domaćinima.

Funkcija BlockSiteHosts ([Parameter (Obvezno = $ true)] $ Url)
$ hosts = 'C: \ Windows \ System32 \ upravljački programi \ etc \ hosts'
$ is_blocked = Get-Content -Path $ domaćini |
Select-string -Pattern ([regex] :: Escape ($ Url))
Ako je (-not $ is_blokiran)
$ hoststr = "127.0.0.1" + $ URL
Add-Content -Path $ hosts -Value $ hoststr

Funkcija UnBlockSiteHosts ([Parameter (Obvezno = $ true)] $ Url)
$ hosts = 'C: \ Windows \ System32 \ upravljački programi \ etc \ hosts'
$ is_blocked = Get-Content -Path $ domaćini |
Select-string -Pattern ([regex] :: Escape ($ Url))
Ako je ($ is_blokirano)
$ newhosts = Get-Content -Path $ domaćini |
Gdje-objekt
$ _ -notmatch ([regex] :: Escape ($ Url))

Set-Content -Path $ host -Value $ newhosts

Sada, za dodavanje određenog web mjesta blokiranim, dovoljno je izvršiti funkciju:

BlockSiteHosts ("vk.com")

Da biste otključali web mjesto, pokrenite:

UnBlockSiteHosts ("vk.com")

Blokiranje web-lokacija putem DNS-a

Ako vaši klijenti koriste isti DNS poslužitelj, na sličan način možete blokirati određene stranice tako što ćete stvoriti DNS zapis u tom DNS-u, pokazujući na 127.0.0.1 (ili nešto slično). Prema ovom principu, usput, rade većina komercijalnih filtera sadržaja DNS-a (OpenDNS, SkyDNS, Yandex.DNS itd.).

Blokiramo IP adresu web mjesta u Windows vatrozidu

Također možete blokirati određene web lokacije pomoću ugrađenog Windows vatrozida. Glavni nedostatak ove metode je što u pravilu blokiranja ne možete koristiti naziv domene ili web lokacije. Windows vatrozid kao izvor / odredište omogućuje vam da odredite samo IP adresu ili podmrežu.

Prvo morate odrediti IP adresu web mjesta koje želite blokirati. Najlakši način za to je pomoću naredbe nslookup.

nslookup ok.ru

Kao što možete vidjeti u rezultatima naredbe, postoji nekoliko IP adresa koje su dodijeljene web mjestu. Morate ih sve blokirati.

Sada trebate pokrenuti Windows postavke zaštitnog zida (upravljačka ploča \ Sve stavke upravljačke ploče \ Vatrozid Windows Defender \ Napredne postavke ili firewall.cpl).

U odjeljku "Izlazna pravila"Stvorite novo pravilo sa sljedećim parametrima:

  • Vrsta pravila: Prilagodljiv;
  • Program: Svi programi;
  • Vrsta protokola: Bilo koji;
  • regija: u odjeljku "Određivanje udaljenih IP adresa na koje se primjenjuje ovo pravilo" odaberite "Određene IP adrese" -> Dodaj. U prozoru koji se otvori navedite IP adrese, IP podmreže ili raspon IP adresa web mjesta koja želite blokirati.

Kliknite U redu-> Dalje -> Akcija: “Blok veza".

U prozoru s popisom profila vatrozida na koje se primjenjuje ovo pravilo ostavite sve mogućnosti. Ostaje odrediti naziv pravila i spremiti ga.

Nakon toga, vatrozid Windows Defender blokirat će sve veze na ovu stranicu. Prilikom povezivanja s blokiranom web-lokacijom pojavit će se pogreška u pregledniku:

Povezivanje nije moguće

ili

Pristup internetu je zatvoren
Veza može biti blokirana vatrozidom ili antivirusnim softverom..
ERR_NETWORK_ACCESS_DENIED

U domeni AD možete distribuirati pravila o blokadi web mjesta pomoću GPO-a na računala korisnika. Ali još jednom, ovo je nepraktično. Ispravno filtrirajte web mjesta na pristupnom internetu.

PowerShell: pravila za blokiranje web mjesta prema imenu i IP adresi u vatrozidu sustava Windows

Također možete koristiti PowerShell za izradu pravila vatrozida koji blokira odlazne veze na određeno web mjesto:

New-NetFirewallRule -DisplayName "Blokiraj web mjesto" - Izlazni odlazni -LocalPort Bilo -Protocol Bilo koji - Blok djelovanja - Ukloni Adresu 217.20.147.1, 217.20.141.0/26

Redak "Pravilo je uspješno raščlanjeno iz trgovine" ukazuje da je pravilo uspješno primijenjeno novo pravilo vatrozida. Možete ga pronaći u GUI zaštitnog zida Windows.

Da biste izbjegli rješavanje imena web mjesta na IP adrese ručno, možete koristiti PowerShell cmdlet Rješavanje-dnsname da biste dobili IP adrese web mjesta.

Razriješi-DnsName "ok.ru" | IP-adresa Select-Object -ExpandProperty

Dakle, možemo pretvoriti naziv domene u IP adrese i odmah dodati pravilo zabrane da blokiramo pristup web mjestu:

$ IPAddress = Resolve-DnsName "ok.ru" | IP-adresa Select-Object -ExpandProperty
New-NetFirewallRule -DisplayName "Blokiraj web mjesto" - Izlazni odlazni -LocalPort Bilo -Protocol Bilo koji - Blok djelovanja - UkloniAddress $ IPAdress

Ispada da sada Windows Firewall možete dodati pravilo za odbijanje za nekoliko web lokacija odjednom:

$ SitesToBlock = "lenta.ru", "mail.ru", "facebook.com"
$ IPAddress = $ SitesToBlock | Razriješi-DnsName -NoHostsFile | IP-adresa Select-Object -ExpandProperty
New-NetFirewallRule -DisplayName "Blokiraj web stranice" - Izlazni izlaz -LocalPort Bilo -Protocol Bilo koji - Blok djelovanja - Ukloni adresu $ IPAdress

Za cmdlet Resolve-DnsName dodao sam parametar -NoHostsFile, kako se prilikom provjere ne koristi host datoteka.

Provjerimo da se pravilo blokiranja za izlaz pokazalo u konzoli.

Ovaj je članak prvenstveno vježba za um. U korporativnoj mreži, da biste ograničili pristup web mjestima, trebate koristiti filtriranje na razini internetskog pristupnika ili proxy poslužitelja. Blokiranje na razini domaćina nije tako učinkovito.