本文属于一篇内部规范文档,整理的初衷是为了规范、统一集团的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. C++版 - 剑指offer 面试题16:反转链表(Leetcode 206: Reverse Linked List) 题解

    面试题16:反转链表 提交网址: http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&tqId= ...

  2. 不得不提的volatile及指令重排序(happen-before)

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

  3. Windows服务器端口绑定证书

    打开IIS:inetmgr 打开服务:ctrl+shift+Esc 查看证书秘钥: 服务器查看https证书绑定: 1) 查看证书 netsh http show sslcert 2) 将证书与端口绑 ...

  4. AspNetPager分页控件的使用方法

    1. 首先将AspNetPager.dll复制于应用程序下的bin目录,打开解决方案,引入dll文件 (通过NuGet获取) 2. 在工具栏中添加控件,这样可以支持拖拽使用 3.页面拖入分页控件,设置 ...

  5. tomcat没有编译重新编写的代码

    今天在工作的时候,我把项目的mapper.xml的的sql语句改了,但是在启动项目,在页面访问数据的时候,发现控制打印出来的sql语句还是原来的,没有改过来. 在tomcat里找到我的代码,找到我修改 ...

  6. python基本操作

    创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...

  7. Yum搭建LNMP环境(动、静、库分离)(week4_day5)--技术流ken

    前言 本篇博客使用yum来搭建lnmp环境,将采用动态,静态以及数据库分开安装的方式即nginx,php,mysql.会被分开安装在不同的服务器之上,搭建出来一套lnmp环境,并部署wordpress ...

  8. 【golang-GUI开发】Qt项目的打包发布

    这是本系列的第三篇文章,前两篇我们讲了qt的安装和编译,今天我们讲一讲程序的打包. 好像我们现在都没怎么讲到qt的使用,因为想要放开手脚写代码,一些基础是要打牢的. 不过请放心,下一篇文章开始我们就会 ...

  9. Java爬虫之下载全世界国家的国旗图片

    介绍   本篇博客将继续上一篇博客:Python爬虫之使用Fiddler+Postman+Python的requests模块爬取各国国旗 的内容,将用Java来实现这个爬虫,下载全世界国家的国旗图片. ...

  10. Redis 私有云平台 CacheCloud

    redis-cachecloud https://github.com/sohutv/cachecloud/wiki/3.%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6 ...