Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- typescript
- frontend
- turbo
- VectoreStore
- React
- javascirpt
- javascript
- jenkins
- CI/CD
- queue
- DP
- build
- modbus
- python
- BFS
- 프로그래머스
- RDP
- dfs
- monorepo
- LLM
- rag
- Two Pointer
- 알고리즘
- 파이썬
- Infra
- Algorithm
- Flask
- ansible
- AI
- docker
Archives
- Today
- Total
DM Log
[RDP 모니터링 프로젝트 #1] Window Server - RDP 접속 이벤트 기반 녹화 구조 설계 본문
PJT/영상 파일 재생 PJT
[RDP 모니터링 프로젝트 #1] Window Server - RDP 접속 이벤트 기반 녹화 구조 설계
Dev. Dong 2025. 11. 30. 14:05
개요
RDP 화면 녹화 시스템에서 ffmpeg 녹화 및 영상 저장을 자동으로 제어하는 구조 설계가 중요하다고 생각했다. 바로 언제 녹화를 시작하고 언제 종료 할지에 대해 해결이 필요했다. Window Server는 사용자 RDP 로그인/로그오프 시 Event Log를 통해 상세 정보를 기록해 주는 것을 통해 사용자별 녹화 시스템 구축이 가능할 것으로 생각하고 진행하였다.
- 이벤트 로그 4624(로그인) / 4634(로그오프) 이벤트 구조 분석
- SYSYEM의 불필요 이벤트 필터링 (4624와 4634 이벤트는 RDP 로그인 시만 한번 찍히는게 아님)
- 다중 사용자 세션 처리
- 이벤트 트리거를 통한 batch script 실행
RDP 이벤트 구조 이해
Event ID 4624 (로그인 성공)
- RDP로 로그인 시 4624 이벤트가 발생
- RDP 로그인 시 4624 XML에서 TargetUserName(사용자 이름) / TarghetLogonId(세션 구분 ID) / LogonType = 10(RDP 로그인)
Event ID 4634 (로그오프)
- RDP로 로그오프 시 4634 이벤트가 발생
- RDP 로그오프 시 4624 XML에서 TargetUserName(사용자 이름) / TarghetLogonId(세션 구분 ID)
주요 문제 : SYSTEM 계정 이벤트 남발
- Window 부팅, 서비스 실행 등 SYSTEM 활동에도 Event 4624가 남으며, 해당 부분에 대한 필터링이 필요
필터링 전략
- LogonType = 10 (원격 데스크톱) 만 허용
- SYSTEM / ANONYMOUS LOGON 제외
이벤트 트리거로 Batch 스크립트 실행 설정
- Windows 에서는 Evnet Viewer → 작업(Task Scheduler)를 이용해 틀정 Event 발생 시 자동으로 Batch 파일 실행 가능
- 4624 → record_start.bat 실행
- 4634 → record_stop.bat 실행
4624 이벤트 필터 XML
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4624)]]
and
*[EventData[Data[@Name='LogonType']='10']]
and
*[EventData[Data[@Name='TargetUserName']!='SYSTEM']]
and
*[EventData[Data[@Name='TargetUserName']!='ANONYMOUS LOGON']]
</Select>
</Query>
</QueryList>
4634 로그오프 이벤트 필터 XML
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[System[(EventID=4634)]]
</Select>
</Query>
</QueryList>
녹화 구조 설명
RDP 로그인 (4624)
- LogonType=10 확인
- record_start.bat 실행
- ffmpeg 시작 (user/session 별)
- PID 저장
RDP 로그오프 (4634)
- record_stop.bat 실행
- PID로 ffmpeg 종료
- 녹화 파일 확정
- 중앙 서버로 메타데이터 API 호출
'PJT > 영상 파일 재생 PJT' 카테고리의 다른 글
| [RDP 모니터링 프로젝트 #4] Window Scheduler + SFTP 자동 전송 시스템 구축 (0) | 2025.11.30 |
|---|---|
| [RDP 모니터링 프로젝트 #3] 다중 RDP 접속 대응 및 세션별 PID 관리 전략 (0) | 2025.11.30 |
| [RDP 모니터링 프로젝트 #2] ffmpeg 기반 화면 녹화 Batch 스크립트 구현 (0) | 2025.11.30 |
| [RDP 모니터링 프로젝트 #0] RDP 화면 녹화 프로젝트 개요 (0) | 2025.11.29 |
| [RDP 모니터링 PJT] RDP 화면 녹화 프로젝트 (3) | 2025.11.23 |
