Tôi có một chương trình C # thực hiện chính xác điều này. Tôi gặp sự cố trên Server 2008 R2 khi nhật ký sự kiện không phải lúc nào cũng liệt kê địa chỉ IP của người dùng (nếu họ kết nối từ các máy khách Remote Desktop mới hơn). Một số dịch vụ triển khai nhà cung cấp kiểm tra thông tin xác thực của riêng họ mà không cung cấp tất cả thông tin bạn muốn.
http://cyberarms.net/security-insights/security-lab/remote-desktop-logging-of-ip-address-%28security-event-log-4625%29.aspx
Tuy nhiên, đối với Remote Desktop, tôi phát hiện ra rằng việc đi vào "Cấu hình máy chủ phiên máy tính từ xa" và thay đổi kết nối RDP-TCP để có lớp bảo mật của "Lớp bảo mật RDP" thay vì "Đàm phán" hoặc "SSL (TLS 1.0)" đã mang lại Các địa chỉ IP.
Cho dù bạn thực sự muốn làm điều này là một câu hỏi khác cho bạn, "Nếu bạn chọn Lớp bảo mật RDP, bạn không thể sử dụng Xác thực cấp mạng."
Tôi thấy http://www.windowsecurity.com/articles/logon-types.html là hữu ích. Tôi đã sử dụng EventLogWatcher và bị ràng buộc với "* [System / EventID = 4625 hoặc System / EventID = 4624]" để tôi có thể thiết lập lại một số liệu xấu về thành công nếu người dùng thực sự chỉ sai mật khẩu của họ. Ngoài ra tôi còn đưa vào danh sách trắng :: 1, 0.0.0.0, 127.0.0.1 và "-". Bạn có thể hoặc không muốn liệt kê các IP LAN / quản lý danh sách trắng.
Tôi sử dụng Forefront TMG vì vậy tôi đã sử dụng API để thêm địa chỉ IP xấu vào một nhóm IP theo cách đó và tôi đã yêu cầu Cisco thêm quyền truy cập API vào một trong các bộ định tuyến SMB của họ (họ đảm bảo với tôi rằng họ có thể làm được!)
Nếu bạn muốn sử dụng Tường lửa Windows gốc để chặn chúng, hãy xem API cho điều đó ("Netsh advfirewall").
Tôi cho phép x số lần thử trước khi tôi cấm và thành công sẽ đặt lại số lượng.