在“独立”或单独的 Windows(Vista 及以上版本:Vista、Win7、Win8、Win8.1 等基于操作系统的)计算机和平板电脑中,配置为仅使用“TCP/IP”网络组件,每个都具有 Internet 连接,并且不存在 Windows 网络,(对于此类计算机,我们正在尝试执行以下操作):
问题:
(1)如何安全地强制所有应用程序(包括所有 Windows 组件)(始终)使用
%APPDATA%
必须具有类似于以下位置值的应用程序:C:\Users\<username>\AppData\Local\
?
或者,如何强制所有应用程序使用%LOCALAPPDATA%
现在具有位置值的程序:C:\Users\<username>\AppData\Local\
?
而不是当前的%APPDATA%
程序,默认情况下它现在具有此文件夹位置值:C:\Users\<username>\AppData\Roaming\
(2) 可选问题:如何使非联网的独立个人 Windows 计算机更安全,如何加强安全性?如何完全停止漫游配置文件支持?以便这些 Windows 计算机的任何配置、设置等数据不会传播/复制到任何其他/外部计算机。
我只需要知道上述第一个问题的答案,如果两个问题都得到回答就更好了。我已经给出了第二个问题的解答/答案,看看它是否足够且安全。
详细信息和可选部分:
您不必再阅读,(请只回答上面的第一个问题),除非您想了解更多详细信息:
看来,Vista 及以上版本的 Windows 操作系统默认使用此“ AppData\Roaming\
”值,对我来说,它看起来是这样的: 这个值是微软有意为全世界所有独立或个人非联网 Windows 计算机预先选择和预设的,甚至在任何计算机加入任何 Windows“Active Directory”或“WorkGroup”或家庭组等基于 Windows 网络的服务器/计算机之前,甚至在任何计算机加入任何云服务器之前(甚至在任何计算机加入任何远程托管提供商或任何基于远程公司的远程服务器之前),甚至在任何计算机加入任何移动“Windows Phone”操作系统之前! 独立个人非 Windows 网络的 Windows 计算机必须始终默认将所有内容都放在“ ”内,并且必须完全不受任何远程或外部计算机(用户或服务等)的访问(和保护)。 仅在加入(前面提到的)任何服务器(或设备或服务)后,然后是 Microsoft Windows 操作系统,才必须首先询问该计算机的所有者或管理员用户,用户/所有者是否要启用和使用“ ” ?并询问/提示用户/所有者是否要启用“漫游配置文件”模式?然后还要询问用户,要将哪些(确切的应用程序集)移动或转移到“ ”中以进行漫游配置文件传播?只有在完成这些步骤和回答并获得所有者的同意后,使用“ ”(在 %APPDATA% 内)才有效且合法(对我们而言),否则无效。 必须存在 Microsoft 的工具/实用程序,用于将仅选定的漫游应用从默认位置“AppData\Local\”迁移/移动到“AppData\Roaming\”,并在 %APPDATA% 内设置“AppData\Roaming\”,至少为其/Microsoft 自己的 Windows 组件设置,仅在计算机用户/所有者将其加入 Windows 网络(如 AD 等)后,并且任何计算机在加入任何 Windows 网络之前都不得设置和使用 %APPDATA% 内的“AppData\Roaming\”。并且此类工具还必须执行相反的操作,即将应用从“AppData\Roaming\”移动/迁移到“AppData\Local\”,并将 %APPDATA% 的值更改为“AppData\Local\”,特别是当任何计算机的所有者决定永远不使用(或停止使用)任何类型的 Windows 网络,或决定永远不使用(或停止使用)任何漫游配置文件时。%APPDATA%
AppData\Local\
AppData\Roaming\
%APPDATA%
AppData\Roaming\
AppData\Roaming\
目标:
我们正在努力实现以下目标:
这些(非 Windows 网络)独立个人计算机、平板电脑等将不会(永远)加入任何类型的 Windows 网络(“Active Directory”/AD 或“WorkGroup”等)服务器/计算机。因此,大多数应用程序不需要使用“ AppData\Roaming\
”值,特别是对于任何 Microsoft 本地 Windows 应用程序或组件。所有应用程序、组件都必须使用从 获得的 预设值“ ” 。 我们不希望任何应用程序安于并准备好将内容从这台计算机传播出去(通过在 内存储内容),并以某种方式复制/迁移到任何其他或任何外部计算机。我们需要阻止这种情况。 每台 Windows 计算机都预先分配给某一类或特定的用户或组或个人,并放置在特定的物理位置或移动设备上。每台都通过有线或无线连接与网络交换机、接入点或路由器相连。路由器通过 ISP 连接到互联网。我们的一些移动设备和平板电脑具有基于 USB 的宽带(3G、4G、LTE 等)无线调制解调器,或无线电话连接/网络共享应用程序,或 Android 无线电话热点功能连接。%APPDATA%
AppData\Local\
%APPDATA%
AppData\Roaming
我们不希望,即使是由于任何意外原因(或由于某些错误、某些恶意软件、某些基于后门的漏洞或黑客攻击,或这些计算机的任何直接用户/个人),突然或暂时加入(或任何类型的)Windows/Microsoft 网络或加入此类(Internet 或本地或云)服务,其中网络软件或服务(以某种方式)能够从这些“独立”(非 Windows 网络)Windows 计算机(或)提取、传播、传输、检索、复制或移动我们的数据、设置、配置AppData\Roaming\
等到AppData\Local\
任何其他(或外部)计算机。我们希望完全阻止此类漏洞/滥用,或使任何本地/远程用户或恶意软件的攻击变得非常困难。
我们需要消除(或降低)这些风险。
我们正在尝试提高和加强这些 Windows 计算机以及其他计算机的安全性。
一些基本的哲学或意识形态:
我是人类,我没有(或使用)狗或猫,我永远不会养狗或猫,那么,为什么我要在家里或办公室为狗或猫设置宠物门?!如果我这样做,那么不受欢迎的狗或猫或其他动物或无人机就会或可能会进来,对吗?我不希望这种情况发生,也不想冒险。我只需要一个人类的“门”,带有安全锁和安全警报系统。因此,如果我有狗/猫/宠物门,我会确保完全有效地阻挡(或移除)。
如果我在汽车/车辆中装载许多重物,添加或启用/添加许多功能等,那么我的里程(每加仑/升汽油/燃料可行驶的英里/公里数)将下降,(如果这些添加的功能不是为了增加里程),对吗?因为汽车更重,拉的重量也更大,我最终会花更多的钱购买额外的汽油/燃料。所以我必须摆脱这些“东西”或“功能”。如果我以后确实需要使用这些“东西”,那么我可以去附近的一家信誉良好的“连锁店”购买/租用它。当我不需要它时,如果我去了另一个地方,那么我仍然可以把它送回同一家信誉良好的“连锁店”的另一家商店。或者把它邮寄到我家或目的地,以后再处理。
同样,我们必须暂时有效地“禁用”或“停止”操作系统内一些不必要的、未使用的组件、应用程序、服务等。如果需要或要求,只有这样,我们才会启用它,或者我们将通过安全加密的互联网连接获得它。
如果我在汽车车身外添加了非常漂亮的昂贵组件和功能,那么贪婪的人(很可能)可能无法始终控制自己,或者他们可能不会表现出/实践良好的道德。他们可能会试图偷窃或损坏汽车,结果我的基本资源和我都会受到伤害。
同样,各种隐藏、休眠或停止的窗口和其他应用程序都可以直接、手动、远程触发和打开,以执行许多不想要、意外和不必要的操作。我们必须阻止这种情况。
解决方案/行动/安全实践:
到目前为止,这些已经应用于每台 Windows 计算机:
- 这些计算机和平板电脑上安装了全新的 Windows 7、8 或 8.1。
使用“管理员”类型的特权用户加载/安装应用程序。
https://unbound.net/
每台计算机都安装并配置了第三方完全支持 DNSSEC 的本地 DNS 解析器软件“Unbound”( )。并且127.0.0.1
和::1
被设置在所有有线/无线网络适配器的 TCP/IPv4 和 TCP/IPv6 网络堆栈的 DNS 内。由于有超过 5 台这样的计算机,为了减少基于 DNSSEC(和 DNS)的互联网流量,我们在每个本地 DNS 解析器内指定了我们自己的 2 个转发 DNS 服务器。并且 2 台 Linux/Unix 计算机确实有(完全支持 DNSSEC 的 BIND/named)DNS 服务器正在运行。跳过 DNS 和相关的其他网络详细信息。然后这些服务和驱动程序被“禁用”,因为这些计算机是“独立的”、单独的,不会使用任何类型的 Windows 网络,并且不需要这些组件始终运行或准备好被触发或打开:
SSDP、UPnP、NDP、NetBIOS、IGMP、Teredo、ICMPv6、DNS 客户端、分布式链路跟踪客户端、Internet 连接共享、IP 帮助程序、安全套接字隧道协议 (SSTP) 服务、TCP/IP NetBIOS 帮助程序、SSDP 发现、UPnP 设备主机、Windows 远程管理 (WS-Management)、WebClient、服务器、路由和远程访问、远程注册表、SNMP 陷阱、远程桌面服务、远程桌面服务用户模式端口重定向器、远程访问自动连接管理器、远程访问连接管理器、链路层拓扑发现映射器、远程协助、Teredo 网络适配器、ISATAP 网络适配器、远程访问 IPv6 ARP 驱动程序、NetBT 驱动程序等。并参阅下面引用的 URL,找出这些是什么,以及黑客和其他实体仍在使用它们来利用和滥用用户、计算机、路由器、私人数据等。我们永远不会使用 IGMP,因此使用以下命令禁用 IGMP:
netsh interface ipv4 set global mldlevel=none
这些网络流量使用防火墙规则被“阻止”(在某些管理员级别的计算机中被“记录”),(因为我们不需要 + 使用它们,并且为了提高安全性和释放网络资源):
输入/输出 IP 类型 2(IGMP)。输入/输出 IP 类型 47(GRE)。输入/输出 IP 类型 139(HIP)。输入/输出 IP 类型 241(PXP)。出站 UDP 到端口 3544 朝向多播 224.0.0.253(Teredo)。输入/输出 UDP/TCP 端口:137、138、139(NetBios)。输入/输出 TCP 端口 445(NetBios)。输入/输出 UDP/TCP 端口 3389(RDP)。输入/输出 IP 类型 58(ICMPv6),特别是一些 NDP 朝向:FF02::2(本地网络路由器)、FF02::16(MLDv2 报告)等。如果其中一台计算机确实需要为特定的基本和必需软件建立入站连接,那么,我们不会允许 Microsoft UPnP(以及相关服务,如 SSDP、NDP 等)在路由器(或 NAT/PAT)系统中自动(创建或)打洞,而是执行以下安全步骤:选择每台新计算机的一个网络适配器(即 NIC),并将该 NIC 的 MAC 物理地址添加到路由器的“允许的 MAC 列表”中,并为每台计算机预定义和预声明一个固定 IP 地址到路由器的“LAN DHCP 列表”中,以便 DHCP 服务可以为特定计算机分配特定的预选 IP 地址。稍后,当计算机需要入站端口连接时,路由器(其中之一)管理员会在“端口转发列表”中为该特定计算机的 IP 地址添加一个 UDP 端口。并且对该计算机内部受密码保护的安全套装软件进行编程(即添加了新的防火墙规则),以仅允许非常特定的软件使用该入站连接。 (如果 UDP 端口不允许软件正常工作,则 TCP 的相同端口也将添加到端口转发列表中)。
每个窗口(NIC 或)网络适配器中的以下选项均未选中(已禁用):
Client for Microsoft Networks
、File and Printer Sharing for Microsoft Networks
、Link-Layer Topology Discovery Responder
、Link-Layer Topology Discovery Mapper I/O Driver
。在每个 NIC 的 WINS 选项卡/部分中,Disable NetBIOS over TCP/IP
已选中“ ”选项。在每个 NIC 的 DNS 选项卡/部分中,Register this connection's addresses in DNS
未选中“ ”选项并已禁用。并且,由于我们正在使用并配置本地(“未绑定”)DNS 解析器软件,因此将一个127.0.0.1
或::1
仅一个 IP 地址添加到“DNS 服务器地址”列表中。- 通过 TCP/IP 直接进行 RAW 打印,进行打印。
基于 SCP+SSH 的文件共享,以及基于 SSHFS 的共享网络文件夹(与基于 Linux/Unix 的 NAS 服务器)等。
每台 Windows 计算机中的所有类型的自动运行功能或选项均被禁用。
- 创建还原点后,谨慎使用了一些其他系统调整、注册表清理、磁盘清理应用程序/工具。
- USB 设备连接受到警报、跟踪和阻止。
BIOS 已用密码锁定。BIOS 启动菜单已禁用。
然后创建其他“标准”用户帐户(在每台计算机中),进行检查和微调。
要禁用 Windows 漫游配置文件支持,请应用/执行以下操作:
- 启动“组策略管理”:WindowsButton+R,,
gpedit.msc
确定。 - 导航至:计算机配置\管理模板\系统\用户配置文件。
Prevent Roaming Profile Changes from propagating to the server
为这两个策略选择了“ ”和“ ”的“启用”选项Only allow local user profiles
。
- 启动“组策略管理”:WindowsButton+R,,
- 启动“系统属性”:WindowsButton+R,,
sysdm.cpl
确定,高级,用户配置文件,设置。并检查每个 Windows 用户的配置文件类型:“Local profile
”被选中,(不是“Roaming profile
”)。
这些 Windows 计算机,每台都具有:
• 第三方安全套件软件,包括防火墙、防病毒、反间谍软件等。大多数套件都受密码保护,除了少数具有管理员级别访问权的计算机。只允许某些出站网络流量。其他所有流量默认都被拒绝、丢弃或阻止,并在日志中保存拒绝报告。
• Mozilla Firefox 是默认的 Web 浏览器。Thunderbird 是默认的邮件客户端。(但计算机确实有 MS Outlook)。每台计算机的每个用户配置文件中的 Firefox 都包含以下扩展/插件:AdBlock、NoScript suite、Tab Mix Plus、Session Manager、DownThemAll、CipherFox Secure、DNSSEC/TLSA Validator(https://www.dnssec-validator.cz
)等。Dnssec 插件配置为使用本地“Unbound”解析器(127.0.0.1 或 ::1),而不是任何远程 DNS 服务器。这些 Firefox 插件已被禁用:Java、Adobe Acrobat、Silverlight Plug-in、Google Talk Plugin、Google Update 等,因为我们不需要在每台计算机中一直使用它们。
• 定期(每周)使用一些其他反恶意软件、反间谍软件相关应用程序(SpyBot Search and Destroy、Spyware Blaster 等),这些应用程序可以在“阻止”列表或相关配置位置、每个网络浏览器(默认/系统 Firefox、便携式 Firefox、IE 等)、Windowshosts
文件等内添加恶意软件分发网站域、IP 地址、恶意软件检测代码列表等。
• SIP/VoIP 电话、Skype 等,实时即时通讯(IM)应用程序,如:Pidgin、PChat IRC 客户端等。
• 基于 Cygwin 的工具、OpenSSH 等。
• 适用于 Windows 的 GnuPG/GPG 等。
• VM(和虚拟机管理程序软件)等。
本地网络中也有几台 Linux/Unix 计算机,运行我们的网站服务器、电子邮件服务器、DNS 服务器、文件服务器等。
还能做什么?确保这些“独立”(非 Windows 网络)的个人 Windows 计算机保持独立和安全?
以及如何确保应用程序不使用%APPDATA%
(映射到AppData\Roaming\
)?
也就是说,我们希望所有应用程序都使用映射到的 %APPDATA%(或 %LOCALAPPDATA%)AppData\Local\
。
我们主要想阻止所有类型的个人/私人数据从这些计算机传播到任何外部计算机。
这里所说的“独立” Windows 计算机,并不是指没有 Internet 连接的 Windows 计算机。我指的是以下 Windows 计算机:非 Windows 网络、非 AD (Active Directory) 网络、非 Windows 工作组网络、没有与任何类型的云网络或服务连接、禁用“MS 网络客户端”和禁用“MS 网络文件和打印机共享”、或仅 TCP/IP 网络且具有 Internet 连接的计算机。
添加详细信息以便我们能够轻松理解我们的目标和配置。
提前致谢。
参考文献:[01] http://msdn.microsoft.com/en-us/library/windows/desktop/dd378457%28v=vs.85%29.aspx
[02] https://en.wikipedia.org/wiki/IGMP_snooping
[03] https://en.wikipedia.org/wiki/ICMPv6
[04] http://support.microsoft.com/kb/312138/en-us
[05] http://blog.coultard.com/2012/01/how-to-setup-active-directory-users.html
[06] http://technet.microsoft.com/en-us/library/hh826139.aspx
[07] http://hardenwindows7forsecurity.com/Harden%20Windows%207%20Home%20Premium%2064bit%20-%20Standalone.html
[08] https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
[09] https://en.wikipedia.org/wiki/Neighbor_Discovery_Protocol
[10] [11 https://en.wikipedia.org/wiki/Teredo_tunneling
] [12] https://en.wikipedia.org/wiki/Conficker
[13 https://en.wikipedia.org/wiki/ICMP_hole_punching
] https://en.wikipedia.org/wiki/Multicast_address
[14] https://en.wikipedia.org/wiki/Hole_punching
[14]https://en.wikipedia.org/wiki/SSHFS
答案1
你不能强迫这一点,所以不要担心。
如果您不使用漫游配置文件,这两个目录并没有什么不同。如果您在任何时候使用漫游配置文件,那么该Roaming
文件夹将成为漫游配置文件的一部分。
[...] 由于某些错误、恶意软件、后门漏洞或黑客攻击,或者这些计算机的任何直接用户),突然或暂时加入(或任何类型的)Windows / Microsoft 网络或加入此类(互联网或本地或云)服务,其中网络软件或服务(以某种方式)将能够从这些“独立的”(非 Windows 网络)Windows 计算机的 AppData\Roaming\(或 AppData\Local)提取、传播、传输、检索或移动我们的数据、设置、配置等到任何其他(或外部)计算机。
如果您担心恶意软件将您的计算机连接到恶意 AD,然后打开漫游配置文件,那么您就进入了锡箔帽领域。恶意软件只会窃取你的数据无需经过那些麻烦。
如果您担心最终用户这样做,请剥夺他们的本地管理员权限,这样他们就无法将 PC 加入任何 AD。