2011年10月6日 星期四

利用IPSec建立內部防火牆以提升資料庫安全

  一般公司都會有外部防火牆來防止駭客直接入侵,那內部防火牆要防誰呢?當然是來防內賊的,一般無內部防火牆的情況下,只要知道資料庫的IP、帳號及密碼,在內網就能夠去取得資料庫的資料,如果使用IPSec來建立內部防火牆,就能設定IP白名單,僅允許白名單上的伺服器可連接資料庫,這樣就算內部無權的人取得資料庫的帳號密碼也沒法取得資料,除非他有辦法透過那幾台在白名單裡的伺服器去連囉,這樣不就可以提升資料庫的安全性嗎!最近個資法的施行細則也快公布了,有免錢可以提升安全性的做法,是不是該考慮一下

  IPSec的說明、安裝及使用方式我就不介紹了,網路上一堆參考資料,自己去搜尋吧!

  我直接給設定指令IPSECCMD的範例,IPSECCMD是給XP及Win server2003用的,Win Server2000則是用IPSECPOL囉,參數基本上差不多,都需要另外安裝




::-----------以下存成.bat的,在Server(安裝SQL的伺服器)上執行(開始)
::先停用原則(若沒有此原則出錯是正常)
ipseccmd -w REG -p "DB TCP 1433 Sec"  -y
::再刪除原則(若沒有此原則出錯是正常)
ipseccmd -w REG -p "DB TCP 1433 Sec"  -o
::建立原則加入IP篩選器清單(任何IP到本機1433的封鎖)
IPSeccmd -w REG -p "DB TCP 1433 Sec" -r "DB TCP 1433 Block" -f *=0:1433:TCP -n BLOCK
::建立白名單,使用加密及整合(3des,sha),驗證方法為預先共用金鑰key123
ipseccmd -w REG -p "DB TCP 1433 Sec" -r "Permit" -f 192.168.0.1/+0/255.255.255.255:1433:TCP -f 192.168.0.2/+0/255.255.255.255:1433:TCP -n esp[3des,sha] -a p:"key123"
::再啟用原則
ipseccmd -w REG -p "DB TCP 1433 Sec" -x
pause
::-----------Server(安裝SQL的伺服器)上執行(結束)


::-----------以下存成.bat的,在Client(白名單的伺服器)上執行(開始)
::先停用原則(若沒有此原則出錯是正常)
ipseccmd -w REG -p "Secutity"  –y
::再刪除原則(若沒有此原則出錯是正常)
ipseccmd -w REG -p "Secutity"  –o
::建立原則,注意與伺服器的加密及驗證方法設為一致即可,192.168.0.0記得換成SQL那台
ipseccmd -w REG -p "Secutity" -r "permitSQL1433" -f 0/+192.168.0.0/255.255.255.255:1433:TCP  -n esp[3des,sha] -a p:" key123" -x
pause
::-----------Client(白名單的伺服器)上執行(結束)

自問自答

1同一個IP篩選器要加入多個IP清單怎麼做?
  如同我的範例,白名單裡有兩個IP,就有兩對”-f 192.168.0.x/+0/255.255.255.255:1433:TCP”,多個IP就有多對

2.白名單裡的IP清單好多不容易辨識,指令一大串,怎麼處理產生指令比較好?
  我的做法是靠Excel囉,有表格就可以打成IP清單啦,再用VBA產生成指令,方便快速好辨識

3.Client端有多個IP篩選器清單似乎只會有一個套用成功耶?
  每增加一個記得要先停用再啟用即可囉

4.這會影響效能嗎?
想也知道多少都會吧,但安全比較重要喔

2 則留言:

  1. 您好! 我正在增加 ipseccmd 的用法及作法

    可否請您寄給我,您的 用VBA產生成指令 的檔案和使用方法,3Q

    我的電子郵件 : meteor0721@hotmail.com

    回覆刪除
    回覆
    1. 如果真要啟用IPSec,建議你改用Netsh IPsec設定比較方便,可參考我的另外兩篇文章有作介紹!

      刪除