1. 程式人生 > 實用技巧 >Windows伺服器安全配置指南

Windows伺服器安全配置指南

伺服器安全設定

1.系統盤和站點放置盤必須設定為NTFS格式,方便設定許可權.

2.系統盤和站點放置盤除administrators 和system的使用者許可權全部去除.

clip_p_w_picpath002[6]

3.啟用windows自帶防火牆,只保留有用的埠,比如遠端和Web,Ftp(3389,80,21)等等,有郵件伺服器的還要開啟25和130埠.
clip_p_w_picpath004[6]

clip_p_w_picpath006[6]
clip_p_w_picpath008[6]

4.安裝好SQL後進入目錄搜尋 xplog70 然後將找到的三個檔案改名或者刪除.
clip_p_w_picpath010[6]

5.更改sa密碼為你都不知道的超長密碼,在任何情況下都不要用sa這個帳戶.

clip_p_w_picpath012[6]

6.改名系統預設帳戶名並新建一個Administrator帳戶作為陷阱帳戶,設定超長密碼,並去掉所有使用者組.(就是在使用者組那裡設定為空即可.讓這個帳號不屬於任何使用者組)同樣改名禁用掉Guest使用者.

clip_p_w_picpath014[6]

7.配置帳戶鎖定策略(在執行中輸入gpedit.msc回車,開啟組策略編輯器,選擇計算機配置-Windows設定-安全設定-賬戶策略-賬戶鎖定策略,將賬戶設為“三次登陸無效”,“鎖定時間30分鐘”,“復位鎖定計數設為30分鐘”。)
clip_p_w_picpath016[6]

8.在安全設定裡 本地策略-安全選項 將
網路訪問:可匿名訪問的共享 ;
網路訪問:可匿名訪問的命名管道 ;
網路訪問:可遠端訪問的登錄檔路徑 ;
網路訪問:可遠端訪問的登錄檔路徑和子路徑 ;
以上四項清空.

clip_p_w_picpath018[6]

9.在安全設定裡 本地策略-使用者許可權分配通過終端服務拒絕登陸 加入
ASPNET
Guest
IUSR_*****
IWAM_*****

NETWORK SERVICE
SQLDebugger
(****表示你的機器名,注意不要新增進user組和administrators組 新增後,無法遠端登陸了.)

clip_p_w_picpath020[6]

10.去掉預設共享,將以下檔案存為reg字尾,然後執行匯入即可.
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]

"AutoShareServer"=dword:00000000

"AutoSharewks"=dword:00000000

clip_p_w_picpath022[6]

11.更改本地安全策略的稽核策略

策略更改 成功 失敗

登入事件 成功 失敗

物件訪問 失敗

特權使用 失敗

系統事件 成功 失敗

目錄服務訪問 失敗

賬戶登入事件 成功 失敗

賬戶管理 成功 失敗

12. 禁用不需要的和危險的服務,以下列出服務都需要禁用.
Alerter 傳送管理警報和通知

Computer Browser:維護網路計算機更新

Distributed File System: 區域網管理共享檔案

Distributed link tracking client 用於區域網更新連線資訊

Error reporting service 傳送錯誤報告

Remote Procedure Call (RPC) Locator RpcNs*遠端過程呼叫 (RPC)

Remote Registry 遠端修改登錄檔

Removable storage 管理可移動媒體、驅動程式和庫

Remote Desktop Help Session Manager 遠端協助

Routing and Remote Access 在區域網以及廣域網環境中為企業提供路由服務

Messenger 訊息檔案傳輸服務
Net Logon 域控制器通道管理

NT LM Security support provide telnet服務和Microsoft Serch用的

Print Spooler 列印服務

telnet telnet服務

Workstation 洩漏系統使用者名稱列表

13.更改有可能會被提權利用的檔案執行許可權,找到以下檔案,將其安全設定裡除administrators使用者組全部刪除,重要的是連system也不要留.
net.exe

net1.exe

cmd.exe

tftp.exe

netstat.exe

regedit.exe

at.exe

attrib.exe

cacls.exe

format.com

c.exe 特殊檔案 有可能在你的計算機上找不到此檔案.

在搜尋框裡輸入
"net.exe","net1.exe","cmd.exe","tftp.exe","netstat.exe","regedit.exe","at.exe","attrib.exe","cacls.exe","format.com","c.exe" 點選搜尋 然後全選 右鍵 屬性 安全

clip_p_w_picpath024[6]

以上這點是最最重要的一點了,也是最最方便減少被提權和被破壞的可能的防禦方法了.

14.後備工作,將當前伺服器的程序抓圖或記錄下來,將其儲存,方便以後對照檢視是否有不明的程式。將當前開放的埠抓圖或記錄下來,儲存,方便以後對照檢視是否開放了不明的埠。當然如果你能分辨每一個程序,和埠這一步可以省略。

> SQL許可權設定

1、一個數據庫,一個帳號和密碼,比如建立了一個數據庫,只給PUBLIC和DB_OWNER許可權,SA帳號基本是不使用的,因為SA實在是太危險了.

2、更改 sa 密碼為你都不知道的超長密碼,在任何情況下都不要用 sa 這個帳戶.

3、Web登入時經常出現"[超時,請重試]"的問題

如果安裝了 SQL Server 時,一定要啟用“伺服器網路實用工具”中的“多協議”項。

4、將有安全問題的SQL擴充套件儲存過程刪除. 將以下程式碼全部複製到"SQL查詢分析器"

use master

EXEC sp_dropextendedproc xp_cmdshell

EXEC sp_dropextendedproc Sp_OACreate

EXEC sp_dropextendedproc Sp_OADestroy

EXEC sp_dropextendedproc Sp_OAGetErrorInfo

EXEC sp_dropextendedproc Sp_OAGetProperty

EXEC sp_dropextendedproc Sp_OAMethod

EXEC sp_dropextendedproc Sp_OASetProperty

EXEC sp_dropextendedproc Sp_OAStop

EXEC sp_dropextendedproc Xp_regaddmultistring

EXEC sp_dropextendedproc Xp_regdeletekey

EXEC sp_dropextendedproc Xp_regdeletevalue

EXEC sp_dropextendedproc Xp_regenumvalues

EXEC sp_dropextendedproc Xp_regread

EXEC sp_dropextendedproc Xp_regremovemultistring

EXEC sp_dropextendedproc Xp_regwrite

drop procedure sp_makewebtask

恢復的命令是

EXEC sp_addextendedproc 儲存過程的名稱,@dllname =儲存過程的dll,例如:恢復儲存過程xp_cmdshell

EXEC sp_addextendedproc xp_cmdshell,@dllname =xplog70.dll,注意,恢復時如果xplog70.dll已刪除需要copy一個。

use master

exec sp_addextendedproc xp_cmdshell,'xp_cmdshell.dll'

exec sp_addextendedproc xp_dirtree,'xpstar.dll'

exec sp_addextendedproc xp_enumgroups,'xplog70.dll'

exec sp_addextendedproc xp_fixeddrives,'xpstar.dll'

exec sp_addextendedproc xp_loginconfig,'xplog70.dll'

exec sp_addextendedproc xp_enumerrorlogs,'xpstar.dll'

exec sp_addextendedproc xp_getfiledetails,'xpstar.dll'

exec sp_addextendedproc sp_OACreate,'odsole70.dll'

exec sp_addextendedproc sp_OADestroy,'odsole70.dll'

exec sp_addextendedproc sp_OAGetErrorInfo,'odsole70.dll'

exec sp_addextendedproc sp_OAGetProperty,'odsole70.dll'

exec sp_addextendedproc sp_OAMethod,'odsole70.dll'

exec sp_addextendedproc sp_OASetProperty,'odsole70.dll'

exec sp_addextendedproc sp_OAStop,'odsole70.dll'

exec sp_addextendedproc xp_regaddmultistring,'xpstar.dll'

exec sp_addextendedproc xp_regdeletekey,'xpstar.dll'

exec sp_addextendedproc xp_regdelete,'xpstar.dll'

exec sp_addextendedproc xp_regenums,'xpstar.dll'

exec sp_addextendedproc xp_regread,'xpstar.dll'

exec sp_addextendedproc xp_regremovemultistring,'xpstar.dll'

exec sp_addextendedproc xp_regwrite,'xpstar.dll'

>> 解除安裝刪除具有CMD命令功能的危險元件

WSHOM.OCX對應於WScript.Shell元件

HKEY_CLASSES_ROOT\WScript.Shell\

HKEY_CLASSES_ROOT\WScript.Shell.1\

新增IUSR使用者完全拒絕許可權

Shell32.dll對應於Shell.Application元件

HKEY_CLASSES_ROOT\Shell.Application\

HKEY_CLASSES_ROOT\Shell.Application.1\

新增IUSR使用者完全拒絕許可權

regsvr32 /u C:\Windows\System32\wshom.ocx

regsvr32 /u C:\Windows\System32\shell32.dll

WSHOM.OCXx和Shell32.dll這兩個檔案只給Administrator完全許可權

一、先關閉不需要的埠

我比較小心,先關了埠。只開了3389、21、80、1433,有些人一直說什麼預設的3389不安全,對此我不否認,但是利用的途徑也只能一個一個的窮舉爆破,你把帳號改了密碼設定為十五六位,我估計他要破上好幾年,哈哈!辦法:本地連線--屬性--Internet協議(TCP/IP)--高階--選項--TCP/IP篩選--屬性--把勾打上,然後新增你需要的埠即可。PS一句:設定完埠需要重新啟動!

clip_p_w_picpath026[6]

clip_p_w_picpath027[6]

當然大家也可以更改遠端連線埠方法:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE \ SYSTEM\ Current ControlSet \ Control \ Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002683

clip_p_w_picpath029[6]

儲存為.REG檔案雙擊即可!更改為9859,當然大家也可以換別的埠,直接開啟以上登錄檔的地址,把值改為十進位制的輸入你想要的埠即可!重啟生效!

還有一點,在2003系統裡,用TCP/IP篩選裡的埠過濾功能,使用FTP伺服器的時候,只開放21埠,在進行FTP傳輸的時候,FTP 特有的Port模式和Passive模式,在進行資料傳輸的時候,需要動態的開啟高階口,所以在使用TCP/IP過濾的情況下,經常會出現連線上後無法列出目錄和資料傳輸的問題。所以在2003系統上增加的Windows連線防火牆能很好的解決這個問題,不推薦使用網絡卡的TCP/IP過濾功能。

clip_p_w_picpath030[6]

做FTP下載的使用者看仔細,如果要關閉不必要的埠,在\system32\drivers\etc\services中有列表,記事本就可以開啟的。如果懶的話,最簡單的方法是啟用WIN2003的自身帶的網路防火牆,並進行埠的改變。功能還可以!

Internet 連線防火牆可以有效地攔截對Windows 2003伺服器的非法***,防止非法遠端主機對伺服器的掃描,提高Windows 2003伺服器的安全性。同時,也可以有效攔截利用作業系統漏洞進行埠***的病毒,如衝擊波等蠕蟲病毒。如果在用Windows 2003構造的虛擬路由器上啟用此防火牆功能,能夠對整個內部網路起到很好的保護作用。

ASP***Webshell的安全防範解決辦法

--------------------------------------------------------------------------------

注意:本文所講述之設定方法與環境:適用於Microsoft Windows 2000 Server/Win2003 SERVER IIS5.0/IIS6.0

1、首先我們來看看一般ASP***、Webshell所利用的ASP元件有那些?我們以海洋***為列:

shellStr="Shell"

applicationStr="Application"

if cmdPath="wscriptShell"

set sa=server.createObject(shellStr&"."&applicationStr)

set streamT=server.createObject("adodb.stream")

set domainObject = GetObject("WinNT://.")

以上是海洋中的相關程式碼,從上面的程式碼我們不難看出一般ASP***、Webshell主要利用了以下幾類ASP元件:

① WScript.Shell (classid:72C24DD5-D70A-438B-8A42-98424B88AFB8)

② WScript.Shell.1 (classid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)

③ WScript.Network (classid:093FF999-1EA0-4079-9525-9614C3504B74)

④ WScript.Network.1 (classid:093FF999-1EA0-4079-9525-9614C3504B74)

⑤ FileSystem Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)

⑥ Adodb.stream (classid:{00000566-0000-0010-8000-00AA006D2EA4})

⑦ Shell.applicaiton....

hehe,這下我們清楚了危害我們WEB SERVER IIS的最罪魁禍首是誰了!!開始操刀,come on...

2:解決辦法:

① 刪除或更名以下危險的ASP元件:

WScript.Shell、WScript.Shell.1、Wscript.Network、Wscript.Network.1、adodb.stream、Shell.application

開始------->執行--------->Regedit,開啟登錄檔編輯器,按Ctrl+F查詢,依次輸入以上Wscript.Shell等元件名稱以及相應的ClassID,然後進行刪除或者更改名稱(這裡建議大家更名,如果有部分網頁ASP程式利用了上面的元件的話呢,只需在將寫ASP程式碼的時候用我們更改後的元件名稱即可正常使用。當然如果你確信你的ASP程式中沒有用到以上元件,還是直接刪除心中踏實一些^_^,按常規一般來說是不會做到以上這些元件的。刪除或更名後,iisreset重啟IIS後即可升效。)

[注意:由於Adodb.Stream這個元件有很多網頁中將用到,所以如果你的伺服器是開虛擬主機的話,建議酢情處理。]

② 關於 File System Object (classid:0D43FE01-F093-11CF-8940-00A0C9054228)即常說的FSO的安全問題,如果您的伺服器必需要用到FSO的話,(部分虛擬主機伺服器一般需開FSO功能)可以參照本人的另一篇關於FSO安全解決辦法的文章:Microsoft Windows 2000 Server FSO 安全隱患解決辦法。如果您確信不要用到的話,可以直接反註冊此元件即可。

③ 直接反註冊、解除安裝這些危險元件的方法:(實用於不想用①及②類此類煩瑣的方法)

解除安裝wscript.shell物件,在cmd下或直接執行:regsvr32 /u %windir%\system32\WSHom.Ocx

解除安裝FSO物件,在cmd下或直接執行:regsvr32.exe /u %windir%\system32\scrrun.dll

解除安裝stream物件,在cmd下或直接執行: regsvr32 /s /u "C:\Program Files\Common Files\System\ado\msado15.dll"

如果想恢復的話只需要去掉 /U 即可重新再註冊以上相關ASP元件例如:regsvr32.exe %windir%\system32\scrrun.dll

④ 關於Webshell中利用set domainObject = GetObject("WinNT://.")來獲取伺服器的程序、服務以及使用者等資訊的防範,大家可以將服務中的Workstation[提供網路鏈結和通訊]即Lanmanworkstation服務停止並禁用即可。此處理後,Webshell顯示程序處將為空白。

3 按照上1、2方法對ASP類危險元件進行處理後,用阿江的asp探針測試了一下,“伺服器CPU詳情”和“伺服器作業系統”根本查不到,內容為空白的。再用海洋測試Wsript.Shell來執行cmd命令也是提示Active無法建立對像。大家就都可以再也不要為ASP***危害到伺服器系統的安全而擔擾了

轉載於:https://blog.51cto.com/masondong/401072