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