一般在同城的情況下,分支機構向總部傳輸數(shù)據(jù)有幾種方式:專線連接;硬件VPN或軟件VPN連接;Web應用的模式;通過Internet直接遠程連接。
在業(yè)務量較小的C/S模式下,通過外網(wǎng)直接遠程接入Windows SQL 2008 R2是一種比較經(jīng)濟可行的方式。
筆者單位需要將3個外單位體檢點的檢測數(shù)據(jù)傳入單位的服務器中,在不增加體檢點額外的成本、不改變體檢點原來的工作流程的原則下,我們采用了通過Intenet直接遠程接入WINDOWS SQL 2008 R2的方式,實現(xiàn)了3個體檢點將數(shù)據(jù)傳入本部服務器。其具體連接方法如下。
網(wǎng)絡拓撲圖見圖1。
本部服務器的操作系統(tǒng)是Windwos Server 2008,數(shù)據(jù)庫安裝的是Windows SQL 2008 R2,服務器單獨接在天融信防火墻的接口3,劃成了DMZ區(qū)。
檢查服務器的1433是否打開:SQL的默認連接端口是1433,如未打開,應先進行設置。
為確保設置正確,用一臺筆記本電腦(也安裝有WINDOWS SQL 2008 R2)直連服務器,用本地連接的方式成功連上服務器的SQL,然后繼續(xù)進行下一步的工作。
圖1 單位網(wǎng)絡拓撲圖
將筆記本電腦連入與服務器不同的另一寬帶線路中,打開筆記本電腦的SQL Server Managerment Studio,在登錄窗的“服務器名稱”中輸入服務器所聯(lián)寬帶線路的公網(wǎng)IP(下稱IP2),“身份驗證”選擇SQL SERVER身份驗證,并依次輸入登錄名及密碼。一會兒,出現(xiàn)如下錯誤信息,連接失敗,如圖2所示。
按照出現(xiàn)的錯誤信息分析:之前用筆記本電腦直連服務器的SQL,是能成功接入的,因此可排除SQL實例的錯誤;于是檢查SQL允許遠程連接的配置是否正確。檢查方法如下:
(1)以SQL Server身份驗證的方式,以SA賬號登錄進入服務器的SQL R2,然后右鍵選擇“屬性”, 選擇“連接”,看是否勾選“允許遠程連接此服務器”,如未勾選則勾選。
(2)右擊數(shù)據(jù)庫,在下拉菜單中選擇“方面”, 在右側的方面下拉框中選擇“服 務 器 配 置”;檢 查“RemoteAccessEnabled” 屬性是否為“True”,如不是將其設為“True”。經(jīng)檢查,服務器的SQL設置沒有問題。又在服務器上運行“netstat-an”命令,再次確認1433是開啟的。因此確認遠程連接SQL失敗的原因不是由服務器、SQL R2的設置引起的,另外,兩端安裝的都是同一版本的SQL R2,排除了版本差異引起的設置問題。于是分析單位的網(wǎng)絡拓撲圖。
圖2 連接失敗
從網(wǎng)絡拓撲圖看,服務器接在天融信防火墻的接口3,單位的局域網(wǎng)接在防火墻的接口2,兩者處于不同的鏈路上,天融信防火墻之前只有路由器,因此,排查范圍就只有防火墻和路由器上。登錄進路由器中查看配置,發(fā)現(xiàn)配置只是配置了幾條策略路由而,沒有什么可疑之處,因此將排查重點放在防火墻的設置上;又登錄進防火墻,也只是常規(guī)配置、一般的安全配置及VPN的設置。然后找出防火墻的隨機光碟,看了半天,也找不出問題所在。會不會配置少了什么規(guī)則呢?
突然間想到:會不會和建網(wǎng)站一樣,要做地址映射?防火墻前接有路由器,路由器是可以做地址映射的,但是服務器是接在防火墻的口3的,因此決定在防火墻上做地址映射。于是再次翻閱隨機光碟,終于找到了天融信防火墻設置地址映射的方法。
以管理員身份登錄進防火墻的管理界面,進行如下操作:
點擊左側欄“資源管理”,服務,在右側窗口中點擊“自定義”,再點擊“添加”,增加一條服務,名稱填寫“l(fā)inksql”;類型選擇 TCP;端口填寫1433,然后點擊“確定”。
點擊左側欄“防火墻”,再點擊“地址轉換”,然后在右側欄點擊添加,在模式中選擇“目的轉換”,源地址選擇“任意”,目的地址選擇“Eth1”(服務器所聯(lián)的寬帶線路),服務選擇linksql,目的地址轉換為:選擇服務器地址(主機),目的端口轉換為:選擇“l(fā)inksql(TCP:1433)”, 然后點確定并保存設置。
將筆記本電腦聯(lián)入另一條寬帶線路,打開Server Managerment Studio,在 登錄窗中輸入IP2,很快就進入到管理界面,就如進入到本地SQL管理界面一樣,至此,成功地遠程接入SQL R2,雖然使用起來有點卡頓。
雖然成功地遠程接入了SQL R2,但是由于是直連互聯(lián)網(wǎng)的,所以必須考慮安全性。鑒于連接方式及單位的密級,我們采取了如下措施:
SQL R2的默認連接端口1433,為了防止掃瞄,我們將1433端口改為不常用的端口。
修改SQL R2的默認端口后,服務器的防火墻開啟1433的規(guī)則也要將端口改為對應的端口。當然天融信防火墻的地址映射規(guī)則也要做相應的改變。
在應用程序的開發(fā)中,將連接參數(shù):鏈接套接字、SQL R2的登錄賬號、密碼全部進行加密處理,以防備被截取,其實際的實現(xiàn)方法就不在此文討論了。