タイトルは詐欺です。正しくは「誤家庭」になります。というのも、単に自宅の光回線だけでは物足りず、ついには固定IPを割り振ってもらったうえに世界中どこからでもアクセスできるように自宅内にRDP環境を作ってしまったわけです。前編はあくまでシンクライアントのホスト機設定にとどまりましたが、今回は続けて、御家庭のネットワーク構築まで話が飛んでいきます。もはややりたいことが迷子です。
ディスククオータの設定

別に一般ユーザーなのにディスククオータを設定する意味は私もよくわかりません。意味がわからないですが、無制限にディスクを書き込めてしまうのは個人的に好きではありません。リソースは当然限られていますので、一般ユーザーでさえ最大30GB、管理者ですら50GBまでに制限します。特に制限の厳しいゲストユーザー君はほぼ何もできないレベルに抑えました。ここで注意してほしいのは、「明示したユーザー以外にディスクの制限をかけると文鎮化する」ことです。Windowsには様々なユーザーがバックグラウンドにいますが、間違えて一律5GBとかにすると立ち上がらなくなって再インストールすらできなくなります。クオータの管理を有効にするにチェックをつけて、ディスクの仕様を制限しないはそのままにしてください。クオータエントリーから制限したいユーザーを追加していくだけで充分です。

低権限ユーザーグループの作成
一般ユーザーはAppLockerでの管理がしやすいように特定のグループに突っ込んで一括制限します。

「コントロールパネル」から右上の検索「コンピューターの管理」でコンピューター管理画面を開いたら、「ローカルユーザーとグループ」→「グループ」を選択してグループを作成します。名前はなんでも良いと思いますが私は「nobody」にしました。このように管理者権限のいらないユーザーたちを突っ込みます。

この状態で権限を制限するユーザーグループを作成しました。これはのちに、AppLockerを設定する際にまとめて権限制限が可能というメリットがあります。続けてユーザーアカウント制御の厳格化にも手を出します。ファイル名を指定して実行で、regeditと入力するとレジストリエディタが開きますので、[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]」へアクセスし、次の値を有効にしてください。
“ConsentPromptBehaviorAdmin”=dword:00000001
“ConsentPromptBehaviorUser”=dword:00000001
“EnableLUA”=dword:00000001
“PromptOnSecureDesktop”=dword:00000001
| 管理者承認モードでの管理者の昇格のプロンプトの動作 | 常に確認する(プロンプト) |
| 標準ユーザーの昇格のプロンプトの動作 | ユーザー名とパスワードの入力 |
| 管理者承認モードをすべての管理者に適用する | 有効 |
| ユーザーアカウント制御: 管理者承認モードでの昇格時にセキュリティで保護されたデスクトップを切り替える | 有効(推奨) |
これでこのような状態になりました。管理者でも好き勝手できません。

まだこれでも満足できません。AppLockerを設定します。ファイル名を指定して実行で、「gpedit」と入力して実行します(管理者権限必須)。「Windowsの設定」->「セキュリティの設定」->「アプリケーション制御ポリシー」と辿り、グループポリシーの設定を入力していきます。

注意してほしいのは、「実行可能ファイルの規則」「Windowsインストーラー」「スクリプトの規則」「パッケージアプリの規則」のすべてで「既定のルールを自動作成」しないと詰みます。立ち上がらなくなるほどではありませんが、notepadさえ開かなくなります。ので、右クリックしてワンクリック作成してください。制限対象をガチガチに固めるならこの辺を突っ込んでください(ハッシュで制限すればパス制限はいらない気がします。。。)
操作 ユーザー 名前 条件 例外
許可 {あなたのPC名}\nobody %OSDRIVE%\Users* パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\attrib.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\bitsadmin.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\certutil.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\cscript.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\curl.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\forfiles.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\ftp.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\ipconfig.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\mmc.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\mshta.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\msiexec.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\net.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\net1.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\netsh.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\reg.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\Robocopy.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\rundll32.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\schtasks.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\taskkill.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\tscon.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\whoami.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\WindowsPowerShell\v1.0\powershell.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\WindowsPowerShell\v1.0\powershell_ise.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\wscript.exe パス
拒否 {あなたのPC名}\nobody %SYSTEM32%\xcopy.exe パス
拒否 {あなたのPC名}\nobody %WINDIR%\hh.exe パス
拒否 {あなたのPC名}\nobody %WINDIR%\Microsoft.NET\Framework64\MSBuild.exe パス 拒否 {あなたのPC名}\nobody %WINDIR%\Microsoft.NET\Framework64\MSBuild.exe パス
拒否 {あなたのPC名}\nobody %WINDIR%\regedit.exe パス
拒否 {あなたのPC名}\nobody %WINDIR%\Temp* パス
拒否 {あなたのPC名}\nobody *attrib.exe パス
拒否 {あなたのPC名}\nobody *bitsadmin.exe パス
拒否 {あなたのPC名}\nobody *certutil.exe パス
拒否 {あなたのPC名}\nobody *cscript.exe パス
拒否 {あなたのPC名}\nobody *curl.exe パス
拒否 {あなたのPC名}\nobody *forfiles.exe パス
拒否 {あなたのPC名}\nobody *ftp.exe パス はい
拒否 {あなたのPC名}\nobody *hh.exe パス
拒否 {あなたのPC名}\nobody *ipconfig.exe パス
拒否 {あなたのPC名}\nobody *mmc.exe パス
拒否 {あなたのPC名}\nobody *MSBuild.exe パス
拒否 {あなたのPC名}\nobody *mshta.exe パス
拒否 {あなたのPC名}\nobody *msiexec.exe パス
拒否 {あなたのPC名}\nobody *net.exe パス
拒否 {あなたのPC名}\nobody *net1.exe パス
拒否 {あなたのPC名}\nobody *netsh.exe パス
拒否 {あなたのPC名}\nobody *powershell.exe パス
拒否 {あなたのPC名}\nobody *powershell_ise.exe パス
拒否 {あなたのPC名}\nobody *reg.exe パス
拒否 {あなたのPC名}\nobody *regedit.exe パス
拒否 {あなたのPC名}\nobody *Robocopy.exe パス
拒否 {あなたのPC名}\nobody *rundll32.exe パス
拒否 {あなたのPC名}\nobody *schtasks.exe パス
拒否 {あなたのPC名}\nobody *taskkill.exe パス
拒否 {あなたのPC名}\nobody *tscon.exe パス
拒否 {あなたのPC名}\nobody *whoami.exe パス
拒否 {あなたのPC名}\nobody *wscript.exe パス
拒否 {あなたのPC名}\nobody *xcopy.exe パス
拒否 {あなたのPC名}\nobody C:\Users\Public* パス
許可 Everyone Program Files フォルダー内にあるすべてのファイル パス
許可 Everyone Windows フォルダー内にあるすべてのファイル パス
許可 BUILTIN\Administrators すべてのファイル パス
拒否 {あなたのPC名}\nobody attrib.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody bitsadmin.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody certutil.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody cscript.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody curl.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody forfiles.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody ftp.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody ipconfig.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody mmc.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody mshta.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody msiexec.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody net.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody net1.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody netsh.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody reg.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody Robocopy.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody rundll32.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody schtasks.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody taskkill.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody tscon.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody whoami.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody powershell.exe, powershell_ise.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody wscript.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody xcopy.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody hh.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody MSBuild.exe, MSBuild.exe ファイル ハッシュ
拒否 {あなたのPC名}\nobody regedit.exe ファイル ハッシュ
これで試しに一般ユーザーパワーシェルを叩いて拒否されれば問題なしです。

これでセキュアなデスクトップ環境が完成しましたので、本丸のリモートデスクトップをオンにします。簡単です。「設定」→「システム」→「リモートデスクトップの設定」でリモートデスクトップをオンにして、リモートデスクトップに接続できるユーザーに一般ユーザーを追加してやれば、あとは実質シンクライアントの完成です。
私の愛する異常な構成
ここからはオマケですが、私の家にはRTX1200というYAMAHAの業務用ルーターがあります。…はい、VPNを有効化して、ついでにWin10のネットほぼ繋がない中古機を購入してこのような構成を構築しました。

これでPCさえ持ち歩いていれば、どこかでネット接続→自宅の環境にアクセスして作業が可能になりました。ニッチすぎるので割愛します。

