红叶的技术日志

希望每天能努力多一点

IT博客 首页 新随笔 联系 聚合 管理
  184 Posts :: 9 Stories :: 22 Comments :: 0 Trackbacks
对于日志的问题,其实Terminal Service自己是有日志功能的,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击“连接”,右击你想配置的RDP服务(比如RDP-TCP(Microsoft RDP5.0)),选中书签“权限”,点击左下角的“高级”,看见上面那个“审核”了吗?我们来加入一个Everyone组,这代表所有的用户,然后审核他的“连接”、“断开”、“注销”的成功和“登陆”的功能和失败就足够了,审核太多了反而不好,这个审核试记录在安全日志中的,可以从“管理工具”->“日志查看器”中查看。
现在什么人什么时候登陆都一清二楚了,可是它却不记录客户端的IP(只能查看在线用户的ip)而是记录计算机名,我们可以建立一个.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表示显緄p和端口而不是域名、协议,-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 文件放在比较隐蔽的目录里就足够了,不过需要注意的是这只是一个简单的终端服务日志攻略,并没有太多的安全保障措施和权限机制 ,如果服务器有更高的安全要求,那还是需要通过编程后购买入侵检测 软件来完成。

 _______________________________________________________


首先建立一个bat 文件,比如:login.bat    //或者login.cmd   ,前提是你的系统上设置允许查看文件后缀名。具体设置选项,可以打开我的电脑/工具/文件夹选项/查看/   清除“隐藏己知文件类型的扩展名”前面的钩。
文件内容如下:


echo off
date /t >>D:\temp\login.log
time /t >>D:\temp\login.log
echo   协议    本地IP地址            远程IP地址             连接状态 >>D:\temp\login.log
netstat -an -p tcp |find ":3389" >>D:\temp\login.log
start explorer
echo __________________________________________________________________ >>D:\temp\login.log

 



其中find ":3389" 为你的3389端口,如果你改过3389端口请改成相应的端口,后面的andy.log 是记录文件的名字!可随意更改(注:要把所有的LOG结尾的文件名改成你命名的文件)。把此文件放到你系统的目录下,本文以C:\winnt 目录为例:

点击 开始--程序--管理工具--终端服务配置--链接 选择右面栏里的RDP-TCP打开属性对话框 ,打开环境选项,在初始程序中的
替代用户配置文件和客户端链接管理器向导的设置 打对号
在 用户登录时,启动下列程序里写入
c:\winnt\3389.bat
在 开始位置 中写入
c:\winnt\
点击确定
重启计算机.
      再次登录时,查看login.log文件,确定脚本是否运行正常.

posted on 2008-03-11 16:43 applezk's IT blog 阅读(5443) 评论(3)  编辑 收藏 引用 所属分类: windows

Feedback

# re: 记录远程用户登录日志 2008-03-25 16:44 zhji6234
受益非浅呀 顶顶   回复  更多评论
  

# re: 记录远程用户登录日志 2008-09-26 11:53 刘玲利
这个办法有一个问题就是,不能记录每次远程桌面登陆的情况,只有重启后才记录。只要服务器永远不重启, 他也就不会自动记录,如何解决每次登陆都会记录呢?

审核后,安全日志里是有IP记录的, 搜索事件682可以查看登陆的时间,客户端计算机名,IP地址  回复  更多评论
  

# re: 记录远程用户登录日志 2008-11-02 16:56 刘玲利
我当时也是这么实验的, 问题同上.
最终发现这些文章都是复制粘贴的, 发贴人自己都没有成功实验过, 不知道具体的问题.
可以在会话上把会话改成在一分钟后自动断开.
那么一分钟之后你再连接,就可以就日志记录了.

还有一个问题就是如果登陆的时候用mstsc /console,那么就不会产生记录, 这也是毛病之一.  回复  更多评论
  

只有注册用户登录后才能发表评论。