1. 程式人生 > >終端服務Terminal Service的幾個使用技巧

終端服務Terminal Service的幾個使用技巧


上面這個連線是英文的。如果願意,可自己看。^_^

1、第一步,更改終端服務的伺服器端設定。
開啟登錄檔,找到類似這樣的鍵值HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Terminal Server/Wds/Repwd/Tds/Tcp, 看到那個PortNumber沒有?0xd3d,這個是16進位制,就是3389啦,我改...這個值是RDP(遠端桌面協議)的預設值,也就是說用來配置以後新建的RDP服務的,要改已經建立的RDP服務,我們去下一個鍵值:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/TerminalServer/WinStations這裡應該有一個或多個類似RDP-TCP的子健(取決於你建立了多少個RDP服務),一樣改掉PortNumber。 (轉者注:在這裡可以在HKEY_LOCAL_MACHINE下面通過搜尋3389來找到所有的portnumber項)

2、第二步,改客戶端。
服務端改了埠而客戶端埠沒有改變,我們豈不是白瞪眼?再來改客戶端:開啟客戶端連線管理器,按照正常的步驟建立一個客戶端連線的快捷方式,選中這個連線,然後在“檔案”選單裡選擇“匯出”(Menu->File->Export),這個操作會生成一個cns檔案,就是終端服務客戶端的配置檔案,你可以用文字編輯器(比如記事本)編輯這個檔案,找到“Server Port=3389”,改成你要的埠,然後再選匯入(Menu->File->Import),這是的客戶端快捷方式已經變成你需要的埠了。

需要主義的是,從微軟主頁上下載的終端服務客戶端Terminal Service Client(MSI版)以及ActiveX版都不能更改埠,只有使用Win2000伺服器版終端服務自帶的“製作安裝盤”功能製作版本可以改埠,這個功能在管理工具的“終端服務客戶端生成器”(Terminal Service Client Creator)中。

對於日誌的問題,其實Terminal Service自己是有日誌功能的,在管理工具中開啟遠端控制服務配置(Terminal Service Configration),點選“連線”,右擊你想配置的RDP服務(比如RDP-TCP(Microsoft RDP5.0)),選中書籤“許可權”,點選左下角的“高階”,看見上面那個“稽核”了嗎?我們來加入一個Everyone組,這代表所有的使用者,然後稽核他的“連線”、“斷開”、“登出”的成功和“登陸”的功能和失敗就足夠了,稽核太多了反而不好,這個稽核試記錄在安全日誌中的,可以從“管理工具”->“日誌檢視器”中檢視。
現在什麼人什麼時候登陸都一清二楚了,可是它卻不記錄客戶端的IP(只能檢視線上使用者的ip)而是記錄計算機名,要是別人起個PIG的機器名你只好受他嘲弄了。我們來自己寫個程式,一切搞定,你會c麼?反正我不會,vb呢?我也不會^_^,Delphi??我還是不會^_^,別急,如果你和我一樣,還有一個辦法,我們建立一個.bat檔案,叫做TSLog.bat,這個檔案用來記錄登入者的ip,內容如下:
time /t>>TSLog.log
netstat -n -p tcp|find ":3389">>TSLog.log
start Explorer
我來解釋一下這個檔案的含義:
第一行是記錄使用者登陸的時間,Time/t的意思是直接返回系統時間(如果不加/t,系統會等待你輸入新的時間),然後我們用追加符號

>>把這個時間記入TSLog.log
第二行是記錄使用者的ip地址,Netstat是用來顯示當前網路連線狀況的命令,-n表示顯示ip和埠而不是域名、協議,-p tcp是隻顯示tcp協議,然後我們用管道符號“|”把這個命令的結果輸出給Find命令,從輸出結果中查詢包含“:3389”的行(這就是我們要得客戶的ip所在行,如果你改了終端服務的埠,這個數值也要作相應的改變),最後我們同樣把這個結果重定向到日誌檔案TSLog.log中去,於是在TSLog.log檔案中,記錄格式如下:
22:40
TCP 192.168.12.28:3389 192.168.10.123:4903ESTABLISHED
22:54
TCP 192.168.12.28:3389 192.168.12.29:1039ESTABLISHED
也就是說只要這個TSLog.bat檔案一執行,所有連在3389埠的ip都會被記錄,那麼如何讓這個批處理檔案執行呢?我們知道終端服務允許我們為使用者自定義起始的程式,在終端服務配置中,我們覆蓋使用者的登陸指令碼設定並指定TSLog.bat為使用者登入時需要開啟的指令碼,這樣每個使用者登入後都必須執行這個指令碼,因為預設得指令碼(相當於SHELL環境)是Explorer(資源管理器),所以我在TSLog.bat的最後一行加上了啟動Explorer的命令start Explorer,如果不加這一行命令,使用者是沒有辦法進入桌面的。當然,如果你只需要給使用者特定的SHELL:例如cmd.exe或者word.exe你也可以把start explorer替換成任意的SHELL。

這個指令碼也可以有其他的寫法,例如寫一個指令碼把每個登陸使用者的ip傳送到自己的信箱對於很重要的伺服器也是一個很好的方法。
正常情況下,一般的使用者沒有檢視終端服務設定的許可權,所以他不會知道你對登陸進行了ip稽核,只要把TSLog.bat檔案和TSLog.log檔案放在比較隱蔽的目錄裡就足夠了,不過需要注意的是這只是一個簡單的終端服務日誌攻略,並沒有太多的安全保障措施和許可權機制,如果伺服器有更高的安全要求,那還是需要通過程式設計後購買入侵檢測 軟體來完成。

相關連結:

Windows Server 2003建立VPN