Hogyan blokkolhatjuk a Windows hozzáférését egy webhelyhez a PowerShell használatával

Íme néhány módszer, amellyel megtagadhatja a hozzáférést az egyes webhelyekhez, URL-ekhez és IP-címekhez a Windows rendszeren harmadik fél által használt programok használata nélkül. Általában a webhely blokkolása a leghatékonyabb a hálózati átjáró szintjén (útválasztó, útválasztó, Wi-Fi hozzáférési pont, amelyen keresztül hozzáfér az internethez), vagy harmadik féltől származó szoftverekkel (tartalomszűrők, DNS-szűrők stb.). Esetünkben megpróbálunk blokkolni egy adott webhelyet a beépített Windows 10 eszközök és a PowerShell automatizálás segítségével.

Tartalom:

  • A Windows webhelyek blokkolása a gazdagép fájl használatával
  • Webhelyek blokkolása a DNS-en keresztül
  • Blokkoljuk a webhely IP-címét a Windows tűzfalon
  • PowerShell: a webhelyek név és IP-cím szerinti blokkolásának szabályai a Windows tűzfalon

A Windows webhelyek blokkolása a gazdagép fájl használatával

Egy adott webhely blokkolásának legismertebb módja a Windows szerkesztése. hosts. A fájl általában a könyvtárban található % windir% \ system32 \ meghajtók \ stb \. Vegye figyelembe, hogy a gazdagép fájlnak nincs kiterjesztése.

A gazdagép fájl könyvtárához vezető utat a paraméter állítja be DatabasePath a regisztrációs ágban HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters. Alapértelmezés szerint ez a% SystemRoot% \ System32 \ drivers \ etc.

A hosts fájl arra szolgál, hogy manuálisan rendeljen hozzárendeléseket az IP-címek és a DNS-nevek között. A nevek feloldásakor a gazdagép fájl elsőbbséget élvez a hálózati kapcsolat beállításaiban megadott DNS-kiszolgálókkal szemben.,

Egy adott webhely (például az ok.ru) blokkolásához nyissa meg a hosts fájlt szerkesztésre (rendszergazdai jogokkal), és adjon hozzá sor űrlapot:

127.0.0.1 ok.ru
127.0.0.1 www.ok.ru

Mentse el a fájlt és indítsa újra a számítógépet (vagy ürítse ki a DNS-gyorsítótárat a következő paranccsal: ipconfig / flushdns).

Ezután, amikor megpróbál valamelyik böngészővel megnyitni az ok.ru weboldalt, megjelenik az „Oldal nem található” / „Az oldal nem érhető el” üzenet..

Új sorokat adhat hozzá a webhelyek URL-jeiből a host fájlhoz egy ilyen bat fájl segítségével:

@echo ki
set hostspath =% windir% \ System32 \ drivers \ etc \ hosts
echo 127.0.0.1 www.facebook.com >>% hostspath%
echo 127.0.0.1 facebook.com >>% hostspath%
kijárat

Vagy a következő PowerShell-funkciókat is használhatja egyes gépek webhelyek blokkolásának (feloldásának) automatizálására a host fájlban a tiltott domainek listájában.

Function BlockSiteHosts ([Paraméter (kötelező = $ true)] $ URL)
$ hosts = 'C: \ Windows \ System32 \ driver \ etc \ hosts'
$ is_blocked = Get-Content -Path $ gazdagépek |
Select-String -Pattern ([regex] :: Escape ($ Url))
Ha (nem $ blokkolva van)
$ hoststr = "127.0.0.1" + $ URL
Kiegészítő tartalom -Path $ hosts -Value $ hoststr

UnBlockSiteHosts funkció ([Paraméter (kötelező = $ true)] $ URL)
$ hosts = 'C: \ Windows \ System32 \ driver \ etc \ hosts'
$ is_blocked = Get-Content -Path $ gazdagépek |
Select-String -Pattern ([regex] :: Escape ($ Url))
If ($ blokkolva)
$ newhosts = Get-Content -Path $ házigazdák |
Hol-objektum
$ _ -notmatch ([regex] :: Escape ($ URL))

Set-Content -Path $ hosts -Value $ newhosts

Ahhoz, hogy egy adott webhelyet hozzáadjunk a blokkolt webhelyekhez, elegendő a funkció végrehajtása:

BlockSiteHosts ("vk.com")

A webhely feloldásához futtassa:

UnBlockSiteHosts ("vk.com")

Webhelyek blokkolása a DNS-en keresztül

Ha az ügyfelek ugyanazt a DNS-kiszolgálót használják, hasonlóképpen blokkolhat bizonyos webhelyeket egy DNS-rekord létrehozásával az adott DNS-ben, mutatva a 127.0.0.1 (vagy valami hasonló) mutatóra. Ezen elv szerint egyébként a legtöbb kereskedelmi DNS-tartalomszűrő működik (OpenDNS, SkyDNS, Yandex.DNS stb.).

Blokkoljuk a webhely IP-címét a Windows tűzfalon

Bizonyos webhelyeket a beépített Windows tűzfal segítségével is blokkolhat. Ennek a módszernek a legfőbb hátránya, hogy nem használhatja a domain vagy a webhely nevét a blokkoló szabályban. A Windows tűzfal forrásként / célként lehetővé teszi, hogy csak egy IP-címet vagy alhálózatot adjon meg.

Először meg kell határoznia a blokkolni kívánt webhely IP-címét. Ennek legegyszerűbb módja az nslookup parancs.

nslookup ok.ru

Amint a parancs eredményéből kitűnik, számos IP-cím van hozzárendelve a webhelyhez. Mindet blokkolni kell.

Most el kell indítania a Windows tűzfal beállításait (Vezérlőpult \ Minden Vezérlőpult elem \ Windows Defender tűzfal \ Speciális beállítások vagy firewall.cpl).

A „Kimenő szabályokHozzon létre egy új szabályt a következő paraméterekkel:

  • Szabály típusa: Testreszabható;
  • A program: Minden program;
  • Protokoll típusa: Bármely;
  • vidék: a „Adja meg a távoli IP-címeket, amelyekre ez a szabály vonatkozik” szakaszban válassza a „megadott IP-címek” -> Hozzáadás elemet. A megnyíló ablakban adja meg az IP-címeket, az IP-alhálózatokat vagy a blokkolni kívánt webhelyek IP-címtartományát.

Kattintson az OK-> Következő -> Művelet: “Blokkolja a kapcsolatot".

A tűzfalprofilok listájának ablakában, amelyre ez a szabály vonatkozik, hagyjon minden lehetőséget. Meg kell határoznia a szabály nevét, és el kell mentenie.

Ezt követően a Windows Defender tűzfal letiltja a webhely összes csatlakozását. Ha csatlakozik egy blokkolt webhelyhez, hiba jelenik meg a böngészőben:

Nem lehet csatlakozni

vagy

Az internet-hozzáférés zárva van
A kapcsolatot tűzfalak vagy víruskereső szoftverek blokkolhatják..
ERR_NETWORK_ACCESS_DENIED

Az AD tartományban eloszthatja a blokkoló webhely házirendjét GPO segítségével a felhasználók számítógépére. De ismét, ez gyakorlatlan. Helyesebben szűrje a webhelyeket az internet-hozzáférési átjárón.

PowerShell: a webhelyek név és IP-cím szerinti blokkolásának szabályai a Windows tűzfalon

A PowerShell használatával létrehozhat egy tűzfalszabályt is, amely blokkolja az adott webhelyhez tartozó kimenő kapcsolatokat:

Új-NetFirewallRule -DisplayName "Block Site" -Kirányi kimenő -LocalPort Any -Protocol Any -Action Block -RemoteAddress 217.20.147.1, 217.20.141.0/26

A „A szabály sikeresen elemezte a boltból” sor azt jelzi, hogy az új tűzfalszabályt sikeresen alkalmazták. Megtalálhatja a Windows tűzfal GUI-jában.

Annak elkerülése érdekében, hogy egy webhelynevet kézzel oldja meg az IP-címekkel, használhatja a PowerShell-parancsmagot Resolve-DnsName hogy megszerezzék a webhelyek IP-címeit.

Resolve-DnsName "ok.ru" | Select-Object -ExpandProperty IPAddress

Így konvertálhatjuk a domain nevet IP-címekké, és azonnal hozzáadhatunk egy tagadási szabályt a webhelyhez való hozzáférés letiltásához:

$ IPAddress = Resolve-DnsName "ok.ru" | Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Site" -Kirányi kimenő -LocalPort Bármely -Protokoll bármilyen -Action Block -RemoteAddress $ IPAddress

Kiderült, hogy most már egyszerre több webhelyhez is hozzáadhat egy tagadási szabályt a Windows tűzfalhoz:

$ SitesToBlock = “lenta.ru”, “mail.ru”, “facebook.com”
$ IPAddress = $ SitesToBlock | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress
Új-NetFirewallRule -DisplayName "Webhelyek blokkolása" -Kirányi kimenő -LocalPort Bármely -Protokoll Bármely -Műveleti blokkoló -RemoteAddress $ IPAddress

A Resolve-DnsName parancsmaghoz hozzáadtam egy paramétert -NoHostsFile, hogy ne használja a host fájlt az ellenőrzés során.

Ellenőrizzük, hogy a kimenő zárolási szabály megjelent-e a konzolban.

Ez a cikk elsősorban az elme edzése. Vállalati hálózaton a webhelyekhez való hozzáférés korlátozása érdekében szűrést kell használnia az Internet-hozzáférési átjáró vagy proxy-kiszolgáló szintjén. A host szintű blokkolás nem olyan hatékony.