time /t >>TSLog.log
netstat -n -p tcpfind ":3389">>TSLog.log
start Explorer
我来解释一下这个文件的含义:
第一行是记录用户登录的时间,time /t的意思是直接返回系统时间(如果不加/t,系统会等待你输入新的时间),然后我们用追加符号">>"把这个时间记入TSLog.log作为日志的时间字段;
第二行是记录用户的IP地址,netstat是用来显示当前网络连接状况的命令,-n表示显示IP和端口而不是域名、协议,-ptcp是只显示tcp协议,然后我们用管道符号" "把这个命令的结果输出给find命令,从输出结果中查找包含":3389"的行(这就是我们要的客户的IP所在的行,如果你更改了终端服务的端口,这个数值也要作相应的更改),最后我们同样把这个结果重定向到日志文件TSLog.log中去,于是在SLog.log文件中,记录格式如下:
22:40
TCP192.168.12.28:3389192.168.10.123:4903 ESTABLISHED
22:54
TCP192.168.12.28:3389 192.168.12.29:1039 ESTABLISHED
也就是说只要这个TSLog.bat文件一运行,所有连在3389端口上的IP都会被记录,那么如何让这个批处理文件自动运行呢?我们知道,终端服务允许我们为用户自定义起始的程序,在终端服务配置中,我们覆盖用户的登录脚本设置并指定TSLog.bat为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本(相当于shell环境)是Explorer(资源管理器),所以我在TSLog.bat的最后一行加上了启动Explorer的命令startExplorer,如果不加这一行命令,用户是没有办法进入桌面的!当然,如果你只需要给用户特定的Shell:
例如cmd.exe或者word.exe你也可以把start Explorer替换成任意的shell 。这个脚本也可以有其他的写法,作为系统管理员,你完全可以自由发挥你的想象力、自由利用自己的资源,例如写一个脚本把每个登录用户的IP发送到自己的信箱对于重要的服务器也是一个很好的方法 。正常情况下一般的用户没有查看终端服务设置的权限,所以他不会知道你对登录进行了IP审核,只要把TSLog.bat文件和TSLog.log文件放在比较隐蔽的目录里就足够了,不过需要注意的是这只是一个简单的终端服务日志策略,并没有太多的安全保障措施和权限机制,如果服务器有更高的安全要求,那还是需要通过编程或购买入侵监测软件来完成的 。
- Win2003自带防火墙构筑安全防线
- IIS存在未明远程攻击漏洞
- 网络管理员必读之如何让DHCP服务器更安全
- 三招两式保护Windows系统不受恶意代码攻击
- 苹果系统是哪个国家开发的
- 银行系统反馈支付失败是什么意思
- 绿盟评出2004年09月十大网络安全漏洞
- 提高操作系统和IIS安全性的绝招
- Microsoft 发布5个新的安全补丁
- 国家规定的安全色有哪四种颜色
