自从Windows XP sp2以来,Windows防火墙已经默认启用,但我们仍然会看到一些因为老习惯而在部署时关闭防火墙的案例。随着Windows 10和Server 2019,最需要的防火墙策略大多已经内置,设置访问相对容易一些。但有时用户仍应该加强Windows防火墙的设置,以更好地保护用户不受横向移动和攻击。
为二进制文件或可执行文件构建规则
如果应用程序需要一个特殊的规则,用户应该基于二进制文件或可执行文件,而不是基于端口进行构建。这样可以确保防火墙只在应用程序处于活动状态时打开。如果使用端口构建防火墙规则,则该端口将保持开放状态并公开系统。
识别被阻止的应用程序
当应用程序被阻止时,Windows设备会默认发出通知。但IT管理员可能希望使用事件日志来识别被阻止的应用程序,而不是使用系统托盘中容易错过的可视弹出窗口。想要确定Windows防火墙阻止了哪些应用程序,首先要搜索事件5031的事件日志,它表明Windows防火墙阻止了一个应用程序接受网络上的连接。使用此事件检测不存在Windows防火墙规则的应用程序。
设置安全监控
如果您使用安全事件日志监视解决方案来监视事件,请记住以下几点:
- 如果您有一个预定义的应用程序来执行此事件报告的操作,则监视“Application”不属于您定义的应用程序的事件。
- 监视“Application”是否在标准文件夹中(例如,不在System32或Program Files中)或在受限文件夹中(例如,临时Internet文件)。
- 如果在应用程序名称中有一个预定义的受限子字符串或单词列表(例如,“mimikatz”或“cain.exe”),请在“Application”中检查这些子字符串。
您可以使用Windows防火墙来阻止应用程序访问资源。你可以阻止PowerShell访问互联网。下面的第一个规则允许PowerShell访问本地子网。第二条规则是减少交通流量:
这样可以保护您的系统免受利用PowerShell调用命令和控制计算机启动勒索软件和其他攻击的攻击。PowerShell不应该被删除,而应该进行加固和记录,以确保它按预期使用。
你还可以为多个版本的PowerShell构建规则:
防火墙规则阻止PowerShell从互联网访问
您将在出站防火墙规则设置中看到生成的规则:
Windows防火墙规则
如果PowerShell有意通过另一个位置调用二进制文件或重命名自身来隐藏自己,那么这个过程将无法进行。
使用PowerShell设置防火墙规则
您可以按照Microsoft的说明使用PowerShell设置防火墙规则 。例如,要阻止服务器上的出站端口80,请使用以下PowerShell命令:
你需要填写的基本属性是:
- 防火墙规则的友好名称
- 方向——是否阻塞离开计算机(出站)或进入计算机(入站)的流量
- 行动——如果满足规则,采取什么行动,允许或阻止
您需要填写的基本属性是:
- DisplayName –防火墙规则的友好名称
- 方向–阻止流量离开计算机(出站)或进入计算机(入站)
- 行动-如果满足规则,采取什么行动,是允许还是进行阻止。
检查新的Windows 10安全基准
不要忘记,微软在Windows 10的每个版本都会发布新的安全基准。作为基准的一部分,它们包括建议的防火墙策略。
Windows 10 2004基准策略
默认情况下,应该为域配置文件和专用配置文件阻止入站连接。
定期审计设置
最后,在检查网络的安全状态时,定期随机抽取一些工作站,并审计它们的设置。检查每个示例工作站上的防火墙策略。