本文属于一篇内部规范文档,整理的初衷是为了规范、统一集团的Windows服务器(仅仅SQL Server数据库服务器)防火墙设置,仅仅供内部其它同事设置Windows防火墙时作为参考的文档资料。如有不足,敬请指正。后续将不断完善、整理该文档。文档里面部分内容直接摘抄自MSDN,敬请知晓!

 

文档类型

Windows服务器防火墙配置规范

创建日期

2017-02-06

版本变化

V1.0

修改记录

修改人

修改日期

版本

修改描述

孔令波

2017-02-06

V1.0

创建制定文档

注意事项:Windows。

SQL Server 命名实例

由管理员配置的端口号。

请参阅下面 动态端口部分中的描述。

专用管理连接

对于默认实例,为 TCP 端口 1434。 其他端口用于命名实例。 有关端口号,请查看错误日志。

默认情况下,不会启用与专用管理员连接 (DAC) 的远程连接。 若要启用远程 DAC,请使用外围应用配置器方面。 有关详细信息,请参阅 Surface Area Configuration。

SQL Server Browser 服务

UDP 端口 1434

SQL Server Browser 服务用于侦听指向命名实例的传入连接,并为客户端提供与此命名实例对应的 TCP 端口号。 通常,只要使用 SQL Server 的命名实例,就会启动数据库引擎Browser服务。 如果客户端配置为连接到命名实例的特定端口,则不必启动 SQL Server Browser 服务。

SQL Server 实例。

可以在创建 HTTP 端点时指定。 对于 CLEAR_PORT 通信,默认端口为 TCP 端口 80,对于 SSL_PORT 通信,默认端口为 443。

用于通过 URL 实现的 HTTP 连接。

SQL Server 默认实例。

TCP 端口 443

用于通过 URL 实现的 HTTPS 连接。 HTTPS 是使用安全套接字层 (SSL) 的 HTTP 连接。

Service Broker

TCP 端口 4022。 若要验证使用的端口,请执行下面的查询:

SELECT name, protocol_desc, port, state_desc

FROM sys.tcp_endpoints

WHERE type_desc = 'SERVICE_BROKER'

对于 SQL ServerService Broker,没有默认端口,不过这是联机丛书示例中使用的常规配置。

数据库镜像

管理员选择的端口。 若要确定此端口,请执行以下查询:
SELECT name, protocol_desc, port, state_desc
FROM sys.tcp_endpoints
WHERE type_desc = 'DATABASE_MIRRORING'

对于数据库镜像,没有默认端口,不过联机丛书示例使用 TCP 端口 7022。 务必避免中断正在使用的镜像端点,尤其是处于带有自动故障转移功能的高安全模式下时。 防火墙配置必须避免破坏仲裁。 有关详细信息,请参阅指定服务器网络地址(数据库镜像)。

复制

与 SQL Server 的复制连接使用典型的常规数据库引擎端口(供默认实例使用的 TCP 端口 1433 等)

复制快照的 Web 同步和 FTP/UNC 访问要求在防火墙上打开其他端口。 为了将初始数据和架构从一个位置传输到另一个位置,复制可以使用 FTP(TCP 端口 21)或者通过 HTTP(TCP 端口 80)或文件共享进行的同步。 文件共享使用 UDP 端口 137 和 138,如果使用 NetBIOS,则还有 TCP 端口 139。 文件共享使用 TCP 端口 445。

对于通过 HTTP 进行的同步,复制使用 IIS 端点(其端口可配置,但默认情况下为端口 80),不过 IIS 进程通过标准端口(对于默认实例为 1433)连接到后端 SQL Server。

在使用 FTP 进行 Web 同步期间,FTP 传输是在 IIS 和 SQL Server 发布服务器之间进行,而非在订阅服务器和 IIS 之间进行。

Transact-SQL 调试器

TCP 端口 135

请参阅 端口 135 的特殊注意事项

可能还需要 IPsec 例外。

如果使用 Visual Studio,则在 Visual Studio 主机计算机上,还必须将 Devenv.exe 添加到“例外”列表中并打开 TCP 端口 135。

如果使用 Management Studio,则在 Management Studio 主机计算机上,还必须将 ssms.exe 添加到“例外”列表中并打开 TCP 端口 135。 有关详细信息,请参阅运行 TSQL 调试器之前配置防火墙规则。

Analysis Services 使用的端口

 

下表列出了 Analysis Services经常使用的端口。

功能

端口

注释

Analysis Services

对于默认实例,为 TCP 端口 2383。

默认 Analysis Services实例的标准端口。

SQL Server Browser 服务

仅 Analysis Services 命名实例需要的 TCP 端口 2382

客户端向 Analysis Services 命名实例发出不指定端口号的连接请求时,该连接请求将被转到端口 2382,即 SQL Server Browser 侦听的端口。 SQL Server Browser 将此请求重定向到该命名实例所使用的端口。

Analysis Services 配置为通过 IIS/HTTP 使用

(PivotTable® Service 使用 HTTP 或 HTTPS)

TCP 端口 80

用于通过 URL 实现的 HTTP 连接。

Analysis Services 配置为通过 IIS/HTTPS 使用

(PivotTable® Service 使用 HTTP 或 HTTPS)

TCP 端口 443

用于通过 URL 实现的 HTTPS 连接。 HTTPS 是使用安全套接字层 (SSL) 的 HTTP 连接。

Reporting Services 使用的端口

下表列出了 Reporting Services经常使用的端口。

功能

端口

注释

Reporting Services Web 服务

TCP 端口 80

用于通过 URL 实现的与 Reporting Services 之间的 HTTP 连接。 建议不要使用预配置规则万维网服务(HTTP)。 有关详细信息,请参阅下面的 与其他防火墙规则的交互 部分。

Reporting Services 配置为通过 HTTPS 使用

TCP 端口 443

用于通过 URL 实现的 HTTPS 连接。 HTTPS 是使用安全套接字层 (SSL) 的 HTTP 连接。 建议不要使用预配置规则“安全万维网服务(HTTPS)”。 有关详细信息,请参阅下面的 与其他防火墙规则的交互 部分。

Integration Services 使用的端口

下表列出了 Integration Services 服务经常使用的端口。

功能

端口

注释

Microsoft 远程过程调用 (MS RPC)

由 Integration Services 运行时使用。

TCP 端口 135

请参阅 端口 135 的特殊注意事项

Integration Services 服务在端口 135 上使用 DCOM。 服务控制管理器使用端口 135 执行诸如启动和停止 Integration Services 服务以及将控制请求传送到正在运行的服务等任务。 此端口号无法更改。

仅当从 Integration Services 或自定义应用程序连接到远程 Management Studio 服务实例时,才需要打开此端口。

 

 

如何配置Windows Firewall

Windows Server 2003服务器

Windows Server 2003的防火墙设置比较简单,下面简要列一下配置步骤:

1:在“开始菜单”上,选择“控制面板”,打开Windows防火墙(或者在运行窗口使用firewall.cpl命令打开Windows防火墙)。

2:在Exception下,选择添加端口(Add Port)

在Add a Port里面,添加对应的TCP端口号,如下所示,如果你需要限制某些IP段才能访问数据库,可以在“Chnage scope"里面根据实际需要进行配置。

另外,如果需要开放UDP端口,可以新建一个命名为Customer Defined Port--SQL Server Udp Port的规则(Exception)。步骤基本上一致,在此略过。

Windows Server 2008/2012服务器

注意:Windows Server 2008R2 与2012服务器的防火墙设置基本上一致,在此不做重复介绍。只介绍Windows Server 2012,请知晓!

1:在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”,打开“高级安全Windows防火墙”,当然你可以从“控制面板”,打开Windows防火墙(运行里面使用firewall.cpl命令打开Windows防火墙),然后从菜单进入“高级安全Windows防火墙”

2:在入站规则右键点击“新建规则”,然后安装下面步骤逐一操作即可,当然有些地方根据实际需求配置

3:在"规则类型(Rule Type)"下,选择“端口(Port)”选项。

4:在“协议和端口(Protocol and Ports)",选择 TCP。 选择“特定本地端口”,然后键入数据库引擎实例的端口号,例如默认实例的端口号 1433或1434。 这里具体根据实际需要定制,如上所示,有可能还需要开通其它TCP端口号或UDP端口号(UDP端口,一般新建一个命名为Customer Defined Port--SQL Server Udp Port的规则)。 单击“下一步”。

5:在“操作(Action)”对话框中,选择“允许连接”,然后单击“下一步”。

6:在“配置文件”里面选择在什么时候应用该规则,例如域(Domain)、专用(Private)、公用(Public)。 全部勾选。

7:在名称(Name)里面填入Customer Defined Port--SQL Server Tcp Port , 这个名称Customer Defined Port表示自定义端口,SQL Server Tcp Port表示与SQL Server相关的Tcp 端口号。

8:完成后,如果你要限制某些IP才能访问这些端口,可以找到新建的规则“Customer Defined Port--SQL Server Tcp Port”,右键单击属性,在Scop里面设置。如下所示

当然也可以在“Rule Type”里面选择定制,左边菜单就会出现“Scope”选项。

 

方式2:使用Powshell来配置防火墙.

注意: Windows Server 2008 R2下如果Powshell是2.0版本,是无法使用Powshell来配置防火墙的。 我没有测试升级Powshell版本是否支持。下面实验环境为Windows Server 2012。 使用Powshell配置防火墙的效率是远远高于使用图形界面的。

1:开启1433端口

New-NetFirewallRule -DisplayName "Customer Defined Port--SQL Server Tcp Port" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow -Description "This Inbound rule is special for SQL Server"

2:开启1433,1434端口

New-NetFirewallRule -DisplayName "Customer Defined Port--SQL Server Tcp Port" -Direction Inbound -LocalPort 1433,1434 -Protocol TCP -Action Allow -Description "This Inbound rule is special for SQL Server"

当然可以根据实际情况开启相关端口,严禁开启其它不相关端口号,所需端口才开启,另外,使用powshell可以非常方便的管理防火墙,如果你需要查找帮助命令,可以使用下面命令,此处从略。

Get-Command -Noun "*Firewall*" | Select -ExpandProperty Name

PS C:\Users> Get-Command -Noun "*Firewall*" | Select -ExpandProperty Name

Copy-NetFirewallRule

Disable-NetFirewallRule

Enable-NetFirewallRule

Get-NetFirewallAddressFilter

Get-NetFirewallApplicationFilter

Get-NetFirewallInterfaceFilter

Get-NetFirewallInterfaceTypeFilter

Get-NetFirewallPortFilter

Get-NetFirewallProfile

Get-NetFirewallRule

Get-NetFirewallSecurityFilter

Get-NetFirewallServiceFilter

Get-NetFirewallSetting

New-NetFirewallRule

Remove-NetFirewallRule

Rename-NetFirewallRule

Set-NetFirewallAddressFilter

Set-NetFirewallApplicationFilter

Set-NetFirewallInterfaceFilter

Set-NetFirewallInterfaceTypeFilter

Set-NetFirewallPortFilter

Set-NetFirewallProfile

Set-NetFirewallRule

Set-NetFirewallSecurityFilter

Set-NetFirewallServiceFilter

Set-NetFirewallSetting

Show-NetFirewallRule

Add-SqlFirewallRule

Remove-SqlFirewallRule

查看某个命令的具体帮助信息,如下所示:

PS C:\Users> get-help New-NetFirewallRule

NAME

New-NetFirewallRule

SYNTAX

New-NetFirewallRule -DisplayName <string> [-PolicyStore <string>] [-GPOSession <string>] [-Name <string>]

[-Description <string>] [-Group <string>] [-Enabled <Enabled> {True | False}] [-Profile <Profile> {Any | Domain |

Private | Public | NotApplicable}] [-Platform <string[]>] [-Direction <Direction> {Inbound | Outbound}] [-Action

<Action> {NotConfigured | Allow | Block}] [-EdgeTraversalPolicy <EdgeTraversal> {Block | Allow | DeferToUser |

DeferToApp}] [-LooseSourceMapping <bool>] [-LocalOnlyMapping <bool>] [-Owner <string>] [-LocalAddress <string[]>]

[-RemoteAddress <string[]>] [-Protocol <string>] [-LocalPort <string[]>] [-RemotePort <string[]>] [-IcmpType

<string[]>] [-DynamicTarget <DynamicTransport> {Any | ProximityApps | ProximitySharing | WifiDirectPrinting |

WifiDirectDisplay | WifiDirectDevices}] [-Program <string>] [-Package <string>] [-Service <string>]

[-InterfaceAlias <WildcardPattern[]>] [-InterfaceType <InterfaceType> {Any | Wired | Wireless | RemoteAccess}]

[-LocalUser <string>] [-RemoteUser <string>] [-RemoteMachine <string>] [-Authentication <Authentication>

{NotRequired | Required | NoEncap}] [-Encryption <Encryption> {NotRequired | Required | Dynamic}]

[-OverrideBlockRules <bool>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob] [-WhatIf] [-Confirm]

[<CommonParameters>]

ALIASES

None

REMARKS

Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.

-- To download and install Help files for the module that includes this cmdlet, use Update-Help.

方式3:使用netsh来配置防火墙.

netsh 命令也配置防火墙,在此从略。

netsh firewall set portopening protocol = TCP port = 1433 name ='Customer Defined Port--SQL Server Tcp Port' mode = ENABLE scope = SUBNET profile = CURRENT

IMPORTANT: Command executed successfully.

However, "netsh firewall" is deprecated;

use "netsh advfirewall firewall" instead.

For more information on using "netsh advfirewall firewall" commands

instead of "netsh firewall", see KB article 947709

at http://go.microsoft.com/fwlink/?linkid=121488 .

Windows服务器防火墙配置规范的更多相关文章

  1. windows服务器下配置memcache最大内存值

    windows服务器下修改memcache配置要求如下: 1.用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务放在192.168.1.168的服务器上 2.修 ...

  2. Windows服务器初始配置

    系统状态是否良好 检查ip地址.子网掩码等配置 防火墙是否关闭 是否有攻击,有多大的攻击,什么类型的攻击,攻击流量图 是否中病毒 1.改端口 (1)打开注册表 [HKEY_LOCAL_MACHINE\ ...

  3. Windows服务器安全配置指南

    1).系统安全基本设置 2).关闭不需要的服务 Computer Browser:维护网络计算机更新,禁用 Distributed File System: 局域网管理共享文件,不需要禁用 Distr ...

  4. Windows服务器无法配置IP

    前天在给一台服务器配置IP地址的时候发现一个奇怪的问题.IP地址配置之后不生效,还是使用的169.254这个微软保留自动分配地址.由于这个是一台虚拟机,尝试了删除添加网卡也没有用.配置IP不成功的时候 ...

  5. Windows服务器PHPstudy配置安装微擎教程

    此教程只适于无环境的新服务器,有环境请勿安装用电脑上面的远程桌面连接登陆服务器.1,下载微擎安装包,下载PHPstudy,下载V9运行库.安装PHPstudy.安装V9运行库.准备好3个. <i ...

  6. windows server 2008 防火墙配置

    防火墙的配置主要是过滤用户是否能够访问服务器,哪些用户能够访问,哪些用户不能访问.类似于交换机上的acl(访问控制列表) 在windows服务器上有入站规则以及出站规则,那我们首先得了解一下什么是入站 ...

  7. Windows Server 服务器安全配置

    Windows Server 服务器安全配置 好吧,我标题党了.我只了解一些基本的安全配置.如果你是大湿,请绕道或者给予我严厉的批评让我进步谢谢. 编辑这篇文章用的编辑器编辑的,当我单击查看的时候发现 ...

  8. Windows 2016 服务器安全配置和加固

    最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅. 目 ...

  9. Windows使用Apache2配置Git服务器

    Windows使用Apache2配置Git服务器 本文地址:http://www.cnblogs.com/cnscoo/p/3373095.html Git下载: 网站:https://code.go ...

随机推荐

  1. HTTP的基本原理

    用户访问万维网文档,万维网文档之间的链接以及万维网文档中数据传送到用户计算机,这些功能的实现都是由超文本传输协议 HTTP(HyperTextTransfer Protocol) 负责完成的. HTT ...

  2. github代码clone加速

    这阵子想看看开源项目 MyBatis 的源码,结果使用 git 的 clone 命令怎么也 clone 不下来,我以为是网速慢,上 Google 一搜,原来 Github 的域名被 DNS 污染了,我 ...

  3. Perl的浅拷贝和深度拷贝

    首先是深.浅拷贝的概念: 浅拷贝:shallow copy,只拷贝第一层的数据.Perl中赋值操作就是浅拷贝 深拷贝:deep copy,递归拷贝所有层次的数据,Perl中Clone模块的clone方 ...

  4. 前端axios下载excel,并解决axios返回header无法获取所有数据的问题

    需求:通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 实现:axios(ajax类似) 主要代码: axios:设置返回数据格式为blob或者arraybuffer 如: var ...

  5. IDEA更换主题

    更换IDEA主题只需要3步 1. 下载主题 在主题网站上IDEA Color Themes 上浏览喜欢的主题并下载该主题.(如果网址有变更,google IDEA themes即可.)  2. 导入主 ...

  6. IIS Tomcat共享80端口

    为什么有这种需求, 原因是这样的, 公司有一个Java的web项目,在另一台服务器A上,最近老板一时兴起,想把他合并到这台稳定点的服务器B上,服务器B上使用IIS来寄宿asp.net 网站, 怎么办呢 ...

  7. C#开源框架(转载)

    Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Li ...

  8. input type=file 上传文件样式美化(转载)

    input type=file 上传文件样式美化 来源:https://www.jianshu.com/p/6390595e5a36 在做input文本上传时,由于html原生的上传按钮比较丑,需要对 ...

  9. spring boot 打jar包,获取resource路径下的文件

    前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到. 我想到了两种方法,一种是根据http访问静态资源比如 ...

  10. linux 单引号,双引号,反引号

    单引号 目的: 为了保护文字不被转换.除了他本身. 就是说除去单引号外, 在单引号内的所有文字都是原样输出. 1. [root@jszwl161 SP49EP9]# echo '$*><! ...