服務器經常提示有主機利用RPC漏洞進行攻擊,為了保證服務器的安全,我禁用了RPC服務。雖然攻擊沒有了,但問題也來了,很多依賴於RPC服務的系統服務不能正常運行,如Messenger、Windows Installer服務等,主要症狀有:啟動Windows時間較長;窗口最小化後不顯示在狀態欄;不能復制、粘貼;打開不了第二層網頁;找不到RPC服務的屬性頁等等。筆者想重新啟用RPC服務時費了點周折。
我的關閉方法是依次點擊“管理工具→服務→Remote Procedure Call→屬性”,其默認啟動類別是“自動”,但選項是灰色的(不可用狀態),點擊標簽“登錄”,將硬件配置文件服務禁用,重新啟動系統。
筆者在網上查閱了大量的資料,找出啟用的三種方法:
方法一:修改注冊表
運行注冊表編輯器,打開HKEY_LOCAL_MACHINE\system\CurrentControl-Set\Services\RpcSs分支,將Start項的值由“4”修改為“2”,即把啟動類型設為自動,重新啟動系統即可。
方法二:使用“SC”命令
進入“命令提示符”窗口,鍵入“sc config RpcSs start=auto”命令,系統會顯示“SC ChangeServiceConfig SUCCESS”,這樣就可以成功啟用RPC服務。
方法三:使用故障恢復控制台
以Windows 2003系統為例,用安裝光盤啟動,系統進入到Windows 2003安裝界面,按下“R”鍵登錄到故障恢復控制台。在故障恢復控制台下,鍵入“enable RpcSs service_auto_start”命令,然後再鍵入“exit”命令,重新啟動系統,以正常模式登錄,即可成功啟用RPC服務。
筆者使用上面的幾種方法都不成功,看來只有自己動手解決了。我想注冊表中的某些鍵值一定要變,這樣才能啟用。
把禁用前的備份注冊表恢復到被禁用後的注冊表中,提示無法導入,不成功。無法啟用。
把禁用前和禁用後的兩個注冊表(只取HKEY_LOCAL_MACHINE\SYSTEM分支)內容轉化成Word文檔,再使用Word中的“比較並合並文檔”功能,就能自動找到兩個注冊表的不同之處。我通過比較分析,發現禁用後的注冊表中有以下分支:
1. HKEY_LOCAL_MACHINE\SYSTEM\Curr-
entControlSet\HardwareProfiles\0001\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS
2.HKEY_LOCAL_MACHINE\SYSTEM\Curr-
entControlSet\HardwareProfiles\Current\System\CurrentControlSet\Enum\ROOT\LEGACY_RPCSS
禁用前的注冊表中沒有以上兩個分支。通過進一步操作,發現只要刪除第1個分支即可重新起用RPC服務。
原來上面三種方法,只能應用於把RPC服務啟動類型改為禁止後的情況。筆者關閉RPC服務不是改變啟動類型,而是禁止與之相關聯的硬件配置文件服務,“Start”項的值仍是“2”,沒有變。所以先要將硬件配置文件服務啟用,才能啟用RPC服務。