英国正在经历一项大规模的数据保护政策改革,即 GDPR。对于一个客户,我们需要加强对支持和开发团队访问某些服务器的审计。我不仅想知道谁登录了服务器的远程桌面,还想知道为什么。我可以简单地创建一个 Excel 电子表格或帮助台条目,并要求人们在每次登录时完成,但这真的不够强大。
我在其他环境中看到过,在登录服务器时(在登录表单处),会出现一个辅助表单,询问此人登录的原因。在完成辅助表单之前不允许登录。
我搜索过这样的产品,但找不到。有人能推荐一些解决方案吗?
答案1
Server Fault 确实不适合产品推荐。类似问题在 2013 年的 SF 上,OP 最终创建了一个登录脚本,询问原因,直到给出原因(即原因不为空):
<!-- language: lang-vb --> ' Display an input dialog asking the reason for a login and writes it to the event viewer with information of the user. Const EVENT_TYPE = "Information" 'Available Values: Success, Error, Warning, Information Const EVENT_SOURCE = "LoginAudit" 'Setting the event source requires that the script runs with administrative privileges firstname = GetUserFirstname() username = GetUsername() loginReason = "" Do While (loginReason = "") loginReason = InputBox("Hi " + firstname + ", please describe the reason of your login:", "Login Audit") Loop eventDescription = "User '" & username & "' logged in, providing the following reason: " & Chr(13) & Chr(13) & loginReason Set WshShell = WScript.CreateObject("WScript.Shell") strCommand = "eventcreate /T " & EVENT_TYPE & " /ID 100 /L Application /SO LoginAudit /D " & _ Chr(34) & eventDescription & Chr(34) WshShell.Run strcommand Function GetUserFirstname() Set objSysInfo = CreateObject("ADSystemInfo") Set objCurrentUser = GetObject("LDAP://" & objSysInfo.UserName) GetUserFirstname = objCurrentUser.givenName End Function Function GetUsername() Set objNetwork = CreateObject("Wscript.Network") GetUsername = objNetwork.UserName End Function
您可以修改它以满足您的需求。我认为这种开放式表单字段方法会吸引人们给出一些单字母答案而不是真实原因。如果所有操作都可以在已知的标准程序范围内,下拉菜单可能会更好。这是 GDPR 相关工作的一部分,您可能已经想到了这些处理程序个人身份信息。