Zde je několik způsobů, jak vám zabránit v přístupu na konkrétní weby, adresy URL a adresy IP v systému Windows bez použití programů třetích stran. Obvykle je nejúčinnější nakonfigurovat blokování stránek na úrovni síťové brány (router, router, přístupový bod Wi-Fi, přes který přistupujete k Internetu), nebo pomocí softwaru třetích stran (filtry obsahu, filtry DNS atd.). V našem případě se pokusíme zablokovat konkrétní web pomocí vestavěných nástrojů systému Windows 10 a automatizace PowerShell.
Obsah:
- Blokujte weby ve Windows pomocí souboru hosts
- Blokování webů pomocí DNS
- Blokujeme IP adresu webu v bráně Windows Firewall
- PowerShell: pravidla pro blokování webů podle jména a adresy IP v bráně Windows Firewall
Blokujte weby ve Windows pomocí souboru hosts
Nejznámějším způsobem, jak blokovat konkrétní web v systému Windows, je úprava souboru. hostitelé. Obvykle je soubor v adresáři % windir% \ system32 \ drivers \ etc \. Soubor hosts nemá příponu.
Cesta k adresáři se souborem hosts je nastavena v parametru DataBasePath ve větvi registru HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters. Ve výchozím nastavení je to% SystemRoot% \ System32 \ drivers \ etc.Soubor hosts se používá k ručnímu přiřazení mapování mezi adresy IP a názvy DNS. Při překládání názvů má soubor hosts přednost před servery DNS uvedenými v nastavení síťového připojení.,
Chcete-li zablokovat konkrétní web (například ok.ru), otevřete soubor hosts pro úpravy (s právy správce) a přidejte řádky formuláře:
127.0.0.1 ok.ru
127.0.0.1 www.ok.ru
Uložte soubor a restartujte počítač (nebo vymažte mezipaměť DNS příkazem: ipconfig / flushdns
).
Poté, když se pokusíte otevřít web ok.ru v libovolném prohlížeči, zobrazí se zpráva „Stránka nenalezena“ / „Stránka není k dispozici“..
Pomocí souboru bat můžete přidat nové řádky z adres URL webů do souboru hosts:
@echo vypnuto
set hostspath =% windir% \ System32 \ drivers \ etc \ hosts
echo 127.0.0.1 www.facebook.com >>% hostspath%
echo 127.0.0.1 facebook.com >>% hostspath%
exit
Nebo můžete použít následující funkce PowerShell k automatizaci blokování (odblokování) určitých webů v seznamu zakázaných domén v souboru hosts.
Function BlockSiteHosts ([Parameter (Povinný = $ true)] $ Url)
$ hosts = 'C: \ Windows \ System32 \ drivers \ etc \ hosts'
$ is_blocked = Získat obsah - hostitelé $ $ |
Select-String -Pattern ([regex] :: Escape ($ Url))
Pokud (-not $ is_blocked)
$ hoststr = "127.0.0.1" + $ URL
Add-Content -Path $ hosts -Value $ hoststr
Funkce UnBlockSiteHosts ([Parameter (povinně = $ true)] $ URL)
$ hosts = 'C: \ Windows \ System32 \ drivers \ etc \ hosts'
$ is_blocked = Získat obsah - hostitelé $ $ |
Select-String -Pattern ([regex] :: Escape ($ Url))
Pokud ($ is_blocked)
$ newhosts = Get-Content -Path $ hosts |
Where-Object
$ _ -notmatch ([regex] :: Escape ($ Url))
Set-Content -Path $ hosts -Value $ newhosts
Nyní k přidání konkrétního webu k blokovaným serverům stačí provést tuto funkci:
BlockSiteHosts ("vk.com")
Chcete-li web odemknout, spusťte:
UnBlockSiteHosts ("vk.com")
Blokování webů pomocí DNS
Pokud vaši klienti používají stejný server DNS, můžete podobně blokovat určité weby vytvořením záznamu DNS v tomto serveru DNS, který ukazuje na 127.0.0.1 (nebo něco podobného). Tímto principem mimochodem funguje většina komerčních filtrů obsahu DNS (OpenDNS, SkyDNS, Yandex.DNS atd.).
Blokujeme IP adresu webu v bráně Windows Firewall
Určité weby můžete také blokovat pomocí vestavěné brány Windows Firewall. Hlavní nevýhoda této metody spočívá v tom, že v pravidlu blokování nelze použít název domény nebo webu. Brána Windows Firewall jako zdroj / cíl umožňuje zadat pouze IP adresu nebo podsíť.
Nejprve musíte určit IP adresu webu, který chcete zablokovat. Nejjednodušší způsob, jak toho dosáhnout, je pomocí příkazu nslookup.
nslookup ok.ru
Jak můžete vidět ve výsledcích příkazu, existuje několik IP adres, které jsou přiřazeny k webu. Musíte je všechny zablokovat.
Nyní musíte spustit panel nastavení brány Windows Firewall (Ovládací panely \ Všechny položky ovládacího panelu \ Windows Defender Firewall \ Pokročilá nastavení nebo firewall.cpl).
V sekci „Odchozí pravidla„Vytvořte nové pravidlo s následujícími parametry:
- Typ pravidla: Přizpůsobitelné;
- Program: Všechny programy;
- Typ protokolu: Jakékoli;
- Oblast: v části „Určit vzdálené adresy IP, na které se toto pravidlo vztahuje“ vyberte „Určené adresy IP“ -> Přidat. V okně, které se otevře, zadejte IP adresy, podsítě IP nebo rozsah IP adres webů, které chcete zablokovat.
Klikněte na OK-> Další -> Akce: “Blokovat připojení“.
V okně se seznamem profilů brány firewall, na které se toto pravidlo vztahuje, ponechte všechny možnosti. Zbývá určit název pravidla a uložit jej.
Brána Windows Defender Firewall poté zablokuje všechna připojení k tomuto webu. Při připojení k blokovanému webu se v prohlížeči zobrazí chyba:
Nelze se připojit
nebo
Přístup k internetu je uzavřen
Připojení může být blokováno bránou firewall nebo antivirovým softwarem..
ERR_NETWORK_ACCESS_DENIED
V doméně AD můžete distribuovat zásady blokování webů pomocí GPO do počítačů uživatelů. Ale znovu, to je nepraktické. Filtrujte weby správně na přístupové bráně k Internetu.
PowerShell: pravidla pro blokování webů podle jména a adresy IP v bráně Windows Firewall
Můžete také použít PowerShell k vytvoření pravidla brány firewall, které blokuje odchozí připojení k určitému webu:
New-NetFirewallRule -DisplayName "Block Site" - Outbound Direction -LocalPort Any -Protocol Any -Action Block -RemoteAddress 217.20.147.1, 217.20.141.0/26
Řádek „Pravidlo bylo úspěšně analyzováno z úložiště“ znamená, že pravidlo, které bylo nové pravidlo brány firewall úspěšně použito. Najdete ji v GUI Firewallu Windows.
Chcete-li se vyhnout manuálnímu překládání názvu webu na adresy IP, můžete použít rutinu PowerShell Vyřešte-DnsName získat adresy IP stránek.
Vyřešte-DnsName "ok.ru" | Vyberte objekt -expandProperty IPAddress
Můžeme tedy převést doménové jméno na IP adresy a okamžitě přidat pravidlo odepření, které zabrání přístupu na web:
$ IPAddress = Resolve-DnsName "ok.ru" | Vyberte objekt -expandProperty IPAddress
New-NetFirewallRule - DisplayName "Block Site" - Outbound Direction -LocalPort Any -Protocol Any -Action Block -RemoteAddress $ IPAddress
Ukázalo se, že nyní můžete přidat pravidlo odmítnutí pro bránu Windows Firewall pro několik webů najednou:
$ SitesToBlock = “lenta.ru”, “mail.ru”, “facebook.com”
$ IPAddress = $ SitesToBlock | Vyřešte název_druhu -NoHostsFile | Vyberte objekt -expandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Web Sites" - Přesměrování odchozí -LocalPort Any -Protocol Any -Action Block -RemoteAddress $ IPAddress
Pro rutinu Resolve-DnsName jsem přidal parametr -NoHostsFile, abyste při kontrole nepoužívali soubor hosts.
Ověřme, že se v konzoli objevilo pravidlo blokování odchozích.
Tento článek je primárně cvičení pro mysl. V podnikové síti musíte omezit přístup k webům pomocí filtrování na úrovni brány pro přístup k internetu nebo serveru proxy. Blokování na úrovni hostitele není tak efektivní.