來(lái)源:巨靈鳥軟件 作者:進(jìn)銷存軟件 發(fā)布:2014/10/15 瀏覽次數(shù):5869
十八、如何安全配置MSSQL數(shù)據(jù)庫(kù)
微軟的SQL Server是一種廣泛使用的數(shù)據(jù)庫(kù),很多單位、企業(yè)內(nèi)部信息化平臺(tái)等都是基于SQL Server上的,但是數(shù)據(jù)庫(kù)的安全性還沒有被人們意識(shí)到。多數(shù)管理員認(rèn)為只要把網(wǎng)絡(luò)和操作系統(tǒng)的安全搞好了,那么所有的應(yīng)用程序也就安全了。數(shù)據(jù)庫(kù)系統(tǒng)中存在的安全漏洞和不當(dāng)?shù)呐渲猛ǔ?huì)造成嚴(yán)重的后果,而且都難以發(fā)現(xiàn)。數(shù)據(jù)庫(kù)應(yīng)用程序通常同操作系統(tǒng)的最高管理員密切相關(guān)。
這里,我們主要談?wù)撚嘘P(guān)SQL Server2000數(shù)據(jù)庫(kù)的安全配置以及一些相關(guān)的安全和使用上的問(wèn)題。 在進(jìn)行SQL Server 2000數(shù)據(jù)庫(kù)的安全配置之前,首先你必須對(duì)操作系統(tǒng)進(jìn)行安全配置,保證你的操作系統(tǒng)處于安全狀態(tài)。然后對(duì)你要使用的操作數(shù)據(jù)庫(kù)軟件(程序)進(jìn)行必要的安全審核,比如對(duì)ASP、PHP等腳本,這是很多基于數(shù)據(jù)庫(kù)的WEB應(yīng)用常出現(xiàn)的安全隱患,對(duì)于腳本主要是一個(gè)過(guò)濾問(wèn)題,需要過(guò)濾一些類似 , ‘ ; @ / 等字符,防止破壞者構(gòu)造惡意的SQL語(yǔ)句。接著,安裝SQL Server2000后請(qǐng)打上補(bǔ)丁sp1以及最新的sp2。下載地址是:
http://www.microsoft.com/sql/downloads/2000/sp1.asp
http://www.microsoft.com/sql/downloads/2000/sp2.asp
在做完上面三步基礎(chǔ)之后,我們?cè)賮?lái)討論SQL Server的安全配置。
在此之前我想對(duì)如何使用SQL語(yǔ)句操作作一個(gè)簡(jiǎn)單的圖示。
執(zhí)行SQL語(yǔ)句有兩種方式,一種是基于文本工具isql,類似dos操作界面的方法,另外一種就是使用SQL查詢器來(lái)查詢,它是一個(gè)可視化的界面。
SQL查詢器可以在“開始”“程序”“Microsoft SQL Server” 找到它的快捷方式,程序具體位置是
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\isqlw.exe
這里簡(jiǎn)單介紹一下使用isql查詢方式(基于命令行的)
找到isql程序,它在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目錄下面(版本的不同或者安裝路徑不同可能在其他目錄中)。
開啟一個(gè)cmd命令窗口,
輸入:cd “Program Files\Microsoft SQL Server\80\Tools\Binn”
接著輸入:isql –S 服務(wù)器IP -U sa –P sa用戶的密碼
系統(tǒng)會(huì)出來(lái)一個(gè)前面是標(biāo)示命令行數(shù)的數(shù)值,后面跟一個(gè)>符號(hào)表示需要用戶在后面輸入SQL 語(yǔ)句命令,如上圖 1> use master 表示第一行,use master是用戶的輸入。最后一行g(shù)o表示開始處理SQL語(yǔ)句命令,如無(wú)特別說(shuō)明,以下命令均是在該終端下執(zhí)行的。詳細(xì)SQL命令請(qǐng)參考其他有關(guān)手冊(cè)。 1、使用安全的密碼策略 我們把密碼策略擺在所有安全配置的第一步,對(duì)于sa用戶應(yīng)該注意此帳號(hào)的密碼設(shè)置,盡量避免不要讓sa帳號(hào)的密碼寫于應(yīng)用程序或者腳本中。默認(rèn)安裝sa用戶密碼為空,應(yīng)在安裝后盡快修改它,并且養(yǎng)成定期修改密碼的好習(xí)慣。數(shù)據(jù)庫(kù)管理員應(yīng)該定期查看是否有不符合密碼要求的帳號(hào) 比如使用下面的SQL語(yǔ)句: Use master Select name from syslogins where password is null 給用戶密碼修改命令的語(yǔ)句是: sp_password ‘原密碼’,‘新密碼’,‘用戶帳號(hào)名’。 比如:
該命令就是把用戶名為“netconf”的密碼由原來(lái)的“netconf”改成“netconf1”。 2、使用安全的帳號(hào)策略。 由于SQL Server不能更改sa用戶名稱,也不能刪除這個(gè)超級(jí)用戶,所以,我們必須對(duì)這個(gè)帳號(hào)進(jìn)行最強(qiáng)的保護(hù),首先要選擇一個(gè)非常強(qiáng)壯的密碼。 其次,最好不要在數(shù)據(jù)庫(kù)應(yīng)用中使用sa帳號(hào),只有當(dāng)沒有其它方法登錄到 SQL Server時(shí)才使用 sa。建議數(shù)據(jù)庫(kù)管理員新建立一個(gè)擁有與sa一樣權(quán)限的超級(jí)用戶來(lái)管理數(shù)據(jù)庫(kù)。安全的帳號(hào)策略還包括不要讓管理員權(quán)限的帳號(hào)泛濫。 SQL Server的認(rèn)證模式有Windows身份認(rèn)證和混合身份認(rèn)證兩種。如果數(shù)據(jù)庫(kù)管理員不希望操作系統(tǒng)管理員來(lái)通過(guò)操作系統(tǒng)登陸來(lái)接觸數(shù)據(jù)庫(kù)的話,可以在帳號(hào)管理中把系統(tǒng)帳號(hào)“BUILTIN\Administrators”刪除。不過(guò)這樣做的結(jié)果是一旦sa帳號(hào)忘記密碼的話,就沒有辦法來(lái)恢復(fù)了。 很多主機(jī)使用數(shù)據(jù)庫(kù)應(yīng)用只是用來(lái)做查詢、修改等簡(jiǎn)單功能的,請(qǐng)根據(jù)實(shí)際需要分配帳號(hào),并賦予僅僅能夠滿足應(yīng)用要求和需要的權(quán)限。比如,只要查詢功能的,那么就使用一個(gè)簡(jiǎn)單的public帳號(hào)能夠select就可以了。 3、管理擴(kuò)展存儲(chǔ)過(guò)程。 對(duì)存儲(chǔ)過(guò)程進(jìn)行大手術(shù),并且對(duì)帳號(hào)調(diào)用擴(kuò)展存儲(chǔ)過(guò)程的權(quán)限要慎重。其實(shí)在多數(shù)應(yīng)用中根本用不到多少系統(tǒng)的存儲(chǔ)過(guò)程,而SQL Server的這么多系統(tǒng)存儲(chǔ)過(guò)程只是用來(lái)適應(yīng)廣大用戶需求的,所以請(qǐng)刪除不必要的存儲(chǔ)過(guò)程,因?yàn)橛行┫到y(tǒng)的存儲(chǔ)過(guò)程能很容易地被人利用起來(lái)提升權(quán)限或進(jìn)行破壞。 如果你不需要擴(kuò)展存儲(chǔ)過(guò)程xp_cmdshell請(qǐng)把它去掉。使用這個(gè)SQL語(yǔ)句: use master EXEC sp_dropextendedproc 'xp_cmdshell' xp_cmdshell是進(jìn)入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫(kù)留給操作系統(tǒng)的一個(gè)大后門。如果你需要這個(gè)存儲(chǔ)過(guò)程,請(qǐng)用這個(gè)語(yǔ)句也可以恢復(fù)過(guò)來(lái)。 EXEC sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' 如果你不需要請(qǐng)丟棄OLE(對(duì)象鏈接與嵌套,Object Linking and Embedding)自動(dòng)存儲(chǔ)過(guò)程(會(huì)造成管理器中的某些特征不能使用),這些過(guò)程包括如下: EXEC Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty &, nbsp; Sp_OAMe, , , , thod Sp_OASetProperty Sp_OAStop 去掉不需要的注冊(cè)表訪問(wèn)的存儲(chǔ)過(guò)程,注冊(cè)表存儲(chǔ)過(guò)程甚至能夠讀出操作系統(tǒng)管理員的密碼來(lái),如下: Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread Xp_regremovemultistring Xp_regwrite 還有一些其他的擴(kuò)展存儲(chǔ)過(guò)程,你也最好檢查檢查。 在處理存儲(chǔ)過(guò)程的時(shí)候,請(qǐng)確認(rèn)一下,避免造成對(duì)數(shù)據(jù)庫(kù)或應(yīng)用程序的傷害。 7、對(duì)網(wǎng)絡(luò)連接進(jìn)行IP限制 SQL Server 2000數(shù)據(jù)庫(kù)系統(tǒng)本身沒有提供網(wǎng)絡(luò)連接的安全解決辦法,但是Windows 2000提供了這樣的安全機(jī)制。使用操作系統(tǒng)自己的IPSec可以實(shí)現(xiàn)IP數(shù)據(jù)包的安全性。請(qǐng)對(duì)IP連接進(jìn)行限制,只保證自己的IP能夠訪問(wèn),也拒絕其他IP進(jìn)行的端口連接,把來(lái)自網(wǎng)絡(luò)上的安全威脅進(jìn)行有效的控制。 在windows 2000中提供了一種叫IPsec的安全工具,它能通過(guò)自定義規(guī)則來(lái)允許或者拒絕其他用戶通過(guò)TCP/IP協(xié)議來(lái)訪問(wèn)服務(wù)器某個(gè)端口。 在網(wǎng)絡(luò)屬性里面,選擇網(wǎng)卡的“本地連接”“tcp/ip屬性”選擇“高級(jí)” 選擇屬性,勾選“啟用TCP/IP篩選(所有示配器)”
這樣,其他用戶通過(guò)這塊網(wǎng)卡就只能訪問(wèn)到服務(wù)器的21,80,1433端口了。 Windows NT/2000的日志文件通常有應(yīng)用程序日志,安全日志、系統(tǒng)日志、DNS服務(wù)器日志、FTP日志、WWW日志等等。當(dāng)非法用戶探測(cè)系統(tǒng)信息的時(shí)候,就會(huì)在安全日志里迅速地記下機(jī)器被探測(cè)時(shí)所用的用戶名、時(shí)間等等,用FTP探測(cè)后,也會(huì)立刻在FTP日志中記下IP、時(shí)間、探測(cè)所用的用戶名和密碼等等,由此可見日志審計(jì)的重要性。以下即是對(duì)各種服務(wù)日志文件的默認(rèn)位置和文件內(nèi)容描述: 關(guān)于日志文件默認(rèn)位置: 應(yīng)用程序日志、安全日志、系統(tǒng)日志、DNS等服務(wù)日志的默認(rèn)位置在系統(tǒng)安裝目錄下的system32\config下。 關(guān)于日志文件保存目錄詳細(xì)描述: 安全日志文件:系統(tǒng)安裝目錄\system32\config\SecEvent.EVT 系統(tǒng)日志文件:系統(tǒng)安裝目錄\system32\config\SysEvent.EVT 應(yīng)用程序日志文件:系統(tǒng)安裝目錄\system32\config\AppEvent.EVT FTP日志默認(rèn)位置:系統(tǒng)安裝目錄\system32\logfiles\msftpsvc1\日志文件 WWW日志默認(rèn)位置:系統(tǒng)安裝目錄\system32\logfiles\w3svc1\日志文件 定時(shí)(Scheduler)服務(wù)日志默認(rèn)位置:系統(tǒng)安裝目錄\schedlgu.txt 安全日志文件,系統(tǒng)日志文件,應(yīng)用程序日志文件,這三個(gè)日志記錄都是有系統(tǒng)的一個(gè)稱為: Event Log服務(wù)生成的,Event Log 的作用是記錄程序和 Windows 發(fā)送的事件消息。事件日志包含對(duì)診斷問(wèn)題有所幫助的信息。停止和啟動(dòng)該服務(wù)就可以停止或者開始記錄上述三個(gè)日志文件。 FTP日志和WWW日志均是在Internet信息服務(wù)里面配置和控制。 在控制面板,管理工具里面打開Internet信息服務(wù),如下圖: 其中“dumplogin”是機(jī)器名,分別右鍵“默認(rèn)FTP站點(diǎn)”“默認(rèn)Web站點(diǎn)”,選擇“屬性”,以FTP的為例:
勾選“啟用日志記錄”就可以記錄FTP站點(diǎn)的信息了,日志文件格式建議選擇“W3C擴(kuò)充日志文件格式”。 選擇“屬性”
“新日志時(shí)間間隔”意思是每隔多長(zhǎng)時(shí)間系統(tǒng)日志單獨(dú)寫成新的一個(gè)文件,比如:選擇“每天”,那么每天在日志文件目錄下就會(huì)多一個(gè)新的文件,該文件內(nèi)容主要是記錄當(dāng)天的訪問(wèn)記錄。 還可以選擇按大小來(lái)拆分,選擇:“當(dāng)文件大小達(dá)到”一定大小的時(shí)候,才會(huì)生成一個(gè)新的文件,系統(tǒng)默認(rèn)是每天單獨(dú)記錄在一個(gè)文件里。 在“擴(kuò)充的屬性”里面,允許用戶選擇記錄哪些內(nèi)容以及格式等。
比如需要記錄事件發(fā)生的日期,時(shí)間,以及客戶IP地址,用戶名等等,那么就勾選相應(yīng)的欄目。最后點(diǎn)“應(yīng)用”就可以記錄了。 對(duì)于WWW服務(wù)來(lái)說(shuō),操作和FTP站點(diǎn)完全一樣。 既然系統(tǒng)日志文件能夠記錄所有的訪問(wèn)信息,為了防止他人修改系統(tǒng)的日志文件,隱藏自己的行蹤,我們必須限制對(duì)日志文件的訪問(wèn),禁止一般權(quán)限的用戶去查看日志文件。具體方法是: 我們可以利用文件系統(tǒng)對(duì)目錄和文件級(jí)的權(quán)限保護(hù)(如前所述),來(lái)設(shè)置只有管理員才可以對(duì)以上提到的系統(tǒng)日志文件有操作權(quán)限。另外,我們還要小心保護(hù)好具有超級(jí)權(quán)限的密碼和用戶,因?yàn)楹诳鸵坏┲懒诉@些具有超級(jí)權(quán)限的帳號(hào)后,他們就可以修改日志文件來(lái)隱藏其蹤跡了。 我們建議管理員應(yīng)該養(yǎng)成定時(shí)、定期備份日志的習(xí)慣。 對(duì)于FTP,WWW日志,只要拷貝文件到其他目錄就行了。 (注:當(dāng)天的日志必須要停止掉相應(yīng)的服務(wù)才能備份)。 對(duì)于事件日志,需要打開事件查看器,然后再選擇想要備份的日志: 選擇“另存日志文件”,在對(duì)話框中選擇路徑和文件名,然后“保存”即可。 注:由于事件日志不是按日期來(lái)分開,所以當(dāng)文件大小達(dá)到設(shè)置大小的時(shí)候可能會(huì)重寫文件,所以應(yīng)該經(jīng)常注意文件是否到達(dá)定額。文件最大設(shè)置大小和到達(dá)設(shè)置大小會(huì)如何處理在后面會(huì)有詳細(xì)介紹。
來(lái)源:巨靈鳥 歡迎分享本文
上一個(gè)文章:技術(shù)一旦被用來(lái)作惡,究竟會(huì)有多可怕(一)
下一個(gè)文章:Windows操作系統(tǒng)安全如何防范(三)