PowerShellを使用してWindowsDefenderファイアウォールでドメインまたはWebサイトをブロックする方法は?
サードパーティのツールを使用せずに、Windowsで特定のWebサイト、ドメイン名、URL、またはIPアドレスへのアクセスをブロックするいくつかの方法を考えてみましょう。この例では、組み込みのWindows10ツールとPowerShell自動化機能を使用して特定のWebサイトをブロックしようとします。
通常、ネットワークルーター(インターネットへのアクセスに使用しているスイッチまたはWi-Fiアクセスポイント)またはサードパーティソフトウェア(コンテンツフィルター、DNSフィルターなど)でWebサイトをブロックする方が簡単です。
Windowsで特定のWebサイトをブロックする最も一般的な方法は、ホストを編集することです。 ファイル。通常、これは%windir%\ system32 \ drivers \ etc \にあります。 ディレクトリ。 hostsファイルには拡張子がないことに注意してください。
ホストを含むディレクトリへのパス ファイルはDataBasePathに設定されています レジストリキーの下のパラメータHKEY_LOCAL_MACHINE\ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters 。デフォルトでは、%SystemRoot%\ System32 \ drivers\etcです。
hostsファイルは、IPアドレスとDNS名の間のマッピングを手動で割り当てるために使用されます。名前を解決する場合、ホストはネットワーク接続設定で指定されたDNSサーバーよりも優先されます。
特定のWebサイト(たとえば、facebook.com)をブロックするには、hostsファイルを(管理者権限で)開き、次のような文字列を追加します。
127.0.0.1 facebook.com 127.0.0.1 www.facebook.com
ファイルを保存してコンピュータを再起動します(またはコマンドipconfig /flushdns
を使用してDNSキャッシュをクリアします 。
その後、任意のブラウザでfacebook.comを開こうとすると、「ページが見つかりません」/「ページが利用できません」というメッセージが表示されます。
次のような.batファイルを使用して、WebサイトのURLを含む新しい行をhostsファイルに追加できます。
@echo off
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
または、次のPowerShell関数を使用して、hostsファイル内の特定のWebサイトを自動的にブロックできます。
Function BlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If(-not $is_blocked) {
$hoststr="127.0.0.1 ” + $Url
Add-Content -Path $hosts -Value $hoststr
}
}
Function UnBlockSiteHosts ( [Parameter(Mandatory=$true)]$Url) {
$hosts = 'C:\Windows\System32\drivers\etc\hosts'
$is_blocked = Get-Content -Path $hosts |
Select-String -Pattern ([regex]::Escape($Url))
If($is_blocked) {
$newhosts = Get-Content -Path $hosts |
Where-Object {
$_ -notmatch ([regex]::Escape($Url))
}
Set-Content -Path $hosts -Value $newhosts
}
}
ブロックされたURLのリストにWebサイトを追加するには、次のコマンドを実行します。
BlockSiteHosts ("twitter.com")
Webサイトのブロックを解除するには、次のコマンドを実行します:
UnBlockSiteHosts ("twitter.com")
DNSフィルタリングを使用してWebサイトをブロックする
クライアントが同じDNSサーバーを使用している場合、同じように、そのDNSにDNSエントリを作成し、その中に127.0.0.1のようなものを指定することで、特定のWebサイトをブロックできます。ちなみに、ほとんどの商用DNSコンテンツフィルター(OpenDNS、SafeDNS、Cisco Umbrellaなど)は同じ原則を使用しています。
WindowsDefenderファイアウォールでWebサイトのIPアドレスをブロックする方法
また、組み込みのWindows Defenderファイアウォールを使用して、一部のWebサイトをブロックできます。この方法の主な欠点は、ブロックルールでドメインの名前またはWebサイトのURLを使用できないことです。 Windows Defender Firewallでは、送信元/宛先としてIPアドレスまたはサブネットのみを指定できます。
まず、ブロックするWebサイトのIPアドレスを取得する必要があります。 nslookupを使用すると簡単に実行できます コマンド:
nslookup twitter.com
ご覧のとおり、このコマンドはWebサイトに割り当てられたいくつかのIPアドレスを返しました。それらすべてをブロックする必要があります。
Windows Defenderファイアウォール管理スナップインを実行します(コントロールパネル\すべてのコントロールパネルアイテム\WindowsDefenderファイアウォール\詳細設定またはfirewall.cplを実行します 。
アウトバウンドルール セクションで、次の設定を使用して新しいルールを作成します。
- ルールタイプ :カスタム
- プログラム :すべてのプログラム
- プロトコルタイプ :任意
- 範囲 :「このルールはどのリモートIPアドレスに適用されますか?」セクション「これらのIPアドレス」->「追加」を選択します。次のウィンドウで、ブロックするIPアドレス、サブネット、またはIPアドレスの範囲を入力します。
[OK]->[次へ]->[アクション]->[接続をブロックする]をクリックします 。
ルールが適用されるファイアウォールプロファイルのウィンドウにあるすべてのオプションをそのままにします。次に、ルール名を指定して保存します。
その後、Windows Defenderファイアウォールは、指定されたWebサイトのIPアドレスへのすべての送信接続をブロックします。ブロックされたサイトに接続しようとすると、ブラウザに次のメッセージが表示されます。
Unable to connect
または
Your Internet access is blocked Firewall or antivirus software may have blocked the connection ERR_NETWORK_ACCESS_DENIED
ADドメインでは、Windowsファイアウォールポリシーを展開して、GPOを使用するユーザーコンピューター上のWebサイトへのアクセスをブロックできます。しかし、それは合理的ではありません。インターネットアクセスルーター(ゲートウェイ)でWebサイトをフィルタリングすることをお勧めします。
PowerShellを使用してファイアウォールルールを作成し、ドメイン名またはIPアドレスでWebサイトをブロックする
PowerShellを使用してWebサイトへの接続をブロックするファイアウォールルールを作成することもできます:
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress 104.244.42.129, 104.244.42.0/24
「ルールはストアから正常に解析されました」という文字列は、新しいファイアウォールルールが正常に適用されたことを意味します。これは、WindowsDefenderファイアウォールのグラフィカルインターフェイスにあります。
Webサイト名を手動でIPアドレスに解決しないようにするには、 Resolve-DnsNameを使用できます。 WebサイトのIPアドレスを取得するためのPowerShellコマンドレット:
Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress
したがって、Webサイトの名前をIPアドレスに変換し、ファイアウォール設定にブロックルールを追加できます。
$IPAddress = Resolve-DnsName "twitter.com"| Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Site" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress
そのため、複数のWebサイトのブロックルールをWindowsファイアウォールに一度に追加できるようになりました。
$SitesToBlock = "facebook.com","instagram.com","youtube.com"
$IPAddress = $SitesToBlock | Resolve-DnsName -NoHostsFile | Select-Object -ExpandProperty IPAddress
New-NetFirewallRule -DisplayName "Block Web Sites" -Direction Outbound –LocalPort Any -Protocol Any -Action Block -RemoteAddress $IPAddress
–NoHostsFileを追加しました 解決にhostsファイルを使用しないようにするためのResolve-DnsNameコマンドレットのパラメーター。
ブロックアウトバウンドルールがWindowsファイアウォールコンソールに表示されていることを確認しましょう。
この記事は主に脳のトレーニング演習です。企業ネットワークでは、インターネットアクセスゲートウェイ、ルーター、またはプロキシサーバーでWebサイトフィルタリングを使用する必要があります。ホストレベルのブロッキングはあまり効果的ではありません。
-
Windows ファイアウォールでプログラムをブロックする方法 (Windows 10)。
場合によっては、セキュリティ上の理由またはその他の理由で、Windows ファイアウォールを介してプログラムをブロックする必要があります。ファイアウォールでプログラムをブロックすると、インターネットまたはローカル ネットワークへのアクセスが許可されなくなります。 Windows 10 の Defender ファイアウォールは、ネットワークまたはインターネットと通信できるプログラムまたはサービスを指定できるようにすることで、デバイスを保護するのに役立ちます。 Windows ファイアウォールでプログラムをブロックすることは、特定のプログラムを自動的に更新したり、他のユーザーが使用したりしたく
-
Microsoft Defender で PC を保護する方法
それは、テクノロジーの世界のワイルドでワイルドな西部です。技術変化の加速に伴い、多くの技術革新が間近に迫っています。しかし、悪意のあるハッカーが絶え間なく新たな抜け穴を見つけようとすることで、マルウェアによる妨害が大幅に増加することも予想されます。 私たちの言葉を鵜呑みにしないでください。 「新しい IDG Research Services によると、IT および IT セキュリティのシニア リーダーの 80% 近くが、2020 年に IT セキュリティへの投資を増やして分散型 IT や在宅勤務の課題に対処したにもかかわらず、組織はサイバー攻撃に対する十分な保護を欠いていると考えています