本文属于SQL Server安全专题系列
前面大篇幅介绍了SQL Server及操作系统的安全,现在是时候介绍一下外围主要是网络层面的安全。这部分主要包括网络功能、服务和端点。因为绝大部分的攻击都来自于网络,所以网络层的安全控制某种意义上可以说是最外层的防御。本文先介绍一下网络方面的配置。
网络配置
在介绍之前先要了解一下基础知识,包括端口和协议。这对后续防火墙的管理很有必要。
端口和协议
协议
在网络环境下,网络中的服务器交互时,彼此之间需要了解传输的信息是什么内容。这个工作由网络协议(protocol)来完成,SQL Server可以侦听三种不同的协议:Shared memory(共享内存)、named pipes(命名管道)和TCP/IP。
Shared Memory:仅用于在同一台服务器内的应用程序和数据库引擎实例交互。由于正式环境都不建议把客户端和数据库安装在同一个环境下,所以这种协议极少使用。通常仅用来排查网络连接的故障。
Named Pipes:主要用于局域网环境。在广域网中虽然可用但是性能会大打折扣。
TCP/IP:除非有理由不使用,否则都应该配置SQL Server使用TCP/IP协议。因为不管从安全性还是支持的广泛程度来说,都是其他协议无法比拟的。
端口
端口分为两大类:动态和静态。端口是在操作系统中的一个交互端点,配合网络协议传输信息。SQL Server使用TCP端口和UDP端口,客户端可以通过端口与实例建立连接。
静态端口:端口号总是固定的,即使服务器重启。很多软件都预占了一些端口,如SQL Server(1433)、MySQL(3306)。
动态端口:每次服务重启时重新生成(当然有几率会使用重启前的端口号,不过几率估计非常低)。
介绍完这些非常基础的内容之后,下