Windowsでローカルユーザーアカウントによるリモートネットワークアクセスをブロックする方法
Active Directory環境において、ローカルアカウント(ローカル管理者アカウントを含む)を使用してネットワーク経由で他のコンピューターにアクセスすることは、さまざまな理由から推奨されていません。多くのコンピューターで同じローカル管理者のユーザー名とパスワードが使い回されているケースが多く、1台でも侵害されると複数のデバイスが危険にさらされる可能性があります(いわゆるPass-the-Hash攻撃の脅威)。さらに、ローカルアカウントによるネットワークリソースへのアクセスは、ADドメインコントローラーにイベントが記録されないため、個人を特定した監査や一元的な監視が困難という問題もあります。
従来の対策とその限界
このリスクを軽減する手段として、管理者はWindowsの既定のローカルAdministratorアカウントの名前を変更したり、ドメイン内の全コンピューターのローカル管理者パスワードを定期的に自動変更できるMicrosoftの「LAPS(Local Administrator Password Solution)」ツールを活用したりできます。しかし、これらの対策では、1台のコンピューターに複数のローカルアカウントが存在しうるため、すべてのローカルユーザーアカウントのネットワークアクセスを制限するという課題は解決できません。
ローカルアカウントのネットワークアクセスを制限するには、「ネットワーク経由でこのコンピューターへのアクセスを拒否する(Deny access to this computer from the network)」ポリシーが利用できます。ただし、このポリシーでは、アクセスを拒否したいすべてのアカウントを明示的に列挙する必要がありました。
新しい組み込みセキュリティグループ(S-1-5-113 / S-1-5-114)
Windows 8.1およびWindows Server 2012 R2以降では、新しいwell-knownセキュリティグループが2つ追加されました。一方はすべてのローカルユーザーを含み、もう一方は管理者権限を持つすべてのローカルアカウントを含みます。
| S-1-5-113 | NT AUTHORITY\Local account | すべてのローカルアカウント |
| S-1-5-114 | NT AUTHORITY\Local account and member of Administrators group | 管理者権限を持つすべてのローカルアカウント |
これらのグループは、ローカルアカウントでコンピューターにログオンする際に、ユーザーのアクセストークンへ自動的に追加されます。共通のSIDを利用できるようになったことで、個別のアカウントを列挙せずにローカルアカウント全般のアクセスを一括制限できるようになりました。
セキュリティグループの割り当てを確認する
Windows 10 / Windows Server 2016環境で、ローカル管理者アカウントに新しいセキュリティグループ(NT AUTHORITY\Local account(SID S-1-5-113)およびNT AUTHORITY\Local account and member of Administrators group(SID S-1-5-114))が割り当てられているかどうかは、次のコマンドで確認できます。
whoami /all
なお、Windows 7 / 8 および Windows Server 2008 R2 / Windows Server 2012でも、更新プログラム KB2871997(2014年6月公開)を適用すれば、これらの組み込みローカルセキュリティグループを利用可能です。
PowerShellでSIDの存在を確認する
次のPowerShellスクリプトを使えば、お使いのWindowsデバイスにこれらのセキュリティグループが存在するかどうかをSIDで確認できます。
$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-113")
$objAccount = $objSID.Translate([System.Security.Principal.NTAccount])
$objAccount.Value
スクリプトの出力として NT Authority\Local account が返された場合、そのコンピューターにはS-1-5-113のSIDを持つローカルグループが存在します。
GPOでローカルアカウントのアクセスを制限する
これらのSIDをトークンに持つローカルユーザーアカウントによるリモートネットワークアクセスをブロックするには、GPOの以下のセクションにある設定を使用します。
コンピューターの構成 → Windowsの設定 → セキュリティの設定 → ローカルポリシー → ユーザー権利の割り当て
RDP(リモートデスクトップ)アクセスをローカルユーザー・管理者に対して拒否する
「リモートデスクトップサービスを使ったログオンを拒否する(Deny log on through Remote Desktop Services)」ポリシーを使うと、リモートデスクトップ経由でのログオンを明示的に拒否するユーザーやグループを指定できます。ローカルアカウントとドメインアカウントのどちらに対してもRDPアクセスを拒否できます。
既定では、WindowsのRDPアクセスはAdministratorsグループとローカルのRemote Desktop Usersグループのメンバーに許可されています。
ローカルユーザー(ローカル管理者を含む)のみRDP接続を制限したい場合は、ローカルGPOエディター(gpedit.msc)を開きます。Active Directoryドメイン内のコンピューターに適用する場合は、ドメインのグループポリシー管理エディター(gpmc.msc)を使用してください。「ユーザー権利の割り当て」セクションに移動し、「リモートデスクトップサービスを使ったログオンを拒否する」ポリシーを編集します。
組み込みのローカルセキュリティグループ「Local account and member of Administrators group」と「Local account」をこのポリシーに追加し、次のコマンドでローカルグループポリシーを更新します。
gpupdate /force
拒否ポリシーは「リモートデスクトップサービスを使ったログオンを許可する(Allow log on through Remote Desktop Services)」ポリシーよりも優先されます。同じユーザーやグループが両方のポリシーに含まれている場合、そのユーザーのRDPアクセスは拒否されます。
設定後、ローカルユーザーでRDP接続を試みると、次のようなエラーが表示されます。
リモートでサインインするには、リモートデスクトップサービスを使ってサインインする権限が必要です。既定では、Remote Desktop Usersグループのメンバーにはこの権限があります。所属するグループにこの権限がない場合、またはRemote Desktop Usersグループから権限が削除されている場合は、手動でこの権限を付与してもらう必要があります。
ネットワークからのコンピューターアクセスを拒否する
「ネットワーク経由でこのコンピューターへのアクセスを拒否する」ポリシーを使えば、ローカル資格情報によるネットワーク経由のコンピューターアクセスを拒否できます。
このポリシーにローカルグループ「Local account」と「Local account and member of Administrators group」を追加します。あわせて、匿名アクセスやゲストアカウントによるアクセスも常に拒否しておくことを推奨します。
ドメイン環境では、このポリシーを活用して、ワークステーションやドメインメンバーサーバーへのDomain AdminsおよびEnterprise Adminsセキュリティグループのアカウントによるアクセスを完全にブロックすることをお勧めします。これらの特権アカウントはドメインコントローラーへのアクセス専用とすべきです。これにより、管理者(特権)アカウントのハッシュ取得と権限昇格のリスクを低減できます。
ポリシー適用後は、いかなるローカルWindowsアカウントでもこのコンピューターへネットワーク経由でリモート接続できなくなります。ローカルアカウントで共有フォルダーへの接続やネットワークドライブのマップを試みると、次のエラーが表示されます。
Microsoft Windows Network: ログオン失敗: 要求されたログオンの種類は、このコンピューターでは許可されていません。
また、ローカル管理者アカウント(.\administrator)でリモートデスクトップ接続を確立しようとした場合も、エラーメッセージが表示されます。
システム管理者によって、使用できるログオンの種類(ネットワークまたは対話型)が制限されています。詳細については、システム管理者またはテクニカルサポートにお問い合わせください。
重要: このポリシーをActive Directoryドメインに参加していないWindowsワークグループ環境のコンピューターに適用すると、そのコンピューターにはローカルログオンしかできなくなる点に注意してください。
Windows 10へのローカルログオンを拒否する
「ローカルでのログオンを拒否する(Deny log on locally)」ポリシーを使えば、ローカルWindowsアカウントによるコンピューター/サーバーへの対話型ログオンも制限できます。「ユーザー権利の割り当て」セクションで「ローカルでのログオンを拒否する」ポリシーを編集し、必要なローカルセキュリティグループを追加してください。
拒否系のグループポリシー設定を扱う際は特に注意が必要です。誤って構成すると、コンピューターへのアクセスを失う可能性があります。最悪の場合に備えて、ローカルGPO設定をリセットする方法を把握しておくと安心です。
設定後、ユーザーや管理者がローカルアカウントでコンピューターにログオンしようとすると、次のメッセージが表示されます。
現在使用しているサインイン方法は許可されていません。詳しくは、ネットワーク管理者にお問い合わせください。
なお、ADのユーザーアカウント設定でログオン可能なコンピューターのリストを制限している場合にも、同じメッセージが表示されます。
このように、ローカルWindowsアカウントによるコンピューターやドメインメンバーサーバーへのネットワークアクセスを拒否することで、企業環境全体のセキュリティを大幅に強化できます。
-
Windows 10で特定のプログラムのインターネットアクセスをブロックする方法
システムにインストールされているソフトウェアの多くは、定期的なアップデートが必要であり、そのためにはインターネット接続が不可欠です。しかし、現在のバージョンに満足しており、むしろ更新されたくないというケースもあるでしょう。実は、Windows 10にはこのような問題を解決できる機能が標準で備わっています。 この記事では、特定のプログラムによるインターネットアクセスをブロックする簡単な方法をご紹介します。 関連記事:Windows PC向けおすすめPCクリーナーツール ソフトウェアのインターネットアクセスをブロックする手順 ファイアウォールにルール(規則)を作成することで、任意のプログラムによる
-
Windows 10でユーザーアカウントを切り替える4つの方法|複数アカウントの作成手順も解説
デジタル化が進んだ現代では、テクノロジーの活用はもはや欠かせないものとなっています。仕事でも、娯楽でも、日常のタスクをこなすときでも、私たちは常にデバイスと向き合って生活しています。 PCを複数人で共有する場合、Windows 10ならそのプロセスが格段に簡単になります。同じデバイス上に複数のアカウントを作成できるため、同僚や家族など、誰とデバイスを共有する場合でも、ユーザーごとに個別のアカウントを用意すれば、それぞれが独自のストレージ、デスクトップ、アプリ、各種設定を持つことができます。 職場では、1台のデバイスを複数の従業員で使い回すケースも少なくありません。しかし、自分の不在時に他の人