高级安全Windows防火墙概述以及最佳实践
本文简单介绍Windows防火墙的概念,给出使用场景并列出了常见的防火墙操作。
简介
在Windows NT6.0之后微软推出了高级安全Windows防火墙(简称WFAS),高级安全Windows防火墙是分层安全模型的重要部分, 通过为计算机提供基于主机的双向网络通讯筛选, 高级安全Windows防火墙 阻止未授权的网络流量流向或流出本地计算机。高级安全 Windows 防火墙 还是用网络感知,以便可以将相应安全设置应用到计算机连接到的网络类型。Windows 防火墙和 Internet 协议保护 (sec) 配置设置集成到名为 高级安全 Windows 防火墙 的单个 Microsoft 管理控制台 (MMC),高级安全Windows防火墙也成为网络隔离策略的重要部分。
使用场景
作为一个运维人员,越来越多的用户反映服务器被恶意攻击,密码被暴力破解等等,其实大多数原因都是自己给那些“入侵者”留的“后门”导致的。入侵者通过扫描主机开放的端口,一旦发现可以利用的端口,就会进行下一步的入侵,例如Windows的远程端口(3389)和Linux的远程端口(22)。既然知道了问题的关键,那么我们也有相应的对策,我们可以通过修改默认的远程端口以及限制远程的访问来关闭所谓的“后门”。那么如何限制远程访问呢?接下来我们就以阿里云ECS实例Windows Server 2008 R2为例,来实现对远程桌面的限制。
操作步骤
- 查看防火墙状态
阿里云ECS实例Windows Server 2008 R2防火墙默认是关闭的,键盘输入Win+R打开运行输入firewall.cpl 回车来打开Windows防火墙控制台,见下图。

选择打开或关闭Windows防火墙。

如下图,我们看到防火墙是默认关闭的。

- 启用防火墙
还是通过上面的步骤开启防火墙,见下图。

这里需要注意一点的是:启用之前请确认远程端口已经在里面,否则自己也将无法远程,不过高级安全Windows防护墙入站规则默认是放行3389端口的选择高级设置。

选择入站规则,我们看到open port 3389这条入站规则默认是放行3389端口的。

- 配置高级安全Windows防火墙
键盘输入Win+R打开运行输入wf.msc 回车来打开高级安全Windows防火墙,如下图。
- 通过手工新建入站规则
在弹出的新建入站规则向导窗口,选择 端口 然后鼠标左键单击下一步。

而后选择 TCP 并设置特定本地端口3389。

下一步选择允许链接。

下一步 默认配置即可。

下一步 填写规则名称,例如 RemoteDesktop ,最后鼠标左键单击完成。

看到我们刚刚添加的规则。

以上步骤就是把Windows远程端口加入到高级安全Windows防火墙了,但是依然没有实现我们的限制访问,接下来我们来实现访问限制。
- 配置作用域
右键选中我们刚刚创建的入站规则,然后选择属性>作用域>远程IP地址>添加(将需要远程此服务器的IP地址填写进去,注意:一旦启用作用域,除了作用域里面的IP地址,别的地址将无法远程链接此服务器)。

添加远程IP地址。

- 验证作用域
我们在作用域——远程IP地址里面随便写个地址,看看远程连接会发生什么。

远程连接断掉。

如果远程连接没有断开,让我们把下图中open port 3389这条入站规则禁用掉就可以了。

远程连接自己断开了,这就说明我们的作用域生效了,那现在自己都无法远程了,怎么办呢?别急,我们还有阿里云控制台,登录阿里云控制台,然后将上面的作用域地址换成自己的地址(这里要写办公环境的公网地址,除非您的办公环境和阿里云线上的环境打通,)就可以正常远程了。
进入阿里云的控制台界面,找到相应实例打开远程连接。

登录系统。

与之前同样的方式,修改RemoteDesktop的作用域的远程IP地址,将之前测试设置的1.1.1.1换回自己的IP地址。

换回自己的IP地址后可以正常远程了,如果不知道自己的公网IP,可以点击此处查看。

以上就是使用高级安全Windows防火墙来实现对服务器远程访问的限制,其他的服务和端口都可以按照上面的方法来实现,例如,关闭不常用的135 137 138 445 端口,限制FTP和相关服务的访问等等,这样才能做到最大限度地保障服务器安全的运行。
- 通过手工新建入站规则
命令行的方式
- 导出防火墙配置到文件。
netsh advfirewall export c:\adv.pol - 导入防火墙配置文件到系统中。
netsh advfirewall import c:\adv.pol - 防火墙恢复默认设置。
Netsh advfirewall reset - 关闭防火墙。
netsh advfirewall set allprofiles state off - 开启防火墙。
netsh advfirewall set allprofiles state on - 在所有配置文件中设置默认阻挡入站并允许出站通信。
netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound - 删除名为 ftp 的规则。
netsh advfirewall firewall delete rule name=ftp - 删除本地端口 80 的所有入则。
netsh advfirewall firewall delete rule name=all protocol=tcp localport=80 - 添加远程桌面入站规则允许端口3389。
netsh advfirewall firewall add rule name=远程桌面(TCP-In-3389) protocol=TCP dir=in localport=3389 action=allow
高级安全Windows防火墙概述以及最佳实践的更多相关文章
- 用C#来控制高级安全Windows防火墙
有的时候我们需要在自己的产品中检测<高级安全Windows防火墙>的状态,并有可能需要加入一些规则甚至需要关闭掉高级安全Windows防火墙. 下面就告诉如何来做: <高级安全Win ...
- 《javascript高级程序设计》 第24章 最佳实践 Best Practices
24.1 可维护性 Maintainability24.1.1 什么是可维护的代码 What Is Maintainable Code?24.1.2 代码约定 Code Conventions 24. ...
- 如何配置Windows 防火墙,允许SQL Server的远程连接
一.如何找到SQL Server正在侦听的TCP端口,可以按一下步骤: 1.打开 SQL Server 配置管理器中,从开始->所有程序-> Microsoft SQL Server 20 ...
- 针对 SQL Server 2008 在Windows Server 2008上的访问配置 Windows 防火墙
现在Windows Server 2008 服务器用的越来越多,2008的防火墙比2003的有了很大的增强,安全性有了更大的提高. 甚至80端口的出站默认都是被关闭的.所以如果在2008Server上 ...
- 【转】玩玩你的Windows防火墙——穿透与防御
前言:在防火墙专区,我经常看见朋友们讨论,“某某防火墙的性能如何”,亦或是,“某某防火墙的防御能力如何”.实际上,一个防火墙所履行的基本职责便是“网络访问控制”,即放行我们允许的通信,阻止我们未允许的 ...
- 配置Windows 防火墙,允许SQL Server的远程连接
在运行SQL Server的服务器上,我们要找到哪些是SQL Server正在侦听的端口,并将其添加到Windows防火墙的入站例外. 首先,我们需要添加 SQL Server 服务侦听 Window ...
- 服务器安全策略之《启用Windows 防火墙情况下配置允许SQL Server远程连接》
为了服务器的安全,通常情况下我们需要启用Windows 防火墙,然而在启用了Windows 防火墙后会发现会引发一系列的问题,比如无法通过本地远程服务器桌面.无法在本地远程连接SQL Server等, ...
- Windows Azure 安全最佳实践 - 第 4 部分:需要采取的其他措施
那么,哪些安全威胁应由WindowsAzure环境缓解?哪些安全威胁必须由开发人员缓解? 开发 Windows Azure 应用程序的最佳安全做法一文说明了对于在 Windows Azure 中运行的 ...
- Windows Azure 安全最佳实践 - 第 3 部分:确定安全框架
构建云应用程序时,安全始终是计划和执行Windows Azure的首要核心因素.第 1 部分提出安全是一项共同责任,Windows Azure为您的应用程序提供超出内部部署应用程序需求的强大安全功能. ...
随机推荐
- 简单易学的Linux 命令整理
Linux 是目前应用最广泛的服务器操作系统,基于 Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境.linux 不仅可以长时间的运行我们编写的程序代码 ...
- 一文熟练使用python mock
mock作为python测试模拟对象工具,在单元测试当中使用较多,官方文档详细不够精简,这篇文章介绍mock常用的用法,以下为引用全文,留给自己和有需要的人查阅. https://realpython ...
- PythonI/O进阶学习笔记_11.python的多进程
content: 1. 为什么要多进程编程?和多线程有什么区别? 2. python 多进程编程 3. 进程间通信 ======================================= ...
- [DP][SA][可持久化线段树]黑红兔
源自 xyz32768 菜鸡的 FJ 省冬令营模拟赛题 原题 CF1063F Statement 给定一个长度为 \(n\) 的字符串 \(s\),仅包含小写英文字母 要从中从左往右选出若干段不相交的 ...
- azure 第一弹
- 小白学Java:内部类
目录 小白学Java:内部类 内部类的分类 成员内部类 局部内部类 静态内部类 匿名内部类 内部类的继承 内部类有啥用 小白学Java:内部类 内部类是封装的一种形式,是定义在类或接口中的类. 内部类 ...
- Java程序员学习Go语言—之一
转载:https://www.luozhiyun.com/archives/206 GOPATH 工作空间 GOPATH简单理解成Go语言的工作目录,它的值是一个目录的路径,也可以是多个目录路径,每个 ...
- js解析json时报:Unexpected token s in JSON at position 0
原因肯定是返回的json格式有问题 最有可能是后台在程序执行过程中,输出了某些调试信息等等,这些输出的字符串和json拼接成了新的字符串来解析,这时就会报错: 比如我在入口文件里var_dump了__ ...
- 《ASP.NET Core 高性能系列》关于.NET Core的配置信息的若干事项
1.配置文件的相关闲话 Core自身对于配置文件不是必须品,但由上文分析可知ASP.NET Core默认采用appsettings.json作为配置文件,关于配置信息的优先等级 命令行>环境变量 ...
- DOCKER 学习笔记5 Springboot+nginx+mysql 容器编排
前言 在上节的内容中,我们已经通过一个简单的实例,将Docker-compose 进行了实际的应用.这一小节中.我们将通过学习和了解,着重认识容器的编排,上一节只算是一个小小的测试.在这一节中.我们将 ...