Chapter 1 Securing Your Server and Network(6):为SQL Server訪问配置防火墙

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,不论什么人不得以“原创”形式公布,也不得已用于商业用途,本人不负责不论什么法律责任。

        前一篇:http://blog.csdn.net/dba_huangzj/article/details/38063823

 

前言:

 

SQL Server 的通信基于TCP和UDPport,假设你须要从非本机的机器上訪问SQL Server,须要打开防火墙的port。而Windows Server 2008 默认防火墙是开启的。简单来说,就是所有port都被阻止。

 

实现:

 

能够依照以下步骤配置Windows 防火墙:

1. 在【開始】菜单中打开【控制面板】,也能够直接点击网络图标打开,然后选择【系统和安全】,点击【Windows 防火墙】,最后点击【高级设置】,如图:

 

image

 

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

2.右键【入站规则】,选择【新建规则】,然后在【规则类型】中选择【port】,然后在【协议和port】中输入以下的port:


image

  • 假设仅用SQL Server 引擎的默认实例,输入1433
  • 假设须要使用Analysis Services 引起的默认实例,输入2383
  • 假设使用Service Broker ,输入4022

image


点击【下一步】。完整的port列表能够訪问:http://msdn.microsoft.com/zh-cn/library/cc646023%28v=SQL.110%29.aspx

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

3. 在【操作】项中选择【同意连接】,点击【下一步】:


image


4. 在【配置文件】项中,假设你在域中,仅保留【域】选项的勾选,另外两个,主要用于工作站或笔记本。假设server是通过标识为【公共】的网络连接的,比方从互联网直接訪问,而且你想SQL Server能被外部发现,能够选择【公共】,当然,这比較危急。最后选择【下一步】并输入规则名。


image


原理:

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

上面描写叙述了怎样打开SQL Server默认实例的port,比方TCP 1433。而命名实例使用的是动态port,每次SQL Server 服务重新启动后port可能改变。这个port是通过SQLServer Browser 服务监听UDP 1434port来实现client的通信。动态port不适用于防火墙配置,由于使用动态port会强制你打开一个“范围”的port。

最好的方式是指定一个已经在防火墙中配置了的固定TCPport给命名实例,并禁用SQL Server Browser,然后关闭防火墙中的UDP 1434port。这部分会在接下来的一篇文章中介绍。

注意:从Windows Server 2008/Vista開始,默认动态port范围已经改变,具体信息可从这里查看:http://support.microsoft.com/kb/929851

 

很多其它信息:

 

为了限制特定的用户或者机器訪问SQL Server,能够通过防火墙的【入站规则】实现,能够在【入站规则】中找到相应的服务,如【SQL Server】,右键然后点击【属性】,在【常规页】勾选【仅仅同意安全连接】,如图:


image

 

然后分别在【远程用户】和【远程计算机】标签中授予特定用户或计算机訪问:


image

 

另外,能够在SQL Server中用命令查询特定port,能够使用以下语句查看Service Broker、镜像中的port,假设须要使用这些功能,须要开放相应的port:

SELECT  name , 
        protocol_desc , 
        port , 
        state_desc 
FROM    sys.tcp_endpoints 
WHERE   type_desc IN ( 'SERVICE_BROKER', 'DATABASE_MIRRORING' );


除了图形化操作,还能够使用netsh.exe命令实现防火墙配置,以管理员身份执行这个命令,并用以下语句开放TCP 1433port:

netsh advfirewall firewall add rule name = "SQL Server" dir = in protocol = tcp action = allow localport = 1433,2383 profile = DOMAIN

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38082123,专题文件夹:http://blog.csdn.net/dba_huangzj/article/details/37906349

很多其它相关信息能够訪问:(怎样使用"netsh 由防火墙"上下文,而不是控制 Windows Vista 和 Windows Server 2008 中的 Windows 防火墙行为"netsh 防火墙"上下文)

http://support.microsoft.com/kb/947709


下一篇:http://blog.csdn.net/dba_huangzj/article/details/38227187

posted @ 2014-10-19 13:58  phlsheji  阅读(190)  评论(0编辑  收藏  举报