Windows服务器防火墙配置规范
本文属于一篇内部规范文档,整理的初衷是为了规范、统一集团的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 使用 |
TCP 端口 80 |
用于通过 URL 实现的 HTTP 连接。 |
Analysis Services 配置为通过 IIS/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) |
TCP 端口 135 |
Integration Services 服务在端口 135 上使用 DCOM。 服务控制管理器使用端口 135 执行诸如启动和停止 Integration Services 服务以及将控制请求传送到正在运行的服务等任务。 此端口号无法更改。 |
如何配置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服务器防火墙配置规范的更多相关文章
- windows服务器下配置memcache最大内存值
windows服务器下修改memcache配置要求如下: 1.用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务放在192.168.1.168的服务器上 2.修 ...
- Windows服务器初始配置
系统状态是否良好 检查ip地址.子网掩码等配置 防火墙是否关闭 是否有攻击,有多大的攻击,什么类型的攻击,攻击流量图 是否中病毒 1.改端口 (1)打开注册表 [HKEY_LOCAL_MACHINE\ ...
- Windows服务器安全配置指南
1).系统安全基本设置 2).关闭不需要的服务 Computer Browser:维护网络计算机更新,禁用 Distributed File System: 局域网管理共享文件,不需要禁用 Distr ...
- Windows服务器无法配置IP
前天在给一台服务器配置IP地址的时候发现一个奇怪的问题.IP地址配置之后不生效,还是使用的169.254这个微软保留自动分配地址.由于这个是一台虚拟机,尝试了删除添加网卡也没有用.配置IP不成功的时候 ...
- Windows服务器PHPstudy配置安装微擎教程
此教程只适于无环境的新服务器,有环境请勿安装用电脑上面的远程桌面连接登陆服务器.1,下载微擎安装包,下载PHPstudy,下载V9运行库.安装PHPstudy.安装V9运行库.准备好3个. <i ...
- windows server 2008 防火墙配置
防火墙的配置主要是过滤用户是否能够访问服务器,哪些用户能够访问,哪些用户不能访问.类似于交换机上的acl(访问控制列表) 在windows服务器上有入站规则以及出站规则,那我们首先得了解一下什么是入站 ...
- Windows Server 服务器安全配置
Windows Server 服务器安全配置 好吧,我标题党了.我只了解一些基本的安全配置.如果你是大湿,请绕道或者给予我严厉的批评让我进步谢谢. 编辑这篇文章用的编辑器编辑的,当我单击查看的时候发现 ...
- Windows 2016 服务器安全配置和加固
最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅. 目 ...
- Windows使用Apache2配置Git服务器
Windows使用Apache2配置Git服务器 本文地址:http://www.cnblogs.com/cnscoo/p/3373095.html Git下载: 网站:https://code.go ...
随机推荐
- Elasticsearch实践(三):Mapping
版本:Elasticsearch 6.2.4. Mapping类似于数据库中的表结构定义,主要作用如下: 定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型.布尔型等 ...
- Ubuntu16.04配置静态IP地址
ubuntu如何设置静态IP? 设置静态IP 1.编辑/etc/network/interfaces文件: # This file describes the network interfaces a ...
- 通过keras例子理解LSTM 循环神经网络(RNN)
博文的翻译和实践: Understanding Stateful LSTM Recurrent Neural Networks in Python with Keras 正文 一个强大而流行的循环神经 ...
- SpringBoot自动配置源码调试
之前对SpringBoot的自动配置原理进行了较为详细的介绍(https://www.cnblogs.com/stm32stm32/p/10560933.html),接下来就对自动配置进行源码调试,探 ...
- Tomcat 8005/8009/8080/8443端口的作用
--关闭tomcat进程所用.当执行shutdown.sh关闭tomcat时就是连接8005端口执行“SHUTDOWN”命令--由此,我们直接telnet8005端口执行“SHUTDOWN”(要大写, ...
- T-SQL:SQL语句处理顺序的坑(四)
首先看下面一条比较完成语句,都是比较常见的关键字. USE Temp; SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorder ...
- UWP: 妙用自定义 Action 以简化并重用代码
相信每一位 App 开发者,在开发过程中,都会有一些代码被反复用到,比如:复制文本,打电话,发短信,发邮件,给应用添加评论等等.在项目之间复制这些代码段,实在不是一个好办法,所以大家可能会把这些代码放 ...
- [android] 采用layoutInflater打气筒创建一个view对象
上一节知道了ListView的工作原理,数据也展示出来了,但是TextView显示的非常难看,如果想美化一下,就先创建好一个布局出来,这个布局采用了两层LinearLayout嵌套,外层的水平方向,内 ...
- Java_Collections工具类
Collections 工具类 * Collection与Collections区别 Collection 接口,(大部分集合类的实现接口) Collections 工具类(针对列表) * Colle ...
- Java高并发--缓存
Java高并发--缓存 主要是学习慕课网实战视频<Java并发编程入门与高并发面试>的笔记 在下图中每一个部分都可以使用缓存的技术. 缓存的特征 缓存命中:直接通过缓存获取到数据 命中率: ...