📄 +
字号:
作者:hkhk
email: huake@usa.net
日期:2001-7-10 14:18:01
设置Proxy Server和SQL Server实现互联网上数据库的安全复制
高科华 译
摘要:本文讨论如何设置Proxy Server和SQL Server,以实现互联网上数据库的安全复制。
引言
数据库复制是企业内共享数据和存储过程的重要的强大工具。微软的SQL Server所具有的数据库复制技术使得我们可以制作数据副本,传递这些副本到不同的位置,自动同步这些数据使得所有副本都有相同的数据。复制既可以在同一个服务器上的不同数据库之间实现,也可以在不同服务器上的数据库之间实现,这些不同的服务器通过LAN,WAN或Internet建立连接。
通过联合使用SQL Server 和Proxy Server,我们可以实现互联网上数据库的安全复制。其步骤包括:设置网络拓扑,了解保护安全的方法,设置Proxy Server,设置SQL Server数据复制。
设置网络拓扑
设置网络拓扑是使SQL Server和Proxy Server一起工作的第一步。如图所示,Proxy Server提供Internet与运行SQL Server 7.0的内部服务器(出版服务器)之间的连接。内部服务器既是出版服务器又是分发服务器,订阅服务器运行的也是SQL Server 7.0,通过Internet访问出版服务器,应采用拉式订阅。
[proxyrep1.gif]
图1:网络拓扑
Proxy Server所需软件
Microsoft Windows NT? version 4.0 with Service Pack 4
Windows NT 4.0 Option Pack
Microsoft Internet Information Services (IIS) version 4.0
Proxy Server version 2.0
SQL Server所需软件
Windows NT Server 4.0 with Service Pack 4
Microsoft Internet Explorer version 4.01 with Service Pack 1
SQL Server 7.0
Proxy Server应设置为多穴服务器以阻止未授权的Internet用户访问内部网络资源 。多穴服务器就是安装了两块网卡的服务器,它提供了一种安全方式连接Internet和内部网络。第一块网卡称为外部Proxy界面卡,它把Internet用户和内部网络隔离开来。第二块网卡称为内部Proxy界面卡,通过它内部网络可以访问Proxy Server。当Proxy Server授与内部网络用户许可权限后,就可以在内部网络与外部网络之间建立连接。
Proxy Server控制内部网上哪些服务或用户可以建立到Proxy Server的连接或绑定到Proxy Server的端口上。在Internet上的任何用户或服务器能够访问内部网络上的数据或资源之前,必需建立这种连接。
为了建立到Proxy服务的连接,Internet用户通过外部网卡连接到Proxy Server,并连接到某个端口上。建立了到Proxy Server上端口的连接只向被许可用户提供对Proxy上服务的访问,比如访问文件目录。用户不能访问内部网络上的任何服务或资源。
使用子网掩码
SQL Server和Proxy Server服务器的内部子网上不要指定缺省网关。外部网卡的缺省网关必需指向相应路由器的IP地址。
了解保护安全的方法
安全考虑是设计和实现分布式应用的重要部分。由于复制是把一个服务器上数据的变化传送到网络上许多其他的服务器,因此,首先需要了解网络安全的层次。
数据的分散增加了管理或限制对其访问的难度。SQL Server数据库复制利用多种安全机制的结合以保护应用程序中的数据和处理逻辑。
考虑安全性要求的一个方式是分层。在增加上一层次之前,下一层次必需正常工作。每一个层次与其下一层次有关。我们需要考虑三个安全层次:
Windows NT 用户帐号
Proxy Server 安全
SQL Server 复制帐号
Windows NT 用户帐号
在复制能够工作之前,前面提到的三个服务器之间必需建立连接。首先,出版服务器/分发服务器必需建立到代理服务器的网络连接。其次,订阅服务器必需建立到出版服务器/分发服务器的SQL Server连接。最后,订阅服务器必需建立到代理服务器上FTP服务的网络连接。
Windows NT 出版服务器/分发服务器帐号
在Internet上复制数据的第一步就是要在出版服务器/分发服务器和代理服务器之间建立网络连接。当SQL Server启动时,MSSQLServer服务从Proxy Server得到许可,利用外部Proxy界面绑定到一个专用端口。Proxy Server必需能授权MSSQLServer服务帐号,要求适当的用户帐号设置以便正常工作。
为了增加安全性,在出版服务器/分发服务器上的MSSQLServer帐号应与登录Windows NT所用的帐号不同。
[proxyrep2.gif]
图2. 出版服务器/分发服务器帐号
Windows NT Proxy Server 帐号
在出版服务器/分发服务器上的MSSQLServer帐号必需出现在Proxy Server上的WinSock服务的许可列表中。当请求绑定到端口时,MSSQLServer向Proxy Server提交帐号以便验证。在Proxy Server验证了MSSQLServer帐号后,Internet和出版服务器/分发服务器之间就建立了一个连接。
为了得到Proxy Server上的FTP服务,订阅服务器上的复制代理向Proxy Server提供一个帐号,通过验证后就建立了FTP连接。这个帐号必需:
出现在FTP 站点操作者列表中。
具有本地登录权限。
具有快照文件夹的读权限
当创建一个新的订阅时,就自动创建了用户帐号并存储在表Mssubscriptions_properties中。
Windows NT 订阅服务器帐号
在为复制建立连接之前,必需在订阅服务器上注册出版服务器/分发服务器。除非特别指定,复制代理将会使用与注册出版服务器/分发服务器相同的帐号建立连接。
Proxy Server安全
在多穴服务器上,可以在内部Proxy界面和外部Proxy界面之间建立内部连接,这样Internet用户就可以访问内部网络上的资源。Proxy Server监视Internet用户或服务,只允许授权用户建立连接。
如前所述,出版服务器/分发服务器上的MSSQLServer服务建立了到Proxy Server的连接并绑定到一个端口,这样就可以通过外部Proxy 界面访问SQL Server。任何Internet用户只要提供了端口号、外部Proxy 界面IP地址和有效的帐号就能访问SQL Server。
复制要求能访问FTP服务。必要时,订阅服务器用来登录SQL Server的帐号就用来初始化FTP服务。缺省情况下,这个帐号与在订阅服务器上注册出版服务器/分发服务器所用的帐号相同。当然,你也可以在创建拉式地订阅时通过在表Mssubscription_properties中输入帐号名称和口令指定另外的帐号。无论如何,这个帐号必需:
出现在FTP 站点操作者列表中。
具有本地登录权限。
具有快照文件夹的读权限
缺省的SQL Server设置包括:
利用Proxy Server WinSock服务绑定到端口1433
利用Proxy Server WinSock服务将FTP服务绑定到端口21
不管选择什么类型的复制,首先都必须在订阅服务器和出版服务器之间建立ODBC连接。当要求连接到Proxy Server上的FTP服务时,分发服务器就通知订阅服务器。分发服务器提示输入帐号后,订阅服务器就初始化到FTP服务的连接,从快照文件夹中提取数据。
[proxyrep3.gif]
图3.Proxy Server安全
SQL Server复制帐号
对于拉式订阅来说,复制要求在订阅服务器上注册出版服务器/分发服务器。这就要求出版服务器/分发服务器的帐号和口令以便访问出版服务器上的出版数据库。在订阅服务器上注册出版服务器意味著在Windows NT层和SQL Server层建立了网络连接。如果你不能在订阅服务器上注册出版服务器/分发服务器,请检查相应的连接和帐号。
出版服务器/分发服务器利用MSSQL Server帐号绑定到WinSock 端口1433和外部Proxy界面卡。确保你用来注册出版服务器/分发服务器的帐号有足够的权限。
在订阅服务器上注册出版服务器/分发服务器的帐号应当是标准的SQL Server登录帐号。
[proxyrep4.gif]
图4. SQL Server复制帐号
出版物访问许可
安全机制的最后一步是在出版之前检查用户帐号。由于一个出版服务器可能有一对多关系,每个出版物可以通过它的PAL控制访问许可。复制代理所用的登录帐号由它要访问的出版物的PAL进行验证。如果订阅服务器的登录帐号不在PAL中,访问就被拒绝。不同的订阅服务器用不同的帐号可以限制对出版物的访问。
[proxyrep5.gif]
图5. 出版物访问许可
设置Proxy Server
SQL Server通过两种方法访问复制数据:ODBC和FTP。在Internet上复制需要用到这两种方法。必需正确设置Proxy Server才能在订阅服务器和出版服务器/分发服务器之间通过Proxy Server建立ODBC连接。在设置复制之前,利用订阅服务器上的OSQL建立到出版服务器/分发服务器的连接,将数据从外部Proxy界面卡传到SQL Server,可以测试这种连接。还可以通过将SQL Server的数据写入Proxy Server上重定向的快照文件夹测试这种连接。这可以通过利用SQL代理的用户帐号登录到出版服务器/分发服务器,将SQL Server的一个文件复制到新的快照文件夹来完成。
设置Proxy Server需要如下四个步骤:
取消IP转发
设置FTP服务
设置WinSock Proxy 服务
验证Proxy Server设置
取消IP转发
虽然Internet提供了方便的方法在远距离间传送数据,但是这也使得内部网络和数据的安全受到威胁。为了保护网络,应该取消在进入服务端口的侦听并取消IP转发。取消IP转发后,Internet用户只能见到网络操作所赋予的IP地址,这样就减少了非法入侵的潜在威胁。
Proxy Server可以阻塞外部IP地址。取消IP转发后,除非激活应用服务端口,否则,Internet用户不能建立连接。
取消IP转发的步骤如下:
在控制面板中,双击”网络”
点击”协议”页框
选择”TCP/IP”,然后,点击”属性”
在”TCP/IP属性”对话框中,点击”路由”
确认没有选择”启动IP转发”
在Windows NT环境下,你可以为Proxy Server建立独立的域,SQL Server在私有网络的另一个域内。通过建立Proxy Server到SQL Server的单向信任关系最大程度地提高安全性。有关设置细节,请看Windows NT文档。
设置FTP服务
复制利用FTP在Internet上将初始化数据和模式从一个地方传送到另一个地方。快照代理把数据放在快照文件夹内,订阅服务器上的合并代理或分发代理从快照文件夹内取出数据。
当SQL Server复制在Internet上传送数据时,它利用Proxy Server上的FTP目录作为快照文件夹。要获得快照文件夹的位置必须首先建立到出版服务器/分发服务器的ODBC连接。订阅服务器上的合并代理或分发代理然后初始化到Proxy Server的FTP连接,取出存储在快照文件夹内的数据。
为了设置Proxy Server上的FTP服务,必须将出版服务器/分发服务器用来作为快照文件夹的本地目录设置成FTP目录。停止并重新启动FTP服务才能使设置生效。
设置FTP服务的步骤如下:
在”启动”菜单上,指向”程序/Microsoft Proxy Server”,然后点击”Microsoft Management Console”。
展开”Internet Information Service”,再展开”计算机名称”
点击”缺省的FTP站台”
指向”新建”,然后点击”站台”,启动新建FTP站台向导
FTP Site Description FTP 复制站点
Select the IP Address to use for this FTP Site. 输入站点的IP地址
TCP Port this FTP Site should use. 21
Enter the Path for your home directory. 例如: C:\repldata\ftp.
What access permissions do you want to set for the home directory? 允许读
要完成FTP站台的设置,还得改变缺省的安全设置。为了提高安全性,可以关闭匿名访问或来宾帐号。用具有本地登录权限和快照文件夹读权限的用户帐号,例如REPL2作为FTP站台的操作者。
通过Proxy Server控制FTP访问的步骤如下:
在”启动”菜单上,指向”程序/Microsoft Proxy Server”,然后点击”Microsoft Management Console”。
展开”Internet Information Service”,再展开”计算机名称”
点击用作复制的FTP站台,再点击属性
在site name Properties 对话框内, 点击 the Security Accounts 页框, 然后清除 Allow Anonymous Access 选项。
在FTP Site Operators下, 只把操作者权限授予需要访问这个FTP站点的用户。
在Internet Service Manager 对话框内, 点击Yes ,然后点击FTP 站台页框。
在Connections下, 选择Limited To, 然后输入复制连接的最大数目。
在Directory Security 页框中的By default, all computers will be: 对话框内,点击Denied Access。
注意 这样就将在步5输入的FTP 操作者帐号排除在外,除非输入的IP地址是静态IP地址。
点击Add,然后输入与本服务器通讯的所有复制服务器的IP地址。
设置使用包过滤时的FTP服务
如果使用带包过滤的Proxy Server上的FTP,在Internet端FTP访问被完全阻塞了。当要在Proxy Server上运行应用程序,例如FTP时,需要设置静态过滤以激活FTP。关于包过滤的更多详细信息,请看Proxy Server文档。
增加自定义的静态过滤的步骤如下:
在”启动”菜单上,指向”程序/Microsoft Proxy Server”,然后点击”Microsoft Management Console”。
展开”Internet Information Service”,再展开”计算机名称”
右击Web Proxy service, 再点击属性。
在Service 页框上, 点击Security。
在Packet Filters 页框上, 点击Add。
在Packet Filter Properties 对话框内, 点击Custom filter。
在Protocol ID内, 选择一个协议, 在Direction内, 选择方向。
在Local port下, 点击适当的选项。
选择适当的Local host 选项,指定与外部主机(订阅服务器)交换包的内部计算机。
在Remote host下, 点击Single host, 然后输入IP 地址。这样就允许与指定的Internet上的计算机交换包。
包过滤实例
FTP Server IN (Filter 1 of 2)
Protocol = TCP
Direction = IN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -